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
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
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 <firstname.lastname@example.org>. The
API was written by Marco Peereboom <email@example.com>.
BSD March 28, 2017 BSD