DragonFly On-Line Manual Pages
VMM(2) DragonFly System Calls Manual VMM(2)
NAME
vmm_guest_ctl, vmm_guest_sync_addr -- enter VMM mode / sync VMM threads
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/vmm.h>
int
vmm_guest_ctl(int op, struct vmm_guest_options *options);
int
vmm_guest_sync_addr(long *dstaddr, long *srcaddr);
DESCRIPTION
In order to run a virtual machine on top of the host operating system,
two sets of page tables are needed (one each for the host and guest).
Older CPUs supports only one level of page tables and the second level
had to be emulated in software. Modern CPUs have support for a second
level of page table translations, such as Intel's EPT or AMD's RVI. The
vmm_*() functions bring the guest virtual machine into a state in which
the hardware is able to walk two levels of page tables.
The only op currently supported by vmm_guest_ctl() is VMM_GUEST_RUN,
which bootstraps the calling process as a VMM process running with
extended/nested page table support (two layers of page tables). The
vmm_guest_options struct is defined in <sys/vmm.h>.
The vmm_guest_sync_addr() function copies the content of srcaddr to
dstaddr, synchronizing with all CPUs which are in VMM mode (i.e., all
CPUs will see srcaddr's value at dstaddr).
HISTORY
The vmm_guest_ctl() and vmm_guest_sync_addr() system calls were added in
DragonFly 3.5.
AUTHORS
Mihai Carabas
DragonFly 5.5 September 1, 2015 DragonFly 5.5