72 lines
2 KiB
C
72 lines
2 KiB
C
/*
|
|
* Device driver header
|
|
*/
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#if __WATCOMC__ >= 1000
|
|
#pragma pack(push,1);
|
|
#else
|
|
#pragma pack(1);
|
|
#endif
|
|
|
|
/*
|
|
* Look at \WATCOM\H\OS2\DEVHDR.INC for a description
|
|
* of the Device Driver Header
|
|
*/
|
|
|
|
typedef struct DEVHEADER DEVHEADER;
|
|
typedef struct DEVHEADER {
|
|
DEVHEADER FAR *next; // next driver in chain
|
|
USHORT DAWFlags; // device attribute word
|
|
NPVOID StrategyEntry; // offset to strategy routine
|
|
NPVOID IDCEntry; // offset to IDC routine
|
|
CHAR Name[8]; // driver name
|
|
CHAR Reserved[8]; // Reserved
|
|
ULONG Capabilities; // Capabilities bit strip
|
|
};
|
|
|
|
/*
|
|
* Marks end of DEVHEADER chain
|
|
*/
|
|
#define FENCE ((DEVHEADER FAR*)0xFFFFFFFFul)
|
|
|
|
/*
|
|
* Constants for device attribute word
|
|
*/
|
|
typedef enum{
|
|
DAW_CHARACTER = 0x8000, // Character device
|
|
DAW_IDC = 0x4000, // IDC aware device
|
|
DAW_NONIBM = 0x2000, // Non-IBM Block device
|
|
DAW_SHARE = 0x1000, // Sharable device
|
|
DAW_OPENCLOSE = 0x0800, // Requires open and close requests
|
|
DAW_LEVEL3 = 0x0180, // Level 3 device
|
|
DAW_LEVEL2 = 0x0100, // Level 2 device
|
|
DAW_LEVEL1 = 0x0080, // Level 1 device
|
|
DAW_CLOCK = 0x0008, // Clock device
|
|
DAW_NUL = 0x0004, // Nul device
|
|
DAW_STDOUT = 0x0002, // Standard output device
|
|
DAW_STDIN = 0x0001, // Standard input device
|
|
} DAW_flags;
|
|
|
|
/*
|
|
* Constants for capabilities bit strip (used by level 3 devices)
|
|
*/
|
|
typedef enum {
|
|
CAP_COMPLETE = 0x00000010, // Supports Init Complete request
|
|
CAP_ADD = 0x00000008, // Participates in ADD strategy
|
|
CAP_PARALLEL = 0x00000004, // Supports parallel ports
|
|
CAP_32BIT = 0x00000002, // Supports addressing above 16MB
|
|
CAP_SHUTDOWN = 0x00000001, // Supports IOCtl2 and shutdown
|
|
CAP_NULL = 0x00000000, //
|
|
} CAP_flags;
|
|
|
|
#if __WATCOMC__ >= 1000
|
|
#pragma pack(pop);
|
|
#else
|
|
#pragma pack();
|
|
#endif
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif
|