mirror of
https://github.com/mbilker/vgpu_unlock-rs.git
synced 2026-01-17 11:57:00 +01:00
lib: make PCI info mapping use a proper structure
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user