Struct arch::RunnableLinuxVm
source · pub struct RunnableLinuxVm<V: VmArch, Vcpu: VcpuArch> {Show 21 fields
pub bat_control: Option<BatControl>,
pub delay_rt: bool,
pub devices_thread: Option<JoinHandle<()>>,
pub hotplug_bus: BTreeMap<u8, Arc<Mutex<dyn HotPlugBus>>>,
pub io_bus: Arc<Bus>,
pub irq_chip: Box<dyn IrqChipArch>,
pub mmio_bus: Arc<Bus>,
pub no_smt: bool,
pub pid_debug_label_map: BTreeMap<u32, String>,
pub platform_devices: Vec<Arc<Mutex<dyn BusDevice>>>,
pub pm: Option<Arc<Mutex<dyn PmResource + Send>>>,
pub resume_notify_devices: Vec<Arc<Mutex<dyn BusResumeDevice>>>,
pub root_config: Arc<Mutex<PciRoot>>,
pub rt_cpus: CpuSet,
pub suspend_tube: (Arc<Mutex<SendTube>>, RecvTube),
pub vcpu_affinity: Option<VcpuAffinity>,
pub vcpu_count: usize,
pub vcpu_init: Vec<VcpuInitArch>,
pub vcpus: Option<Vec<Vcpu>>,
pub vm: V,
pub vm_request_tubes: Vec<Tube>,
}
Expand description
Holds the elements needed to run a Linux VM. Created by build_vm
.
Fields§
§bat_control: Option<BatControl>
§delay_rt: bool
§devices_thread: Option<JoinHandle<()>>
§hotplug_bus: BTreeMap<u8, Arc<Mutex<dyn HotPlugBus>>>
§io_bus: Arc<Bus>
§irq_chip: Box<dyn IrqChipArch>
§mmio_bus: Arc<Bus>
§no_smt: bool
§pid_debug_label_map: BTreeMap<u32, String>
§platform_devices: Vec<Arc<Mutex<dyn BusDevice>>>
§pm: Option<Arc<Mutex<dyn PmResource + Send>>>
§resume_notify_devices: Vec<Arc<Mutex<dyn BusResumeDevice>>>
Devices to be notified before the system resumes from the S3 suspended state.
root_config: Arc<Mutex<PciRoot>>
§rt_cpus: CpuSet
§suspend_tube: (Arc<Mutex<SendTube>>, RecvTube)
§vcpu_affinity: Option<VcpuAffinity>
§vcpu_count: usize
§vcpu_init: Vec<VcpuInitArch>
§vcpus: Option<Vec<Vcpu>>
If vcpus is None, then it’s the responsibility of the vcpu thread to create vcpus.
If it’s Some, then build_vm
already created the vcpus.
vm: V
§vm_request_tubes: Vec<Tube>
Auto Trait Implementations§
impl<V, Vcpu> !RefUnwindSafe for RunnableLinuxVm<V, Vcpu>
impl<V, Vcpu> Send for RunnableLinuxVm<V, Vcpu>
impl<V, Vcpu> !Sync for RunnableLinuxVm<V, Vcpu>
impl<V, Vcpu> Unpin for RunnableLinuxVm<V, Vcpu>
impl<V, Vcpu> !UnwindSafe for RunnableLinuxVm<V, Vcpu>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.