1/****************************************************************************
2**+-----------------------------------------------------------------------+**
3**|                                                                       |**
4**| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved.      |**
5**| All rights reserved.                                                  |**
6**|                                                                       |**
7**| Redistribution and use in source and binary forms, with or without    |**
8**| modification, are permitted provided that the following conditions    |**
9**| are met:                                                              |**
10**|                                                                       |**
11**|  * Redistributions of source code must retain the above copyright     |**
12**|    notice, this list of conditions and the following disclaimer.      |**
13**|  * Redistributions in binary form must reproduce the above copyright  |**
14**|    notice, this list of conditions and the following disclaimer in    |**
15**|    the documentation and/or other materials provided with the         |**
16**|    distribution.                                                      |**
17**|  * Neither the name Texas Instruments nor the names of its            |**
18**|    contributors may be used to endorse or promote products derived    |**
19**|    from this software without specific prior written permission.      |**
20**|                                                                       |**
21**| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |**
22**| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |**
23**| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
24**| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |**
25**| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
26**| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |**
27**| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
28**| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
29**| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |**
30**| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
31**| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |**
32**|                                                                       |**
33**+-----------------------------------------------------------------------+**
34****************************************************************************/
35
36
37#ifndef __OS_TYPES_H__
38#define __OS_TYPES_H__
39
40#include <linux/version.h>
41
42#ifndef VOID
43#define VOID        void
44#define PVOID       void*
45#endif
46
47#if !defined(FALSE)
48#define FALSE               0
49#endif
50
51#if !defined(TRUE)
52#define TRUE                1
53#endif
54
55#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
56#if !defined(false)
57#define false               0
58#endif
59
60#if !defined(true)
61#define true                1
62#endif
63#endif
64
65#ifndef NULL
66#if defined(__cplusplus)
67#define NULL 0
68#else
69#define NULL ((void *)0)
70#endif
71#endif /* NULL */
72
73#ifndef UNUSED
74#define UNUSED(p) ((void)p)
75#endif
76
77#ifndef SIZE_ARR
78#define SIZE_ARR(a) (sizeof(a)/sizeof(a[0]) )
79#endif
80/*
81#ifdef _UNICODE
82#define _T  unsigned short
83#else
84#define _T
85#endif
86*/
87#ifndef TI_HANDLE
88typedef void*           TI_HANDLE;
89#endif
90#define TI_HANDLE_INVALID   NULL
91#define TI_OK     0
92#define TI_ERROR -1
93
94typedef signed char                    INT8, *PINT8, *PCHAR;
95typedef unsigned char       UINT8, *PUINT8, UCHAR, *PUCHAR;
96typedef short           INT16, *PINT16;
97typedef unsigned short      UINT16, *PUINT16;
98typedef unsigned int            UINT, *PUINT;
99
100typedef void            tiVOID, *tiPVOID;
101typedef unsigned int        tiBOOL;
102typedef tiBOOL    BOOLEAN, *PBOOLEAN;
103typedef UINT16              tiUINT16;
104typedef signed int          tiINT32;
105typedef unsigned int        tiUINT32;
106typedef UINT8               tiUINT8;
107typedef char                ti_char;
108typedef char                tiCHAR;
109typedef unsigned long long  tiULONGLONG;
110typedef long long           tiLONGLONG;
111
112#ifndef _BASETSD_H_
113typedef signed int      INT32, *PINT32;
114typedef unsigned long   /*LARGE_INTEGER, */ULONG, *PULONG;
115# ifndef _WINDOWS
116typedef union _LARGE_INTEGER_T {
117    struct {
118        tiUINT32 LowPart;
119        tiINT32  HighPart;
120    };
121    tiLONGLONG QuadPart;
122} LARGE_INTEGER;
123# endif /* _WINDOWS */
124
125# ifndef _SUPPLICANT_
126typedef unsigned int    UINT32, *PUINT32;
127typedef unsigned char   BOOL, *PBOOL;
128# endif /* _SUPPLICANT_ */
129#endif /* _BASETSD_H_ */
130
131/*
132typedef struct _GUID {
133    unsigned long  Data1;
134    unsigned short Data2;
135    unsigned short Data3;
136    unsigned char  Data4[ 8 ];
137} GUID;
138
139#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) ;
140*/
141typedef unsigned long long      UINT64;
142typedef long long               INT64;
143#define CONSTANT64(x)           (x##LL)
144
145#define STRUCT typedef struct
146#define UNION typedef union
147#define ENUM typedef enum
148
149#define PACKED_STRUCT(name,content) STRUCT { content } __attribute__ ((packed)) name
150#define PACKED_STRUCT_NO_TYPEDEF(content) struct { content } __attribute__ ((packed))
151#define PACKED_UNION(name,content) union { content } __attribute__ ((packed)) name
152#define PACKED_UNION_NO_TYPEDEF(content) union { content } __attribute__ ((packed))
153#define ENUM_BODY(name, value) name  value,
154#define PACKED_ENUM(name, list) ENUM { list(ENUM_BODY) } __attribute__ ((packed)) name
155
156
157#define NWIF_MAX_QOS_CONNS 7
158
159#define BIT_TO_BYTE_FACTOR 8
160
161typedef struct nwif_clsfr_entry_t
162{
163    UINT32 ip;
164    UINT16 port;
165    UINT16 pri;
166} NWIF_CLSFR_ENTRY;
167/*The following define assumes that the structure above is 8 bytes.*/
168#define OS_CLSFR_TABLE_SIZE (NWIF_MAX_QOS_CONNS * 8)
169
170typedef UINT64 OS_PHYSICAL_ADDRESS;
171
172#define IMPORT_TI_API
173
174#endif /* __OS_TYPES_H__*/
175
176
177