nvml_wrapper/bitmasks/
nv_link.rs

1use crate::ffi::bindings::*;
2use bitflags::bitflags;
3#[cfg(feature = "serde")]
4use serde_derive::{Deserialize, Serialize};
5
6bitflags! {
7    /**
8    Represents the NvLink utilization counter packet types that can be counted.
9
10    Only applicable when `UtilizationCountUnit`s are packets or bytes. All
11    packet filter descriptions are target GPU centric.
12    */
13    // Checked against local
14    #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
15    #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
16    pub struct PacketTypes: u32 {
17        const NO_OP      = nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_NOP;
18        const READ       = nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_READ;
19        const WRITE      = nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_WRITE;
20        /// Reduction atomic requests.
21        const RATOM      = nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_RATOM;
22        /// Non-reduction atomic requests.
23        const NON_RATOM  = nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_NRATOM;
24        /// Flush requests.
25        const FLUSH      = nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_FLUSH;
26        /// Responses with data.
27        const WITH_DATA  = nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_RESPDATA;
28        /// Responses without data.
29        const NO_DATA    = nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_RESPNODATA;
30    }
31}