| /* |
| * 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__ |
| |
| |