|
|
1.1 root 1: #include <stdio.h>
2: #include "../scsi.h"
3: #include "../scsish.h"
4: #include "../tcl.h"
5: #include "fns.h"
6:
7: int
8: sony_inq(ClientData cd, Tcl_Interp *it, int argc, char **argv)
9: {
10: struct scsi_cmd cmd;
11: struct scsi_return ret;
12: int i;
13: int na, args[8];
14:
15: na = 0;
16: if(argc == 1)
17: args[na++] = 0;
18: else if((argc == 2) && (atoi(argv[1]) < 0)){
19: for(i = 0; i < 8; i++)
20: args[na++] = i;
21: } else {
22: for(i = 1; i < argc; i++)
23: args[na++] = atoi(argv[i]);
24: }
25: for(i = 0; i < na; i++){
26: set6(cmd, 0x12, args[i]<<5, 0, 0, 6, 0);
27: if(s_io(0, &cmd, 0, &ret, 6, cd->err))
28: ERR_RETURN
29: printf("inq(%d,%d): ", s_id, args[i]);
30: if(ret.data[5]&0x80)
31: printf("power off (0x%x)\n", ret.data[5]&0xFF);
32: else if(ret.data[5]&0x40)
33: printf("empty (0x%x)\n", ret.data[5]&0xFF);
34: else
35: printf("%s,%s,%s,%s (0x%x)\n",
36: (ret.data[5]&0x08)?"write protect":"writable",
37: (ret.data[5]&0x04)?"no alternate":"",
38: (ret.data[5]&0x02)?"drive error":"",
39: (ret.data[5]&0x01)?"ready":"not ready",
40: ret.data[5]&0xFF);
41: }
42: return(0);
43: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.