|
|
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.