Annotation of coherent/f/usr/include/sys/scsiwork.h, revision 1.1

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

unix.superglobalmegacorp.com

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