Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OpenBSD-5.7)
Apropos / Subsearch:
optional field

BIO(4)                   BSD Kernel Interfaces Manual                   BIO(4)

     bio -- block I/O ioctl tunnel pseudo-device

     pseudo-device bio [count]

     The bio driver provides userland applications ioctl(2) access to devices
     otherwise not found as /dev nodes.  The /dev/bio device node operates by
     delegating ioctl calls to a requested device driver.  Only drivers which
     have registered with the bio device can be accessed via this interface.

     If count is given in the specification, and is greater than 0, a maximum
     of one bio device is created.

     The following device drivers register with bio for volume management:

           ami(4)         American Megatrends Inc. MegaRAID PATA/SATA/SCSI
                          RAID controller
           arc(4)         Areca Technology Corporation SAS/SATA RAID con-
           cac(4)         Compaq Smart ARRAY 2/3/4 SCSI RAID controller
           ciss(4)        Compaq Smart ARRAY 5/6 SAS/SATA/SCSI RAID controller
           ips(4)         IBM SATA/SCSI ServeRAID controller
           mfi(4)         LSI Logic & Dell MegaRAID SAS RAID controller
           mpi(4)         LSI Logic Fusion-MPT Message Passing Interface
           mpii(4)        LSI Logic Fusion-MPT Message Passing Interface II
           softraid(4)    Software RAID

     The following device drivers register with bio to provide enclosure man-

           safte(4)    SCSI Accessed Fault-Tolerant Enclosure
           ses(4)      SCSI Enclosure Services

     The following ioctl calls apply to the bio device:

     BIOCLOCATE struct bio_locate *
             Locate a named device and give back a cookie to the application
             for subsequent ioctl calls.  The cookie is used to tunnel further
             ioctls to the right device.

     BIOCINQ struct bioc_inq *
             Retrieve number of volumes and physical disks for a specific

     BIOCDISK struct bioc_disk *
             Retrieve detailed information for the specified physical disk.
             Information returned can include status, size, channel, target,
             lun, vendor name, serial number and processor device (ses or

     BIOCVOL struct bioc_vol *
             Retrieve detailed information for the specified volume.  Informa-
             tion returned can include status, size, RAID level, number of
             disks, device name association (sd?) and vendor name.

     BIOCALARM struct bioc_alarm *
             Control the alarm beeper on the device.  Supported states are:
             disable alarm, enable alarm, silence alarm, status and test

             Note:  These options might not be supported on all hardware.

     BIOCBLINK struct bioc_blink *
             Blink an LED of the specified physical disk.  Supported blink
             states are: blink LED, unblink LED and blink alarm LED.

             Note:  This option is only supported if the disk is governed by
             ses(4) or safte(4) and the hardware supports hardware blinking.

     BIOCSETSTATE struct bioc_setstate *
             Alter the state of specified physical disk.  Supported states
             are: create hot-spare, online disk and offline disk.

     The following ioctl calls apply to the bio device only when talking to a
     softraid(4) device:

     BIOCCREATERAID struct bioc_createraid *
             Create a new volume or assemble an existing volume.  The volume
             will be attached as a system disk, if this capability is sup-
             ported by the volume discipline.

     BIOCDELETERAID struct bioc_deleteraid *
             Remove system disk (if present) and disassemble the softraid(4)

     BIOCDISCIPLINE struct bioc_discipline *
             Dispatch a discipline specific ioctl.

     BIOCINSTALLBOOT struct bioc_installboot *
             Install a boot loader.

     /dev/bio  ioctl tunnel device

     ioctl(2), softraid(4), bioctl(8)

     The bio driver first appeared in OpenBSD 3.2.

     The bio driver was written by Niklas Hallqvist <niklas@openbsd.org>.  The
     API was written by Marco Peereboom <marco@openbsd.org>.

BSD                              June 28, 2014                             BSD