Annotation of coherent/a/usr/include/sys/scsiwork.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Common SCSI portions of Adaptec AHA154x driver
                      3:  *
                      4:  * $Log:       scsiwork.h,v $
                      5:  * Revision 1.1  92/07/31  16:07:24  root
                      6:  * Initial revision
                      7:  * 
                      8:  * Revision 1.9  91/05/29  11:47:29  hal
                      9:  * Add MSG_NOP.
                     10:  * 
                     11:  * Revision 1.8        91/05/15  14:52:23      root
                     12:  * Add READCAPLEN.
                     13:  * 
                     14:  * Revision 1.7        91/04/20  01:36:46      root
                     15:  * Add ScmdREZERO
                     16:  * 
                     17:  * Revision 1.6        91/04/19  10:04:15      root
                     18:  * Add MSG_IDENTIFY.
                     19:  * 
                     20:  * Revision 1.5        91/04/17  02:21:18      root
                     21:  * Add mode sense constants.
                     22:  * 
                     23:  * Revision 1.4        91/04/10  14:11:41      root
                     24:  * Add Information Transfer Phase masks.
                     25:  * 
                     26:  * Revision 1.3        91/04/10  13:57:38      root
                     27:  * Add constants such as message types - needed by ss.c
                     28:  * 
                     29:  * Revision 1.2        91/03/14  16:51:29      root
                     30:  * add Test Ready and Request Sense commands
                     31:  * 
                     32:  * Revision 1.1        91/03/05  13:02:21      root
                     33:  * As used to build initial aha154x driver
                     34:  * 
                     35:  */
                     36: #define        MAX_SCSI_ID     8
                     37: #define        MAX_LUN         4               /* limited by minor device number */ 
                     38: 
                     39: /*
                     40:  * drive_info contains the "per drive" flags
                     41:  */
                     42: extern char    drive_info[MAX_SCSI_ID * MAX_LUN];
                     43: #define        D_DISK          0x01            /* disk-type device (random) */
                     44: #define        D_TAPE          0x02            /* tape-type device (sequential) */
                     45: #define        D_PRINTER       0x04            /* printer-type device */
                     46: #define        D_PROCESSOR     0x08            /* processor-type device */
                     47: #define        D_REMOVEABLE    0x10            /* media can be changed */
                     48: #define        D_WORM          0x20            /* WORM-type characteristics */
                     49: 
                     50: /*
                     51:  * Per disk controller data.
                     52:  * Only one host adapter; no more, no less.
                     53:  */
                     54: 
                     55: struct scsi_work       {
                     56:        struct scsi_work *sw_actf;      /* Link to first */
                     57:        struct scsi_work *sw_actl;      /* Link to last */
                     58:        BUF             *sw_bp;         /* block request */
                     59:        long            sw_bno;
                     60:        char            sw_drv;         /* 000sssll s=SCSI_ID l=LUN */
                     61:        char            sw_type;
                     62:        char            sw_retry;
                     63: };
                     64: 
                     65: typedef        struct  scsi_work       scsi_work_t;
                     66: 
                     67: #define        ScmdTESTREADY           0x00
                     68: #define        ScmdREZERO              0x01
                     69: #define        ScmdREQUESTSENSE        0x03
                     70: #define        ScmdINQUIRY             0x12
                     71: #define        ScmdMODESENSE           0x1A
                     72: #define        ScmdREADCAPACITY        0x25
                     73: #define        ScmdREADEXTENDED        0x28
                     74: #define        ScmdWRITEXTENDED        0x2A
                     75: 
                     76: struct scsi_cmd        {
                     77:        long    block, buffer;
                     78:        short   blklen, buflen;
                     79:        char    unit;                   /* 000sssll s=SCSI_ID l=LUN */
                     80:        char    cmd;
                     81: };
                     82: 
                     83: typedef        struct  scsi_cmd        scsi_cmd_t;
                     84: 
                     85: #define G0CMDLEN       6       /* Group 0 commands are 6 bytes long  */
                     86: #define G1CMDLEN       10      /* Group 1 commands are 10 bytes long */
                     87: #define SENSELEN       22      /* number of bytes returned w/ req sense */
                     88: #define INQUIRYLEN     54      /* number of bytes returned w/ inquiry */
                     89: #define MODESENSELEN   92      /* number of bytes returned w/ mode sense */
                     90: #define READCAPLEN     8       /* number of bytes returned w/read capacity */
                     91: 
                     92:                                /* Message types */
                     93: #define MSG_CMD_CMPLT  0x00    /* Command Complete */
                     94: #define MSG_SAVE_DPTR  0x02    /* Save SCSI data pointer */
                     95: #define MSG_RSTOR_DPTR 0x03    /* Restore SCSI pointers */
                     96: #define MSG_DISCONNECT 0x04    /* Target is about to disconnect */
                     97: #define MSG_ABORT      0x06    /* End the current SCSI bus cycle */
                     98: #define MSG_NOP                0x08    /* no-op */
                     99: #define MSG_DEV_RESET  0x0C    /* Bus Device Reset */
                    100: #define MSG_IDENTIFY   0x80    /* Identify, with no Disconnect */
                    101: #define MSG_IDENT_DC   0xC0    /* Identify, with Disconnect allowed */
                    102: 
                    103: #define CS_GOOD                0x00    /* Command Status from the drive */
                    104: #define CS_CHECK       0x02
                    105: #define CS_BUSY                0x08
                    106: #define CS_RESERVED    0x18
                    107: 
                    108: /*
                    109:  * Information Transfer Phase masks -
                    110:  * setting of RS_MESSAGE, RS_I_O, and RS_CTRL_DATA determines which of six
                    111:  * possible info transfer phases is occurring.
                    112:  */
                    113: #define XP_MSG_IN      (RS_MESSAGE | RS_I_O | RS_CTRL_DATA)
                    114: #define XP_MSG_OUT     (RS_MESSAGE          | RS_CTRL_DATA)
                    115: #define XP_STAT_IN     (             RS_I_O | RS_CTRL_DATA)
                    116: #define XP_CMD_OUT     (                      RS_CTRL_DATA)
                    117: #define XP_DATA_IN     (             RS_I_O               )
                    118: #define XP_DATA_OUT    (                                 0)
                    119: 
                    120: #define VTOP2(a1, a2)  vtop(a1,a2)

unix.superglobalmegacorp.com

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