BIO(4) - Device Drivers Manual

BIO(4) - Device Drivers Manual #

BIO(4) - Device Drivers Manual

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

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

softraid(4)

Software RAID

The following device drivers register with bio to provide enclosure management:

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 device.

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 safte).

BIOCVOL struct 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.

BIOCALARM struct 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.

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 supported by the volume discipline.

BIOCDELETERAID struct bioc_deleteraid *‌

Remove system disk (if present) and disassemble the softraid(4) volume.

BIOCDISCIPLINE struct bioc_discipline *‌

Dispatch a discipline specific ioctl.

BIOCINSTALLBOOT struct bioc_installboot *‌

Install a boot loader.

FILES #

/dev/bio

ioctl tunnel device

SEE ALSO #

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

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>.

OpenBSD 7.5 - November 26, 2016