NAME
bio —
block I/O ioctl tunnel
pseudo-device
SYNOPSIS
pseudo-device bio
[count]
DESCRIPTION
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 controller
- cac(4)
- Compaq Smart Array 2/3/4 SCSI RAID controller
- ciss(4)
- Compaq Smart Array SAS/SATA/SCSI RAID controller
- gdt(4)
- ICP-Vortex and Intel GDT SATA/SCSI RAID controller
- ips(4)
- IBM SATA/SCSI ServeRAID controller
- mfi(4)
- LSI Logic & Dell MegaRAID SAS RAID controller
- mfii(4)
- LSI Logic MegaRAID SAS Fusion RAID controller
- mpi(4)
- LSI Logic Fusion-MPT Message Passing Interface
- mpii(4)
- LSI Logic Fusion-MPT Message Passing Interface II
- nvme(4)
- NVMe storage controllers
- softraid(4)
- Software RAID
The following device drivers register with
bio to provide enclosure management:
The following ioctl calls apply to the bio
device:
BIOCLOCATEstruct 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.
BIOCINQstruct bioc_inq *- Retrieve number of volumes and physical disks for a specific device.
BIOCDISKstruct 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 safte).
BIOCVOLstruct bioc_vol *- Retrieve detailed information for the specified volume. Information returned can include status, size, RAID level, number of disks, device name association (sd?) and vendor name.
BIOCALARMstruct bioc_alarm *- Control the alarm beeper on the device. Supported states are: disable
alarm, enable alarm, silence alarm, status and test alarm.
Note: These options might not be supported on all hardware.
BIOCBLINKstruct 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.
BIOCSETSTATEstruct 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:
BIOCCREATERAIDstruct bioc_createraid *- Create a new volume or assemble an existing volume. The volume will be attached as a system disk, if this capability is supported by the volume discipline.
BIOCDELETERAIDstruct bioc_deleteraid *- Remove system disk (if present) and disassemble the softraid(4) volume.
BIOCDISCIPLINEstruct bioc_discipline *- Dispatch a discipline specific ioctl.
BIOCINSTALLBOOTstruct bioc_installboot *- Install a boot loader.
FILES
- /dev/bio
- ioctl tunnel device
SEE ALSO
HISTORY
The bio driver first appeared in
OpenBSD 3.2.
AUTHORS
The bio driver was written by
Niklas Hallqvist
<niklas@openbsd.org>.
The API was written by Marco Peereboom
<marco@openbsd.org>.