Trait HasVcpus

Source
pub trait HasVcpus {
    type Arch: Architecture;

    // Required methods
    fn arch(&self) -> Self::Arch;
    fn vcpus_count(&self) -> usize;
    fn registers(
        &self,
        vcpu: VcpuId,
    ) -> VcpuResult<<Self::Arch as Architecture>::Registers>;
    fn special_registers(
        &self,
        vcpu: VcpuId,
    ) -> VcpuResult<<Self::Arch as Architecture>::SpecialRegisters>;
    fn other_registers(
        &self,
        vcpu: VcpuId,
    ) -> VcpuResult<<Self::Arch as Architecture>::OtherRegisters>;

    // Provided methods
    fn iter_vcpus(&self) -> VcpuIterator  { ... }
    fn instruction_pointer(&self, vcpu: VcpuId) -> VcpuResult<VirtualAddress> { ... }
    fn stack_pointer(&self, vcpu: VcpuId) -> VcpuResult<VirtualAddress> { ... }
    fn base_pointer(&self, vcpu: VcpuId) -> VcpuResult<Option<VirtualAddress>> { ... }
    fn pgd(&self, vcpu: VcpuId) -> VcpuResult<PhysicalAddress> { ... }
    fn kernel_per_cpu(&self, vcpu: VcpuId) -> VcpuResult<Option<VirtualAddress>> { ... }
}

Required Associated Types§

Required Methods§

Source

fn arch(&self) -> Self::Arch

Source

fn vcpus_count(&self) -> usize

Source

fn registers( &self, vcpu: VcpuId, ) -> VcpuResult<<Self::Arch as Architecture>::Registers>

Source

fn special_registers( &self, vcpu: VcpuId, ) -> VcpuResult<<Self::Arch as Architecture>::SpecialRegisters>

Source

fn other_registers( &self, vcpu: VcpuId, ) -> VcpuResult<<Self::Arch as Architecture>::OtherRegisters>

Provided Methods§

Implementations on Foreign Types§

Source§

impl<V: HasVcpus + ?Sized> HasVcpus for Arc<V>

Implementors§