Annotation of researchv10no/cmd/worm/scsi/sony/inq.c, revision 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.