jnsnserp.h
Upload User: caisha3
Upload Date: 2013-09-21
Package Size: 208739k
Code Size: 4k
Category:

Windows Develop

Development Platform:

Visual C++

  1. /*++ BUILD Version: 0002    // Increment this if a change has global effects
  2. Module Name:
  3.     jnsnserp.h
  4. Abstract:
  5.     This header file defines the Alpha/Jensen serial port registers.
  6. Author:
  7.     David N. Cutler (davec) 28-Apr-1991
  8. Revision History:
  9.     15-April-1992 John DeRosa [DEC]
  10.     Made this file from David's MIPS version.
  11. --*/
  12. #ifndef _JNSNSERP_
  13. #define _JNSNSERP_
  14. //
  15. // Define serial port read registers structure.
  16. //
  17. typedef struct _SP_READ_REGISTERS {
  18.     UCHAR ReceiveBuffer;
  19.     UCHAR InterruptEnable;
  20.     UCHAR InterruptId;
  21.     UCHAR LineControl;
  22.     UCHAR ModemControl;
  23.     UCHAR LineStatus;
  24.     UCHAR ModemStatus;
  25.     UCHAR ScratchPad;
  26. } SP_READ_REGISTERS, *PSP_READ_REGISTERS;
  27. //
  28. // Define define serial port write registers structure.
  29. //
  30. typedef struct _SP_WRITE_REGISTERS {
  31.     UCHAR TransmitBuffer; // also DLL
  32.     UCHAR InterruptEnable; // also DLM
  33.     UCHAR Reserved0;
  34.     UCHAR LineControl;
  35.     UCHAR ModemControl;
  36.     UCHAR Reserved1;
  37.     UCHAR Reserved2;
  38.     UCHAR ScratchPad;
  39. } SP_WRITE_REGISTERS, *PSP_WRITE_REGISTERS;
  40. //
  41. // Define serial port interrupt enable register structure.
  42. //
  43. typedef struct _SP_INTERRUPT_ENABLE {
  44.     UCHAR ReceiveEnable : 1;
  45.     UCHAR TransmitEnable : 1;
  46.     UCHAR LineStatusEnable : 1;
  47.     UCHAR ModemStatusEnable : 1;
  48.     UCHAR Reserved1 : 4;
  49. } SP_INTERRUPT_ENABLE, *PSP_INTERRUPT_ENABLE;
  50. //
  51. // Define serial port interrupt id register structure.
  52. //
  53. typedef struct _SP_INTERRUPT_ID {
  54.     UCHAR InterruptPending : 1;
  55.     UCHAR Identification : 2;
  56.     UCHAR Reserved : 5;
  57. } SP_INTERRUPT_ID, *PSP_INTERRUPT_ID;
  58. //
  59. // Define serial port line control register structure.
  60. //
  61. typedef struct _SP_LINE_CONTROL {
  62.     UCHAR CharacterSize : 2;
  63.     UCHAR StopBits : 1;
  64.     UCHAR ParityEnable : 1;
  65.     UCHAR EvenParity : 1;
  66.     UCHAR StickParity : 1;
  67.     UCHAR SetBreak : 1;
  68.     UCHAR DivisorLatch : 1;
  69. } SP_LINE_CONTROL, *PSP_LINE_CONTROL;
  70. //
  71. // Line status register character size definitions.
  72. //
  73. #define FIVE_BITS 0x0                   // five bits per character
  74. #define SIX_BITS 0x1                    // six bits per character
  75. #define SEVEN_BITS 0x2                  // seven bits per character
  76. #define EIGHT_BITS 0x3                  // eight bits per character
  77. //
  78. // Line speed divisor definition.
  79. //
  80. #define BAUD_RATE_9600 12               // divisor for 9600 baud
  81. #define BAUD_RATE_19200 6              // divisor for 19200 baud
  82. //
  83. // Define serial port modem control register structure.
  84. //
  85. typedef struct _SP_MODEM_CONTROL {
  86.     UCHAR DataTerminalReady : 1;
  87.     UCHAR RequestToSend : 1;
  88.     UCHAR Reserved1 : 1;
  89.     UCHAR Interrupt : 1;
  90.     UCHAR loopBack : 1;
  91.     UCHAR Reserved2 : 3;
  92. } SP_MODEM_CONTROL, *PSP_MODEM_CONTROL;
  93. //
  94. // Define serial port line status register structure.
  95. //
  96. typedef struct _SP_LINE_STATUS {
  97.     UCHAR DataReady : 1;
  98.     UCHAR OverrunError : 1;
  99.     UCHAR ParityError : 1;
  100.     UCHAR FramingError : 1;
  101.     UCHAR BreakIndicator : 1;
  102.     UCHAR TransmitHoldingEmpty : 1;
  103.     UCHAR TransmitEmpty : 1;
  104.     UCHAR Reserved0 : 1;
  105. } SP_LINE_STATUS, *PSP_LINE_STATUS;
  106. //
  107. // Define serial port modem status register structure.
  108. //
  109. typedef struct _SP_MODEM_STATUS {
  110.     UCHAR DeltaClearToSend : 1;
  111.     UCHAR DeltaDataSetReady : 1;
  112.     UCHAR TrailingRingIndicator : 1;
  113.     UCHAR DeltaReceiveDetect : 1;
  114.     UCHAR ClearToSend : 1;
  115.     UCHAR DataSetReady : 1;
  116.     UCHAR RingIndicator : 1;
  117.     UCHAR ReceiveDetect : 1;
  118. } SP_MODEM_STATUS, *PSP_MODEM_STATUS;
  119. #endif // _JNSNSERP_