Annotation of researchv10dc/lsys/sys/deqna.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * DEQNA Q-bus Ethernet board
                      3:  * QENCHAN channels per controller,
                      4:  * each for a different packet type
                      5:  * one struct qe per controller,
                      6:  * each containing QENCHAN struct qechans
                      7:  */
                      8: 
                      9: #define QENCHAN        8               /* minor devices per controller */
                     10: #define        QENXMT  30              /* size of transmit ring */
                     11: #define        QENRCV  30              /* size of receive ring */
                     12: 
                     13: struct qechan {
                     14:        short unit;             /* device unit number */
                     15:        short type;             /* ethernet protocol for this chan */
                     16:        struct queue *rq;       /* read queue for this chan */
                     17:        struct block *xmt[QENXMT]; /* next packet to send */
                     18:        int nxmt;               /* number of blocks in nxmt */
                     19:        int nbytes;
                     20: };
                     21: 
                     22: struct qe {
                     23:        /* statistics */
                     24:        int     ierrors,oerrors;        /* input/output errors */
                     25:        int     ipackets,opackets;      /* input/output packets */
                     26: 
                     27:        /* hardware stuff */
                     28:        struct  qedevice *addr;         /* device addr */
                     29:        short   intvec;                 /* interrupt vector */
                     30:        short   ubno;                   /* unibus number */
                     31: 
                     32:        /* for xmit/rcv */
                     33:        char    rindex;                 /* next descriptor for receiving */
                     34:        char    orindex;                /* earliest pending receive */
                     35:        char    xindex;                 /* next descriptor for transmitting */
                     36:        char    oxindex;                /* earliest pending transmit */
                     37:        int     rbytes;                 /* bytes in receive buffer */
                     38:        struct  block *rbp[QENRCV];     /* receive blocks */
                     39:        struct  block *xbp[QENXMT];     /* transmit blocks */
                     40:        struct  buf *iobuf;             /* buffer where qeio lives */
                     41:        ubm_t   iobm;                   /* its map token */
                     42:        struct  qe_ring *rring;         /* receive ring */
                     43:        struct  qe_ring *xring;         /* transmit ring */
                     44:        struct  setup *setup;           /* setup packet */
                     45:        uaddr_t raddr, xaddr, setupaddr;        /* and their Q-bus addrs */
                     46: 
                     47:        /* channel info */
                     48:        int     lastch;                 /* next channel to scan */
                     49:        struct qechan chan[QENCHAN];
                     50: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.