Crate uhyve_interface

Crate uhyve_interface 

Source
Expand description

§Uhyve Hypervisor Interface

The Uhyve hypercall interface works as follows:

  • On x86_64 you use an out port instruction. The address of the out-port corresponds to the hypercall you want to use. You can obtain it from the [IoPorts] enum. The data send to that port is the physical memory address (of the VM) of the parameters of that hypercall.
  • On aarch64 you write to the respective HypercallAddress. The 64-bit value written to that location is the guest’s physical memory address of the hypercall’s parameter.

Modules§

parameters
Parameters for hypercalls.

Structs§

GuestPhysAddr
A physical memory address.
GuestVirtAddr
A virtual memory address on aarch64.

Enums§

Hypercall
Hypervisor calls available in Uhyve with their respective parameters. See the module level documentation on how to invoke them.
HypercallAddress
Enum containing all valid port mappings for hypercalls.

Constants§

MAX_ARGC_ENVC
The maximum number of items in an argument of environment vector.
UHYVE_INTERFACE_VERSION
The version of the Uhyve interface. Note: This is not the same as the semver of the crate but should be increased on every version bump that changes the API.
UHYVE_PORT_NETWRITE