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