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

Annotation of sys/dev/biovar.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: biovar.h,v 1.28 2007/05/28 21:54:26 marco Exp $       */
        !             2:
        !             3: /*
        !             4:  * Copyright (c) 2002 Niklas Hallqvist.  All rights reserved.
        !             5:  * Copyright (c) 2005 Marco Peereboom.  All rights reserved.
        !             6:  *
        !             7:  * Redistribution and use in source and binary forms, with or without
        !             8:  * modification, are permitted provided that the following conditions
        !             9:  * are met:
        !            10:  * 1. Redistributions of source code must retain the above copyright
        !            11:  *    notice, this list of conditions and the following disclaimer.
        !            12:  * 2. Redistributions in binary form must reproduce the above copyright
        !            13:  *    notice, this list of conditions and the following disclaimer in the
        !            14:  *    documentation and/or other materials provided with the distribution.
        !            15:  *
        !            16:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
        !            17:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
        !            18:  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
        !            19:  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
        !            20:  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
        !            21:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        !            22:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        !            23:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        !            24:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
        !            25:  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        !            26:  */
        !            27:
        !            28: /*
        !            29:  * Devices getting ioctls through this interface should use ioctl class 'B'
        !            30:  * and command numbers starting from 32, lower ones are reserved for generic
        !            31:  * ioctls.  All ioctl data must be structures which start with a void *
        !            32:  * cookie.
        !            33:  */
        !            34:
        !            35: #include <sys/types.h>
        !            36:
        !            37: struct bio_common {
        !            38:        void            *bc_cookie;
        !            39: };
        !            40:
        !            41: /* convert name to a cookie */
        !            42: #define BIOCLOCATE _IOWR('B', 0, struct bio_locate)
        !            43: struct bio_locate {
        !            44:        void            *bl_cookie;
        !            45:        char            *bl_name;
        !            46: };
        !            47:
        !            48: #ifdef _KERNEL
        !            49: int    bio_register(struct device *, int (*)(struct device *, u_long,
        !            50:     caddr_t));
        !            51: void   bio_unregister(struct device *);
        !            52: #endif
        !            53:
        !            54: #define BIOCINQ _IOWR('B', 32, struct bioc_inq)
        !            55: struct bioc_inq {
        !            56:        void            *bi_cookie;
        !            57:
        !            58:        char            bi_dev[16];     /* controller device */
        !            59:        int             bi_novol;       /* nr of volumes */
        !            60:        int             bi_nodisk;      /* nr of total disks */
        !            61: };
        !            62:
        !            63: #define BIOCDISK _IOWR('B', 33, struct bioc_disk)
        !            64: /* structure that represents a disk in a RAID volume */
        !            65: struct bioc_disk {
        !            66:        void            *bd_cookie;
        !            67:
        !            68:        u_int16_t       bd_channel;
        !            69:        u_int16_t       bd_target;
        !            70:        u_int16_t       bd_lun;
        !            71:        u_int16_t       bd_other_id;    /* unused for now  */
        !            72:
        !            73:        int             bd_volid;       /* associate with volume */
        !            74:        int             bd_diskid;      /* virtual disk */
        !            75:        int             bd_status;      /* current status */
        !            76: #define BIOC_SDONLINE          0x00
        !            77: #define BIOC_SDONLINE_S                "Online"
        !            78: #define BIOC_SDOFFLINE         0x01
        !            79: #define BIOC_SDOFFLINE_S       "Offline"
        !            80: #define BIOC_SDFAILED          0x02
        !            81: #define BIOC_SDFAILED_S        "Failed"
        !            82: #define BIOC_SDREBUILD         0x03
        !            83: #define BIOC_SDREBUILD_S       "Rebuild"
        !            84: #define BIOC_SDHOTSPARE                0x04
        !            85: #define BIOC_SDHOTSPARE_S      "Hot spare"
        !            86: #define BIOC_SDUNUSED          0x05
        !            87: #define BIOC_SDUNUSED_S                "Unused"
        !            88: #define BIOC_SDSCRUB           0x06
        !            89: #define BIOC_SDSCRUB_S         "Scrubbing"
        !            90: #define BIOC_SDINVALID         0xff
        !            91: #define BIOC_SDINVALID_S       "Invalid"
        !            92:        u_quad_t        bd_size;        /* size of the disk */
        !            93:
        !            94:        char            bd_vendor[32];  /* scsi string */
        !            95:        char            bd_serial[32];  /* serial number */
        !            96:        char            bd_procdev[16]; /* processor device */
        !            97: };
        !            98:
        !            99: #define BIOCVOL _IOWR('B', 34, struct bioc_vol)
        !           100: /* structure that represents a RAID volume */
        !           101: struct bioc_vol {
        !           102:        void            *bv_cookie;
        !           103:        int             bv_volid;       /* volume id */
        !           104:
        !           105:        int16_t         bv_percent;     /* percent done operation */
        !           106:        u_int16_t       bv_seconds;     /* seconds of progress so far */
        !           107:
        !           108:        int             bv_status;      /* current status */
        !           109: #define BIOC_SVONLINE          0x00
        !           110: #define BIOC_SVONLINE_S                "Online"
        !           111: #define BIOC_SVOFFLINE         0x01
        !           112: #define BIOC_SVOFFLINE_S       "Offline"
        !           113: #define BIOC_SVDEGRADED                0x02
        !           114: #define BIOC_SVDEGRADED_S      "Degraded"
        !           115: #define BIOC_SVBUILDING                0x03
        !           116: #define BIOC_SVBUILDING_S      "Building"
        !           117: #define BIOC_SVSCRUB           0x04
        !           118: #define BIOC_SVSCRUB_S         "Scrubbing"
        !           119: #define BIOC_SVREBUILD         0x05
        !           120: #define BIOC_SVREBUILD_S       "Rebuild"
        !           121: #define BIOC_SVINVALID         0xff
        !           122: #define BIOC_SVINVALID_S       "Invalid"
        !           123:        u_quad_t        bv_size;        /* size of the disk */
        !           124:        int             bv_level;       /* raid level */
        !           125:        int             bv_nodisk;      /* nr of drives */
        !           126:
        !           127:        char            bv_dev[16];     /* device */
        !           128:        char            bv_vendor[32];  /* scsi string */
        !           129: };
        !           130:
        !           131: #define BIOCALARM _IOWR('B', 35, struct bioc_alarm)
        !           132: struct bioc_alarm {
        !           133:        void            *ba_cookie;
        !           134:        int             ba_opcode;
        !           135:
        !           136:        int             ba_status;      /* only used with get state */
        !           137: #define BIOC_SADISABLE         0x00    /* disable alarm */
        !           138: #define BIOC_SAENABLE          0x01    /* enable alarm */
        !           139: #define BIOC_SASILENCE         0x02    /* silence alarm */
        !           140: #define BIOC_GASTATUS          0x03    /* get status */
        !           141: #define BIOC_SATEST            0x04    /* test alarm */
        !           142: };
        !           143:
        !           144: #define BIOCBLINK _IOWR('B', 36, struct bioc_blink)
        !           145: struct bioc_blink {
        !           146:        void            *bb_cookie;
        !           147:        u_int16_t       bb_channel;
        !           148:        u_int16_t       bb_target;
        !           149:
        !           150:        int             bb_status;      /* current status */
        !           151: #define BIOC_SBUNBLINK         0x00    /* disable blinking */
        !           152: #define BIOC_SBBLINK           0x01    /* enable blink */
        !           153: #define BIOC_SBALARM           0x02    /* enable alarm blink */
        !           154: };
        !           155:
        !           156: #define BIOCSETSTATE _IOWR('B', 37, struct bioc_setstate)
        !           157: struct bioc_setstate {
        !           158:        void            *bs_cookie;
        !           159:        u_int16_t       bs_channel;
        !           160:        u_int16_t       bs_target;
        !           161:        u_int16_t       bs_lun;
        !           162:        u_int16_t       bs_other_id;    /* unused for now  */
        !           163:
        !           164:        int             bs_status;      /* change to this status */
        !           165: #define BIOC_SSONLINE          0x00    /* online disk */
        !           166: #define BIOC_SSOFFLINE         0x01    /* offline disk */
        !           167: #define BIOC_SSHOTSPARE                0x02    /* mark as hotspare */
        !           168: #define BIOC_SSREBUILD         0x03    /* rebuild on this disk */
        !           169:        int             bs_volid;       /* volume id for rebuild */
        !           170: };
        !           171:
        !           172: #define BIOCCREATERAID _IOWR('B', 38, struct bioc_createraid)
        !           173: struct bioc_createraid {
        !           174:        void            *bc_cookie;
        !           175:        void            *bc_dev_list;
        !           176:        u_int16_t       bc_dev_list_len;
        !           177: #define BIOC_CRMAXLEN          1024
        !           178:        u_int16_t       bc_level;
        !           179:        u_int32_t       bc_flags;
        !           180: #define BIOC_SCFORCE           0x01    /* do not assemble, force create */
        !           181: #define BIOC_SCDEVT            0x02    /* dev_t array or string in dev_list */
        !           182: #define BIOC_SCNOAUTOASSEMBLE  0x04    /* do not assemble during autoconf */
        !           183: };
        !           184:
        !           185: /* kernel and userspace defines */
        !           186: #define BIOC_INQ               0x0001
        !           187: #define BIOC_DISK              0x0002
        !           188: #define BIOC_VOL               0x0004
        !           189: #define BIOC_ALARM             0x0008
        !           190: #define BIOC_BLINK             0x0010
        !           191: #define BIOC_SETSTATE          0x0020
        !           192: #define BIOC_CREATERAID                0x0040
        !           193:
        !           194: /* user space defines */
        !           195: #define BIOC_DEVLIST           0x10000

CVSweb