Root/package/broadcom-wl/src/include/typedefs.h

1/*
2 * Copyright 2006, Broadcom Corporation
3 * All Rights Reserved.
4 *
5 * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
6 * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
7 * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
8 * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
9 */
10
11#ifndef _TYPEDEFS_H_
12#define _TYPEDEFS_H_
13
14/*
15 * Inferred Typedefs
16 *
17 */
18
19/* Infer the compile environment based on preprocessor symbols and pramas.
20 * Override type definitions as needed, and include configuration dependent
21 * header files to define types.
22 */
23
24#ifdef __cplusplus
25
26#define TYPEDEF_BOOL
27#ifndef FALSE
28#define FALSE false
29#endif
30#ifndef TRUE
31#define TRUE true
32#endif
33
34#endif /* __cplusplus */
35
36#if defined(_NEED_SIZE_T_)
37typedef long unsigned int size_t;
38#endif
39
40#define TYPEDEF_UINT
41#define TYPEDEF_USHORT
42#define TYPEDEF_ULONG
43
44
45/* Do not support the (u)int64 types with strict ansi for GNU C */
46#if defined(__GNUC__) && defined(__STRICT_ANSI__)
47#define TYPEDEF_INT64
48#define TYPEDEF_UINT64
49#endif
50
51/* pick up ushort & uint from standard types.h */
52#if defined(linux) && defined(__KERNEL__)
53#include <linux/types.h> /* sys/types.h and linux/types.h are oil and water */
54#else
55#include <sys/types.h>
56#endif
57
58/* use the default typedefs in the next section of this file */
59#define USE_TYPEDEF_DEFAULTS
60
61/*
62 * Default Typedefs
63 *
64 */
65
66#ifdef USE_TYPEDEF_DEFAULTS
67#undef USE_TYPEDEF_DEFAULTS
68
69#ifndef TYPEDEF_BOOL
70typedef /* @abstract@ */ unsigned char bool;
71#endif
72
73/* define uchar, ushort, uint, ulong */
74
75#ifndef TYPEDEF_UCHAR
76typedef unsigned char uchar;
77#endif
78
79#ifndef TYPEDEF_USHORT
80typedef unsigned short ushort;
81#endif
82
83#ifndef TYPEDEF_UINT
84typedef unsigned int uint;
85#endif
86
87#ifndef TYPEDEF_ULONG
88typedef unsigned long ulong;
89#endif
90
91/* define [u]int8/16/32/64, uintptr */
92
93#ifndef TYPEDEF_UINT8
94typedef unsigned char uint8;
95#endif
96
97#ifndef TYPEDEF_UINT16
98typedef unsigned short uint16;
99#endif
100
101#ifndef TYPEDEF_UINT32
102typedef unsigned int uint32;
103#endif
104
105#ifndef TYPEDEF_UINT64
106typedef unsigned long long uint64;
107#endif
108
109#ifndef TYPEDEF_UINTPTR
110typedef unsigned int uintptr;
111#endif
112
113#ifndef TYPEDEF_INT8
114typedef signed char int8;
115#endif
116
117#ifndef TYPEDEF_INT16
118typedef signed short int16;
119#endif
120
121#ifndef TYPEDEF_INT32
122typedef signed int int32;
123#endif
124
125#ifndef TYPEDEF_INT64
126typedef signed long long int64;
127#endif
128
129/* define float32/64, float_t */
130
131#ifndef TYPEDEF_FLOAT32
132typedef float float32;
133#endif
134
135#ifndef TYPEDEF_FLOAT64
136typedef double float64;
137#endif
138
139/*
140 * abstracted floating point type allows for compile time selection of
141 * single or double precision arithmetic. Compiling with -DFLOAT32
142 * selects single precision; the default is double precision.
143 */
144
145#ifndef TYPEDEF_FLOAT_T
146
147#if defined(FLOAT32)
148typedef float32 float_t;
149#else /* default to double precision floating point */
150typedef float64 float_t;
151#endif
152
153#endif /* TYPEDEF_FLOAT_T */
154
155/* define macro values */
156
157#ifndef FALSE
158#define FALSE 0
159#endif
160
161#ifndef TRUE
162#define TRUE 1 /* TRUE */
163#endif
164
165#ifndef NULL
166#define NULL 0
167#endif
168
169#ifndef OFF
170#define OFF 0
171#endif
172
173#ifndef ON
174#define ON 1 /* ON = 1 */
175#endif
176
177#define AUTO (-1) /* Auto = -1 */
178
179/* define PTRSZ, INLINE */
180
181#ifndef PTRSZ
182#define PTRSZ sizeof(char*)
183#endif
184
185#ifndef INLINE
186
187#ifdef _MSC_VER
188
189#define INLINE __inline
190
191#elif __GNUC__
192
193#define INLINE __inline__
194
195#else
196
197#define INLINE
198
199#endif /* _MSC_VER */
200
201#endif /* INLINE */
202
203#undef TYPEDEF_BOOL
204#undef TYPEDEF_UCHAR
205#undef TYPEDEF_USHORT
206#undef TYPEDEF_UINT
207#undef TYPEDEF_ULONG
208#undef TYPEDEF_UINT8
209#undef TYPEDEF_UINT16
210#undef TYPEDEF_UINT32
211#undef TYPEDEF_UINT64
212#undef TYPEDEF_UINTPTR
213#undef TYPEDEF_INT8
214#undef TYPEDEF_INT16
215#undef TYPEDEF_INT32
216#undef TYPEDEF_INT64
217#undef TYPEDEF_FLOAT32
218#undef TYPEDEF_FLOAT64
219#undef TYPEDEF_FLOAT_T
220
221#endif /* USE_TYPEDEF_DEFAULTS */
222
223/*
224 * Including the bcmdefs.h here, to make sure everyone including typedefs.h
225 * gets this automatically
226*/
227#include <bcmdefs.h>
228
229#endif /* _TYPEDEFS_H_ */
230

Archive Download this file



interactive