home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / misc / src0131 / ohs.h < prev    next >
C/C++ Source or Header  |  1990-02-15  |  2KB  |  76 lines

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