PVBUS(4) | Device Drivers Manual | PVBUS(4) |
pvbus
—
paravirtual device tree root
pvbus0 at mainbus0
#include <sys/types.h>
#include <sys/ioctl.h>
#include <dev/pv/pvvar.h>
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.
Note that a hypervisor can attempt to emulate other hypervisors, so multiple hypervisor interfaces may be available on the same host.
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
PVBUSIOC_KVTYPE
PVBUSIOC_KVWRITE
pvbus
device unit u
file.The pvbus
pseudo-bus first appeared in
OpenBSD 5.8.
The pvbus
pseudo-bus was written by
Reyk Floeter
<reyk@openbsd.org>.
June 14, 2017 | OpenBSD-current |