libsel4vm API
See below for usage documentation on various libsel4vm interfaces:
Common Interfaces
- sel4vm/boot.h: An interface for creating, initialising and configuring VM instances
- sel4vm/guest_irq_controller.h: Abstractions around initialising a guest VM IRQ controller
- sel4vm/guest_memory_helpers.h: Helpers for using the guest memory interface
- sel4vm/guest_vcpu_fault.h: Useful methods to query and configure vcpu objects that have faulted during execution
- sel4vm/guest_vm.h: Provides base definitions of the guest vm datastructure and primitives to run the VM instance
- sel4vm/guest_iospace.h: Enables the registration and management of a guest VM’s IO Space
- sel4vm/guest_memory.h: Useful abstractions to manage your guest VM’s physical address space
- sel4vm/guest_ram.h: A set of methods to manage, register, allocate and copy to/from a guest VM’s RAM
- sel4vm/guest_vm_util.h: A set of utilties to query a guest vm instance
Architecture Specific Interfaces
ARM
- sel4vm/arch/guest_arm_context.h: Provides a set of useful getters and setters on ARM vcpu thread contexts
- sel4vm/arch/guest_vm_arch.h: Provide definitions of the arm guest vm datastructures and primitives to configure the VM instance
X86
- sel4vm/arch/guest_x86_context.h: Provides a set of useful getters and setters on x86 vcpu thread contexts
- sel4vm/arch/guest_vm_arch.h: Provide definitions of the x86 guest vm datastructures and primitives to configure the VM instance
- sel4vm/arch/vmcall.h: Methods for registering and managing vmcall instruction handlers
- sel4vm/arch/ioports.h: Abstractions for initialising, registering and handling ioport events
libsel4vmmplatsupport API
See below for usage documentation on various libsel4vmmplatsupport interfaces:
Common Interfaces
- sel4vmmplatsupport/device.h: Provides a series of datastructures and helpers to manage VMM devices.
- sel4vmmplatsupport/device_utils.h: Provides various helpers to establish different types devices for a given VM instance
- sel4vmmplatsupport/guest_image.h: Provides general utilites to load guest vm images (e.g. kernel, initrd, modules)
- sel4vmmplatsupport/guest_memory_util.h: Provides various utilities and helpers for using the libsel4vm guest memory interface
- sel4vmmplatsupport/guest_vcpu_util.h: Provides abstractions and helpers for managing libsel4vm vcpus
- sel4vmmplatsupport/ioports.h: Useful abstraction for initialising, registering and handling ioport events for a guest VM instance
- sel4vmmplatsupport/drivers/cross_vm_connection.h: Facilitates the creation of communication channels between VM’s and other components on a seL4-based system
- sel4vmmplatsupport/drivers/pci.h: Interface presents a VMM PCI Driver, which manages the host’s PCI devices, and handles guest OS PCI config space read & writes
- sel4vmmplatsupport/drivers/pci_helper.h: This interface presents a series of helpers when using the VMM PCI Driver
- sel4vmmplatsupport/drivers/virtio_con.h: This interface provides the ability to initalise a VMM virtio console driver
- sel4vmmplatsupport/drivers/virtio_net.h: This interface provides the ability to initalise a VMM virtio net driver
Architecture Specific Interfaces
ARM
- sel4vmmplatsupport/arch/generic_forward_device.h: This interface facilitates the creation of a virtual device used for dispatching faults to external handlers
- sel4vmmplatsupport/arch/guest_boot_init.h: Provides helpers to initialise the booting state of a VM instance
- sel4vmmplatsupport/arch/guest_reboot,h: Provides a series of helpers for registering callbacks when rebooting the VMM
- sel4vmmplatsupport/arch/guest_vcpu_fault.h: Provides a module for registering and processing ARM vcpu faults
- sel4vmmplatsupport/arch/guest_vcpu_util.h: Provides abstractions and helpers for managing libsel4vm vcpus on an ARM platform
- sel4vmmplatsupport/arch/vpci.h: Presents a Virtual PCI driver for ARM-based VM’s
- sel4vmmplatsupport/arch/vusb.h: Presents a Virtual USB driver for ARM-based VM’s
- sel4vmmplatsupport/arch/ac_device.h: Facilitates the creation of generic virtual devices in a VM instance with access control permissions over the devices addressable memory
X86
- sel4vmmplatsupport/arch/acpi.h: Provides support for generating ACPI table in a guest x86 VM
- sel4vmmplatsupport/arch/guest_boot_init.h: Provides helpers to initialise the booting state of a VM instance
- sel4vmmplatsupport/arch/drivers/vmm_pci_helper.h: Interface presents a series of helpers for establishing VMM PCI support on x86 platforms