92 lines
2.2 KiB
C
92 lines
2.2 KiB
C
|
/*++ BUILD Version: 0001
|
|||
|
*
|
|||
|
* MVDM v1.0
|
|||
|
*
|
|||
|
* Copyright (c) 1991, Microsoft Corporation
|
|||
|
*
|
|||
|
* MVDM.H
|
|||
|
* Constants, macros, and types common to all of MVDM
|
|||
|
*
|
|||
|
* History:
|
|||
|
* Created 14-May-1991 by Jeff Parsons (jeffpar)
|
|||
|
--*/
|
|||
|
|
|||
|
|
|||
|
/* Common constants, not defined in NT/WIN32
|
|||
|
*/
|
|||
|
#define K 1024L
|
|||
|
|
|||
|
|
|||
|
/* Common types, not defined in NT/WIN32
|
|||
|
*/
|
|||
|
#ifdef H2INC
|
|||
|
typedef unsigned char BYTE;
|
|||
|
typedef unsigned short WORD;
|
|||
|
typedef unsigned long DWORD;
|
|||
|
typedef long LONG;
|
|||
|
typedef char CHAR;
|
|||
|
typedef short SHORT;
|
|||
|
typedef unsigned short USHORT;
|
|||
|
typedef unsigned long ULONG;
|
|||
|
typedef char *PSZ;
|
|||
|
typedef void *PVOID;
|
|||
|
typedef ULONG *PULONG;
|
|||
|
typedef WORD ATOM;
|
|||
|
#endif
|
|||
|
|
|||
|
// typedef int INT;
|
|||
|
// typedef DWORD UINT;
|
|||
|
typedef short FAR *LPSHORT;
|
|||
|
typedef char SZ[];
|
|||
|
typedef char FAR *LPSZ;
|
|||
|
typedef PBYTE *PPBYTE;
|
|||
|
typedef PWORD *PPWORD;
|
|||
|
typedef PDWORD *PPDWORD;
|
|||
|
// typedef UINT *PUINT;
|
|||
|
|
|||
|
|
|||
|
// unaligned typedefs
|
|||
|
|
|||
|
typedef WORD UNALIGNED *PWORD16;
|
|||
|
typedef SHORT UNALIGNED *PSHORT16;
|
|||
|
typedef DWORD UNALIGNED *PDWORD16;
|
|||
|
|
|||
|
#define WORDOF16(i,n) (((PWORD16)&(i))[n])
|
|||
|
#define LOW16(l) WORDOF16(l,0)
|
|||
|
#define HIW16(l) WORDOF16(l,1)
|
|||
|
|
|||
|
/* Common macros, not defined in NT/WIN32
|
|||
|
*/
|
|||
|
#define BYTEOF(i,n) (((PBYTE)&(i))[n])
|
|||
|
#define LOB(i) BYTEOF(i,0)
|
|||
|
#define HIB(i) BYTEOF(i,1)
|
|||
|
#define WORDOF(i,n) (((PWORD)&(i))[n])
|
|||
|
#define LOW(l) WORDOF(l,0)
|
|||
|
#define HIW(l) WORDOF(l,1)
|
|||
|
#define INTOF(i,n) (((PINT)&(i))[n])
|
|||
|
#define UINTOF(i,n) (((PUINT)&(i))[n])
|
|||
|
#ifndef MAKEWORD
|
|||
|
#define MAKEWORD(l,h) ((WORD)((BYTE)(l)|((BYTE)(h)<<8)))
|
|||
|
#endif
|
|||
|
#define MAKEDWORD(l0,h0,l1,h1) ((DWORD)MAKEWORD(l0,h0)|((DWORD)MAKEWORD(l1,h1)<<16))
|
|||
|
#define GETBYTE(p) *((PBYTE)p)++
|
|||
|
#ifdef i386
|
|||
|
#define FETCHWORD(s) ((WORD)(s))
|
|||
|
#define FETCHDWORD(s) ((DWORD)(s))
|
|||
|
#define STOREWORD(d,s) (WORD)d=(WORD)s
|
|||
|
#define STOREDWORD(d,s) (DWORD)d=(DWORD)s
|
|||
|
#else
|
|||
|
#define FETCHWORD(s) (*(UNALIGNED WORD *)&(s))
|
|||
|
#define FETCHDWORD(s) (*(UNALIGNED DWORD *)&(s))
|
|||
|
#define STOREWORD(d,s) *(UNALIGNED WORD *)&(d)=(WORD)s
|
|||
|
#define STOREDWORD(d,s) *(UNALIGNED DWORD *)&(d)=(DWORD)s
|
|||
|
#endif
|
|||
|
#define FETCHSHORT(s) ((SHORT)(FETCHWORD(s)))
|
|||
|
#define FETCHLONG(s) ((LONG)(FETCHDWORD(s)))
|
|||
|
#define STORESHORT(d,s) STOREWORD(d,s)
|
|||
|
#define STORELONG(d,s) STOREDWORD(d,s)
|
|||
|
|
|||
|
#define NUMEL(a) ((sizeof a)/(sizeof a[0]))
|
|||
|
#define OFFSETOF(t,f) ((INT)&(((t *)0)->f))
|
|||
|
|