[OpenBSD]

Manual Page Search Parameters

PVBUS(4) Device Drivers Manual PVBUS(4)

NAME

pvbusparavirtual device tree root

SYNOPSIS

pvbus0 at mainbus0

#include <sys/types.h>
#include <sys/ioctl.h>
#include <dev/pv/pvvar.h>

DESCRIPTION

pvbus is used on virtual machines that are running on hypervisors. It provides a pseudo-bus for all paravirtual devices that do not attach to a well-known bus like pci(4). The pvbus driver is responsible for detecting the hypervisor interface, checking the capabilities, attaching the paravirtual devices, and providing access to supported information stores.

Supported hypervisors

KVM
Kernel-based Virtual Machine
Hyper-V
Microsoft Hyper-V
OpenBSD
OpenBSD vmm(4)
VMware
VMware vSphere Hypervisor and ESXi
Xen
Xen VMM
Note that a hypervisor can attempt to emulate other hypervisors, so multiple hypervisor interfaces may be available on the same host.

VMware paravirtual devices

vmt(4)
VMware Tools driver and “guestinfo” information store

Hyper-V paravirtual devices

hvn(4)
Hyper-V virtual networking interface
hvs(4)
Hyper-V virtual disk
hyperv(4)
Hyper-V guest nexus device

Xen paravirtual devices

xbf(4)
Xen Blkfront virtual disk
xen(4)
Xen domU nexus device and XenStore information store
xnf(4)
Xen Netfront virtual networking interface

IOCTL INTERFACE

pvbus supports ioctl(2) commands to exchange information with the hypervisor interface, as implemented in the hostctl(8) program. Each detected hypervisor interface is available as a character special device file, /dev/pvbus0, /dev/pvbus1, etc. All available commands use the same pvbus_req structure:
struct pvbus_req { 
	size_t			 pvr_keylen; 
	char			*pvr_key; 
	size_t			 pvr_valuelen; 
	char			*pvr_value; 
};
The caller is responsible for attaching character buffers to the pvr_key and pvr_value fields and to set their length in pvr_keylen and pvr_valuelen accordingly. All keys and values are nul-terminated strings.
The following ioctl(2) commands are available:
 
 
PVBUSIOC_KVREAD
Read the value from pvr_key and return it in pvr_value.
 
 
PVBUSIOC_KVTYPE
Return the type of the attached hypervisor interface as a string in pvr_key; see Supported hypervisors.
 
 
PVBUSIOC_KVWRITE
Write the new value pvr_value to the key pvr_key. This command requires write permissions on the device file.

FILES

/dev/pvbusu
pvbus device unit u file.

SEE ALSO

autoconf(4), intro(4), mainbus(4), vmm(4), hostctl(8)

HISTORY

The pvbus pseudo-bus first appeared in OpenBSD 5.8.

AUTHORS

The pvbus pseudo-bus was written by Reyk Floeter <reyk@openbsd.org>.
June 14, 2017 OpenBSD-current