|
|
1.1 ! root 1: /* ! 2: * defs for the uda50 driver ! 3: */ ! 4: ! 5: /* ! 6: * per-controller structure ! 7: */ ! 8: ! 9: #define MAXCMD 32 /* no more than this many command packets */ ! 10: ! 11: struct ud { ! 12: struct udcomm *ud_comm; /* virt addr of comm area */ ! 13: uaddr_t ud_pcomm; /* unibus addr of ring base */ ! 14: struct udcmd *ud_cpkt; /* virt addr of command packets */ ! 15: uaddr_t ud_pcpkt; /* unibus addr of command packets */ ! 16: short ud_cnext; /* index of next cmd descriptor */ ! 17: short ud_rnext; /* ditto response */ ! 18: ubm_t ud_cmap[MAXCMD]; /* ub mapping info for transfers */ ! 19: char ud_cbusy[MAXCMD]; /* busy flags for commands */ ! 20: char ud_back[MAXCMD]; /* back-index from cmd ring to packets */ ! 21: struct udrsp *ud_rpkt; /* virt addr of response packets */ ! 22: struct buf *ud_cbuf; /* buffer for comm/cmds */ ! 23: ubm_t ud_cbm; /* and its map info */ ! 24: struct buf *ud_rbuf; /* buffer for responses */ ! 25: ubm_t ud_rbm; /* and its map info */ ! 26: int ud_bdpno; /* bdp for transfers */ ! 27: short ud_flags; /* misc flag bits */ ! 28: short ud_credits; /* number of flow control credits */ ! 29: struct device *ud_addr; /* device register address */ ! 30: }; ! 31: ! 32: /* ! 33: * ud_flags ! 34: */ ! 35: ! 36: #define UINIT 01 /* already did trivial init */ ! 37: #define UIDONE 02 /* initialization all done */ ! 38: #define UPWAIT 04 /* waiting for command packet */ ! 39: #define UFIRST 010 /* let first packet go even if no credits */ ! 40: #define UTIMER 020 /* timer will kick on next go */ ! 41: #define UCWAIT 040 /* waiting for credits */ ! 42: #define UISTART 0100 /* initialization started */ ! 43: ! 44: /* ! 45: * ud_cbusy ! 46: */ ! 47: ! 48: #define FREE 0 ! 49: #define NABBED 01 ! 50: #define SENT 02 ! 51: #define MAPPED 04 ! 52: ! 53: #define NOBACK (-1)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.