mirror of
https://github.com/mbilker/vgpu_unlock-rs.git
synced 2026-01-17 11:57:00 +01:00
cargo: upgrade toml to 0.8.11
This commit is contained in:
@@ -12,9 +12,9 @@ ctor = "0.1.21"
|
|||||||
libc = "0.2.102"
|
libc = "0.2.102"
|
||||||
parking_lot = "0.11.2"
|
parking_lot = "0.11.2"
|
||||||
serde = { version = "1.0.130", features = ["derive"] }
|
serde = { version = "1.0.130", features = ["derive"] }
|
||||||
toml = "0.5.8"
|
toml = "0.8.11"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
# Feature flag to enable syntactic sugar for proxmox users
|
# Feature flag to enable syntactic sugar for proxmox users
|
||||||
proxmox = []
|
|
||||||
default = ["proxmox"]
|
default = ["proxmox"]
|
||||||
|
proxmox = []
|
||||||
|
|||||||
52
src/lib.rs
52
src/lib.rs
@@ -96,7 +96,7 @@ trait VgpuConfigLike {
|
|||||||
fn vgpu_type(&mut self) -> &mut u32;
|
fn vgpu_type(&mut self) -> &mut u32;
|
||||||
fn vgpu_name(&mut self) -> &mut [u8; 32];
|
fn vgpu_name(&mut self) -> &mut [u8; 32];
|
||||||
fn vgpu_class(&mut self) -> &mut [u8; 32];
|
fn vgpu_class(&mut self) -> &mut [u8; 32];
|
||||||
fn vgpu_signature(&mut self) -> &mut [u8; 128];
|
//fn vgpu_signature(&mut self) -> &mut [u8; 128];
|
||||||
fn license(&mut self) -> &mut [u8; 128];
|
fn license(&mut self) -> &mut [u8; 128];
|
||||||
fn max_instance(&mut self) -> &mut u32;
|
fn max_instance(&mut self) -> &mut u32;
|
||||||
fn num_heads(&mut self) -> &mut u32;
|
fn num_heads(&mut self) -> &mut u32;
|
||||||
@@ -110,7 +110,7 @@ trait VgpuConfigLike {
|
|||||||
fn multi_vgpu_supported(&mut self) -> &mut u32;
|
fn multi_vgpu_supported(&mut self) -> &mut u32;
|
||||||
fn vdev_id(&mut self) -> &mut u64;
|
fn vdev_id(&mut self) -> &mut u64;
|
||||||
fn pdev_id(&mut self) -> &mut u64;
|
fn pdev_id(&mut self) -> &mut u64;
|
||||||
fn profile_size(&mut self) -> Option<&mut u64>;
|
//fn profile_size(&mut self) -> Option<&mut u64>;
|
||||||
fn fb_length(&mut self) -> &mut u64;
|
fn fb_length(&mut self) -> &mut u64;
|
||||||
fn mappable_video_size(&mut self) -> &mut u64;
|
fn mappable_video_size(&mut self) -> &mut u64;
|
||||||
fn fb_reservation(&mut self) -> &mut u64;
|
fn fb_reservation(&mut self) -> &mut u64;
|
||||||
@@ -121,7 +121,7 @@ trait VgpuConfigLike {
|
|||||||
fn adapter_name_unicode(&mut self) -> &mut [u16; 64];
|
fn adapter_name_unicode(&mut self) -> &mut [u16; 64];
|
||||||
fn short_gpu_name_string(&mut self) -> &mut [u8; 64];
|
fn short_gpu_name_string(&mut self) -> &mut [u8; 64];
|
||||||
fn licensed_product_name(&mut self) -> &mut [u8; 128];
|
fn licensed_product_name(&mut self) -> &mut [u8; 128];
|
||||||
fn vgpu_extra_params(&mut self) -> &mut [u8];
|
//fn vgpu_extra_params(&mut self) -> &mut [u8];
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! impl_trait_fn {
|
macro_rules! impl_trait_fn {
|
||||||
@@ -148,7 +148,7 @@ impl VgpuConfigLike for NvA082CtrlCmdHostVgpuDeviceGetVgpuTypeInfoParams {
|
|||||||
impl_trait_fn!(vgpu_type, u32);
|
impl_trait_fn!(vgpu_type, u32);
|
||||||
impl_trait_fn!(vgpu_name, [u8; 32]);
|
impl_trait_fn!(vgpu_name, [u8; 32]);
|
||||||
impl_trait_fn!(vgpu_class, [u8; 32]);
|
impl_trait_fn!(vgpu_class, [u8; 32]);
|
||||||
impl_trait_fn!(vgpu_signature, [u8; 128]);
|
//impl_trait_fn!(vgpu_signature, [u8; 128]);
|
||||||
impl_trait_fn!(license, [u8; 128]);
|
impl_trait_fn!(license, [u8; 128]);
|
||||||
impl_trait_fn!(max_instance, u32);
|
impl_trait_fn!(max_instance, u32);
|
||||||
impl_trait_fn!(num_heads, u32);
|
impl_trait_fn!(num_heads, u32);
|
||||||
@@ -163,9 +163,11 @@ impl VgpuConfigLike for NvA082CtrlCmdHostVgpuDeviceGetVgpuTypeInfoParams {
|
|||||||
impl_trait_fn!(vdev_id, u64);
|
impl_trait_fn!(vdev_id, u64);
|
||||||
impl_trait_fn!(pdev_id, u64);
|
impl_trait_fn!(pdev_id, u64);
|
||||||
|
|
||||||
|
/*
|
||||||
fn profile_size(&mut self) -> Option<&mut u64> {
|
fn profile_size(&mut self) -> Option<&mut u64> {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
impl_trait_fn!(fb_length, u64);
|
impl_trait_fn!(fb_length, u64);
|
||||||
impl_trait_fn!(mappable_video_size, u64);
|
impl_trait_fn!(mappable_video_size, u64);
|
||||||
@@ -177,14 +179,14 @@ impl VgpuConfigLike for NvA082CtrlCmdHostVgpuDeviceGetVgpuTypeInfoParams {
|
|||||||
impl_trait_fn!(adapter_name_unicode, [u16; 64]);
|
impl_trait_fn!(adapter_name_unicode, [u16; 64]);
|
||||||
impl_trait_fn!(short_gpu_name_string, [u8; 64]);
|
impl_trait_fn!(short_gpu_name_string, [u8; 64]);
|
||||||
impl_trait_fn!(licensed_product_name, [u8; 128]);
|
impl_trait_fn!(licensed_product_name, [u8; 128]);
|
||||||
impl_trait_fn!(vgpu_extra_params, [u8]);
|
//impl_trait_fn!(vgpu_extra_params, [u8]);
|
||||||
}
|
}
|
||||||
|
|
||||||
impl VgpuConfigLike for NvA081CtrlVgpuInfo {
|
impl VgpuConfigLike for NvA081CtrlVgpuInfo {
|
||||||
impl_trait_fn!(vgpu_type, u32);
|
impl_trait_fn!(vgpu_type, u32);
|
||||||
impl_trait_fn!(vgpu_name, [u8; 32]);
|
impl_trait_fn!(vgpu_name, [u8; 32]);
|
||||||
impl_trait_fn!(vgpu_class, [u8; 32]);
|
impl_trait_fn!(vgpu_class, [u8; 32]);
|
||||||
impl_trait_fn!(vgpu_signature, [u8; 128]);
|
//impl_trait_fn!(vgpu_signature, [u8; 128]);
|
||||||
impl_trait_fn!(license, [u8; 128]);
|
impl_trait_fn!(license, [u8; 128]);
|
||||||
impl_trait_fn!(max_instance, u32);
|
impl_trait_fn!(max_instance, u32);
|
||||||
impl_trait_fn!(num_heads, u32);
|
impl_trait_fn!(num_heads, u32);
|
||||||
@@ -199,9 +201,11 @@ impl VgpuConfigLike for NvA081CtrlVgpuInfo {
|
|||||||
impl_trait_fn_aligned!(vdev_id, u64);
|
impl_trait_fn_aligned!(vdev_id, u64);
|
||||||
impl_trait_fn_aligned!(pdev_id, u64);
|
impl_trait_fn_aligned!(pdev_id, u64);
|
||||||
|
|
||||||
|
/*
|
||||||
fn profile_size(&mut self) -> Option<&mut u64> {
|
fn profile_size(&mut self) -> Option<&mut u64> {
|
||||||
Some(&mut self.profile_size.0)
|
Some(&mut self.profile_size.0)
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
impl_trait_fn_aligned!(fb_length, u64);
|
impl_trait_fn_aligned!(fb_length, u64);
|
||||||
impl_trait_fn_aligned!(mappable_video_size, u64);
|
impl_trait_fn_aligned!(mappable_video_size, u64);
|
||||||
@@ -213,26 +217,26 @@ impl VgpuConfigLike for NvA081CtrlVgpuInfo {
|
|||||||
impl_trait_fn!(adapter_name_unicode, [u16; 64]);
|
impl_trait_fn!(adapter_name_unicode, [u16; 64]);
|
||||||
impl_trait_fn!(short_gpu_name_string, [u8; 64]);
|
impl_trait_fn!(short_gpu_name_string, [u8; 64]);
|
||||||
impl_trait_fn!(licensed_product_name, [u8; 128]);
|
impl_trait_fn!(licensed_product_name, [u8; 128]);
|
||||||
impl_trait_fn!(vgpu_extra_params, [u8]);
|
//impl_trait_fn!(vgpu_extra_params, [u8]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
struct ProfileOverridesConfig<'a> {
|
struct ProfileOverridesConfig {
|
||||||
#[serde(borrow, default)]
|
#[serde(default)]
|
||||||
profile: HashMap<&'a str, VgpuProfileOverride<'a>>,
|
profile: HashMap<String, VgpuProfileOverride>,
|
||||||
#[serde(borrow, default)]
|
#[serde(default)]
|
||||||
mdev: HashMap<&'a str, VgpuProfileOverride<'a>>,
|
mdev: HashMap<String, VgpuProfileOverride>,
|
||||||
#[cfg(feature = "proxmox")]
|
#[cfg(feature = "proxmox")]
|
||||||
#[serde(borrow, default)]
|
#[serde(default)]
|
||||||
vm: HashMap<&'a str, VgpuProfileOverride<'a>>,
|
vm: HashMap<String, VgpuProfileOverride>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
struct VgpuProfileOverride<'a> {
|
struct VgpuProfileOverride {
|
||||||
gpu_type: Option<u32>,
|
gpu_type: Option<u32>,
|
||||||
card_name: Option<&'a str>,
|
card_name: Option<String>,
|
||||||
vgpu_type: Option<&'a str>,
|
vgpu_type: Option<String>,
|
||||||
features: Option<&'a str>,
|
features: Option<String>,
|
||||||
max_instances: Option<u32>,
|
max_instances: Option<u32>,
|
||||||
num_displays: Option<u32>,
|
num_displays: Option<u32>,
|
||||||
display_width: Option<u32>,
|
display_width: Option<u32>,
|
||||||
@@ -254,9 +258,9 @@ struct VgpuProfileOverride<'a> {
|
|||||||
encoder_capacity: Option<u32>,
|
encoder_capacity: Option<u32>,
|
||||||
bar1_length: Option<u64>,
|
bar1_length: Option<u64>,
|
||||||
frl_enabled: Option<u32>,
|
frl_enabled: Option<u32>,
|
||||||
adapter_name: Option<&'a str>,
|
adapter_name: Option<String>,
|
||||||
short_gpu_name: Option<&'a str>,
|
short_gpu_name: Option<String>,
|
||||||
license_type: Option<&'a str>,
|
license_type: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn check_size(name: &str, actual_size: usize, expected_size: usize) -> bool {
|
fn check_size(name: &str, actual_size: usize, expected_size: usize) -> bool {
|
||||||
@@ -620,7 +624,7 @@ fn apply_profile_override<C: VgpuConfigLike>(
|
|||||||
source_field: $source_field:ident,
|
source_field: $source_field:ident,
|
||||||
target_field: $target_field:ident,
|
target_field: $target_field:ident,
|
||||||
) => {
|
) => {
|
||||||
if let Some(value) = config_override.$source_field {
|
if let Some(value) = config_override.$source_field.as_ref() {
|
||||||
handle_override! {
|
handle_override! {
|
||||||
class: $class,
|
class: $class,
|
||||||
value: value,
|
value: value,
|
||||||
@@ -638,7 +642,7 @@ fn apply_profile_override<C: VgpuConfigLike>(
|
|||||||
source_field: $source_field:ident,
|
source_field: $source_field:ident,
|
||||||
target_field: $target_field:ident,
|
target_field: $target_field:ident,
|
||||||
) => {
|
) => {
|
||||||
let $value = cmp::max(cmp::min($value, 1), 0);
|
let $value = cmp::max(cmp::min(*$value, 1), 0);
|
||||||
|
|
||||||
patch_msg!($target_field, $value);
|
patch_msg!($target_field, $value);
|
||||||
|
|
||||||
@@ -652,7 +656,7 @@ fn apply_profile_override<C: VgpuConfigLike>(
|
|||||||
) => {
|
) => {
|
||||||
patch_msg!($target_field, $value);
|
patch_msg!($target_field, $value);
|
||||||
|
|
||||||
*config.$target_field() = $value;
|
*config.$target_field() = *$value;
|
||||||
};
|
};
|
||||||
(
|
(
|
||||||
class: str,
|
class: str,
|
||||||
|
|||||||
Reference in New Issue
Block a user