|
|
1.1 root 1:
2: struct lun_map {
3: __u8 id:5,
4: chan:3;
5: __u8 lun;
6: };
7:
8: typedef struct emul_pp {
9: __u8 p_code:6,
10: null:1,
11: p_save:1;
12: __u8 p_length;
13: __u16 cylinder;
14: __u8 heads;
15: __u8 sectors;
16: __u8 null2;
17: __u8 s_lunmap:4,
18: ems:1;
19: __u16 drive_type; /* In Little Endian ! */
20: struct lun_map lunmap[4];
21: }emulpp;
22:
23:
24: /* Log Sense pages */
25:
26: typedef struct log_sheader {
27: __u8 page_code,
28: reserved;
29: __u16 length;
30: }logsh;
31:
32:
33: /* Log Sense Statistics */
34:
35: typedef struct read_command_statistics {
36: __u16 code; /* 0x01 */
37: __u8 flags;
38: __u8 length; /* 0x24 */
39: __u32 h_commands,
40: uncached,
41: la_cmds,
42: la_blks,
43: la_hits,
44: missed,
45: hits,
46: seq_la_blks,
47: seq_la_hits;
48: }r_cmd_stat;
49:
50: typedef struct write_command_statistics {
51: __u16 code; /* 0x03 */
52: __u8 flags;
53: __u8 length; /* 0x28 */
54: __u32 h_commands,
55: uncached,
56: thru,
57: bypass,
58: soft_err,
59: hits,
60: b_idle,
61: b_activ,
62: b_blks,
63: b_blks_clean;
64: }w_cmd_stat;
65:
66: typedef struct host_command_statistics {
67: __u16 code; /* 0x02, 0x04 */
68: __u8 flags;
69: __u8 length; /* 0x30 */
70: __u32 sizes[12];
71: }hst_cmd_stat;
72:
73: typedef struct physical_command_statistics {
74: __u16 code; /* 0x06, 0x07 */
75: __u8 flags;
76: __u8 length; /* 0x34 */
77: __u32 sizes[13];
78: }phy_cmd_stat;
79:
80: typedef struct misc_device_statistics {
81: __u16 code; /* 0x05 */
82: __u8 flags;
83: __u8 length; /* 0x10 */
84: __u32 disconnect,
85: pass_thru,
86: sg_commands,
87: stripe_boundary_crosses;
88: }msc_stats;
89:
90: /* Configuration Pages */
91:
92: typedef struct controller_configuration {
93: __u16 code; /* 0x01 */
94: __u8 flags;
95: __u8 length; /* 0x02 */
96: __u8 intt:1,
97: sec:1,
98: csh:1,
99: key:1,
100: tmr:1,
101: srs:1,
102: nvr:1;
103: __u8 interrupt;
104: }coco;
105:
106: typedef struct controller_hardware_errors {
107: __u16 code; /* 0x02 */
108: __u8 flags;
109: __u8 length; /* 0x02 */
110: __u8 unused:1,
111: per:1;
112: __u8 interrupt;
113: }coher;
114:
115: typedef struct memory_map {
116: __u16 code; /* 0x03, 0x04 */
117: __u8 flags;
118: __u8 length; /* 0x04 */
119: __u32 memory_map;
120: }mema;
121:
122: typedef struct scsi_transfer {
123: __u16 code; /* 0x05 */
124: __u8 flags;
125: __u8 length; /* 0x04 */
126: __u8 offset,
127: period;
128: __u16 speed;
129: }scsitrans;
130:
131: typedef struct scsi_modes {
132: __u16 code; /* 0x06 */
133: __u8 flags;
134: __u8 length; /* 0x02 */
135: __u8 que:1,
136: cdis:1,
137: wtru:1,
138: dasd:1,
139: ncr:1,
140: awre:1;
141: __u8 reserved;
142: }scsimod;
143:
144: typedef struct host_bus {
145: __u16 code; /* 0x07 */
146: __u8 flags;
147: __u8 length; /* 0x02 */
148: __u8 speed:6,
149: pci:1,
150: eisa:1;
151: __u8 reserved;
152: }hobu;
153:
154: typedef struct scsi_bus {
155: __u16 code; /* 0x08 */
156: __u8 flags;
157: __u8 length; /* 0x02 */
158: __u8 speed:4,
159: res:1,
160: ext:1,
161: wide:1,
162: dif:1;
163: __u8 busnum;
164: }scbu;
165:
166: typedef struct board_type {
167: __u16 code; /* 0x09 */
168: __u8 flags;
169: __u8 length; /* 0x04 */
170: __u8 unused:1,
171: cmi:1,
172: dmi:1,
173: cm4k:1,
174: cm4:1,
175: dm4k:1,
176: dm4:1,
177: hba:1;
178: __u8 cpu_type,
179: cpu_speed;
180: __u8 sx1:1,
181: sx2:1,
182: unused2:4,
183: alrm:1,
184: srom:1;
185: }boty;
186:
187: typedef struct memory_config {
188: __u16 code; /* 0x0a */
189: __u8 flags;
190: __u8 length; /* 0x04 */
191: __u8 banksize[4];
192: }memco;
193:
194: typedef struct firmware_info {
195: __u16 code; /* 0x0b */
196: __u8 flags;
197: __u8 length; /* 0x04 */
198: __u8 dnld:1,
199: bs528:1,
200: fmt:1,
201: fw528:1;
202: __u8 unused1,
203: fw_type,
204: unused;
205: }firm;
206:
207: typedef struct subsystem_info {
208: __u16 code; /* 0x0c */
209: __u8 flags;
210: __u8 length; /* 0x02 */
211: __u8 shlf:1,
212: swap:1,
213: noss:1;
214: __u8 reserved;
215: }subinf;
216:
217: typedef struct per_channel_info {
218: __u16 code; /* 0x0d */
219: __u8 flags;
220: __u8 length; /* 0x02 */
221: __u8 channel;
222: __u8 shlf:1,
223: swap:1,
224: noss:1,
225: srs:1,
226: que:1,
227: ext:1,
228: wide:1,
229: diff:1;
230: }pcinf;
231:
232: typedef struct array_limits {
233: __u16 code; /* 0x0e */
234: __u8 flags;
235: __u8 length; /* 0x04 */
236: __u8 max_groups,
237: raid0_drv,
238: raid35_drv,
239: unused;
240: }arrlim;
241:
242: /*
243: * Overrides for Emacs so that we follow Linus's tabbing style.
244: * Emacs will notice this stuff at the end of the file and automatically
245: * adjust the settings for this buffer only. This must remain at the end
246: * of the file.
247: * ---------------------------------------------------------------------------
248: * Local variables:
249: * c-indent-level: 4
250: * c-brace-imaginary-offset: 0
251: * c-brace-offset: -4
252: * c-argdecl-indent: 4
253: * c-label-offset: -4
254: * c-continued-statement-offset: 4
255: * c-continued-brace-offset: 0
256: * indent-tabs-mode: nil
257: * tab-width: 8
258: * End:
259: */
260:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.