/*++ BUILD Version: 0002 // Increment this if a change has global effects Module Name: jnsnserp.h Abstract: This header file defines the Alpha/Jensen serial port registers. Author: David N. Cutler (davec) 28-Apr-1991 Revision History: 15-April-1992 John DeRosa [DEC] Made this file from David's MIPS version. --*/ #ifndef _JNSNSERP_ #define _JNSNSERP_ // // Define serial port read registers structure. // typedef struct _SP_READ_REGISTERS { UCHAR ReceiveBuffer; UCHAR InterruptEnable; UCHAR InterruptId; UCHAR LineControl; UCHAR ModemControl; UCHAR LineStatus; UCHAR ModemStatus; UCHAR ScratchPad; } SP_READ_REGISTERS, *PSP_READ_REGISTERS; // // Define define serial port write registers structure. // typedef struct _SP_WRITE_REGISTERS { UCHAR TransmitBuffer; // also DLL UCHAR InterruptEnable; // also DLM UCHAR Reserved0; UCHAR LineControl; UCHAR ModemControl; UCHAR Reserved1; UCHAR Reserved2; UCHAR ScratchPad; } SP_WRITE_REGISTERS, *PSP_WRITE_REGISTERS; // // Define serial port interrupt enable register structure. // typedef struct _SP_INTERRUPT_ENABLE { UCHAR ReceiveEnable : 1; UCHAR TransmitEnable : 1; UCHAR LineStatusEnable : 1; UCHAR ModemStatusEnable : 1; UCHAR Reserved1 : 4; } SP_INTERRUPT_ENABLE, *PSP_INTERRUPT_ENABLE; // // Define serial port interrupt id register structure. // typedef struct _SP_INTERRUPT_ID { UCHAR InterruptPending : 1; UCHAR Identification : 2; UCHAR Reserved : 5; } SP_INTERRUPT_ID, *PSP_INTERRUPT_ID; // // Define serial port line control register structure. // typedef struct _SP_LINE_CONTROL { UCHAR CharacterSize : 2; UCHAR StopBits : 1; UCHAR ParityEnable : 1; UCHAR EvenParity : 1; UCHAR StickParity : 1; UCHAR SetBreak : 1; UCHAR DivisorLatch : 1; } SP_LINE_CONTROL, *PSP_LINE_CONTROL; // // Line status register character size definitions. // #define FIVE_BITS 0x0 // five bits per character #define SIX_BITS 0x1 // six bits per character #define SEVEN_BITS 0x2 // seven bits per character #define EIGHT_BITS 0x3 // eight bits per character // // Line speed divisor definition. // #define BAUD_RATE_9600 12 // divisor for 9600 baud #define BAUD_RATE_19200 6 // divisor for 19200 baud // // Define serial port modem control register structure. // typedef struct _SP_MODEM_CONTROL { UCHAR DataTerminalReady : 1; UCHAR RequestToSend : 1; UCHAR Reserved1 : 1; UCHAR Interrupt : 1; UCHAR loopBack : 1; UCHAR Reserved2 : 3; } SP_MODEM_CONTROL, *PSP_MODEM_CONTROL; // // Define serial port line status register structure. // typedef struct _SP_LINE_STATUS { UCHAR DataReady : 1; UCHAR OverrunError : 1; UCHAR ParityError : 1; UCHAR FramingError : 1; UCHAR BreakIndicator : 1; UCHAR TransmitHoldingEmpty : 1; UCHAR TransmitEmpty : 1; UCHAR Reserved0 : 1; } SP_LINE_STATUS, *PSP_LINE_STATUS; // // Define serial port modem status register structure. // typedef struct _SP_MODEM_STATUS { UCHAR DeltaClearToSend : 1; UCHAR DeltaDataSetReady : 1; UCHAR TrailingRingIndicator : 1; UCHAR DeltaReceiveDetect : 1; UCHAR ClearToSend : 1; UCHAR DataSetReady : 1; UCHAR RingIndicator : 1; UCHAR ReceiveDetect : 1; } SP_MODEM_STATUS, *PSP_MODEM_STATUS; #endif // _JNSNSERP_