nvml_wrapper/enum_wrappers/
vgpu.rs1use 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#[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}