Annotation of researchv10no/cmd/worm/scsi/sony/inq.c, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.