|
|
1.1 ! root 1: /* ! 2: * HISTORY ! 3: * ! 4: * PATCHES MAGIC LEVEL PATCH THAT GOT US HERE ! 5: * -------------------- ----- ---------------------- ! 6: * CURRENT PATCH LEVEL: 1 00098 ! 7: * -------------------- ----- ---------------------- ! 8: * ! 9: * 16 Feb 93 Julian Elischer ADDED for SCSI system ! 10: * ! 11: */ ! 12: ! 13: /* ! 14: * SCSI changer interface description ! 15: */ ! 16: ! 17: /* ! 18: * Written by Stefan Grefen ([email protected] soon [email protected]) ! 19: * based on the SCSI System by written Julian Elischer ([email protected]) ! 20: * for TRW Financial Systems. ! 21: * ! 22: * TRW Financial Systems, in accordance with their agreement with Carnegie ! 23: * Mellon University, makes this software available to CMU to distribute ! 24: * or use in any manner that they see fit as long as this message is kept with ! 25: * the software. For this reason TFS also grants any other persons or ! 26: * organisations permission to use or modify this software. ! 27: * ! 28: * TFS supplies this software to be publicly redistributed ! 29: * on the understanding that TFS is not responsible for the correct ! 30: * functioning of this software in any circumstances. ! 31: * ! 32: */ ! 33: ! 34: /* ! 35: * Ported to run under 386BSD by Julian Elischer ([email protected]) Sept 1992 ! 36: */ ! 37: ! 38: /* ! 39: * SCSI command format ! 40: */ ! 41: struct scsi_read_element_status ! 42: { ! 43: u_char op_code; ! 44: u_char element_type_code:4; ! 45: u_char voltag:1; ! 46: u_char lun:3; ! 47: u_char starting_element_addr[2]; ! 48: u_char number_of_elements[2]; ! 49: u_char resv1; ! 50: u_char allocation_length[3]; ! 51: u_char resv2; ! 52: u_char link:1; ! 53: u_char flag:1; ! 54: u_char :6; ! 55: }; ! 56: #define RE_ALL_ELEMENTS 0 ! 57: #define RE_MEDIUM_TRANSPORT_ELEMENT 1 ! 58: #define RE_STORAGE_ELEMENT 2 ! 59: #define RE_IMPORT_EXPORT 3 ! 60: #define RE_DATA_TRANSFER_ELEMENT 4 ! 61: ! 62: struct scsi_move_medium ! 63: { ! 64: u_char op_code; ! 65: u_char :5; ! 66: u_char lun:3; ! 67: u_char transport_element_address[2]; ! 68: u_char source_address[2]; ! 69: u_char destination_address[2]; ! 70: u_char rsvd[2]; ! 71: u_char invert:1; ! 72: u_char :7; ! 73: u_char link:1; ! 74: u_char flag:1; ! 75: u_char :6; ! 76: }; ! 77: ! 78: struct scsi_position_to_element ! 79: { ! 80: u_char op_code; ! 81: u_char :5; ! 82: u_char lun:3; ! 83: u_char transport_element_address[2]; ! 84: u_char source_address[2]; ! 85: u_char rsvd[2]; ! 86: u_char invert:1; ! 87: u_char :7; ! 88: u_char link:1; ! 89: u_char flag:1; ! 90: u_char :6; ! 91: }; ! 92: ! 93: /* ! 94: * Opcodes ! 95: */ ! 96: #define POSITION_TO_ELEMENT 0x2b ! 97: #define MOVE_MEDIUM 0xa5 ! 98: #define READ_ELEMENT_STATUS 0xb8 ! 99: ! 100: struct scsi_element_status_data ! 101: { ! 102: u_char first_element_reported[2]; ! 103: u_char number_of_elements_reported[2]; ! 104: u_char rsvd; ! 105: u_char byte_count_of_report[3]; ! 106: }; ! 107: ! 108: struct element_status_page ! 109: { ! 110: u_char element_type_code; ! 111: u_char :5; ! 112: u_char avoltag:1; ! 113: u_char pvoltag:1; ! 114: u_char element_descriptor_length[2]; ! 115: u_char rsvd; ! 116: u_char byte_count_of_descriptor_data[3]; ! 117: }; ! 118:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.