The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/biovar.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: 3d731fe8cc29d1433e24fb0ccad94fbf


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.