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

Linux/Unix编程

开发平台:

Unix_Linux

  1. #define XEMPORTS    0xC02
  2. #define XEPORTS     0xC22
  3. #define MAX_ALLOC   0x100
  4. #define MAXBOARDS   12
  5. #define FEPCODESEG  0x0200L
  6. #define FEPCODE     0x2000L
  7. #define BIOSCODE    0xf800L
  8. #define MISCGLOBAL  0x0C00L
  9. #define NPORT       0x0C22L
  10. #define MBOX        0x0C40L
  11. #define PORTBASE    0x0C90L
  12. /* Begin code defines used for epca_setup */
  13. #define INVALID_BOARD_TYPE   0x1
  14. #define INVALID_NUM_PORTS    0x2
  15. #define INVALID_MEM_BASE     0x4
  16. #define INVALID_PORT_BASE    0x8
  17. #define INVALID_BOARD_STATUS 0x10
  18. #define INVALID_ALTPIN       0x20
  19. /* End code defines used for epca_setup */
  20. #define FEPCLR      0x00
  21. #define FEPMEM      0x02
  22. #define FEPRST      0x04
  23. #define FEPINT      0x08
  24. #define FEPMASK     0x0e
  25. #define FEPWIN      0x80
  26. #define PCXE    0
  27. #define PCXEVE  1
  28. #define PCXEM   2   
  29. #define EISAXEM 3
  30. #define PC64XE  4
  31. #define PCXI    5
  32. #define PCIXEM  7
  33. #define PCICX   8
  34. #define PCIXR   9
  35. #define PCIXRJ  10
  36. #define EPCA_NUM_TYPES 6
  37. static char *board_desc[] = 
  38. {
  39. "PC/Xe",
  40. "PC/Xeve",
  41. "PC/Xem",
  42. "EISA/Xem",
  43. "PC/64Xe",
  44. "PC/Xi",
  45. "unknown",
  46. "PCI/Xem",
  47. "PCI/CX",
  48. "PCI/Xr",
  49. "PCI/Xrj",
  50. };
  51. #define STARTC      021
  52. #define STOPC       023
  53. #define IAIXON      0x2000
  54. #define TXSTOPPED  0x1
  55. #define LOWWAIT    0x2
  56. #define EMPTYWAIT  0x4
  57. #define RXSTOPPED  0x8
  58. #define TXBUSY     0x10
  59. #define DISABLED   0
  60. #define ENABLED    1
  61. #define OFF        0
  62. #define ON         1
  63. #define FEPTIMEOUT 200000  
  64. #define SERIAL_TYPE_NORMAL  1
  65. #define SERIAL_TYPE_CALLOUT 2
  66. #define SERIAL_TYPE_INFO    3
  67. #define EPCA_EVENT_HANGUP   1
  68. #define EPCA_MAGIC          0x5c6df104L
  69. struct channel 
  70. {
  71. long   magic;
  72. unchar boardnum;
  73. unchar channelnum;
  74. unchar omodem;         /* FEP output modem status     */
  75. unchar imodem;         /* FEP input modem status      */
  76. unchar modemfake;      /* Modem values to be forced   */
  77. unchar modem;          /* Force values                */
  78. unchar hflow;
  79. unchar dsr;
  80. unchar dcd;
  81. unchar m_rts ;  /* The bits used in whatever FEP */
  82. unchar m_dcd ; /* is indiginous to this board to */
  83. unchar m_dsr ; /* represent each of the physical */
  84. unchar m_cts ; /* handshake lines */
  85. unchar m_ri ;
  86. unchar m_dtr ;
  87. unchar stopc;
  88. unchar startc;
  89. unchar stopca;
  90. unchar startca;
  91. unchar fepstopc;
  92. unchar fepstartc;
  93. unchar fepstopca;
  94. unchar fepstartca;
  95. unchar txwin;
  96. unchar rxwin;
  97. ushort fepiflag;
  98. ushort fepcflag;
  99. ushort fepoflag;
  100. ushort txbufhead;
  101. ushort txbufsize;
  102. ushort rxbufhead;
  103. ushort rxbufsize;
  104. int    close_delay;
  105. int    count;
  106. int    blocked_open;
  107. int    event;
  108. int    asyncflags;
  109. uint   dev;
  110. long   session;
  111. long   pgrp;
  112. ulong  statusflags;
  113. ulong  c_iflag;
  114. ulong  c_cflag;
  115. ulong  c_lflag;
  116. ulong  c_oflag;
  117. unchar *txptr;
  118. unchar *rxptr;
  119. unchar *tmp_buf;
  120. struct board_info           *board;
  121. volatile struct board_chan  *brdchan;
  122. struct digi_struct          digiext;
  123. struct tty_struct           *tty;
  124. struct termios              normal_termios;
  125. struct termios              callout_termios;
  126. wait_queue_head_t           open_wait;
  127. wait_queue_head_t           close_wait;
  128. struct tq_struct            tqueue;
  129. volatile struct global_data *mailbox;
  130. };
  131. struct board_info
  132. {
  133. unchar status;
  134. unchar type;
  135. unchar altpin;
  136. ushort numports;
  137. unchar *port;
  138. unchar *membase;
  139. unchar *re_map_port;
  140. unchar *re_map_membase;
  141. ulong  memory_seg;
  142. void ( * memwinon ) (struct board_info *, unsigned int) ;
  143. void ( * memwinoff )  (struct board_info *, unsigned int) ;
  144. void ( * globalwinon ) (struct channel *) ;
  145. void ( * txwinon )  (struct channel *) ;
  146. void ( * rxwinon ) (struct channel *) ;
  147. void ( * memoff ) (struct channel *) ;
  148. void ( * assertgwinon ) (struct channel *) ;
  149. void ( * assertmemoff ) (struct channel *) ;
  150. unchar poller_inhibited ;
  151. };