1 /* 2 * Copyright (C) 1999-2011, Broadcom Corporation 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 11 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 13 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 * 16 * $Id: typedefs.h,v 1.103.2.1 2010-05-11 18:19:28 Exp $ 17 */ 18 19 20 #ifndef _TYPEDEFS_H_ 21 #define _TYPEDEFS_H_ 22 23 #ifdef SITE_TYPEDEFS 24 25 26 27 #include "site_typedefs.h" 28 29 #else 30 31 32 33 #ifdef __cplusplus 34 35 #define TYPEDEF_BOOL 36 #ifndef FALSE 37 #define FALSE false 38 #endif 39 #ifndef TRUE 40 #define TRUE true 41 #endif 42 43 #else 44 45 46 #endif 47 48 #if defined(__x86_64__) 49 #define TYPEDEF_UINTPTR 50 typedef unsigned long long int uintptr; 51 #endif 52 53 54 55 56 57 #if defined(_NEED_SIZE_T_) 58 typedef long unsigned int size_t; 59 #endif 60 61 62 63 64 65 #if defined(__sparc__) 66 #define TYPEDEF_ULONG 67 #endif 68 69 70 71 #if !defined(LINUX_HYBRID) || defined(LINUX_PORT) 72 #define TYPEDEF_UINT 73 #ifndef TARGETENV_android 74 #define TYPEDEF_USHORT 75 #define TYPEDEF_ULONG 76 #endif 77 #ifdef __KERNEL__ 78 #include <linux/version.h> 79 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)) 80 #define TYPEDEF_BOOL 81 #endif 82 83 #if (LINUX_VERSION_CODE == KERNEL_VERSION(2, 6, 18)) 84 #include <linux/compiler.h> 85 #ifdef noinline_for_stack 86 #define TYPEDEF_BOOL 87 #endif 88 #endif 89 #endif 90 #endif 91 92 93 94 95 96 #if defined(__GNUC__) && defined(__STRICT_ANSI__) 97 #define TYPEDEF_INT64 98 #define TYPEDEF_UINT64 99 #endif 100 101 102 #if defined(__ICL) 103 104 #define TYPEDEF_INT64 105 106 #if defined(__STDC__) 107 #define TYPEDEF_UINT64 108 #endif 109 110 #endif 111 112 #if !defined(__DJGPP__) 113 114 115 #if defined(__KERNEL__) 116 117 118 #if !defined(LINUX_HYBRID) || defined(LINUX_PORT) 119 #include <linux/types.h> 120 #endif 121 122 #else 123 124 125 #include <sys/types.h> 126 127 #endif 128 129 #endif 130 131 132 133 134 #define USE_TYPEDEF_DEFAULTS 135 136 #endif 137 138 139 140 141 #ifdef USE_TYPEDEF_DEFAULTS 142 #undef USE_TYPEDEF_DEFAULTS 143 144 #ifndef TYPEDEF_BOOL 145 typedef unsigned char bool; 146 #endif 147 148 149 150 #ifndef TYPEDEF_UCHAR 151 typedef unsigned char uchar; 152 #endif 153 154 #ifndef TYPEDEF_USHORT 155 typedef unsigned short ushort; 156 #endif 157 158 #ifndef TYPEDEF_UINT 159 typedef unsigned int uint; 160 #endif 161 162 #ifndef TYPEDEF_ULONG 163 typedef unsigned long ulong; 164 #endif 165 166 167 168 #ifndef TYPEDEF_UINT8 169 typedef unsigned char uint8; 170 #endif 171 172 #ifndef TYPEDEF_UINT16 173 typedef unsigned short uint16; 174 #endif 175 176 #ifndef TYPEDEF_UINT32 177 typedef unsigned int uint32; 178 #endif 179 180 #ifndef TYPEDEF_UINT64 181 typedef unsigned long long uint64; 182 #endif 183 184 #ifndef TYPEDEF_UINTPTR 185 typedef unsigned int uintptr; 186 #endif 187 188 #ifndef TYPEDEF_INT8 189 typedef signed char int8; 190 #endif 191 192 #ifndef TYPEDEF_INT16 193 typedef signed short int16; 194 #endif 195 196 #ifndef TYPEDEF_INT32 197 typedef signed int int32; 198 #endif 199 200 #ifndef TYPEDEF_INT64 201 typedef signed long long int64; 202 #endif 203 204 205 206 #ifndef TYPEDEF_FLOAT32 207 typedef float float32; 208 #endif 209 210 #ifndef TYPEDEF_FLOAT64 211 typedef double float64; 212 #endif 213 214 215 216 #ifndef TYPEDEF_FLOAT_T 217 218 #if defined(FLOAT32) 219 typedef float32 float_t; 220 #else 221 typedef float64 float_t; 222 #endif 223 224 #endif 225 226 227 228 #ifndef FALSE 229 #define FALSE 0 230 #endif 231 232 #ifndef TRUE 233 #define TRUE 1 234 #endif 235 236 #ifndef NULL 237 #define NULL 0 238 #endif 239 240 #ifndef OFF 241 #define OFF 0 242 #endif 243 244 #ifndef ON 245 #define ON 1 246 #endif 247 248 #define AUTO (-1) 249 250 251 252 #ifndef PTRSZ 253 #define PTRSZ sizeof(char*) 254 #endif 255 256 257 258 #if defined(__GNUC__) 259 #define BWL_COMPILER_GNU 260 #elif defined(__CC_ARM) && __CC_ARM 261 #define BWL_COMPILER_ARMCC 262 #else 263 #error "Unknown compiler!" 264 #endif 265 266 267 #ifndef INLINE 268 #if defined(BWL_COMPILER_MICROSOFT) 269 #define INLINE __inline 270 #elif defined(BWL_COMPILER_GNU) 271 #define INLINE __inline__ 272 #elif defined(BWL_COMPILER_ARMCC) 273 #define INLINE __inline 274 #else 275 #define INLINE 276 #endif 277 #endif 278 279 #undef TYPEDEF_BOOL 280 #undef TYPEDEF_UCHAR 281 #undef TYPEDEF_USHORT 282 #undef TYPEDEF_UINT 283 #undef TYPEDEF_ULONG 284 #undef TYPEDEF_UINT8 285 #undef TYPEDEF_UINT16 286 #undef TYPEDEF_UINT32 287 #undef TYPEDEF_UINT64 288 #undef TYPEDEF_UINTPTR 289 #undef TYPEDEF_INT8 290 #undef TYPEDEF_INT16 291 #undef TYPEDEF_INT32 292 #undef TYPEDEF_INT64 293 #undef TYPEDEF_FLOAT32 294 #undef TYPEDEF_FLOAT64 295 #undef TYPEDEF_FLOAT_T 296 297 #endif 298 299 300 #define UNUSED_PARAMETER(x) (void)(x) 301 302 303 #include <bcmdefs.h> 304 #endif 305