Annotation of researchv10no/cmd/worm/oscsi/scsi.h, revision 1.1

1.1     ! root        1: typedef unsigned char uchar;
        !             2: 
        !             3: struct scsi_cmd
        !             4: {
        !             5:        unsigned long id;
        !             6:        uchar bus_id;           /* SCSI id of destination device */
        !             7:        uchar flags;
        !             8:        uchar cmd[10];          /* SCSI command */
        !             9:        uchar data[4096];       /* optional data */
        !            10: };
        !            11: 
        !            12: struct scsi_return
        !            13: {
        !            14:        unsigned long id;
        !            15:        uchar scsi_stat;        /* scsi status byte */
        !            16:        uchar scsi_msg;         /* scsi message byte */
        !            17:        uchar flags;
        !            18:        uchar type;             /* 1=td 2=us */
        !            19:        unsigned short reg1;    /* td=sa, us=per */
        !            20:        unsigned short reg2;    /* td=mscp, us=per */
        !            21:        unsigned char sense[22];
        !            22:        char pad[2];
        !            23:        uchar data[4096];       /* any data */
        !            24:        uchar nread;            /* chars read(-8) if ret count was -ve */
        !            25: };
        !            26: 
        !            27: #define        set6(x,a,b,c,d,e,f)     (x).flags=0,(x).cmd[0]=(a),(x).cmd[1]=(b),(x).cmd[2]=(c),\
        !            28:        (x).cmd[3]=(d),(x).cmd[4]=(e),(x).cmd[5]=(f)
        !            29: #define        set10(x,a,b,c,d,e,f,g,h,i,j)    (x).flags=0,(x).cmd[0]=(a),(x).cmd[1]=(b),(x).cmd[2]=(c),\
        !            30:        (x).cmd[3]=(d),(x).cmd[4]=(e),(x).cmd[5]=(f),(x).cmd[6]=(g),(x).cmd[7]=(h),\
        !            31:        (x).cmd[8]=(i),(x).cmd[9]=(j)
        !            32: #define        setdiag(x,lun,n)        (x).flags=0,(x).cmd[0]=0x1C,(x).cmd[1]=(lun)<<5,(x).cmd[2] = 0,\
        !            33:        (x).cmd[3]=(n)>>8,(x).cmd[4]=(n),(x).cmd[5]=0
        !            34: 
        !            35: extern s_io(int, struct scsi_cmd *, int, struct scsi_return *, int, char *);/* return 0 on no error, does sense on error */
        !            36: extern ss_io(int, struct scsi_cmd *, int, struct scsi_return *, int, char *);/* return 0 on no error */
        !            37: extern int s_ignua;    /* should s_io ignore unit attentions? */
        !            38: extern void (*ss_extsense)(uchar *, char *, int);
        !            39: extern int s_start(int, char *);
        !            40: extern int s_stop(int, char *);
        !            41: extern int s_eject(int, char *);
        !            42: extern int s_id;
        !            43: extern unsigned long longat(uchar *);

unix.superglobalmegacorp.com

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