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

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

unix.superglobalmegacorp.com

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