Annotation of researchv10dc/cmd/worm/oscsi/generic/inq.c, revision 1.1.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.