summaryrefslogtreecommitdiff
path: root/drivers/staging/vt6655/ttype.h
blob: 1f26702cabf65ea13ced8352c9ec4d1c6f6e9e9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
/*
 * File: ttype.h
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Purpose: define basic common types and macros
 *
 * Author: Tevin Chen
 *
 * Date: May 21, 1996
 *
 */


#ifndef __TTYPE_H__
#define __TTYPE_H__


/******* Common definitions and typedefs ***********************************/

#ifndef VOID
#define VOID            void
#endif

#ifndef CONST
#define CONST           const
#endif

#ifndef STATIC
#define STATIC          static
#endif

#ifndef IN
#define IN
#endif

#ifndef OUT
#define OUT
#endif

#ifndef TxInSleep
#define TxInSleep
#endif
#if! defined(__CPU8051)
typedef int             BOOL;
#else   // __CPU8051
#define BOOL            int
#endif  // __CPU8051

#if !defined(TRUE)
#define TRUE            1
#endif
#if !defined(FALSE)
#define FALSE           0
#endif


#if !defined(SUCCESS)
#define SUCCESS         0
#endif
#if !defined(FAILED)
#define FAILED          -1
#endif

//2007-0809-01<Add>by MikeLiu
#ifndef  update_BssList
#define update_BssList
#endif



#ifndef WPA_SM_Transtatus
#define WPA_SM_Transtatus
#endif

#ifndef Calcu_LinkQual
#define Calcu_LinkQual
#endif

#ifndef Calcu_LinkQual
#define Calcu_LinkQual
#endif

/****** Simple typedefs  ***************************************************/

#if! defined(__CPU8051)

/* These lines assume that your compiler's longs are 32 bits and
 * shorts are 16 bits. It is already assumed that chars are 8 bits,
 * but it doesn't matter if they're signed or unsigned.
 */

typedef signed char             I8;     /* 8-bit signed integer */
typedef signed short            I16;    /* 16-bit signed integer */
typedef signed long             I32;    /* 32-bit signed integer */

typedef unsigned char           U8;     /* 8-bit unsigned integer */
typedef unsigned short          U16;    /* 16-bit unsigned integer */
typedef unsigned long           U32;    /* 32-bit unsigned integer */


#if defined(__WIN32)
typedef signed __int64          I64;    /* 64-bit signed integer */
typedef unsigned __int64        U64;    /* 64-bit unsigned integer */
#endif // __WIN32


typedef char            CHAR;
typedef signed short    SHORT;
typedef signed int      INT;
typedef signed long     LONG;

typedef unsigned char   UCHAR;
typedef unsigned short  USHORT;
typedef unsigned int    UINT;
typedef unsigned long   ULONG;
typedef unsigned long long	ULONGLONG; //64 bit
typedef unsigned long long	ULONGULONG;



typedef unsigned char   BYTE;           //  8-bit
typedef unsigned short  WORD;           // 16-bit
typedef unsigned long   DWORD;          // 32-bit

// QWORD is for those situation that we want
// an 8-byte-aligned 8 byte long structure
// which is NOT really a floating point number.
typedef union tagUQuadWord {
    struct {
        DWORD   dwLowDword;
        DWORD   dwHighDword;
    } u;
    double      DoNotUseThisField;
} UQuadWord;
typedef UQuadWord       QWORD;          // 64-bit



#ifndef _TCHAR_DEFINED
typedef char            TCHAR;
typedef char*           PTCHAR;
typedef unsigned char   TBYTE;
typedef unsigned char*  PTBYTE;
#define _TCHAR_DEFINED
#endif

#else   // __CPU8051

#define U8              unsigned char
#define U16             unsigned short
#define U32             unsigned long

#define USHORT          unsigned short
#define UINT            unsigned int

#define BYTE            unsigned char
#define WORD            unsigned short
#define DWORD           unsigned long


#endif  // __CPU8051


// maybe this should be defined in <limits.h>
#define U8_MAX          0xFFU
#define U16_MAX         0xFFFFU
#define U32_MAX         0xFFFFFFFFUL

#define BYTE_MAX        0xFFU
#define WORD_MAX        0xFFFFU
#define DWORD_MAX       0xFFFFFFFFUL




/******* 32-bit vs. 16-bit definitions and typedefs ************************/

#if !defined(NULL)
#ifdef __cplusplus
#define NULL            0
#else
#define NULL            ((void *)0)
#endif // __cplusplus
#endif // !NULL




#if defined(__WIN32) || defined(__CPU8051)

#if !defined(FAR)
#define FAR
#endif
#if !defined(NEAR)
#define NEAR
#endif
#if !defined(DEF)
#define DEF
#endif
#if !defined(CALLBACK)
#define CALLBACK
#endif

