Expand description
§Uhyve Hypervisor Interface
The Uhyve hypercall interface works as follows:
- On
x86_64
you use an out port instruction. The address of theout
-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 respectiveHypercallAddress
. The 64-bit value written to that location is the guest’s physical memory address of the hypercall’s parameter.
Modules§
- elf
- Utility to place the Uhyve interface version in the elf header of the hermit kernel.
- parameters
- Parameters for hypercalls.
Macros§
- define_
uhyve_ interface_ version - Defines the Uhyve interface version in the note section.
Structs§
- Guest
Phys Addr - A 64-bit physical memory address.
- Guest
Virt Addr - A canonical 64-bit virtual memory address.
Enums§
- Hypercall
- Hypervisor calls available in Uhyve with their respective parameters. See the module level documentation on how to invoke them.
- Hypercall
Address - 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