serial167.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:5k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * serial167.h
  3.  *
  4.  * Richard Hirst [richard@sleepie.demon.co.uk]
  5.  *
  6.  * Based on cyclades.h
  7.  */
  8. struct cyclades_monitor {
  9.         unsigned long           int_count;
  10.         unsigned long           char_count;
  11.         unsigned long           char_max;
  12.         unsigned long           char_last;
  13. };
  14. /*
  15.  * This is our internal structure for each serial port's state.
  16.  * 
  17.  * Many fields are paralleled by the structure used by the serial_struct
  18.  * structure.
  19.  *
  20.  * For definitions of the flags field, see tty.h
  21.  */
  22. struct cyclades_port {
  23. int                     magic;
  24. int                     type;
  25. int card;
  26. int line;
  27. int flags;  /* defined in tty.h */
  28. struct tty_struct  *tty;
  29. int read_status_mask;
  30. int timeout;
  31. int xmit_fifo_size;
  32. int                     cor1,cor2,cor3,cor4,cor5,cor6,cor7;
  33. int                     tbpr,tco,rbpr,rco;
  34. int ignore_status_mask;
  35. int close_delay;
  36. int IER;  /* Interrupt Enable Register */
  37. int event;
  38. unsigned long last_active;
  39. int count; /* # of fd on device */
  40. int                     x_char; /* to be pushed out ASAP */
  41. int                     x_break;
  42. int blocked_open; /* # of blocked opens */
  43. long session; /* Session of opening process */
  44. long pgrp; /* pgrp of opening process */
  45. unsigned char  *xmit_buf;
  46. int xmit_head;
  47. int xmit_tail;
  48. int xmit_cnt;
  49.         int                     default_threshold;
  50.         int                     default_timeout;
  51. struct tq_struct tqueue;
  52. struct termios normal_termios;
  53. struct termios callout_termios;
  54. wait_queue_head_t open_wait;
  55. wait_queue_head_t close_wait;
  56.         struct cyclades_monitor mon;
  57. };
  58. #define CYCLADES_MAGIC  0x4359
  59. #define CYGETMON                0x435901
  60. #define CYGETTHRESH             0x435902
  61. #define CYSETTHRESH             0x435903
  62. #define CYGETDEFTHRESH          0x435904
  63. #define CYSETDEFTHRESH          0x435905
  64. #define CYGETTIMEOUT            0x435906
  65. #define CYSETTIMEOUT            0x435907
  66. #define CYGETDEFTIMEOUT         0x435908
  67. #define CYSETDEFTIMEOUT         0x435909
  68. /*
  69.  * Events are used to schedule things to happen at timer-interrupt
  70.  * time, instead of at cy interrupt time.
  71.  */
  72. #define Cy_EVENT_READ_PROCESS 0
  73. #define Cy_EVENT_WRITE_WAKEUP 1
  74. #define Cy_EVENT_HANGUP 2
  75. #define Cy_EVENT_BREAK 3
  76. #define Cy_EVENT_OPEN_WAKEUP 4
  77. #define CyMaxChipsPerCard 1
  78. /**** cd2401 registers ****/
  79. #define CyGFRCR         (0x81)
  80. #define CyCCR (0x13)
  81. #define      CyCLR_CHAN (0x40)
  82. #define      CyINIT_CHAN (0x20)
  83. #define      CyCHIP_RESET (0x10)
  84. #define      CyENB_XMTR (0x08)
  85. #define      CyDIS_XMTR (0x04)
  86. #define      CyENB_RCVR (0x02)
  87. #define      CyDIS_RCVR (0x01)
  88. #define CyCAR (0xee)
  89. #define CyIER (0x11)
  90. #define      CyMdmCh (0x80)
  91. #define      CyRxExc (0x20)
  92. #define      CyRxData (0x08)
  93. #define      CyTxMpty (0x02)
  94. #define      CyTxRdy (0x01)
  95. #define CyLICR (0x26)
  96. #define CyRISR (0x89)
  97. #define      CyTIMEOUT (0x80)
  98. #define      CySPECHAR (0x70)
  99. #define      CyOVERRUN (0x08)
  100. #define      CyPARITY (0x04)
  101. #define      CyFRAME (0x02)
  102. #define      CyBREAK (0x01)
  103. #define CyREOIR (0x84)
  104. #define CyTEOIR (0x85)
  105. #define CyMEOIR (0x86)
  106. #define      CyNOTRANS (0x08)
  107. #define CyRFOC (0x30)
  108. #define CyRDR (0xf8)
  109. #define CyTDR (0xf8)
  110. #define CyMISR (0x8b)
  111. #define CyRISR (0x89)
  112. #define CyTISR (0x8a)
  113. #define CyMSVR1 (0xde)
  114. #define CyMSVR2 (0xdf)
  115. #define      CyDSR (0x80)
  116. #define      CyDCD (0x40)
  117. #define      CyCTS (0x20)
  118. #define      CyDTR (0x02)
  119. #define      CyRTS (0x01)
  120. #define CyRTPRL (0x25)
  121. #define CyRTPRH (0x24)
  122. #define CyCOR1 (0x10)
  123. #define      CyPARITY_NONE (0x00)
  124. #define      CyPARITY_E (0x40)
  125. #define      CyPARITY_O (0xC0)
  126. #define      Cy_5_BITS (0x04)
  127. #define      Cy_6_BITS (0x05)
  128. #define      Cy_7_BITS (0x06)
  129. #define      Cy_8_BITS (0x07)
  130. #define CyCOR2 (0x17)
  131. #define      CyETC (0x20)
  132. #define      CyCtsAE (0x02)
  133. #define CyCOR3 (0x16)
  134. #define      Cy_1_STOP (0x02)
  135. #define      Cy_2_STOP (0x04)
  136. #define CyCOR4 (0x15)
  137. #define      CyREC_FIFO (0x0F)  /* Receive FIFO threshold */
  138. #define CyCOR5 (0x14)
  139. #define CyCOR6 (0x18)
  140. #define CyCOR7 (0x07)
  141. #define CyRBPR (0xcb)
  142. #define CyRCOR (0xc8)
  143. #define CyTBPR (0xc3)
  144. #define CyTCOR (0xc0)
  145. #define CySCHR1 (0x1f)
  146. #define CySCHR2  (0x1e)
  147. #define CyTPR (0xda)
  148. #define CyPILR1 (0xe3)
  149. #define CyPILR2 (0xe0)
  150. #define CyPILR3 (0xe1)
  151. #define CyCMR (0x1b)
  152. #define      CyASYNC (0x02)
  153. #define CyLICR          (0x26)
  154. #define CyLIVR          (0x09)
  155. #define CySCRL (0x23)
  156. #define CySCRH (0x22)
  157. #define CyTFTC (0x80)
  158. /* max number of chars in the FIFO */
  159. #define CyMAX_CHAR_FIFO 12
  160. /***************************************************************************/