mirror of
https://github.com/mbilker/vgpu_unlock-rs.git
synced 2026-06-17 19:47:44 +02:00
lib: limit boolean values to 0 or 1
This commit is contained in:
36
src/lib.rs
36
src/lib.rs
@@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
use std::borrow::Cow;
|
use std::borrow::Cow;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
use std::cmp;
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::fs;
|
use std::fs;
|
||||||
@@ -562,6 +563,31 @@ fn apply_profile_override(
|
|||||||
)*
|
)*
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
macro_rules! handle_bool_overrides {
|
||||||
|
($source_field:ident => $target_field:ident) => {
|
||||||
|
if let Some(value) = config_override.$source_field {
|
||||||
|
let value = cmp::max(cmp::min(value, 0), 1);
|
||||||
|
|
||||||
|
info!(
|
||||||
|
"Patching {}/{}: {} -> {}",
|
||||||
|
vgpu_type,
|
||||||
|
stringify!($target_field),
|
||||||
|
config.$target_field,
|
||||||
|
value
|
||||||
|
);
|
||||||
|
|
||||||
|
config.$target_field = value;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
($field:ident) => {
|
||||||
|
handle_bool_overrides!($field => $field);
|
||||||
|
};
|
||||||
|
($($source_field:ident $(=> $target_field:ident)?),*$(,)?) => {
|
||||||
|
$(
|
||||||
|
handle_bool_overrides!($source_field $(=> $target_field)?);
|
||||||
|
)*
|
||||||
|
};
|
||||||
|
}
|
||||||
macro_rules! handle_str_overrides {
|
macro_rules! handle_str_overrides {
|
||||||
($source_field:ident => $target_field:ident) => {
|
($source_field:ident => $target_field:ident) => {
|
||||||
if let Some(value) = config_override.$source_field {
|
if let Some(value) = config_override.$source_field {
|
||||||
@@ -672,10 +698,18 @@ fn apply_profile_override(
|
|||||||
display_height => max_resolution_y,
|
display_height => max_resolution_y,
|
||||||
max_pixels,
|
max_pixels,
|
||||||
frl_config,
|
frl_config,
|
||||||
|
}
|
||||||
|
handle_bool_overrides! {
|
||||||
cuda_enabled,
|
cuda_enabled,
|
||||||
ecc_supported,
|
ecc_supported,
|
||||||
|
}
|
||||||
|
handle_copy_overrides! {
|
||||||
mig_instance_size,
|
mig_instance_size,
|
||||||
|
}
|
||||||
|
handle_bool_overrides! {
|
||||||
multi_vgpu_supported,
|
multi_vgpu_supported,
|
||||||
|
}
|
||||||
|
handle_copy_overrides! {
|
||||||
pci_id => vdev_id,
|
pci_id => vdev_id,
|
||||||
pci_device_id => pdev_id,
|
pci_device_id => pdev_id,
|
||||||
framebuffer => fb_length,
|
framebuffer => fb_length,
|
||||||
@@ -683,6 +717,8 @@ fn apply_profile_override(
|
|||||||
framebuffer_reservation => fb_reservation,
|
framebuffer_reservation => fb_reservation,
|
||||||
encoder_capacity,
|
encoder_capacity,
|
||||||
bar1_length,
|
bar1_length,
|
||||||
|
}
|
||||||
|
handle_bool_overrides! {
|
||||||
frl_enabled => frl_enable,
|
frl_enabled => frl_enable,
|
||||||
}
|
}
|
||||||
handle_str_overrides! {
|
handle_str_overrides! {
|
||||||
|
|||||||
Reference in New Issue
Block a user