windows-nt/Source/XPSP1/NT/base/mvdm/tools/basedef.h

215 lines
4.9 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
/*** BASEDEF.H
*
* Basic constants and types for the VMM and VxDs
* Copyright (c) 1988,1989 Microsoft Corporation
*
* NOBASEDEFS turns off the base definations
*/
#ifndef NOBASEDEFS
#define NOBASEDEFS
/*
* No warnings generated on non-standard usuage such as double
* slash for comments
*/
#pragma warning (disable:4206)
#pragma warning (disable:4214)
#pragma warning (disable:4201)
#pragma warning (disable:4505)
#pragma warning (disable:4514)
#pragma warning (disable:4001)
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef NULL
#define NULL '\0' // Null pointer
#endif
#define CDECL _cdecl
#define PASCAL _pascal
#define VOID void
#define CONST const
#define VOLATILE volatile
typedef int INT; // i
typedef unsigned int UINT; // u
typedef int BOOL; // f
typedef unsigned char BYTE; // b
typedef unsigned short WORD; // w
typedef unsigned long DWORD; // dw
#ifndef _H2INC
typedef struct qword_s { /* qword */
DWORD qword_lo;
DWORD qword_hi;
} QWORD; // qw
#endif
#ifndef _NTDEF_
typedef char CHAR; // ch
typedef unsigned char UCHAR; // uch
typedef short SHORT; // s
typedef unsigned short USHORT; // us
typedef long LONG; // l
typedef unsigned long ULONG; // ul
typedef UCHAR *PSZ; // psz
typedef VOID *PVOID; // p
typedef PVOID *PPVOID; // pp
/*XLATOFF*/
#if (_MSC_VER >= 900)
#if (!defined(MIDL_PASS) || defined(__midl))
typedef __int64 LONGLONG;
typedef unsigned __int64 ULONGLONG;
#define MAXLONGLONG (0x7fffffffffffffff)
#else
typedef double LONGLONG;
typedef double ULONGLONG;
#endif
typedef LONGLONG *PLONGLONG;
typedef ULONGLONG *PULONGLONG;
// Update Sequence Number
typedef LONGLONG USN;
#if defined(MIDL_PASS)
struct _LARGE_INTEGER {
#else // MIDL_PASS
union _LARGE_INTEGER {
struct _LARGE_INTERGER1 {
ULONG LowPart;
LONG HighPart;
};
struct _LARGE_INTERGER2 {
ULONG LowPart;
LONG HighPart;
} u;
#endif //MIDL_PASS
LONGLONG QuadPart;
};
#if defined(MIDL_PASS)
typedef struct _LARGE_INTEGER LARGE_INTEGER;
#else
typedef union _LARGE_INTEGER LARGE_INTEGER;
#endif
typedef LARGE_INTEGER *PLARGE_INTEGER;
#if defined(MIDL_PASS)
struct _ULARGE_INTEGER {
#else // MIDL_PASS
union _ULARGE_INTEGER {
struct _LARGE_INTERGER3 {
ULONG LowPart;
ULONG HighPart;
};
struct _LARGE_INTERGER4 {
ULONG LowPart;
ULONG HighPart;
} u;
#endif //MIDL_PASS
ULONGLONG QuadPart;
};
#if defined(MIDL_PASS)
typedef struct _ULARGE_INTEGER ULARGE_INTEGER;
#else
typedef union _ULARGE_INTEGER ULARGE_INTEGER;
#endif
typedef ULARGE_INTEGER *PULARGE_INTEGER;
#else // of MSC_VER > 900
#ifndef _H2INC
typedef struct _LARGE_INTEGER {
ULONG LowPart;
LONG HighPart;
} LARGE_INTEGER, *PLARGE_INTEGER;
typedef struct _ULARGE_INTEGER {
ULONG LowPart;
ULONG HighPart;
} ULARGE_INTEGER;
#endif
#endif
/*XLATON*/
#else
typedef PVOID *PPVOID; // pp
#endif
typedef INT *PINT; // pi
typedef UINT *PUINT; // pu
typedef BYTE *PBYTE; // pb
typedef WORD *PWORD; // pw
typedef DWORD *PDWORD; // pdw
typedef CHAR *PCHAR; // pch
typedef SHORT *PSHORT; // ps
typedef LONG *PLONG; // pl
typedef UCHAR *PUCHAR; // puch
typedef USHORT *PUSHORT; // pus
typedef ULONG *PULONG; // pul
typedef BOOL *PBOOL; // pf
typedef UCHAR SZ[]; // sz
typedef UCHAR SZZ[]; // szz
typedef UCHAR *PSZZ; // pszz
typedef USHORT SEL; // sel
typedef SEL *PSEL; // psel
typedef ULONG PPHYS; // pphys
typedef (*PFN)(); // pfn
typedef PFN *PPFN; // ppfn
typedef PVOID HANDLE; // h
typedef HANDLE *PHANDLE; // ph
typedef ULONG HTIMEOUT; // timeout handle
typedef ULONG CMS; // count of milliseconds
#ifndef NOMINMAX
#ifndef max
#define max(a,b) (((a) > (b)) ? (a) : (b))
#endif
#ifndef min
#define min(a,b) (((a) < (b)) ? (a) : (b))
#endif
#endif // NOMINMAX
#define MAKEWORD(a, b) ((WORD)(((BYTE)(a)) | ((WORD)((BYTE)(b))) << 8))
#define MAKELONG(a, b) ((LONG)(((WORD)(a)) | ((DWORD)((WORD)(b))) << 16))
#define LOWORD(l) ((WORD)(l))
#define HIWORD(l) ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))
#define LOBYTE(w) ((BYTE)(w))
#define HIBYTE(w) ((BYTE)(((WORD)(w) >> 8) & 0xFF))
#endif // NOBASEDEFS