home *** CD-ROM | disk | FTP | other *** search
-
- /* semfddmi.h */
-
- /*****************************************************************************/
- /* NT IBM SDLC Adapter Device Driver: Nt-Specific Grabbage */
- /*****************************************************************************/
-
- /*****************************************************************************/
- /* Power-up-selector values for reading MCA configuration from adapters. */
- /*****************************************************************************/
-
- #define POS_Adapter_Select 0x0096
- #define POS_AdapterID_HiByte 0x0101
- #define POS_AdapterID_LoByte 0x0100
- #define POS_ConfigByte2 0x0102
- #define POS_ConfigByte3 0x0103
-
- /*****************************************************************************/
- /* following #defines pinched from OS2 pmsdk: os2def.h */
- /*****************************************************************************/
-
- /* Cast any variable to an instance of the specified type. */
- #define MAKETYPE(v, type) (*((type *)&v))
-
- /* cast an expression to any type */
- #define CAST(v, type) ((type) (v))
-
- /* Calculate the byte offset of a field in a structure of type type. */
- #define FIELDOFFSET(type, field) ((SHORT)&(((type *)0)->field))
-
- /* Combine l & h to form a 32 bit quantity. */
- #define MAKELONG(l, h) ((LONG)MAKEULONG(l, h))
-
- /* Combine l & h to form a 16 bit quantity. */
- #define MAKEUSHORT(l, h) (((USHORT)(l)) | ((USHORT)(h)) << 8)
- #define MAKESHORT(l, h) ((SHORT)MAKEUSHORT(l, h))
-
- /* Extract high and low order parts of 16 and 32 bit quantity */
- #define LOBYTE(w) LOUCHAR(w)
- #define HIBYTE(w) HIUCHAR(w)
- #define LOUCHAR(w) ((UCHAR)(w))
- #define HIUCHAR(w) ((UCHAR)(((USHORT)(w) >> 8) & 0xff))
- #define LOUSHORT(l) ((USHORT)(l))
- #define HIUSHORT(l) ((USHORT)(((ULONG)(l) >> 16) & 0xffff))
-
- #define FIELDOFFSET(type, field) ((SHORT)&(((type *)0)->field))
-
- /*****************************************************************************/
- /* syntactic niceties */
- /*****************************************************************************/
-
- #define EQ ==
- #define NE !=
-
- #define BITSOFF(Val,Bits) (((Val) & (Bits)) EQ 0) //famous Russian striptease artist (hi steve)
-
- /*****************************************************************************/
- /* what is BOOLean all about? Well, ntdef.h (in public\sdk\inc) defines */
- /* BOOLEAN to be a CCHAR i.e. a char. But the result of a logical expression*/
- /* is an int - so casting needed every time you assign a logical value to a */
- /* BOOLEAN variable. The BOOLean is a device to document that a variable is */
- /* a boolean thing while avoiding conversion problems of 'BOOLEAN' typedef. */
- /* (Ggggarrrhhhhh) (to quote jocky wilson). */
- /*****************************************************************************/
- typedef int BOOLean;
-