From 447af8e70223f237da9d37977760382670cea91d Mon Sep 17 00:00:00 2001 From: Samuel Ortiz Date: Tue, 17 Mar 2020 00:39:50 +0100 Subject: [PATCH] vmm: vm: Factorize the device and cpu managers creation routine Into a new_from_memory_manager() routine. Signed-off-by: Samuel Ortiz --- vmm/src/vm.rs | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/vmm/src/vm.rs b/vmm/src/vm.rs index b64f4f964..926339da7 100755 --- a/vmm/src/vm.rs +++ b/vmm/src/vm.rs @@ -291,17 +291,15 @@ impl Vm { Ok((kvm, fd)) } - pub fn new( + fn new_from_memory_manager( config: Arc>, + memory_manager: Arc>, + fd: Arc, + kvm: Kvm, exit_evt: EventFd, reset_evt: EventFd, vmm_path: PathBuf, ) -> Result { - 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>, + exit_evt: EventFd, + reset_evt: EventFd, + vmm_path: PathBuf, + ) -> Result { + 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 { let mut initramfs = self.initramfs.as_ref().unwrap(); let size: usize = initramfs