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

Linux/Unix编程

开发平台:

Unix_Linux

  1. #define FEPCODESEG  0x0200L
  2. #define FEPCODE     0x2000L
  3. #define BIOSCODE    0xf800L
  4. #define MISCGLOBAL  0x0C00L
  5. #define NPORT       0x0C22L
  6. #define MBOX        0x0C40L
  7. #define PORTBASE    0x0C90L
  8. #define FEPCLR      0x00
  9. #define FEPMEM      0x02
  10. #define FEPRST      0x04
  11. #define FEPINT      0x08
  12. #define FEPMASK     0x0e
  13. #define FEPWIN      0x80
  14. /* Maximum Number of Boards supported */
  15. #define MAX_DIGI_BOARDS 4
  16. #define PCXX_NUM_TYPES 4
  17. #define PCXI 0
  18. #define PCXE 1
  19. #define PCXEVE 2
  20. #define PCXEM 3
  21. static char *board_desc[] = {
  22. "PC/Xi",
  23. "PC/Xe",
  24. "PC/Xeve",
  25. "PC/Xem",
  26. };
  27. static char *board_mem[] = {
  28. "64k",
  29. "64k",
  30. "8k",
  31. "32k",
  32. };
  33. #define STARTC      021
  34. #define STOPC       023
  35. #define IAIXON      0x2000
  36. struct board_info {
  37. unchar status;
  38. unchar type;
  39. unchar altpin;
  40. ushort numports;
  41. ushort port;
  42. ulong  membase;
  43. ulong  memsize;
  44. ushort first_minor;
  45. void *region;
  46. };
  47. #define TXSTOPPED   0x01
  48. #define LOWWAIT 0x02
  49. #define EMPTYWAIT 0x04
  50. #define RXSTOPPED 0x08
  51. #define TXBUSY 0x10
  52. #define DISABLED   0
  53. #define ENABLED    1
  54. #define OFF        0
  55. #define ON         1
  56. #define FEPTIMEOUT 200000  
  57. #define SERIAL_TYPE_NORMAL 1
  58. #define SERIAL_TYPE_CALLOUT 2
  59. #define PCXE_EVENT_HANGUP   1
  60. #define PCXX_MAGIC 0x5c6df104L
  61. struct channel {
  62. /* --------- Board/channel information ---------- */
  63. long magic;
  64. unchar boardnum;
  65. unchar channelnum;
  66. uint dev;
  67. long session;
  68. long pgrp;
  69. struct tty_struct *tty;
  70. struct board_info *board;
  71. volatile struct board_chan *brdchan;
  72. volatile struct global_data *mailbox;
  73. int asyncflags;
  74. int count;
  75. int blocked_open;
  76. int close_delay;
  77. int event;
  78. wait_queue_head_t open_wait;
  79. wait_queue_head_t close_wait;
  80. struct tq_struct tqueue;
  81. /* ------------ Async control data ------------- */
  82. unchar modemfake;      /* Modem values to be forced */
  83. unchar modem;          /* Force values */
  84. ulong statusflags;
  85. unchar omodem;         /* FEP output modem status */
  86. unchar imodem;         /* FEP input modem status */
  87. unchar hflow;
  88. unchar dsr;
  89. unchar dcd;
  90. unchar stopc;
  91. unchar startc;
  92. unchar stopca;
  93. unchar startca;
  94. unchar fepstopc;
  95. unchar fepstartc;
  96. unchar fepstopca;
  97. unchar fepstartca;
  98. ushort fepiflag;
  99. ushort fepcflag;
  100. ushort fepoflag;
  101. /* ---------- Transmit/receive system ---------- */
  102. unchar txwin;
  103. unchar rxwin;
  104. ushort txbufsize;
  105. ushort rxbufsize;
  106. unchar *txptr;
  107. unchar *rxptr;
  108. unchar *tmp_buf; /* Temp buffer */
  109. struct semaphore tmp_buf_sem;
  110. /* ---- Termios data ---- */
  111. ulong c_iflag;
  112. ulong c_cflag;
  113. ulong c_lflag;
  114. ulong c_oflag;
  115. struct termios normal_termios;
  116. struct termios callout_termios;
  117. struct digi_struct digiext;
  118. ulong dummy[8];
  119. };