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