Skip to main content

Crate arm_vgic

Crate arm_vgic 

Source
Expand description

Per-VM Arm virtual Generic Interrupt Controller.

The crate owns guest architectural interrupt state. Host GIC discovery, guest firmware, VM scheduling, and bus registration remain in the AArch64 AxVM integration. GICv2 and GICv3 frontends share the same canonical state owner; the host CPU-interface implementation is a checked backend.

Structs§

AssignedSpiConfig
One physical SPI binding fixed before controller creation.
CollectionId
ITS collection identifier.
CpuInterfaceState
Complete ICH state saved for one vCPU.
EventId
ITS event identifier.
GicAffinity
Four-level GIC affinity.
GicV3BackendError
Backend-specific failure without leaking a platform error type.
GicV3Config
Complete configuration for one VM-local GICv3 controller.
GicV3Controller
One VM-local GICv3 controller.
GicV3HardwareCapabilities
Validated capabilities reported by a physical GICv3 Distributor.
GicV3MmioRegion
One guest-visible MMIO register frame.
GicV3VcpuBinding
Per-vCPU lifecycle handle returned by GicV3Controller::attach_vcpu.
GicVcpuId
VM-local vCPU identifier used by the controller.
GuestMemoryError
Guest-memory capability failure.
ItsConfig
One guest-visible ITS instance.
ItsDeviceId
ITS device identifier.
ListRegisterState
One virtual interrupt represented in an ICH list register.
LpiId
Locality-specific peripheral interrupt identifier.
PhysicalInterruptBinding
Explicit guest-to-physical SPI ownership.
PhysicalIrqId
Platform-owned physical interrupt identifier.
PhysicalMsiBinding
Explicit VM-owned physical ITS translation.
PpiId
Private peripheral interrupt identifier.
Priority
Interrupt priority, where a lower numeric value has higher priority.
SgiId
Software-generated interrupt identifier.
SoftwareGicV3Backend
Backend for software-only tests and architecture-neutral emulation.
SpiId
Shared peripheral interrupt identifier.
VgicBackendCapabilities
Normalized host virtual interrupt-interface capabilities.
VgicCore
The single canonical virtual interrupt-controller state owner for one VM.
VgicDeviceSet
Complete set of bus devices exposing one VgicCore.
VgicV2Config
Complete GICv2 configuration for one VM.
VgicV3Config
Complete GICv3 configuration for one VM.

Enums§

ArmVgicConfig
Versioned immutable VGIC configuration.
GicV3SpiOwnership
Policy describing which SPIs are visible through the guest Distributor.
HostGicVersion
Host virtual CPU-interface architecture implemented by a backend.
IntId
A validated GICv3 interrupt identifier.
InterruptState
GIC interrupt lifecycle state.
ListRegisterBacking
Source backing used for one virtual list-register delivery.
RegisterRegion
GICv3 register block involved in an access.
SgiTarget
Target selection for one SGI operation.
TriggerMode
Electrical trigger behavior for a wired interrupt.
VgicError
Errors reported by the virtual GICv3 model.

Constants§

LPI_INTID_BASE
First architectural LPI INTID.
LPI_INTID_MAX
Highest INTID representable by GICv3 LPIs.

Traits§

GicV3Backend
Version-neutral name used by the unified VGIC core. Platform operations required by a GICv3 controller.
GicV3VcpuWake
Runtime wake capability associated with one attached vCPU.
GuestMemory
Checked access to memory owned by one guest VM.
VgicBackend
Version-neutral name used by the unified VGIC core. Platform operations required by a GICv3 controller.

Type Aliases§

VgicController
Version-neutral canonical VGIC controller used by architecture frontends.
VgicMmioRegion
One sanitized guest-visible register region.
VgicResult
Result returned by GICv3 domain operations.