Skip to main content

Crate squib_core

Crate squib_core 

Source
Expand description

Portable types and traits at the heart of squib.

This crate intentionally has zero OS dependencies: it defines the abstractions that backend crates (squib-vz, squib-hvf) implement, the device traits the VMM crate consumes, and the value types that flow through the API server. See specs/squib-design.md for the architectural picture.

The crate is organized as:

Re-exports§

pub use backend::BackendCapabilities;
pub use backend::BackendKind;
pub use backend::HypervisorBackend;
pub use backend::MAX_SUPPORTED_VCPUS;
pub use backend::Vm;
pub use error::Error;
pub use error::Result;
pub use exit::DebugInfo;
pub use exit::VmExit;
pub use identifiers::HOST_DEV_NAME_MAX_BYTES;
pub use identifiers::HostDevName;
pub use identifiers::IdentifierError;
pub use lifecycle::LifecyclePhase;
pub use lifecycle::WireVmState;
pub use memory::GuestAddress;
pub use memory::GuestMemory;
pub use memory::GuestMemoryRegion;
pub use memory::GuestRange;
pub use memory::Protection;
pub use memory::SliceGuestMemory;
pub use vcpu::Irq;
pub use vcpu::Regs;
pub use vcpu::Vcpu;

Modules§

backend
The hypervisor backend trait surface.
error
Error type for portable squib operations.
exit
The portable VmExit enum.
identifiers
Squib-wide validated identifier newtypes.
lifecycle
VM lifecycle phases — internal six-state enum.
memory
Guest-physical address ranges and memory protection types.
vcpu
vCPU trait and the architecture-tagged register file.