00001 /*++ BUILD Version: 0002 // Increment this if a change has global effects 00002 00003 Copyright (c) 1991 Microsoft Corporation 00004 00005 Module Name: 00006 00007 jazzserp.h 00008 00009 Abstract: 00010 00011 This header file defines the Jazz serial port registers. 00012 00013 Author: 00014 00015 David N. Cutler (davec) 28-Apr-1991 00016 00017 00018 Revision History: 00019 00020 --*/ 00021 00022 #ifndef _JAZZSERP_ 00023 #define _JAZZSERP_ 00024 00025 // 00026 // Define serial port read registers structure. 00027 // 00028 00029 typedef struct _SP_READ_REGISTERS { 00030 UCHAR ReceiveBuffer; 00031 UCHAR InterruptEnable; 00032 UCHAR InterruptId; 00033 UCHAR LineControl; 00034 UCHAR ModemControl; 00035 UCHAR LineStatus; 00036 UCHAR ModemStatus; 00037 UCHAR ScratchPad; 00038 } SP_READ_REGISTERS, *PSP_READ_REGISTERS; 00039 00040 // 00041 // Define define serial port write registers structure. 00042 // 00043 00044 typedef struct _SP_WRITE_REGISTERS { 00045 UCHAR TransmitBuffer; 00046 UCHAR InterruptEnable; 00047 UCHAR FifoControl; 00048 UCHAR LineControl; 00049 UCHAR ModemControl; 00050 UCHAR Reserved1; 00051 UCHAR ModemStatus; 00052 UCHAR ScratchPad; 00053 } SP_WRITE_REGISTERS, *PSP_WRITE_REGISTERS; 00054 00055 // 00056 // Define serial port interrupt enable register structure. 00057 // 00058 00059 typedef struct _SP_INTERRUPT_ENABLE { 00060 UCHAR ReceiveEnable : 1; 00061 UCHAR TransmitEnable : 1; 00062 UCHAR LineStatusEnable : 1; 00063 UCHAR ModemStatusEnable : 1; 00064 UCHAR Reserved1 : 4; 00065 } SP_INTERRUPT_ENABLE, *PSP_INTERRUPT_ENABLE; 00066 00067 // 00068 // Define serial port interrupt id register structure. 00069 // 00070 00071 typedef struct _SP_INTERRUPT_ID { 00072 UCHAR InterruptPending : 1; 00073 UCHAR Identification : 3; 00074 UCHAR Reserved1 : 2; 00075 UCHAR FifoEnabled : 2; 00076 } SP_INTERRUPT_ID, *PSP_INTERRUPT_ID; 00077 00078 // 00079 // Define serial port fifo control register structure. 00080 // 00081 00082 typedef struct _SP_FIFO_CONTROL { 00083 UCHAR FifoEnable : 1; 00084 UCHAR ReceiveFifoReset : 1; 00085 UCHAR TransmitFifoReset : 1; 00086 UCHAR DmaModeSelect : 1; 00087 UCHAR Reserved1 : 2; 00088 UCHAR ReceiveFifoLevel : 2; 00089 } SP_FIFO_CONTROL, *PSP_FIFO_CONTROL; 00090 00091 // 00092 // Define serial port line control register structure. 00093 // 00094 00095 typedef struct _SP_LINE_CONTROL { 00096 UCHAR CharacterSize : 2; 00097 UCHAR StopBits : 1; 00098 UCHAR ParityEnable : 1; 00099 UCHAR EvenParity : 1; 00100 UCHAR StickParity : 1; 00101 UCHAR SetBreak : 1; 00102 UCHAR DivisorLatch : 1; 00103 } SP_LINE_CONTROL, *PSP_LINE_CONTROL; 00104 00105 // 00106 // Line status register character size definitions. 00107 // 00108 00109 #define FIVE_BITS 0x0 // five bits per character 00110 #define SIX_BITS 0x1 // six bits per character 00111 #define SEVEN_BITS 0x2 // seven bits per character 00112 #define EIGHT_BITS 0x3 // eight bits per character 00113 00114 // 00115 // Line speed divisor definition. 00116 // 00117 00118 #define BAUD_RATE_9600 28 // divisor for 9600 baud 00119 #define BAUD_RATE_19200 14 // divisor for 19200 baud 00120 00121 // 00122 // Define serial port modem control register structure. 00123 // 00124 00125 typedef struct _SP_MODEM_CONTROL { 00126 UCHAR DataTerminalReady : 1; 00127 UCHAR RequestToSend : 1; 00128 UCHAR Reserved1 : 1; 00129 UCHAR Interrupt : 1; 00130 UCHAR loopBack : 1; 00131 UCHAR Reserved2 : 3; 00132 } SP_MODEM_CONTROL, *PSP_MODEM_CONTROL; 00133 00134 // 00135 // Define serial port line status register structure. 00136 // 00137 00138 typedef struct _SP_LINE_STATUS { 00139 UCHAR DataReady : 1; 00140 UCHAR OverrunError : 1; 00141 UCHAR ParityError : 1; 00142 UCHAR FramingError : 1; 00143 UCHAR BreakIndicator : 1; 00144 UCHAR TransmitHoldingEmpty : 1; 00145 UCHAR TransmitEmpty : 1; 00146 UCHAR ReceiveFifoError : 1; 00147 } SP_LINE_STATUS, *PSP_LINE_STATUS; 00148 00149 // 00150 // Define serial port modem status register structure. 00151 // 00152 00153 typedef struct _SP_MODEM_STATUS { 00154 UCHAR DeltaClearToSend : 1; 00155 UCHAR DeltaDataSetReady : 1; 00156 UCHAR TrailingRingIndicator : 1; 00157 UCHAR DeltaReceiveDetect : 1; 00158 UCHAR ClearToSend : 1; 00159 UCHAR DataSetReady : 1; 00160 UCHAR RingIndicator : 1; 00161 UCHAR ReceiveDetect : 1; 00162 } SP_MODEM_STATUS, *PSP_MODEM_STATUS; 00163 00164 #endif // _JAZZSERP_ 00165