VND(4) - Device Drivers Manual

VND(4) - Device Drivers Manual #

VND(4) - Device Drivers Manual

NAME #

vnd - vnode disk driver

SYNOPSIS #

pseudo-device vnd [count]

DESCRIPTION #

The vnd driver provides a disk-like interface to a file. This is useful for a variety of applications, such as building miniroot or floppy disk images.

This document assumes familiarity with how to generate kernels and how to properly configure disks and pseudo-devices in a kernel configuration file.

In order to compile in support for vnd devices, a line similar to the following must be present in the kernel configuration file:

pseudo-device	vnd	4	# vnode disk driver

The count argument is how many vnds memory is allocated for at boot time. In this example, no more than 4 vnds may be configured.

There is a run-time utility that is used for configuring vnds. See vnconfig(8) for more information.

IOCTL INTERFACE #

The following ioctl(2) calls are defined in <dev/vndioctl.h>:

VNDIOCSET struct vnd_ioctl *‌

Associate the file vnd_file with a vnd pseudo device, optionally encrypted using the Blowfish cipher and the key specified in vnd_key of length vnd_keylen. The size of the configured device is returned in vnd_size.

struct vnd_ioctl { char *vnd_file; off_t vnd_size; u_char *vnd_key; int vnd_keylen; };

VNDIOCCLR struct vnd_ioctl *‌

Disassociate a vnd device.

VNDIOCGET struct vnd_user *‌

Get the associated file name, device, inode number, and unit number of a vnd device. If vnu_unit is -1, information on the vnd device corresponding to the file descriptor passed to ioctl(2) will be returned. Otherwise, vnu_unit may contain the unit number of another vnd device. This allows for opening just vnd0 and querying all available devices.

struct vnd_user { char vnufile[VNDNLEN]; int vnu_unit; dev_t vnu_dev; ino_t vnu_ino; };

Additionally, some disklabel(8) related ioctl(2) calls defined in <sys/dkio.h> are available: DIOCGDINFO, DIOCSDINFO, and DIOCWDINFO. They are documented in sd(4).

FILES #

/dev/{,r}vnd*‌

vnd device special files

SEE ALSO #

ioctl(2), sd(4), disklabel(5), config(8), disklabel(8), fdisk(8), fsck(8), MAKEDEV(8), mount(8), newfs(8), vnconfig(8)

OpenBSD 7.5 - July 2, 2014