hs.h
上传用户:hepax88
上传日期:2007-01-03
资源大小:1101k
文件大小:2k
源码类别:

TCP/IP协议栈

开发平台:

Visual C++

  1. #ifndef _HS_H
  2. #define _HS_H
  3. /* Hardware-dependent routines for the DRSI or Eagle cards for the PC
  4.  * driving a high speed modem. These cards both contain Zilog 8530s.
  5.  */
  6. #ifndef _GLOBAL_H
  7. #include "global.h"
  8. #endif
  9. #ifndef _MBUF_H
  10. #include "mbuf.h"
  11. #endif
  12. #ifndef _IFACE_H
  13. #include "iface.h"
  14. #endif
  15. #define NHS 1 /* One card max */
  16. struct hs {
  17. struct {
  18. INTERRUPT (*vec)(void);
  19. } save;
  20. uint16 addr; /* Base I/O adHsess */
  21. uint16 vec; /* Vector */
  22. long ints; /* Interrupt count */
  23. uint8 chain; /* Interrupt chaining enable */
  24. };
  25. extern struct hs Hs[];
  26. /* Register offset info, specific to the DRSI PCPA and Eagle cards
  27.  * E.g., to read the data port on channel A, use
  28.  *      inportb(hdlc[dev].base + CHANA + DATA)
  29.  */
  30. #define CHANB 0 /* Base of channel B regs */
  31. #define CHANA 2 /* Base of channel A regs */
  32. /* 8530 ports on each channel */
  33. #define CTL 0
  34. #define DATA 1
  35. struct hdlc {
  36. long rxints; /* Receiver interrupts */
  37. long txints; /* Transmitter interrupts */
  38. long exints; /* External/status interrupts */
  39. long spints; /* Special receiver interrupts */
  40. long rxbytes; /* Total receive bytes */
  41. long nomem; /* Buffer allocate failures */
  42. long toobig; /* Giant receiver packets */
  43. long crcerr; /* CRC Errors */
  44. long aborts; /* Receiver aborts */
  45. long good; /* Valid frames */
  46. long txpkts;
  47. long overrun; /* Receiver overruns */
  48. uint16 bufsiz; /* Size of rcvbuf */
  49. int dev; /* Device number */
  50. int clkrev; /* Clock pins swapped */
  51. uint16 ctl; /* Control register */
  52. uint16 data; /* Data register */
  53. uint16 speed; /* Line speed, bps */
  54. long txdelay; /* Keyup delay, ticks */ 
  55. uint8 p; /* P-persistence value */
  56. struct mbuf *txq; /* Transmit queue */
  57. struct iface *iface; /* Associated interface */
  58. int32 deftime; /* Time when we can next transmit */
  59. };
  60. #define OFF 0
  61. #define ON 1
  62. /* Baud rate generator definitions */
  63. struct baudrate {
  64. uint16 speed;
  65. uint8 val;
  66. };
  67. /* In hs.c: */
  68. INTERRUPT (far *(hsint)(int dev))();
  69. /* In hsvec.asm: */
  70. INTERRUPT hs0vec(int dev);
  71. #endif /* _HS_H */