From 715a7d90653d829abd85cb02d221ca756a82bc8e Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Thu, 13 Jan 2022 10:17:30 +0000 Subject: [PATCH] vmm: Add convenience API for getting slots to FDs mapping This will be used for sending those file descriptors for local migration. Signed-off-by: Rob Bradford --- vmm/src/memory_manager.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/vmm/src/memory_manager.rs b/vmm/src/memory_manager.rs index db4188ca8..4f3bf9884 100644 --- a/vmm/src/memory_manager.rs +++ b/vmm/src/memory_manager.rs @@ -1813,6 +1813,22 @@ impl MemoryManager { next_hotplug_slot: self.next_hotplug_slot, } } + + pub fn memory_slot_fds(&self) -> HashMap { + let mut memory_slot_fds = HashMap::new(); + for guest_ram_mapping in &self.guest_ram_mappings { + let slot = guest_ram_mapping.slot; + let guest_memory = self.guest_memory.memory(); + let file = guest_memory + .find_region(GuestAddress(guest_ram_mapping.gpa)) + .unwrap() + .file_offset() + .unwrap() + .file(); + memory_slot_fds.insert(slot, file.as_raw_fd()); + } + memory_slot_fds + } } #[cfg(feature = "acpi")]