|
|
1.1 ! root 1: #define SCSICMD 10 /* max cmd size */ ! 2: #define SCSIDATA (4*1024) ! 3: #define SCSISTATUS 8 /* includes csr&per */ ! 4: #define SCSITOHOST 0x10000 ! 5: ! 6: #define OPEN 1 /* somebody has the device open */ ! 7: #define USED 2 /* ever opened */ ! 8: #define NEXTWR 4 /* next cmd must be write */ ! 9: #define DONE 8 /* io done */ ! 10: #define PEND 16 /* we expect an interrupt */ ! 11: ! 12: struct bag ! 13: { ! 14: struct { short msg_len; short pad; struct mscmd msg; } cmd; ! 15: struct { short msg_len; short pad; struct msend msg; } rsp; ! 16: struct { ! 17: short ca_cmdint; ! 18: short ca_rspint; ! 19: long ca_rspdsc[1]; ! 20: long ca_cmddsc[1]; ! 21: } ca; ! 22: }; ! 23: /* ! 24: US design ! 25: */ ! 26: struct scsipkt ! 27: { ! 28: long cmd; ! 29: long data; ! 30: long status; ! 31: long count; ! 32: short bus_id; ! 33: }; ! 34: struct playpen ! 35: { ! 36: struct scsipkt upkt; /* must be first */ ! 37: unsigned char cmd[SCSICMD]; ! 38: unsigned char data[SCSIDATA]; ! 39: unsigned char status[SCSISTATUS]; ! 40: }; ! 41: ! 42: struct scsi { ! 43: int flag; ! 44: struct udadevice *addr; ! 45: uaddr_t u1, u2; ! 46: ubm_t ub1, ub2; ! 47: struct buf *b1, *b2; ! 48: struct bag *junk; ! 49: unsigned char *data; ! 50: short sa; ! 51: char status[SCSISTATUS]; ! 52: struct scsireg *reg; ! 53: struct playpen pp; ! 54: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.