vmm: Make DeviceConfig owned

Convert Path to PathBuf and remove the associated lifetime.

Fixes #298

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
Samuel Ortiz 2019-09-23 19:31:41 +02:00 committed by Rob Bradford
parent 36137232f0
commit 5f8a62f3d0
2 changed files with 7 additions and 7 deletions

View File

@ -451,14 +451,14 @@ impl ConsoleConfig {
} }
#[derive(Debug)] #[derive(Debug)]
pub struct DeviceConfig<'a> { pub struct DeviceConfig {
pub path: &'a Path, pub path: PathBuf,
} }
impl<'a> DeviceConfig<'a> { impl DeviceConfig {
pub fn parse(device: &'a str) -> Result<Self> { pub fn parse(device: &str) -> Result<Self> {
Ok(DeviceConfig { Ok(DeviceConfig {
path: Path::new(device), path: PathBuf::from(device),
}) })
} }
} }
@ -620,7 +620,7 @@ pub struct VmConfig<'a> {
pub pmem: Option<Vec<PmemConfig>>, pub pmem: Option<Vec<PmemConfig>>,
pub serial: ConsoleConfig, pub serial: ConsoleConfig,
pub console: ConsoleConfig, pub console: ConsoleConfig,
pub devices: Option<Vec<DeviceConfig<'a>>>, pub devices: Option<Vec<DeviceConfig>>,
pub vhost_user_net: Option<Vec<VhostUserNetConfig<'a>>>, pub vhost_user_net: Option<Vec<VhostUserNetConfig<'a>>>,
pub vhost_user_blk: Option<Vec<VhostUserBlkConfig<'a>>>, pub vhost_user_blk: Option<Vec<VhostUserBlkConfig<'a>>>,
pub vsock: Option<Vec<VsockConfig<'a>>>, pub vsock: Option<Vec<VsockConfig<'a>>>,

View File

@ -857,7 +857,7 @@ impl DeviceManager {
for device_cfg in device_list_cfg.iter() { for device_cfg in device_list_cfg.iter() {
let vfio_device = let vfio_device =
VfioDevice::new(device_cfg.path, device_fd.clone(), vm_info.memory.clone()) VfioDevice::new(&device_cfg.path, device_fd.clone(), vm_info.memory.clone())
.map_err(DeviceManagerError::VfioCreate)?; .map_err(DeviceManagerError::VfioCreate)?;
let mut vfio_pci_device = VfioPciDevice::new(vm_info.vm_fd, allocator, vfio_device) let mut vfio_pci_device = VfioPciDevice::new(vm_info.vm_fd, allocator, vfio_device)