|
|
1.1 ! root 1: #include <stdio.h> ! 2: #include "../scsi.h" ! 3: #include "../scsish.h" ! 4: #include "fns.h" ! 5: ! 6: extern char *gen_rmb[2]; ! 7: extern char *gen_devtype[256]; ! 8: ! 9: int ! 10: gen_display(int niargs, int *iargs, int ncargs, char **cargs, char *err) ! 11: { ! 12: struct scsi_cmd cmd; ! 13: struct scsi_return ret; ! 14: int n, i, old_id; ! 15: int retv = 0; ! 16: char rev[100], vendor[100], product[100]; ! 17: ! 18: #pragma ref niargs ! 19: #pragma ref iargs ! 20: #pragma ref ncargs ! 21: #pragma ref cargs ! 22: ! 23: old_id = s_id; ! 24: for(s_id = 0; s_id < 8; s_id++){ ! 25: printf("target %d:\n"); ! 26: set6(cmd, 0x00, 0, 0, 0, 0, 0); ! 27: if(s_io(0, &cmd, 0, &ret, 0, err)) ! 28: continue; ! 29: printf("responded to test unit ready\n"); ! 30: continue; ! 31: for(i = 0; i < 8; i++){ ! 32: set6(cmd, 0x12, i<<5, 0, 0, 36, 0); ! 33: if(n = s_io(0, &cmd, 0, &ret, -36, err)){ ! 34: retv = n; ! 35: break; ! 36: } ! 37: if(ret.nread >= 16) ! 38: fixedstr(&ret.data[8], 8, vendor); ! 39: else ! 40: sprintf(vendor, "??"); ! 41: if(ret.nread >= 32) ! 42: fixedstr(&ret.data[16], 16, product); ! 43: else ! 44: sprintf(product, "??"); ! 45: if(ret.nread >= 16) ! 46: fixedstr(&ret.data[32], 4, rev); ! 47: else ! 48: sprintf(vendor, "??"); ! 49: printf("\tlun(%d): %s %s, %s/%s rev=%s\n", i, ! 50: gen_rmb[ret.data[1]>>7], gen_devtype[ret.data[0]], ! 51: vendor, product, rev); ! 52: } ! 53: } ! 54: s_id = old_id; ! 55: return(retv); ! 56: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.