vmm: vm: Factorize the device and cpu managers creation routine

Into a new_from_memory_manager() routine.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
Samuel Ortiz 2020-03-17 00:39:50 +01:00 committed by Rob Bradford
parent c73c9b112c
commit 447af8e702

View File

@ -291,17 +291,15 @@ impl Vm {
Ok((kvm, fd))
}
pub fn new(
fn new_from_memory_manager(
config: Arc<Mutex<VmConfig>>,
memory_manager: Arc<Mutex<MemoryManager>>,
fd: Arc<VmFd>,
kvm: Kvm,
exit_evt: EventFd,
reset_evt: EventFd,
vmm_path: PathBuf,
) -> Result<Self> {
let (kvm, fd) = Vm::kvm_new()?;
let memory_manager = MemoryManager::new(fd.clone(), &config.lock().unwrap().memory.clone())
.map_err(Error::MemoryManager)?;
let device_manager = DeviceManager::new(
fd.clone(),
config.clone(),
@ -349,6 +347,27 @@ impl Vm {
})
}
pub fn new(
config: Arc<Mutex<VmConfig>>,
exit_evt: EventFd,
reset_evt: EventFd,
vmm_path: PathBuf,
) -> Result<Self> {
let (kvm, fd) = Vm::kvm_new()?;
let memory_manager = MemoryManager::new(fd.clone(), &config.lock().unwrap().memory.clone())
.map_err(Error::MemoryManager)?;
Vm::new_from_memory_manager(
config,
memory_manager,
fd,
kvm,
exit_evt,
reset_evt,
vmm_path,
)
}
fn load_initramfs(&mut self, guest_mem: &GuestMemoryMmap) -> Result<arch::InitramfsConfig> {
let mut initramfs = self.initramfs.as_ref().unwrap();
let size: usize = initramfs