From d549c224fc80768685f90fb8d24706c238281708 Mon Sep 17 00:00:00 2001 From: szy Date: Thu, 25 Sep 2025 13:55:17 +0800 Subject: [PATCH 1/3] add PassThroughDeviceConfig #[serde(default)] and excluded_devices --- src/lib.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 8441859..5b55438 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -233,17 +233,21 @@ pub struct EmulatedDeviceConfig { } /// A part of `AxVMConfig`, which represents the configuration of a pass-through device for a virtual machine. -#[derive(Debug, Default, Clone, serde::Serialize, serde::Deserialize)] +#[derive(Debug, Default, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct PassThroughDeviceConfig { /// The name of the device. pub name: String, /// The base GPA (Guest Physical Address) of the device. + #[serde(default)] pub base_gpa: usize, /// The base HPA (Host Physical Address) of the device. + #[serde(default)] pub base_hpa: usize, /// The address length of the device. + #[serde(default)] pub length: usize, /// The IRQ (Interrupt Request) ID of the device. + #[serde(default)] pub irq_id: usize, } @@ -339,6 +343,9 @@ pub struct VMDevicesConfig { /// How the VM should handle interrupts and interrupt controllers. #[serde(default)] pub interrupt_mode: VMInterruptMode, + ///we would not like to pass through devices + #[serde(default)] + pub excluded_devices: Vec>, } /// The configuration structure for the guest VM serialized from a toml file provided by user, From 94e5a7f9993404e7d9f7a01cee34e5ac506c5023 Mon Sep 17 00:00:00 2001 From: szy Date: Thu, 25 Sep 2025 14:10:17 +0800 Subject: [PATCH 2/3] fix get_vm_config_template.excluded_devices bug --- src/templates.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/templates.rs b/src/templates.rs index 7262501..fbe9203 100644 --- a/src/templates.rs +++ b/src/templates.rs @@ -66,6 +66,7 @@ pub fn get_vm_config_template( emu_devices: vec![], // No emulated devices by default passthrough_devices: vec![], // No passthrough devices by default interrupt_mode: Default::default(), // Use default interrupt mode + excluded_devices: vec![], // No excluded devices by default }, } } From c442ac05baef1517ed35a2812fbbedc55e390ac4 Mon Sep 17 00:00:00 2001 From: szy Date: Thu, 25 Sep 2025 14:11:53 +0800 Subject: [PATCH 3/3] fix fmt bug --- src/templates.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/templates.rs b/src/templates.rs index fbe9203..20439f7 100644 --- a/src/templates.rs +++ b/src/templates.rs @@ -66,7 +66,7 @@ pub fn get_vm_config_template( emu_devices: vec![], // No emulated devices by default passthrough_devices: vec![], // No passthrough devices by default interrupt_mode: Default::default(), // Use default interrupt mode - excluded_devices: vec![], // No excluded devices by default + excluded_devices: vec![], // No excluded devices by default }, } }