You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
4.2 KiB
145 lines
4.2 KiB
/*** basedef.h - Basic definitions
|
|
*
|
|
* Copyright (c) 1989,1992,1993 Microsoft Corporation
|
|
* Author: Michael Tsang (MTS)
|
|
* Created 01/06/89
|
|
*
|
|
* This module contains basic constants and types
|
|
*
|
|
* MODIFICATION HISTORY
|
|
*/
|
|
|
|
#pragma warning (disable: 4001)
|
|
|
|
/*** Commonly used constants
|
|
*/
|
|
|
|
#ifndef NULL
|
|
#define NULL 0
|
|
#endif
|
|
|
|
#ifndef FALSE
|
|
#define FALSE 0
|
|
#endif
|
|
|
|
#ifndef TRUE
|
|
#define TRUE 1
|
|
#endif
|
|
|
|
#define CDECL __cdecl
|
|
#define PASCAL __pascal
|
|
|
|
#if defined(IS_32) || defined(_WIN32_WINNT)
|
|
#define FAR
|
|
#define NEAR
|
|
#else
|
|
#define FAR __far
|
|
#define NEAR __near
|
|
#endif
|
|
|
|
/*** Base type declarations
|
|
*/
|
|
|
|
typedef void VOID;
|
|
typedef char CHAR; //ch
|
|
typedef unsigned char UCHAR; //uch
|
|
typedef int INT; //i
|
|
typedef unsigned int UINT; //ui
|
|
typedef short SHORT; //s
|
|
typedef unsigned short USHORT; //us
|
|
typedef long LONG; //l
|
|
typedef unsigned long ULONG; //ul
|
|
typedef __int64 LONGLONG; //ll
|
|
typedef unsigned __int64 ULONGLONG; //ull
|
|
typedef ULONG ULONG_PTR; //uip
|
|
|
|
typedef UCHAR BYTE; //b
|
|
typedef USHORT WORD; //w
|
|
typedef ULONG DWORD; //dw
|
|
typedef ULONGLONG QWORD; //qw
|
|
|
|
typedef UINT BOOL; //f
|
|
typedef UCHAR BBOOL; //bf
|
|
typedef USHORT SBOOL; //sf
|
|
typedef ULONG LBOOL; //lf
|
|
typedef ULONG FLAGS; //fl
|
|
#if defined(_WIN64)
|
|
typedef unsigned __int64 HANDLE; //h
|
|
#else
|
|
typedef ULONG HANDLE; //h
|
|
#endif
|
|
|
|
/*** Pointer types to base types declarations
|
|
*/
|
|
|
|
typedef VOID * PVOID; //pv
|
|
typedef VOID FAR * LPVOID; //lpv
|
|
typedef CHAR * PCHAR; //pch
|
|
typedef CHAR FAR * LPCHAR; //lpch
|
|
typedef UCHAR * PUCHAR; //puch
|
|
typedef UCHAR FAR * LPUCHAR; //lpuch
|
|
typedef INT * PINT; //pi
|
|
typedef INT FAR * LPINT; //lpi
|
|
typedef UINT * PUINT; //pui
|
|
typedef UINT FAR * LPUINT; //lpui
|
|
typedef SHORT * PSHORT; //ps
|
|
typedef SHORT FAR * LPSHORT; //lps
|
|
typedef USHORT * PUSHORT; //pus
|
|
typedef USHORT FAR * LPUSHORT; //lpus
|
|
typedef LONG * PLONG; //pl
|
|
typedef LONG FAR * LPLONG; //lpl
|
|
typedef ULONG * PULONG; //pul
|
|
typedef ULONG FAR * LPULONG; //lpul
|
|
|
|
typedef BYTE * PBYTE; //pb
|
|
typedef BYTE FAR * LPBYTE; //lpb
|
|
typedef WORD * PWORD; //pw
|
|
typedef WORD FAR * LPWORD; //lpw
|
|
typedef DWORD * PDWORD; //pdw
|
|
typedef DWORD FAR * LPDWORD; //lpdw
|
|
|
|
typedef BOOL * PBOOL; //pf
|
|
typedef BOOL FAR * LPBOOL; //lpf
|
|
typedef BBOOL * PBBOOL; //pbf
|
|
typedef BBOOL FAR * LPBBOOL; //lpbf
|
|
typedef SBOOL * PSBOOL; //psf
|
|
typedef SBOOL FAR * LPSBOOL; //lpsf
|
|
typedef LBOOL * PLBOOL; //plf
|
|
typedef LBOOL FAR * LPLBOOL; //lplf
|
|
typedef FLAGS * PFLAGS; //pfl
|
|
typedef FLAGS FAR * LPFLAGS; //lpfl
|
|
|
|
/*** Double indirection pointer types to base types declarations
|
|
*/
|
|
|
|
typedef PVOID * PPVOID; //ppv
|
|
typedef PVOID FAR * LPPVOID; //lppv
|
|
|
|
/*** Other common types (and their pointers)
|
|
*/
|
|
|
|
typedef CHAR * PSZ; //psz
|
|
typedef CHAR FAR * LPSZ; //lpsz
|
|
typedef CHAR FAR * LPSTR; //lpstr
|
|
|
|
/*** Constants
|
|
*/
|
|
|
|
#define MAX_BYTE 0xff
|
|
#define MAX_WORD 0xffff
|
|
#define MAX_DWORD 0xffffffff
|
|
|
|
/*** Macros
|
|
*/
|
|
|
|
#define DEREF(x) ((x) = (x))
|
|
#define EXPORT CDECL
|
|
#define LOCAL CDECL
|
|
#define BYTEOF(d,i) (((BYTE *)&(d))[i])
|
|
#define WORDOF(d,i) (((WORD *)&(d))[i])
|
|
|
|
//
|
|
// EFNfix: This is a slimy hack to include acpitabl.h, why are we not using
|
|
// standard types ?
|
|
//
|
|
typedef BOOL BOOLEAN;
|