Annotation of researchv10dc/cmd/worm/oscsi/generic/display.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: 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: }

unix.superglobalmegacorp.com

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