|
|
1.1 root 1: #include "scsi.h"
2:
3: s_inquiry(id, drive)
4: {
5: struct scsi_i input;
6: struct scsi_o output;
7:
8: if(id >= 0)
9: input.bus_id = 1<<id;
10: else
11: input.bus_id = id;
12: input.cmd[0] = 0x12;
13: input.cmd[1] = drive<<5;
14: input.cmd[2] = 0;
15: input.cmd[3] = 0;
16: input.cmd[4] = 36;
17: input.cmd[5] = 0;
18: if(scsiio(&input, &output, 36, "inquiry") < 0)
19: return(1);
20: Fprint(1, "drive %d,%d: %s device, '%0.28s'\n", id, drive,
21: (output.data[0] == 0x4)? "WORM":"Unknown", &output.data[8]);
22: if(output.data[5]&0x80)
23: Fprint(1, "\tpower off (0x%x)\n", output.data[5]&0xFF);
24: else
25: Fprint(1, "\t%s,%s,%s,%s,%s (0x%x)\n",
26: (output.data[5]&0x40)?"no disk":"disk",
27: (output.data[5]&0x08)?"write protect":"writable",
28: (output.data[5]&0x04)?"no alternate":"",
29: (output.data[5]&0x02)?"drive error":"",
30: (output.data[5]&0x01)?"ready":"not ready",
31: output.data[5]&0xFF);
32: return(0);
33: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.