Annotation of researchv10dc/cmd/worm/oscsi/generic/inq.c, revision 1.1

1.1     ! root        1: #include       <stdio.h>
        !             2: #include       "../scsi.h"
        !             3: #include       "../scsish.h"
        !             4: #include       "fns.h"
        !             5: 
        !             6: char *gen_rmb[2] = { "nonremovable", "removable" };
        !             7: char *gen_devtype[256] = {
        !             8:        "direct access",
        !             9:        "sequential access",
        !            10:        "printer",
        !            11:        "processor",
        !            12:        "worm",
        !            13:        "cd-rom"
        !            14: };
        !            15: 
        !            16: int
        !            17: gen_inq(int niargs, int *iargs, int ncargs, char **cargs, char *err)
        !            18: {
        !            19:        struct scsi_cmd cmd;
        !            20:        struct scsi_return ret;
        !            21:        int n, i;
        !            22: 
        !            23: #pragma ref ncargs
        !            24: #pragma ref cargs
        !            25: 
        !            26:        if(niargs == 0)
        !            27:                for(niargs = 0; niargs < 8; niargs++)
        !            28:                        iargs[niargs] = niargs;
        !            29:        for(i = 0; i < niargs; i++){
        !            30:                set6(cmd, 0x12, iargs[i]<<5, 0, 0, 36, 0);
        !            31:                if(n = s_io(0, &cmd, 0, &ret, -36, err))
        !            32:                        return(n);
        !            33:                printf("inq(%d,%d): %s %s;", s_id, iargs[i],
        !            34:                        gen_rmb[ret.data[1]>>7], gen_devtype[ret.data[0]]);
        !            35:                if(ret.data[4] >= 16){
        !            36:                        char buf[256];
        !            37: 
        !            38:                        fixedstr(&ret.data[8], 8, buf);
        !            39:                        printf(" %s", buf);
        !            40:                        if(ret.data[4] >= 32){
        !            41:                                fixedstr(&ret.data[16], 16, buf);
        !            42:                                printf("/%s", buf);
        !            43:                                if(ret.data[4] >= 36){
        !            44:                                        fixedstr(&ret.data[32], 4, buf);
        !            45:                                        printf(" rev=%s", buf);
        !            46:                                }
        !            47:                        }
        !            48:                }
        !            49:                printf(" [%d bytes]\n", ret.data[4]);
        !            50:        }
        !            51:        return(0);
        !            52: }

unix.superglobalmegacorp.com

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