#else  // !__WIN32__

#if !defined(FAR)
#define FAR
#endif
#if !defined(NEAR)
#define NEAR
#endif
#if !defined(DEF)
// default pointer type is FAR, if you want near pointer just redefine it to NEAR
#define DEF
#endif
#if !defined(CALLBACK)
#define CALLBACK
#endif

#endif // !__WIN32__




/****** Common pointer types ***********************************************/

#if! defined(__CPU8051)

typedef signed char DEF*        PI8;
typedef signed short DEF*       PI16;
typedef signed long DEF*        PI32;

typedef unsigned char DEF*      PU8;
typedef unsigned short DEF*     PU16;
typedef unsigned long DEF*      PU32;

#if defined(__WIN32)
typedef signed __int64 DEF*     PI64;
typedef unsigned __int64 DEF*   PU64;
#endif // __WIN32

#if !defined(_WIN64)
typedef unsigned long   ULONG_PTR;      // 32-bit
typedef unsigned long   DWORD_PTR;      // 32-bit
#endif // _WIN64


// boolean pointer
typedef int DEF*            PBOOL;
typedef int NEAR*           NPBOOL;
typedef int FAR*            LPBOOL;

typedef int DEF*            PINT;
typedef int NEAR*           NPINT;
typedef int FAR*            LPINT;
typedef const int DEF*      PCINT;
typedef const int NEAR*     NPCINT;
typedef const int FAR*      LPCINT;

typedef unsigned int DEF*           PUINT;
typedef const unsigned int DEF*     PCUINT;

typedef long DEF*           PLONG;
typedef long NEAR*          NPLONG;
typedef long FAR*           LPLONG;
//typedef const long DEF*     PCLONG;
typedef const long NEAR*    NPCLONG;
typedef const long FAR*     LPCLONG;

typedef BYTE DEF*           PBYTE;
typedef BYTE NEAR*          NPBYTE;
typedef BYTE FAR*           LPBYTE;
typedef const BYTE DEF*     PCBYTE;
typedef const BYTE NEAR*    NPCBYTE;
typedef const BYTE FAR*     LPCBYTE;

typedef WORD DEF*           PWORD;
typedef WORD NEAR*          NPWORD;
typedef WORD FAR*           LPWORD;
typedef const WORD DEF*     PCWORD;
typedef const WORD NEAR*    NPCWORD;
typedef const WORD FAR*     LPCWORD;

typedef DWORD DEF*          PDWORD;
typedef DWORD NEAR*         NPDWORD;
typedef DWORD FAR*          LPDWORD;
typedef const DWORD DEF*    PCDWORD;
typedef const DWORD NEAR*   NPCDWORD;
typedef const DWORD FAR*    LPCDWORD;

typedef QWORD DEF*          PQWORD;
typedef QWORD NEAR*         NPQWORD;
typedef QWORD FAR*          LPQWORD;
typedef const QWORD DEF*    PCQWORD;
typedef const QWORD NEAR*   NPCQWORD;
typedef const QWORD FAR*    LPCQWORD;

typedef void DEF*           PVOID;
typedef void NEAR*          NPVOID;
typedef void FAR*           LPVOID;

// handle declaration
#ifdef STRICT
typedef void *HANDLE;
#else
typedef PVOID HANDLE;
#endif

//
// ANSI (Single-byte Character) types
//
typedef char DEF*           PCH;
typedef char NEAR*          NPCH;
typedef char FAR*           LPCH;
typedef const char DEF*     PCCH;
typedef const char NEAR*    NPCCH;
typedef const char FAR*     LPCCH;

typedef char DEF*           PSTR;
typedef char NEAR*          NPSTR;
typedef char FAR*           LPSTR;
typedef const char DEF*     PCSTR;
typedef const char NEAR*    NPCSTR;
typedef const char FAR*     LPCSTR;

#endif  // !__CPU8051




/****** Misc definitions, types ********************************************/

// parameter prefix
#ifndef IN
#define IN
#endif

#ifndef OUT
#define OUT
#endif


// unreferenced parameter macro to avoid warning message in MS C
#if defined(__TURBOC__)

//you should use "#pragma argsused" to avoid warning message in Borland C
#ifndef UNREFERENCED_PARAMETER
#define UNREFERENCED_PARAMETER(x)
#endif

#else

#ifndef UNREFERENCED_PARAMETER
//#define UNREFERENCED_PARAMETER(x) x
#define UNREFERENCED_PARAMETER(x)
#endif

#endif


// in-line assembly prefix
#if defined(__TURBOC__)
#define ASM             asm
#else  // !__TURBOC__
#define ASM             _asm
#endif // !__TURBOC__




#endif // __TTYPE_H__