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

1.1       root        1: /*
                      2:  * per-channel structure
                      3:  */
                      4: 
                      5: struct kdi {
                      6:        struct  queue *dkrq;
                      7:        struct  block *ibp;
                      8:        struct  block *obp;
                      9:        ubm_t   imap;
                     10:        ubm_t   omap;
                     11:        unsigned short  rsize;          /* # bytes in last read */
                     12:        unsigned char   chan;
                     13:        unsigned char   ostate;
                     14:        unsigned char   kno;
                     15:        unsigned char lastctl;
                     16: };
                     17: 
                     18: /*
                     19:  * per-kmc structure
                     20:  */
                     21: 
                     22: struct kdikmc {
                     23:        struct  kdi *kdi;       /* per-channel structures */
                     24:        char    *state;         /* per-channel state */
                     25:        struct buf *buf;        /* where the data above is stashed */
                     26:        ubm_t   umap;   /* map token for kmc stuff below */
                     27:        uaddr_t ubad;   /* unibus addr of device data */
                     28:        struct  dkmodule *modp;
                     29:        time_t  badtime;
                     30:        char    init;
                     31:        char    bad;
                     32:        char    ubno;
                     33: };
                     34: 
                     35: /*
                     36:  * format of UB addresses sent to KMC
                     37:  */
                     38: struct kmaddr {
                     39:        unsigned short  hi;
                     40:        unsigned short  lo;
                     41: };
                     42: 
                     43: /*
                     44:  * KMC init packet
                     45:  */
                     46: struct kinit {
                     47:        struct  kmaddr  cmdaddr;        /* UB addr of cmd buf */
                     48:        struct  kmaddr  stataddr;       /* UB addr of statbuf */
                     49:        struct  kmaddr  bufaddr;        /* UB addr of KMC workspace */
                     50:        struct  kmaddr  csraddr;        /* for DR11C - unused */
                     51: };
                     52: 
                     53: /*
                     54:  * command/status packets
                     55:  */
                     56: struct kin {                           /* KMC command buffer */
                     57:        unsigned char   type;           /* command type */
                     58:        unsigned char   serno;          /* probably seq number */
                     59:        unsigned char   chan;           /* channel number */
                     60:        unsigned char   fill2;          /* probably seq number */
                     61:        unsigned short  len;            /* byte count */
                     62:        char    ctl;                    /* possible control byte */
                     63:        char    mode;                   /* command variant */
                     64:        struct  kmaddr addr;            /* UB location of buffer */
                     65: };
                     66: 
                     67: /*
                     68:  * Big structure with stuff that needs to be accessible on the unibus
                     69:  * one per kmc
                     70:  */
                     71: 
                     72: #define        NKMB    10              /* number of cmd/status packets */
                     73: 
                     74: struct kmcdk {
                     75:        struct  kinit   kinit;                  /* the init packet */
                     76:        struct  kin     cmd[NKMB];              /* KMC command buffer */
                     77:        struct  kin     stat[NKMB];             /* KMC status buffer */
                     78:        char    kmcbuf[16*1024];                /* temp space for KMC */
                     79: };

unix.superglobalmegacorp.com

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