|
|
1.1 ! root 1: struct scsicmd { ! 2: int lun; ! 3: int readflag; /* 1=read, 0=write */ ! 4: int blkno; /* just used in seek sorting */ ! 5: ! 6: unsigned int cdblen; ! 7: caddr_t cdb; ! 8: ! 9: unsigned int datalen; ! 10: caddr_t data; ! 11: ! 12: unsigned int ccblen; ! 13: caddr_t ccb; ! 14: }; ! 15: #define SCSICMD _IOWR('a', 150, struct scsicmd) ! 16: ! 17: /* write regs */ ! 18: #define AS_CONTROL 0 ! 19: #define AS_DATA_OUT 1 ! 20: ! 21: /* read regs */ ! 22: #define AS_STATUS 0 ! 23: #define AS_DATA_IN 1 ! 24: #define AS_INTR 2 ! 25: ! 26: /* control port bits */ ! 27: #define AS_CONTROL_HRST 0x80 /* hard reset */ ! 28: #define AS_CONTROL_SRST 0x40 /* soft reset */ ! 29: #define AS_CONTROL_IRST 0x20 /* interrupt reset */ ! 30: #define AS_CONTROL_SCRST 0x10 /* scsi bus reset */ ! 31: ! 32: /* status port bits */ ! 33: #define AS_STATUS_STST 0x80 /* self test in progress */ ! 34: #define AS_STATUS_DIAGF 0x40 /* internal diagnostic failure */ ! 35: #define AS_STATUS_INIT 0x20 /* mailbox initialization required */ ! 36: #define AS_STATUS_IDLE 0x10 /* scsi host adapter idle */ ! 37: #define AS_STATUS_CDF 0x08 /* command/data out port full */ ! 38: #define AS_STATUS_DF 0x04 /* data in port full */ ! 39: /* 0x02 reserved */ ! 40: #define AS_STATUS_INVDCMD 0x01 /* invalid host adapter command */ ! 41: ! 42: /* interrupt port bits */ ! 43: #define AS_INTR_ANY 0x80 ! 44: #define AS_INTR_SCRD 0x08 /* scsi reset detected */ ! 45: #define AS_INTR_HACC 0x04 /* host adapter command complete */ ! 46: #define AS_INTR_MBOA 0x02 /* mailbox out available */ ! 47: #define AS_INTR_MBIF 0x01 /* mailbox in available */ ! 48: ! 49: /* command bytes */ ! 50: #define AS_CMD_NOP 0x00 ! 51: #define AS_CMD_MAILBOX_INIT 0x01 ! 52: #define AS_CMD_START_SCSI_COMMAND 0x02 ! 53: #define AS_CMD_START_BIOS_COMMAND 0x03 ! 54: #define AS_CMD_ADAPTER_INQUIRY 0x04 ! 55: #define AS_CMD_ENABLE_MBOA_INTR 0x05 ! 56: #define AS_CMD_SET_SELECTION_TIMEOUT 0x06 ! 57: #define AS_CMD_SET_BUS_ON_TIME 0x07 ! 58: #define AS_CMD_SET_BUS_OFF_TIME 0x08 ! 59: #define AS_CMD_SET_TRANSFER_SPEED 0x09 ! 60: #define AS_CMD_RETURN_INSTALLED_DEVICES 0x0a ! 61: #define AS_CMD_RETURN_CONFIGURATION_DATA 0x0b ! 62: #define AS_CMD_ENABLE_TARGET_MODE 0x0c ! 63: #define AS_CMD_RETURN_SETUP_DATA 0x0d ! 64: #define AS_CMD_WRITE_ADAPTER_CHANNEL_2_BUFFER 0x1a ! 65: #define AS_CMD_READ_ADAPTER_CHANNEL_2_BUFGFER 0x1b ! 66: #define AS_CMD_WRITE_ADAPTER_FIFO_BUFFER 0x1c ! 67: #define AS_CMD_READ_ADAPTER_FIFO_BUFFER 0x1d ! 68: #define AS_CMD_ECHO 0x1f ! 69: #define AS_CMD_ADAPTER_DIAG 0x20 ! 70: #define AS_CMD_SET_ADAPTER_OPTIONS 0x21 ! 71: ! 72: struct mailbox_entry { ! 73: unsigned char cmd; ! 74: unsigned char msb; ! 75: unsigned char mid; ! 76: unsigned char lsb; ! 77: }; ! 78: ! 79: #define MAXCDB 50 ! 80: #define MAXSENSE 100 ! 81: ! 82: struct ccb { ! 83: unsigned char ccb_opcode; ! 84: unsigned char ccb_addr_and_control; ! 85: unsigned char ccb_scsi_command_len; ! 86: unsigned char ccb_requst_sense_allocation_len; ! 87: unsigned char ccb_data_len_msb; ! 88: unsigned char ccb_data_len_mid; ! 89: unsigned char ccb_data_len_lsb; ! 90: unsigned char ccb_data_ptr_msb; ! 91: unsigned char ccb_data_ptr_mid; ! 92: unsigned char ccb_data_ptr_lsb; ! 93: unsigned char ccb_link_msb; ! 94: unsigned char ccb_link_mid; ! 95: unsigned char ccb_link_lsb; ! 96: unsigned char ccb_link_id; ! 97: unsigned char ccb_host_status; ! 98: unsigned char ccb_target_status; ! 99: unsigned char ccb_zero1; ! 100: unsigned char ccb_zero2; ! 101: unsigned char ccb_cdb[MAXCDB + MAXSENSE]; ! 102: }; ! 103: #define ccb_sense(ccb) ((ccb)->ccb_cdb + (ccb)->ccb_scsi_command_len) ! 104:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.