|
|
1.1 ! root 1: #include <libc.h> ! 2: ! 3: struct scsi_i ! 4: { ! 5: short bus_id; ! 6: char cmd[10]; ! 7: char data[4*1024]; ! 8: }; ! 9: #define N(n) (12+n) ! 10: ! 11: /* ! 12: STATUS: ! 13: +0: scsi status phase byte ! 14: +1: message phase command ! 15: +2: controller status? ! 16: */ ! 17: ! 18: struct scsi_o ! 19: { ! 20: unsigned char status[4]; ! 21: unsigned short csr; ! 22: unsigned short per; ! 23: unsigned char data[4*1024]; ! 24: }; ! 25: ! 26: #define CHECK(o) ((((o).status[0]&0xFF) != 0xEE) && ((o).status[0]&2)) ! 27: ! 28: extern int scsi_fd; ! 29: extern int scsi_id; ! 30: extern int scsi_verbose; ! 31: ! 32: #define V scsi_verbose ! 33: ! 34: #define CSR_DONE 0x8000 ! 35: #define CSR_ERROR 0x1000 ! 36: #define CSR_R 0x0020 ! 37: #define CSR_M 0x0010 ! 38: #define CSR_I 0x0008 ! 39: #define CSR_C 0x0004 ! 40: #define CSR_S 0x0002 ! 41: #define CSR_B 0x0001 ! 42: #define CSR_BITS (CSR_DONE|CSR_ERROR|CSR_R|CSR_M|CSR_I|CSR_C|CSR_S|CSR_B) ! 43: ! 44: #define PER_CHECK 0x2000 ! 45: #define PER_DRBUSY 0x1000 ! 46: #define PER_SBUSY 0x0040 ! 47: #define PER_SELECT 0x0010 ! 48: ! 49: #define A 0 ! 50: #define B 1 ! 51: ! 52: #define ULONG(d) ((d[0]<<24)|(d[1]<<16)|(d[2]<<8)|d[3]) ! 53: #define LONG(cp) ULONG(((unsigned char *)cp))
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.