nvml_wrapper/enum_wrappers/
nv_link.rs1use crate::error::NvmlError;
2use crate::ffi::bindings::*;
3#[cfg(feature = "serde")]
4use serde_derive::{Deserialize, Serialize};
5use wrapcenum_derive::EnumWrapper;
6
7#[derive(EnumWrapper, Debug, Clone, Copy, Eq, PartialEq, Hash)]
10#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
11#[wrap(c_enum = "nvmlNvLinkUtilizationCountUnits_enum")]
12pub enum UtilizationCountUnit {
13 #[wrap(c_variant = "NVML_NVLINK_COUNTER_UNIT_CYCLES")]
14 Cycles,
15 #[wrap(c_variant = "NVML_NVLINK_COUNTER_UNIT_PACKETS")]
16 Packets,
17 #[wrap(c_variant = "NVML_NVLINK_COUNTER_UNIT_BYTES")]
18 Bytes,
19}
20
21#[derive(EnumWrapper, Debug, Clone, Copy, Eq, PartialEq, Hash)]
24#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
25#[wrap(c_enum = "nvmlNvLinkCapability_enum")]
26pub enum Capability {
27 #[wrap(c_variant = "NVML_NVLINK_CAP_P2P_SUPPORTED")]
29 P2p,
30 #[wrap(c_variant = "NVML_NVLINK_CAP_SYSMEM_ACCESS")]
32 SysMemAccess,
33 #[wrap(c_variant = "NVML_NVLINK_CAP_P2P_ATOMICS")]
35 P2pAtomics,
36 #[wrap(c_variant = "NVML_NVLINK_CAP_SYSMEM_ATOMICS")]
38 SysMemAtomics,
39 #[wrap(c_variant = "NVML_NVLINK_CAP_SLI_BRIDGE")]
41 SliBridge,
42 #[wrap(c_variant = "NVML_NVLINK_CAP_VALID")]
44 ValidLink,
45}
46
47#[derive(EnumWrapper, Debug, Clone, Copy, Eq, PartialEq, Hash)]
50#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
51#[wrap(c_enum = "nvmlNvLinkErrorCounter_enum")]
52pub enum ErrorCounter {
53 #[wrap(c_variant = "NVML_NVLINK_ERROR_DL_REPLAY")]
55 DlReplay,
56 #[wrap(c_variant = "NVML_NVLINK_ERROR_DL_RECOVERY")]
58 DlRecovery,
59 #[wrap(c_variant = "NVML_NVLINK_ERROR_DL_CRC_FLIT")]
61 DlCrcFlit,
62 #[wrap(c_variant = "NVML_NVLINK_ERROR_DL_CRC_DATA")]
64 DlCrcData,
65}