May 25, 2008 BIO 4

### NAME

bio - Block IO ioctl tunnel pseudo-device

### SYNOPSIS

pseudo-device bio

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

The following device drivers register with bio for volume management:

arcmsr(4)
  Areca Technology Corporation SATA RAID controller
cac(4)
  Compaq RAID array controller
ciss(4)
  Compaq Smart ARRAY 5/6 SAS/SATA/SCSI RAID controller
mfi(4)
  LSI Logic & Dell MegaRAID SAS RAID controller

The following ioctl calls apply to the bio device:

```BIOCLOCATE`
  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`
  Retrieve number of volumes and physical disks for a specific device.

```BIOCDISK`
  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).

```BIOCDISK_NOVOL`
  Is just the same as BIOCDISK but doesn't require the disks to be in volume sets, so this applies to any physical disk connected to the controller.

  Note: this ioctl might not be supported on all hardware.

```BIOCVOL`
  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`
  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`
  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`
  Alter the state of specified physical disk. Supported states are: create/remove hot-spare, create/remove pass through disk, start/stop consistency check in a volume, online disk and offline disk.

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

```BIOCVOLOPS`
  For operations in volume sets. It's able to create and remove a volume set in a supported RAID controller.

  Note: this ioctl might not be supported on all hardware.

### FILES

```/dev/bio`
  ioctl tunnel device

### SEE ALSO

ioctl(2), bioctl(8)

### HISTORY

The bio driver first appeared in OpenBSD3.2 and NetBSD4.0.

### AUTHORS

The bio driver was written by Niklas Hallqvist <niklas@openbsd.org>. The API was written by Marco Peereboom <marco@openbsd.org> and was extended even more for NetBSD by Juan Romero Pardines <xtraeme@netbsd.org>.