lib: make PCI info mapping use a proper structure

This commit is contained in:
Matt Bilker
2025-11-08 14:15:48 +00:00
parent e8c1d1381e
commit ee674ff856
2 changed files with 9 additions and 6 deletions

View File

@@ -25,7 +25,13 @@ pub struct Config {
#[serde(default = "Defaults::unlock_migration")] #[serde(default = "Defaults::unlock_migration")]
pub unlock_migration: bool, pub unlock_migration: bool,
#[serde(default)] #[serde(default)]
pub pci_info_map: Option<HashMap<u32, u32>>, pub pci_info_map: Option<HashMap<u32, PciInfoMapEntry>>,
}
#[derive(Deserialize)]
pub struct PciInfoMapEntry {
pub device_id: u16,
pub sub_system_id: u16,
} }
impl Default for Config { impl Default for Config {

View File

@@ -490,11 +490,8 @@ pub unsafe extern "C" fn ioctl(fd: RawFd, request: c_ulong, argp: *mut c_void) -
let actual_device_id = (orig_device_id & 0xffff0000) >> 16; let actual_device_id = (orig_device_id & 0xffff0000) >> 16;
let actual_sub_system_id = (orig_sub_system_id & 0xffff0000) >> 16; let actual_sub_system_id = (orig_sub_system_id & 0xffff0000) >> 16;
let (spoofed_devid, spoofed_subsysid) = if let Some(mapped_id) = mapped_id { let (spoofed_devid, spoofed_subsysid) = if let Some(mapping) = mapped_id {
let device_id = (mapped_id & 0xffff0000) >> 16; (mapping.device_id as u32, mapping.sub_system_id as u32)
let sub_system_id = mapped_id & 0xffff;
(device_id, sub_system_id)
} else { } else {
match actual_device_id { match actual_device_id {
// Maxwell // Maxwell