Annotation of researchv10no/cmd/worm/scsi/scsi.h, revision 1.1.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 *);
                     44: extern void setlongtimeout(struct scsi_cmd *);
                     45: extern void soft_reset(void);

unix.superglobalmegacorp.com

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