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> Freeze for RunnableLinuxVm<V, Vcpu>where
V: Freeze,
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.