/* semfddnt.h */ /* NT IBM SDLC Adapter Device Driver: Nt-Specific Grabbage */ /*****************************************************************************/ /* Doing I/O on NT */ /*****************************************************************************/ #define IO_DELAY(ms) KeStallExecutionProcessor(ms) typedef PUCHAR IO_ADDRESS; /* used to address a port on the I/O */ /* and also use for adapter base adr */ #define IO_IN(AdAdr) CAST(READ_PORT_UCHAR(CAST(AdAdr,IO_ADDRESS)),\ UCHAR) #define IO_OUT(AdAdr,Value) WRITE_PORT_UCHAR(CAST( AdAdr, IO_ADDRESS), \ CAST (Value, UCHAR)) #define WR_N_DELAY(AdAdr,Value) { IO_OUT (AdAdr,Value); \ IO_DELAY (1L); } /*****************************************************************************/ /* Defines to get at Irp. The IO_STACK_LOCATION is defined with unnamed */ /* structs. This requires writing things like */ /* IO_STACK_LOCN->Parameters.DeviceIoControl.IoControlCode */ /* or using the #defines below */ /*****************************************************************************/ #define IRS_CODE Parameters.DeviceIoControl.IoControlCode #define IRS_OUTLEN Parameters.DeviceIoControl.OutputBufferLength #define IRS_INLEN Parameters.DeviceIoControl.InputBufferLength