Annotation of coherent/f/usr/include/sys/scsiwork.h, revision 1.1.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.