[BACK]Return to scsiio.h CVS log [TXT][DIR] Up to [local] / sys / sys

Annotation of sys/sys/scsiio.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: scsiio.h,v 1.8 2006/11/27 18:32:33 dlg Exp $  */
        !             2: /*     $NetBSD: scsiio.h,v 1.3 1994/06/29 06:45:09 cgd Exp $   */
        !             3:
        !             4: #ifndef _SYS_SCSIIO_H_
        !             5: #define _SYS_SCSIIO_H_
        !             6:
        !             7:
        !             8: #include <sys/types.h>
        !             9: #include <sys/ioctl.h>
        !            10:
        !            11: #define        SENSEBUFLEN 48
        !            12:
        !            13: typedef struct scsireq {
        !            14:        u_long  flags;          /* info about the request status and type */
        !            15:        u_long  timeout;
        !            16:        u_char  cmd[16];        /* 12 is actually the max */
        !            17:        u_char  cmdlen;
        !            18:        caddr_t databuf;        /* address in user space of buffer */
        !            19:        u_long  datalen;        /* size of user buffer (request) */
        !            20:        u_long  datalen_used;   /* size of user buffer (used)*/
        !            21:        u_char  sense[SENSEBUFLEN]; /* returned sense will be in here */
        !            22:        u_char  senselen;       /* sensedata request size (MAX of SENSEBUFLEN)*/
        !            23:        u_char  senselen_used;  /* return value only */
        !            24:        u_char  status;         /* what the scsi status was from the adapter */
        !            25:        u_char  retsts;         /* the return status for the command */
        !            26:        int     error;          /* error bits */
        !            27: } scsireq_t;
        !            28:
        !            29: /* bit definitions for flags */
        !            30: #define SCCMD_READ             0x00000001
        !            31: #define SCCMD_WRITE            0x00000002
        !            32: #define SCCMD_IOV              0x00000004
        !            33: #define SCCMD_ESCAPE           0x00000010
        !            34: #define SCCMD_TARGET           0x00000020
        !            35:
        !            36:
        !            37: /* definitions for the return status (retsts) */
        !            38: #define SCCMD_OK       0x00
        !            39: #define SCCMD_TIMEOUT  0x01
        !            40: #define SCCMD_BUSY     0x02
        !            41: #define SCCMD_SENSE    0x03
        !            42: #define SCCMD_UNKNOWN  0x04
        !            43:
        !            44: #define SCIOCCOMMAND   _IOWR('Q', 1, scsireq_t)
        !            45:
        !            46: #define SC_DB_CMDS     0x00000001      /* show all scsi cmds and errors */
        !            47: #define SC_DB_FLOW     0x00000002      /* show routines entered        */
        !            48: #define SC_DB_FLOW2    0x00000004      /* show path INSIDE routines    */
        !            49: #define SC_DB_DMA      0x00000008      /* show DMA segments etc        */
        !            50: #define SCIOCDEBUG     _IOW('Q', 2, int)       /* from 0 to 15 */
        !            51:
        !            52: struct oscsi_addr {
        !            53:        int     scbus;          /* -1 if wildcard */
        !            54:        int     target;         /* -1 if wildcard */
        !            55:        int     lun;            /* -1 if wildcard */
        !            56: } ;
        !            57:
        !            58: struct scsi_addr {
        !            59:        int     type;
        !            60: #define TYPE_SCSI      0
        !            61: #define TYPE_ATAPI     1
        !            62:        int     scbus;          /* -1 if wildcard */
        !            63:        int     target;         /* -1 if wildcard */
        !            64:        int     lun;            /* -1 if wildcard */
        !            65: };
        !            66:
        !            67: #define SCIOCRESET     _IO('Q', 7)     /* reset the device */
        !            68: #define SCIOCIDENTIFY  _IOR('Q', 9, struct scsi_addr)
        !            69:
        !            70: struct sbioc_device {
        !            71:        void            *sd_cookie;
        !            72:        int             sd_target;
        !            73:        int             sd_lun;
        !            74: };
        !            75:
        !            76: #define SBIOCPROBE     _IOWR('Q', 127, struct sbioc_device)
        !            77: #define SBIOCDETACH    _IOWR('Q', 128, struct sbioc_device)
        !            78:
        !            79: #endif /* _SYS_SCSIIO_H_ */

CVSweb