Skip to main content

nvml_wrapper/enum_wrappers/
vgpu.rs

1use crate::error::NvmlError;
2use ffi::bindings::*;
3#[cfg(feature = "serde")]
4use serde_derive::{Deserialize, Serialize};
5use wrapcenum_derive::EnumWrapper;
6
7#[derive(Debug, Clone, Eq, PartialEq, Hash)]
8pub enum VmId {
9    Domain(String),
10    Uuid(String),
11}
12
13#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
14#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
15#[repr(u32)]
16pub enum VgpuLicenseState {
17    Unknown = NVML_GRID_LICENSE_STATE_UNKNOWN,
18    Uninitialized = NVML_GRID_LICENSE_STATE_UNINITIALIZED,
19    UnlicensedUnrestricted = NVML_GRID_LICENSE_STATE_UNLICENSED_UNRESTRICTED,
20    UnlicensedRestricted = NVML_GRID_LICENSE_STATE_UNLICENSED_RESTRICTED,
21    Unlicensed = NVML_GRID_LICENSE_STATE_UNLICENSED,
22    Licensed = NVML_GRID_LICENSE_STATE_LICENSED,
23}
24
25impl From<u32> for VgpuLicenseState {
26    fn from(value: u32) -> Self {
27        match value {
28            NVML_GRID_LICENSE_STATE_UNINITIALIZED => Self::Uninitialized,
29            NVML_GRID_LICENSE_STATE_UNLICENSED_UNRESTRICTED => Self::UnlicensedUnrestricted,
30            NVML_GRID_LICENSE_STATE_UNLICENSED_RESTRICTED => Self::UnlicensedRestricted,
31            NVML_GRID_LICENSE_STATE_UNLICENSED => Self::Unlicensed,
32            NVML_GRID_LICENSE_STATE_LICENSED => Self::Licensed,
33            _ => Self::Unknown,
34        }
35    }
36}
37
38//nvmlVgpuGuestInfoState_enum
39#[derive(EnumWrapper, Debug, Clone, Copy, Eq, PartialEq, Hash)]
40#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
41#[wrap(c_enum = "nvmlVgpuGuestInfoState_enum")]
42pub enum VgpuGuestInfoState {
43    #[wrap(c_variant = "NVML_VGPU_INSTANCE_GUEST_INFO_STATE_UNINITIALIZED")]
44    Uninitialized,
45    #[wrap(c_variant = "NVML_VGPU_INSTANCE_GUEST_INFO_STATE_INITIALIZED")]
46    Initialized,
47}