vnd



VND(4)                    OpenBSD Programmer's Manual                   VND(4)


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/disklabel.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 5.1                      June 5, 2011                      OpenBSD 5.1

[Unix Hosting | Open-Source | Contact Us]
[Engineering & Automation | Software Development | Server Applications]