1a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*
2a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * tidef.h
3a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
43bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved.
5a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * All rights reserved.
6a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
7a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Redistribution and use in source and binary forms, with or without
8a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * modification, are permitted provided that the following conditions
9a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * are met:
10a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
11a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  * Redistributions of source code must retain the above copyright
12a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    notice, this list of conditions and the following disclaimer.
13a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  * Redistributions in binary form must reproduce the above copyright
14a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    notice, this list of conditions and the following disclaimer in
15a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    the documentation and/or other materials provided with the
16a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    distribution.
17a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  * Neither the name Texas Instruments nor the names of its
18a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    contributors may be used to endorse or promote products derived
19a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    from this software without specific prior written permission.
20a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
21a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
33a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
34a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef TIDEF_H
35a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define TIDEF_H
36a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
37a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "osTIType.h"
38a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
39a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \file  tidef.h
40a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief TI User Definitions APIs
41a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \n\n
42a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Note: TI_ prefix implies TI wrapping of primitives which is used for partability.
43a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * E.g. using these interfaces enables porting between different OS under these
44a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * interfaces without user notice.
45a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \n\n
46a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
47a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
48a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**********************
49a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *	Definitions
50a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **********************/
51a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
52a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
53a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def TI_FALSE
54a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief False value
55a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
56a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define TI_FALSE                    0
57a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
58a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def TI_TRUE
59a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief True value
60a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
61a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define TI_TRUE                     1
62a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
63a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
64a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def TI_OK
65a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief OK return value
66a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
67a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define TI_OK                       0
68a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
69a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def TI_NOK
70a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief NOT OK return value
71a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
72a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define TI_NOK                      1
73a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
74a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def MAC_ADDR_LEN
75a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Length of Standart MAC address
76a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
77a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define MAC_ADDR_LEN                6
78a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
79a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def IP_V4_ADDR_LEN
80a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Length of Standart IP V4 address
81a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
82a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define REGISTER_SIZE		        4
83a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define IP_V4_ADDR_LEN              4
84a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
85a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def IP_V4_ADDR_LEN
86a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Length of Standart IP V6 address
87a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
88a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define IP_V6_ADDR_LEN              6
89a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
90a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**********************
91a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *	Macros
92a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **********************/
93a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
94a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
95a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef TI_MAX
96a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
97a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def TI_MAX
98a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which returns the maximum of two values
99a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
100a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define TI_MAX(a,b)                 (((a) > (b)) ? (a) : (b))
101a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
102a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
103a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef TI_MIN
104a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
105a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def TI_MAX
106a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which returns the minimum of two values
107a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
108a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define TI_MIN(a,b)                 (((a) < (b)) ? (a) : (b))
109a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
110a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
111a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef NULL
112a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
113a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def NULL
114a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which returns NULL
115a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
116a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define NULL                        ((void *)0)
117a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
118a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
119a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
120a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def TI_VOIDCAST
121a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which Casts to void
122a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
123a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef TI_VOIDCAST
124a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define TI_VOIDCAST(p)             ((void)p)
125a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
126a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
127a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
128a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef SIZE_ARR
129a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
130a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def SIZE_ARR
131a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which returns number of elements in array a
132a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
133a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define SIZE_ARR(a)                 (sizeof(a)/sizeof(a[0]))
134a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
135a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
136a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
137a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef TI_FIELD_OFFSET
138a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
139a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def TI_FIELD_OFFSET
140a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which returns a field offset from structure begine
141a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
142a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define TI_FIELD_OFFSET(type,field)    ((TI_UINT32)(&(((type*)0)->field)))
143a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
144a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
145a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
146a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef TI_BIT
147a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define TI_BIT(x)                   (1 << (x))
148a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
149a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
150a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
151a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef IS_MASK_ON
152a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
153a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def IS_MASK_ON
154a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which returns True if bitmask in field is on (==1) \n
155a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Otherwise returns False
156a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
157a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define IS_MASK_ON(  field, bitmask ) (  (bitmask) == ( (field) &  (bitmask) ) )
158a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
159a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
160a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef IS_MASK_OFF
161a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
162a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def IS_MASK_OFF
163a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which returns True if bitmask in field is off (==0) \n
164a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Otherwise returns False
165a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
166a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define IS_MASK_OFF( field, bitmask ) ( ~(bitmask) == ( (field) | ~(bitmask) ) )
167a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
168a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
169a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
170a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef INRANGE
171a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
172a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def INRANGE
173a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which returns True if value (x) in range (law <= x <= high) \n
174a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Otherwise returns False
175a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
176a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define INRANGE(x,low,high)         (((x) >= (low)) && ((x) <= (high)))
177a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
178a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
179a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef OUTRANGE
180a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
181a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def OUTRANGE
182a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which returns True if value (x) out of range (x < law | x > high) \n
183a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Otherwise returns False
184a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
185a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define OUTRANGE(x,low,high)        (((x) < (low)) || ((x) > (high)))
186a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
187a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
188a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Due to alignment exceptions MAC_COPY and MAC_EQUAL are done byte by byte */
189a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
190a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
191a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def MAC_COPY
192a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which copies 6 bytes source to 6 bytes destination \n
193a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Due to alignment exceptions MAC_COPY is done byte by byte
194a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
195a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define MAC_COPY(dst,src)           ((TI_UINT8*)(dst))[0] = ((TI_UINT8*)(src))[0]; \
196a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8*)(dst))[1] = ((TI_UINT8*)(src))[1]; \
197a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8*)(dst))[2] = ((TI_UINT8*)(src))[2]; \
198a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8*)(dst))[3] = ((TI_UINT8*)(src))[3]; \
199a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8*)(dst))[4] = ((TI_UINT8*)(src))[4]; \
200a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8*)(dst))[5] = ((TI_UINT8*)(src))[5]
201a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
202a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def MAC_EQUAL
203a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which compares 6 bytes ofmac1 to 6 bytes of mac2 and returns True if all are equall \n
204a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Otherwise returns False \n
205a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Due to alignment exceptions MAC_EQUAL is done byte by byte
206a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
207a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define MAC_EQUAL(mac1,mac2)        (((TI_UINT8*)(mac1))[0] == ((TI_UINT8*)(mac2))[0] && \
208a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                     ((TI_UINT8*)(mac1))[1] == ((TI_UINT8*)(mac2))[1] && \
209a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                     ((TI_UINT8*)(mac1))[2] == ((TI_UINT8*)(mac2))[2] && \
210a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                     ((TI_UINT8*)(mac1))[3] == ((TI_UINT8*)(mac2))[3] && \
211a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                     ((TI_UINT8*)(mac1))[4] == ((TI_UINT8*)(mac2))[4] && \
212a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                     ((TI_UINT8*)(mac1))[5] == ((TI_UINT8*)(mac2))[5])
213a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
214a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def MAC_BROADCAST
215a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which returns True if MAC address is broadcast (equals "\xff\xff\xff\xff\xff\xff") \n
216a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Otherwise returns False
217a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
218a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define MAC_BROADCAST(mac)          MAC_EQUAL (mac, "\xff\xff\xff\xff\xff\xff")
219a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
220a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def MAC_NULL
221a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which returns True if MAC address is Null (equals "\x0\x0\x0\x0\x0\x0") \n
222a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Otherwise returns False
223a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
224a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define MAC_NULL(mac)               MAC_EQUAL (mac, "\x0\x0\x0\x0\x0\x0")
225a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
226a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def MAC_MULTICAST
227a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which returns True if MAC address is Multicast\n
228a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Otherwise returns False
229a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
230a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define MAC_MULTICAST(mac)          ((mac)[0] & 0x01)
231a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
232a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def IP_COPY
233a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which copies IP V4 source to IP V4 destination
234a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
235a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define IP_COPY(dst,src)            *((TI_UINT32*)(dst)) = *((TI_UINT32*)(src))
236a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
237a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def BYTE_SWAP_WORD
238a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which swaps Word's bytes. Used for Endian handling
239a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
240a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define BYTE_SWAP_WORD(x)           ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
241a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
242a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def BYTE_SWAP_LONG
243a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which swaps Long's bytes. Used for Endian handling
244a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
245a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define BYTE_SWAP_LONG(x)           ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >>  8) | \
246a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                     (((x) & 0x0000ff00) <<  8) | (((x) & 0x000000ff) << 24))
247a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
248a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
249a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* TI always supports Little Endian */
250a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#if defined (__BYTE_ORDER_BIG_ENDIAN)
251a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
252a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define WLANTOHL(x)                 (x)
253a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define WLANTOHS(x)                 (x)
254a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define HTOWLANL(x)                 (x)
255a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define HTOWLANS(x)                 (x)
256a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
257a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define ENDIAN_HANDLE_WORD(x)       BYTE_SWAP_WORD (x)
258a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define ENDIAN_HANDLE_LONG(x)       BYTE_SWAP_LONG (x)
259a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
260a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define INT64_LOWER(x)              *(((TI_UINT32*)&(x))+1)
261a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define INT64_HIGHER(x)             *((TI_UINT32*)&(x))
262a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
263a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define COPY_WLAN_WORD(dst,src)     ((TI_UINT8 *)(dst))[0] = ((TI_UINT8 *)(src))[1]; \
264a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8 *)(dst))[1] = ((TI_UINT8 *)(src))[0]
265a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define COPY_WLAN_LONG(dst,src)     ((TI_UINT8 *)(dst))[0] = ((TI_UINT8 *)(src))[3]; \
266a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8 *)(dst))[1] = ((TI_UINT8 *)(src))[2]; \
267a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8 *)(dst))[2] = ((TI_UINT8 *)(src))[1]; \
268a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8 *)(dst))[3] = ((TI_UINT8 *)(src))[0]
269a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
270a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define SET_WLAN_WORD(dst,val)      ((TI_UINT8 *)(dst))[1] =  (val)        & 0xff; \
271a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8 *)(dst))[0] = ((val) >> 8)  & 0xff
272a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
273a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define SET_WLAN_LONG(dst,val)      ((TI_UINT8 *)(dst))[3] =  (val)        & 0xff; \
274a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8 *)(dst))[2] = ((val) >> 8)  & 0xff; \
275a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8 *)(dst))[1] = ((val) >> 16) & 0xff; \
276a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8 *)(dst))[0] = ((val) >> 24) & 0xff
277a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
278a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define WLAN_WORD(src)              (((TI_UINT8 *)(src))[1]) | (((TI_UINT8 *)(src))[0] << 8)
279a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define WLAN_LONG(src)              (((TI_UINT8 *)(src))[3]) | (((TI_UINT8 *)(src))[2] << 8) | (((TI_UINT8 *)(src))[1] << 16) | (((TI_UINT8 *)(src))[0] << 24)
280a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
281a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#elif defined (__BYTE_ORDER_LITTLE_ENDIAN)
282a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
283a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
284a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def WLANTOHL
285a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which performs bytes swap of Long in Little Endian
286a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
287a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define WLANTOHL(x)                 BYTE_SWAP_LONG (x)
288a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
289a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def WLANTOHS
290a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which performs bytes swap of Word in Little Endian
291a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
292a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define WLANTOHS(x)                 BYTE_SWAP_WORD (x)
293a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
294a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def HTOWLANL
295a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which performs bytes swap of Long in Little Endian
296a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
297a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define HTOWLANL(x)                 BYTE_SWAP_LONG (x)
298a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
299a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def HTOWLANL
300a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which performs bytes swap of Word in Little Endian
301a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
302a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define HTOWLANS(x)                 BYTE_SWAP_WORD (x)
303a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
304a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
305a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def ENDIAN_HANDLE_WORD
306a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which handles Word in Little Endian
307a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
308a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define ENDIAN_HANDLE_WORD(x)       (x)
309a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
310a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def ENDIAN_HANDLE_WORD
311a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which handles Long in Little Endian
312a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
313a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define ENDIAN_HANDLE_LONG(x)       (x)
314a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
315a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
316a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def INT64_HIGHER
317a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which returns the content of higher address of INT64 variable in Little Endian
318a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
319a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define INT64_HIGHER(x)             *(((TI_UINT32*)&(x))+1)
320a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
321a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def INT64_LOWER
322a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which returns the content of lower address of INT64 variable in Little Endian
323a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
324a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define INT64_LOWER(x)              *((TI_UINT32*)&(x))
325a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
326a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
327a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def COPY_WLAN_WORD
328a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which copies word source to word destination byte by byte in Little Endian
329a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
330a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define COPY_WLAN_WORD(dst,src)     ((TI_UINT8 *)(dst))[0] = ((TI_UINT8 *)(src))[0]; \
331a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8 *)(dst))[1] = ((TI_UINT8 *)(src))[1]
332a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
333a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def COPY_WLAN_LONG
334a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which copies long source to long destination byte by byte in Little Endian
335a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
336a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define COPY_WLAN_LONG(dst,src)     ((TI_UINT8 *)(dst))[0] = ((TI_UINT8 *)(src))[0]; \
337a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8 *)(dst))[1] = ((TI_UINT8 *)(src))[1]; \
338a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8 *)(dst))[2] = ((TI_UINT8 *)(src))[2]; \
339a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8 *)(dst))[3] = ((TI_UINT8 *)(src))[3]
340a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
341a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def SET_WLAN_WORD
342a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which copies Word from val source to desrination in Little Endian
343a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
344a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define SET_WLAN_WORD(dst,val)      ((TI_UINT8 *)(dst))[0] =  (val)        & 0xff; \
345a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8 *)(dst))[1] = ((val) >> 8)  & 0xff
346a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
347a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def SET_WLAN_LONG
348a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which copies Long from val source to desrination in Little Endian
349a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
350a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define SET_WLAN_LONG(dst,val)      ((TI_UINT8 *)(dst))[0] =  (val)        & 0xff; \
351a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8 *)(dst))[1] = ((val) >> 8)  & 0xff; \
352a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8 *)(dst))[2] = ((val) >> 16) & 0xff; \
353a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ((TI_UINT8 *)(dst))[3] = ((val) >> 24) & 0xff
354a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
355a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def WLAN_WORD
356a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which returns Word value from source address in Little Endian
357a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
358a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define WLAN_WORD(src)              (((TI_UINT8 *)(src))[0]) | (((TI_UINT8 *)(src))[1] << 8)
359a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
360a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \def WLAN_LONG
361a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Macro which returns Long value from source address in Little Endian
362a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
363a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define WLAN_LONG(src)              (((TI_UINT8 *)(src))[0]) | (((TI_UINT8 *)(src))[1] << 8) | (((TI_UINT8 *)(src))[2] << 16) | (((TI_UINT8 *)(src))[3] << 24)
364a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#else
365a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
366a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#error "Must define byte order (BIG/LITTLE ENDIAN)"
367a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
368a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif
369a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
370a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
371a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**********************
372a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *	types
373a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **********************/
374a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
375a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
376a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \typedef TI_HANDLE
377a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Handle type - Pointer to void
378a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
379a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef void*                       TI_HANDLE;
380a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
381a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \typedef TI_BOOL
382a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Boolean type
383a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \n
384a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Used for indicating True or False ( TI_TRUE | TI_FALSE )
385a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
386a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef TI_UINT32                   TI_BOOL;
387a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
388a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \typedef TI_STATUS
389a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Return Status type
390a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \n
391a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Used as return status ( TI_OK | TI_NOK | TI_PENDING )
392a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
393a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef TI_UINT32                   TI_STATUS;
394a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
395a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \typedef TMacAddr
396a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief MAC Address Type
397a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \n
398a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * A buffer (size of Standart MAC Address Length in bytes) which holds a MAC address
399a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
400a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef TI_UINT8                    TMacAddr [MAC_ADDR_LEN];
401a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
402a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \typedef TIpAddr
403a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief IP V4 Address Type
404a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \n
405a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * A buffer (size of Standart IP V4 Address Length in bytes) which holds IP V4 address
406a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
407a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef TI_UINT8                    TIpAddr [IP_V4_ADDR_LEN];
408a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
409a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif /* TIDEF_H */
410a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
411a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
412