Annotation of researchv10dc/lsys/sys/deqna.h, revision 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.