nvml_wrapper_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.71.1 */
2
3#![allow(non_upper_case_globals)]
4#![allow(non_camel_case_types)]
5#![allow(non_snake_case)]
6#![allow(dead_code)]
7use std::os::raw;
8
9pub const NVML_API_VERSION: u32 = 12;
10pub const NVML_API_VERSION_STR: &[u8; 3] = b"12\0";
11pub const NVML_VALUE_NOT_AVAILABLE: i32 = -1;
12pub const NVML_DEVICE_PCI_BUS_ID_BUFFER_SIZE: u32 = 32;
13pub const NVML_DEVICE_PCI_BUS_ID_BUFFER_V2_SIZE: u32 = 16;
14pub const NVML_DEVICE_PCI_BUS_ID_LEGACY_FMT: &[u8; 17] = b"%04X:%02X:%02X.0\0";
15pub const NVML_DEVICE_PCI_BUS_ID_FMT: &[u8; 17] = b"%08X:%02X:%02X.0\0";
16pub const NVML_NVLINK_MAX_LINKS: u32 = 18;
17pub const NVML_MAX_PHYSICAL_BRIDGE: u32 = 128;
18pub const NVML_MAX_THERMAL_SENSORS_PER_GPU: u32 = 3;
19pub const nvmlFlagDefault: u32 = 0;
20pub const nvmlFlagForce: u32 = 1;
21pub const MAX_CLK_DOMAINS: u32 = 32;
22pub const NVML_MAX_GPU_PERF_PSTATES: u32 = 16;
23pub const NVML_PERF_MODES_BUFFER_SIZE: u32 = 2048;
24pub const NVML_GSP_FIRMWARE_VERSION_BUF_SIZE: u32 = 64;
25pub const NVML_DEVICE_ARCH_KEPLER: u32 = 2;
26pub const NVML_DEVICE_ARCH_MAXWELL: u32 = 3;
27pub const NVML_DEVICE_ARCH_PASCAL: u32 = 4;
28pub const NVML_DEVICE_ARCH_VOLTA: u32 = 5;
29pub const NVML_DEVICE_ARCH_TURING: u32 = 6;
30pub const NVML_DEVICE_ARCH_AMPERE: u32 = 7;
31pub const NVML_DEVICE_ARCH_ADA: u32 = 8;
32pub const NVML_DEVICE_ARCH_HOPPER: u32 = 9;
33pub const NVML_DEVICE_ARCH_BLACKWELL: u32 = 10;
34pub const NVML_DEVICE_ARCH_T23X: u32 = 11;
35pub const NVML_DEVICE_ARCH_UNKNOWN: u32 = 4294967295;
36pub const NVML_BUS_TYPE_UNKNOWN: u32 = 0;
37pub const NVML_BUS_TYPE_PCI: u32 = 1;
38pub const NVML_BUS_TYPE_PCIE: u32 = 2;
39pub const NVML_BUS_TYPE_FPCI: u32 = 3;
40pub const NVML_BUS_TYPE_AGP: u32 = 4;
41pub const NVML_FAN_POLICY_TEMPERATURE_CONTINOUS_SW: u32 = 0;
42pub const NVML_FAN_POLICY_MANUAL: u32 = 1;
43pub const NVML_POWER_SOURCE_AC: u32 = 0;
44pub const NVML_POWER_SOURCE_BATTERY: u32 = 1;
45pub const NVML_POWER_SOURCE_UNDERSIZED: u32 = 2;
46pub const NVML_PCIE_LINK_MAX_SPEED_INVALID: u32 = 0;
47pub const NVML_PCIE_LINK_MAX_SPEED_2500MBPS: u32 = 1;
48pub const NVML_PCIE_LINK_MAX_SPEED_5000MBPS: u32 = 2;
49pub const NVML_PCIE_LINK_MAX_SPEED_8000MBPS: u32 = 3;
50pub const NVML_PCIE_LINK_MAX_SPEED_16000MBPS: u32 = 4;
51pub const NVML_PCIE_LINK_MAX_SPEED_32000MBPS: u32 = 5;
52pub const NVML_PCIE_LINK_MAX_SPEED_64000MBPS: u32 = 6;
53pub const NVML_ADAPTIVE_CLOCKING_INFO_STATUS_DISABLED: u32 = 0;
54pub const NVML_ADAPTIVE_CLOCKING_INFO_STATUS_ENABLED: u32 = 1;
55pub const NVML_MAX_GPU_UTILIZATIONS: u32 = 8;
56pub const NVML_PCIE_ATOMICS_CAP_FETCHADD32: u32 = 1;
57pub const NVML_PCIE_ATOMICS_CAP_FETCHADD64: u32 = 2;
58pub const NVML_PCIE_ATOMICS_CAP_SWAP32: u32 = 4;
59pub const NVML_PCIE_ATOMICS_CAP_SWAP64: u32 = 8;
60pub const NVML_PCIE_ATOMICS_CAP_CAS32: u32 = 16;
61pub const NVML_PCIE_ATOMICS_CAP_CAS64: u32 = 32;
62pub const NVML_PCIE_ATOMICS_CAP_CAS128: u32 = 64;
63pub const NVML_PCIE_ATOMICS_OPS_MAX: u32 = 7;
64pub const NVML_POWER_SCOPE_GPU: u32 = 0;
65pub const NVML_POWER_SCOPE_MODULE: u32 = 1;
66pub const NVML_POWER_SCOPE_MEMORY: u32 = 2;
67pub const NVML_GRID_LICENSE_EXPIRY_NOT_AVAILABLE: u32 = 0;
68pub const NVML_GRID_LICENSE_EXPIRY_INVALID: u32 = 1;
69pub const NVML_GRID_LICENSE_EXPIRY_VALID: u32 = 2;
70pub const NVML_GRID_LICENSE_EXPIRY_NOT_APPLICABLE: u32 = 3;
71pub const NVML_GRID_LICENSE_EXPIRY_PERMANENT: u32 = 4;
72pub const NVML_GRID_LICENSE_BUFFER_SIZE: u32 = 128;
73pub const NVML_VGPU_NAME_BUFFER_SIZE: u32 = 64;
74pub const NVML_GRID_LICENSE_FEATURE_MAX_COUNT: u32 = 3;
75pub const INVALID_GPU_INSTANCE_PROFILE_ID: u32 = 4294967295;
76pub const INVALID_GPU_INSTANCE_ID: u32 = 4294967295;
77pub const NVML_INVALID_VGPU_PLACEMENT_ID: u32 = 65535;
78pub const NVML_VGPU_VIRTUALIZATION_CAP_MIGRATION_NO: u32 = 0;
79pub const NVML_VGPU_VIRTUALIZATION_CAP_MIGRATION_YES: u32 = 1;
80pub const NVML_VGPU_PGPU_VIRTUALIZATION_CAP_MIGRATION_NO: u32 = 0;
81pub const NVML_VGPU_PGPU_VIRTUALIZATION_CAP_MIGRATION_YES: u32 = 1;
82pub const NVML_VGPU_PGPU_HETEROGENEOUS_MODE: u32 = 0;
83pub const NVML_VGPU_PGPU_HOMOGENEOUS_MODE: u32 = 1;
84pub const NVML_VGPU_SCHEDULER_POLICY_UNKNOWN: u32 = 0;
85pub const NVML_VGPU_SCHEDULER_POLICY_BEST_EFFORT: u32 = 1;
86pub const NVML_VGPU_SCHEDULER_POLICY_EQUAL_SHARE: u32 = 2;
87pub const NVML_VGPU_SCHEDULER_POLICY_FIXED_SHARE: u32 = 3;
88pub const NVML_SUPPORTED_VGPU_SCHEDULER_POLICY_COUNT: u32 = 3;
89pub const NVML_SCHEDULER_SW_MAX_LOG_ENTRIES: u32 = 200;
90pub const NVML_VGPU_SCHEDULER_ARR_DEFAULT: u32 = 0;
91pub const NVML_VGPU_SCHEDULER_ARR_DISABLE: u32 = 1;
92pub const NVML_VGPU_SCHEDULER_ARR_ENABLE: u32 = 2;
93pub const NVML_GRID_LICENSE_STATE_UNKNOWN: u32 = 0;
94pub const NVML_GRID_LICENSE_STATE_UNINITIALIZED: u32 = 1;
95pub const NVML_GRID_LICENSE_STATE_UNLICENSED_UNRESTRICTED: u32 = 2;
96pub const NVML_GRID_LICENSE_STATE_UNLICENSED_RESTRICTED: u32 = 3;
97pub const NVML_GRID_LICENSE_STATE_UNLICENSED: u32 = 4;
98pub const NVML_GRID_LICENSE_STATE_LICENSED: u32 = 5;
99pub mod field_id {
100    pub const NVML_FI_DEV_ECC_CURRENT: u32 = 1;
101    pub const NVML_FI_DEV_ECC_PENDING: u32 = 2;
102    pub const NVML_FI_DEV_ECC_SBE_VOL_TOTAL: u32 = 3;
103    pub const NVML_FI_DEV_ECC_DBE_VOL_TOTAL: u32 = 4;
104    pub const NVML_FI_DEV_ECC_SBE_AGG_TOTAL: u32 = 5;
105    pub const NVML_FI_DEV_ECC_DBE_AGG_TOTAL: u32 = 6;
106    pub const NVML_FI_DEV_ECC_SBE_VOL_L1: u32 = 7;
107    pub const NVML_FI_DEV_ECC_DBE_VOL_L1: u32 = 8;
108    pub const NVML_FI_DEV_ECC_SBE_VOL_L2: u32 = 9;
109    pub const NVML_FI_DEV_ECC_DBE_VOL_L2: u32 = 10;
110    pub const NVML_FI_DEV_ECC_SBE_VOL_DEV: u32 = 11;
111    pub const NVML_FI_DEV_ECC_DBE_VOL_DEV: u32 = 12;
112    pub const NVML_FI_DEV_ECC_SBE_VOL_REG: u32 = 13;
113    pub const NVML_FI_DEV_ECC_DBE_VOL_REG: u32 = 14;
114    pub const NVML_FI_DEV_ECC_SBE_VOL_TEX: u32 = 15;
115    pub const NVML_FI_DEV_ECC_DBE_VOL_TEX: u32 = 16;
116    pub const NVML_FI_DEV_ECC_DBE_VOL_CBU: u32 = 17;
117    pub const NVML_FI_DEV_ECC_SBE_AGG_L1: u32 = 18;
118    pub const NVML_FI_DEV_ECC_DBE_AGG_L1: u32 = 19;
119    pub const NVML_FI_DEV_ECC_SBE_AGG_L2: u32 = 20;
120    pub const NVML_FI_DEV_ECC_DBE_AGG_L2: u32 = 21;
121    pub const NVML_FI_DEV_ECC_SBE_AGG_DEV: u32 = 22;
122    pub const NVML_FI_DEV_ECC_DBE_AGG_DEV: u32 = 23;
123    pub const NVML_FI_DEV_ECC_SBE_AGG_REG: u32 = 24;
124    pub const NVML_FI_DEV_ECC_DBE_AGG_REG: u32 = 25;
125    pub const NVML_FI_DEV_ECC_SBE_AGG_TEX: u32 = 26;
126    pub const NVML_FI_DEV_ECC_DBE_AGG_TEX: u32 = 27;
127    pub const NVML_FI_DEV_ECC_DBE_AGG_CBU: u32 = 28;
128    pub const NVML_FI_DEV_RETIRED_SBE: u32 = 29;
129    pub const NVML_FI_DEV_RETIRED_DBE: u32 = 30;
130    pub const NVML_FI_DEV_RETIRED_PENDING: u32 = 31;
131    pub const NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L0: u32 = 32;
132    pub const NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L1: u32 = 33;
133    pub const NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L2: u32 = 34;
134    pub const NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L3: u32 = 35;
135    pub const NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L4: u32 = 36;
136    pub const NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L5: u32 = 37;
137    pub const NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_TOTAL: u32 = 38;
138    pub const NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L0: u32 = 39;
139    pub const NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L1: u32 = 40;
140    pub const NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L2: u32 = 41;
141    pub const NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L3: u32 = 42;
142    pub const NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L4: u32 = 43;
143    pub const NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L5: u32 = 44;
144    pub const NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_TOTAL: u32 = 45;
145    pub const NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L0: u32 = 46;
146    pub const NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L1: u32 = 47;
147    pub const NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L2: u32 = 48;
148    pub const NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L3: u32 = 49;
149    pub const NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L4: u32 = 50;
150    pub const NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L5: u32 = 51;
151    pub const NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_TOTAL: u32 = 52;
152    pub const NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L0: u32 = 53;
153    pub const NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L1: u32 = 54;
154    pub const NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L2: u32 = 55;
155    pub const NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L3: u32 = 56;
156    pub const NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L4: u32 = 57;
157    pub const NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L5: u32 = 58;
158    pub const NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_TOTAL: u32 = 59;
159    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L0: u32 = 60;
160    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L1: u32 = 61;
161    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L2: u32 = 62;
162    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L3: u32 = 63;
163    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L4: u32 = 64;
164    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L5: u32 = 65;
165    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C0_TOTAL: u32 = 66;
166    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L0: u32 = 67;
167    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L1: u32 = 68;
168    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L2: u32 = 69;
169    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L3: u32 = 70;
170    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L4: u32 = 71;
171    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L5: u32 = 72;
172    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C1_TOTAL: u32 = 73;
173    pub const NVML_FI_DEV_PERF_POLICY_POWER: u32 = 74;
174    pub const NVML_FI_DEV_PERF_POLICY_THERMAL: u32 = 75;
175    pub const NVML_FI_DEV_PERF_POLICY_SYNC_BOOST: u32 = 76;
176    pub const NVML_FI_DEV_PERF_POLICY_BOARD_LIMIT: u32 = 77;
177    pub const NVML_FI_DEV_PERF_POLICY_LOW_UTILIZATION: u32 = 78;
178    pub const NVML_FI_DEV_PERF_POLICY_RELIABILITY: u32 = 79;
179    pub const NVML_FI_DEV_PERF_POLICY_TOTAL_APP_CLOCKS: u32 = 80;
180    pub const NVML_FI_DEV_PERF_POLICY_TOTAL_BASE_CLOCKS: u32 = 81;
181    pub const NVML_FI_DEV_MEMORY_TEMP: u32 = 82;
182    pub const NVML_FI_DEV_TOTAL_ENERGY_CONSUMPTION: u32 = 83;
183    pub const NVML_FI_DEV_NVLINK_SPEED_MBPS_L0: u32 = 84;
184    pub const NVML_FI_DEV_NVLINK_SPEED_MBPS_L1: u32 = 85;
185    pub const NVML_FI_DEV_NVLINK_SPEED_MBPS_L2: u32 = 86;
186    pub const NVML_FI_DEV_NVLINK_SPEED_MBPS_L3: u32 = 87;
187    pub const NVML_FI_DEV_NVLINK_SPEED_MBPS_L4: u32 = 88;
188    pub const NVML_FI_DEV_NVLINK_SPEED_MBPS_L5: u32 = 89;
189    pub const NVML_FI_DEV_NVLINK_SPEED_MBPS_COMMON: u32 = 90;
190    pub const NVML_FI_DEV_NVLINK_LINK_COUNT: u32 = 91;
191    pub const NVML_FI_DEV_RETIRED_PENDING_SBE: u32 = 92;
192    pub const NVML_FI_DEV_RETIRED_PENDING_DBE: u32 = 93;
193    pub const NVML_FI_DEV_PCIE_REPLAY_COUNTER: u32 = 94;
194    pub const NVML_FI_DEV_PCIE_REPLAY_ROLLOVER_COUNTER: u32 = 95;
195    pub const NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L6: u32 = 96;
196    pub const NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L7: u32 = 97;
197    pub const NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L8: u32 = 98;
198    pub const NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L9: u32 = 99;
199    pub const NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L10: u32 = 100;
200    pub const NVML_FI_DEV_NVLINK_CRC_FLIT_ERROR_COUNT_L11: u32 = 101;
201    pub const NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L6: u32 = 102;
202    pub const NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L7: u32 = 103;
203    pub const NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L8: u32 = 104;
204    pub const NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L9: u32 = 105;
205    pub const NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L10: u32 = 106;
206    pub const NVML_FI_DEV_NVLINK_CRC_DATA_ERROR_COUNT_L11: u32 = 107;
207    pub const NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L6: u32 = 108;
208    pub const NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L7: u32 = 109;
209    pub const NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L8: u32 = 110;
210    pub const NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L9: u32 = 111;
211    pub const NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L10: u32 = 112;
212    pub const NVML_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_L11: u32 = 113;
213    pub const NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L6: u32 = 114;
214    pub const NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L7: u32 = 115;
215    pub const NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L8: u32 = 116;
216    pub const NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L9: u32 = 117;
217    pub const NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L10: u32 = 118;
218    pub const NVML_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_L11: u32 = 119;
219    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L6: u32 = 120;
220    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L7: u32 = 121;
221    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L8: u32 = 122;
222    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L9: u32 = 123;
223    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L10: u32 = 124;
224    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C0_L11: u32 = 125;
225    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L6: u32 = 126;
226    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L7: u32 = 127;
227    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L8: u32 = 128;
228    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L9: u32 = 129;
229    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L10: u32 = 130;
230    pub const NVML_FI_DEV_NVLINK_BANDWIDTH_C1_L11: u32 = 131;
231    pub const NVML_FI_DEV_NVLINK_SPEED_MBPS_L6: u32 = 132;
232    pub const NVML_FI_DEV_NVLINK_SPEED_MBPS_L7: u32 = 133;
233    pub const NVML_FI_DEV_NVLINK_SPEED_MBPS_L8: u32 = 134;
234    pub const NVML_FI_DEV_NVLINK_SPEED_MBPS_L9: u32 = 135;
235    pub const NVML_FI_DEV_NVLINK_SPEED_MBPS_L10: u32 = 136;
236    pub const NVML_FI_DEV_NVLINK_SPEED_MBPS_L11: u32 = 137;
237    pub const NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_TX: u32 = 138;
238    pub const NVML_FI_DEV_NVLINK_THROUGHPUT_DATA_RX: u32 = 139;
239    pub const NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_TX: u32 = 140;
240    pub const NVML_FI_DEV_NVLINK_THROUGHPUT_RAW_RX: u32 = 141;
241    pub const NVML_FI_DEV_REMAPPED_COR: u32 = 142;
242    pub const NVML_FI_DEV_REMAPPED_UNC: u32 = 143;
243    pub const NVML_FI_DEV_REMAPPED_PENDING: u32 = 144;
244    pub const NVML_FI_DEV_REMAPPED_FAILURE: u32 = 145;
245    pub const NVML_FI_DEV_NVLINK_REMOTE_NVLINK_ID: u32 = 146;
246    pub const NVML_FI_DEV_NVSWITCH_CONNECTED_LINK_COUNT: u32 = 147;
247    pub const NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L0: u32 = 148;
248    pub const NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L1: u32 = 149;
249    pub const NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L2: u32 = 150;
250    pub const NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L3: u32 = 151;
251    pub const NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L4: u32 = 152;
252    pub const NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L5: u32 = 153;
253    pub const NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L6: u32 = 154;
254    pub const NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L7: u32 = 155;
255    pub const NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L8: u32 = 156;
256    pub const NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L9: u32 = 157;
257    pub const NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L10: u32 = 158;
258    pub const NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_L11: u32 = 159;
259    pub const NVML_FI_DEV_NVLINK_ECC_DATA_ERROR_COUNT_TOTAL: u32 = 160;
260    pub const NVML_FI_DEV_NVLINK_ERROR_DL_REPLAY: u32 = 161;
261    pub const NVML_FI_DEV_NVLINK_ERROR_DL_RECOVERY: u32 = 162;
262    pub const NVML_FI_DEV_NVLINK_ERROR_DL_CRC: u32 = 163;
263    pub const NVML_FI_DEV_NVLINK_GET_SPEED: u32 = 164;
264    pub const NVML_FI_DEV_NVLINK_GET_STATE: u32 = 165;
265    pub const NVML_FI_DEV_NVLINK_GET_VERSION: u32 = 166;
266    pub const NVML_FI_DEV_NVLINK_GET_POWER_STATE: u32 = 167;
267    pub const NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD: u32 = 168;
268    pub const NVML_FI_DEV_PCIE_L0_TO_RECOVERY_COUNTER: u32 = 169;
269    pub const NVML_FI_DEV_C2C_LINK_COUNT: u32 = 170;
270    pub const NVML_FI_DEV_C2C_LINK_GET_STATUS: u32 = 171;
271    pub const NVML_FI_DEV_C2C_LINK_GET_MAX_BW: u32 = 172;
272    pub const NVML_FI_DEV_PCIE_COUNT_CORRECTABLE_ERRORS: u32 = 173;
273    pub const NVML_FI_DEV_PCIE_COUNT_NAKS_RECEIVED: u32 = 174;
274    pub const NVML_FI_DEV_PCIE_COUNT_RECEIVER_ERROR: u32 = 175;
275    pub const NVML_FI_DEV_PCIE_COUNT_BAD_TLP: u32 = 176;
276    pub const NVML_FI_DEV_PCIE_COUNT_NAKS_SENT: u32 = 177;
277    pub const NVML_FI_DEV_PCIE_COUNT_BAD_DLLP: u32 = 178;
278    pub const NVML_FI_DEV_PCIE_COUNT_NON_FATAL_ERROR: u32 = 179;
279    pub const NVML_FI_DEV_PCIE_COUNT_FATAL_ERROR: u32 = 180;
280    pub const NVML_FI_DEV_PCIE_COUNT_UNSUPPORTED_REQ: u32 = 181;
281    pub const NVML_FI_DEV_PCIE_COUNT_LCRC_ERROR: u32 = 182;
282    pub const NVML_FI_DEV_PCIE_COUNT_LANE_ERROR: u32 = 183;
283    pub const NVML_FI_DEV_IS_RESETLESS_MIG_SUPPORTED: u32 = 184;
284    pub const NVML_FI_DEV_POWER_AVERAGE: u32 = 185;
285    pub const NVML_FI_DEV_POWER_INSTANT: u32 = 186;
286    pub const NVML_FI_DEV_POWER_MIN_LIMIT: u32 = 187;
287    pub const NVML_FI_DEV_POWER_MAX_LIMIT: u32 = 188;
288    pub const NVML_FI_DEV_POWER_DEFAULT_LIMIT: u32 = 189;
289    pub const NVML_FI_DEV_POWER_CURRENT_LIMIT: u32 = 190;
290    pub const NVML_FI_DEV_ENERGY: u32 = 191;
291    pub const NVML_FI_DEV_POWER_REQUESTED_LIMIT: u32 = 192;
292    pub const NVML_FI_DEV_TEMPERATURE_SHUTDOWN_TLIMIT: u32 = 193;
293    pub const NVML_FI_DEV_TEMPERATURE_SLOWDOWN_TLIMIT: u32 = 194;
294    pub const NVML_FI_DEV_TEMPERATURE_MEM_MAX_TLIMIT: u32 = 195;
295    pub const NVML_FI_DEV_TEMPERATURE_GPU_MAX_TLIMIT: u32 = 196;
296    pub const NVML_FI_DEV_PCIE_COUNT_TX_BYTES: u32 = 197;
297    pub const NVML_FI_DEV_PCIE_COUNT_RX_BYTES: u32 = 198;
298    pub const NVML_FI_DEV_IS_MIG_MODE_INDEPENDENT_MIG_QUERY_CAPABLE: u32 = 199;
299    pub const NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_MAX: u32 = 200;
300    pub const NVML_FI_DEV_NVLINK_COUNT_XMIT_PACKETS: u32 = 201;
301    pub const NVML_FI_DEV_NVLINK_COUNT_XMIT_BYTES: u32 = 202;
302    pub const NVML_FI_DEV_NVLINK_COUNT_RCV_PACKETS: u32 = 203;
303    pub const NVML_FI_DEV_NVLINK_COUNT_RCV_BYTES: u32 = 204;
304    pub const NVML_FI_DEV_NVLINK_COUNT_VL15_DROPPED: u32 = 205;
305    pub const NVML_FI_DEV_NVLINK_COUNT_MALFORMED_PACKET_ERRORS: u32 = 206;
306    pub const NVML_FI_DEV_NVLINK_COUNT_BUFFER_OVERRUN_ERRORS: u32 = 207;
307    pub const NVML_FI_DEV_NVLINK_COUNT_RCV_ERRORS: u32 = 208;
308    pub const NVML_FI_DEV_NVLINK_COUNT_RCV_REMOTE_ERRORS: u32 = 209;
309    pub const NVML_FI_DEV_NVLINK_COUNT_RCV_GENERAL_ERRORS: u32 = 210;
310    pub const NVML_FI_DEV_NVLINK_COUNT_LOCAL_LINK_INTEGRITY_ERRORS: u32 = 211;
311    pub const NVML_FI_DEV_NVLINK_COUNT_XMIT_DISCARDS: u32 = 212;
312    pub const NVML_FI_DEV_NVLINK_COUNT_LINK_RECOVERY_SUCCESSFUL_EVENTS: u32 = 213;
313    pub const NVML_FI_DEV_NVLINK_COUNT_LINK_RECOVERY_FAILED_EVENTS: u32 = 214;
314    pub const NVML_FI_DEV_NVLINK_COUNT_LINK_RECOVERY_EVENTS: u32 = 215;
315    pub const NVML_FI_DEV_NVLINK_COUNT_RAW_BER_LANE0: u32 = 216;
316    pub const NVML_FI_DEV_NVLINK_COUNT_RAW_BER_LANE1: u32 = 217;
317    pub const NVML_FI_DEV_NVLINK_COUNT_RAW_BER: u32 = 218;
318    pub const NVML_FI_DEV_NVLINK_COUNT_EFFECTIVE_ERRORS: u32 = 219;
319    pub const NVML_FI_DEV_NVLINK_COUNT_EFFECTIVE_BER: u32 = 220;
320    pub const NVML_FI_DEV_NVLINK_COUNT_SYMBOL_ERRORS: u32 = 221;
321    pub const NVML_FI_DEV_NVLINK_COUNT_SYMBOL_BER: u32 = 222;
322    pub const NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_MIN: u32 = 223;
323    pub const NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_UNITS: u32 = 224;
324    pub const NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_SUPPORTED: u32 = 225;
325    pub const NVML_FI_DEV_RESET_STATUS: u32 = 226;
326    pub const NVML_FI_DEV_DRAIN_AND_RESET_STATUS: u32 = 227;
327    pub const NVML_FI_DEV_PCIE_OUTBOUND_ATOMICS_MASK: u32 = 228;
328    pub const NVML_FI_DEV_PCIE_INBOUND_ATOMICS_MASK: u32 = 229;
329    pub const NVML_FI_DEV_GET_GPU_RECOVERY_ACTION: u32 = 230;
330    pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_0: u32 = 235;
331    pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_1: u32 = 236;
332    pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_2: u32 = 237;
333    pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_3: u32 = 238;
334    pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_4: u32 = 239;
335    pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_5: u32 = 240;
336    pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_6: u32 = 241;
337    pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_7: u32 = 242;
338    pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_8: u32 = 243;
339    pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_9: u32 = 244;
340    pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_10: u32 = 245;
341    pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_11: u32 = 246;
342    pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_12: u32 = 247;
343    pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_13: u32 = 248;
344    pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_14: u32 = 249;
345    pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_15: u32 = 250;
346    pub const NVML_FI_PWR_SMOOTHING_ENABLED: u32 = 251;
347    pub const NVML_FI_PWR_SMOOTHING_PRIV_LVL: u32 = 252;
348    pub const NVML_FI_PWR_SMOOTHING_IMM_RAMP_DOWN_ENABLED: u32 = 253;
349    pub const NVML_FI_PWR_SMOOTHING_APPLIED_TMP_CEIL: u32 = 254;
350    pub const NVML_FI_PWR_SMOOTHING_APPLIED_TMP_FLOOR: u32 = 255;
351    pub const NVML_FI_PWR_SMOOTHING_MAX_PERCENT_TMP_FLOOR_SETTING: u32 = 256;
352    pub const NVML_FI_PWR_SMOOTHING_MIN_PERCENT_TMP_FLOOR_SETTING: u32 = 257;
353    pub const NVML_FI_PWR_SMOOTHING_HW_CIRCUITRY_PERCENT_LIFETIME_REMAINING: u32 = 258;
354    pub const NVML_FI_PWR_SMOOTHING_MAX_NUM_PRESET_PROFILES: u32 = 259;
355    pub const NVML_FI_PWR_SMOOTHING_PROFILE_PERCENT_TMP_FLOOR: u32 = 260;
356    pub const NVML_FI_PWR_SMOOTHING_PROFILE_RAMP_UP_RATE: u32 = 261;
357    pub const NVML_FI_PWR_SMOOTHING_PROFILE_RAMP_DOWN_RATE: u32 = 262;
358    pub const NVML_FI_PWR_SMOOTHING_PROFILE_RAMP_DOWN_HYST_VAL: u32 = 263;
359    pub const NVML_FI_PWR_SMOOTHING_ACTIVE_PRESET_PROFILE: u32 = 264;
360    pub const NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_PERCENT_TMP_FLOOR: u32 = 265;
361    pub const NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_RAMP_UP_RATE: u32 = 266;
362    pub const NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_RAMP_DOWN_RATE: u32 = 267;
363    pub const NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_RAMP_DOWN_HYST_VAL: u32 = 268;
364    pub const NVML_FI_MAX: u32 = 269;
365}
366pub const NVML_NVLINK_LOW_POWER_THRESHOLD_UNIT_100US: u32 = 0;
367pub const NVML_NVLINK_LOW_POWER_THRESHOLD_UNIT_50US: u32 = 1;
368pub const NVML_NVLINK_POWER_STATE_HIGH_SPEED: u32 = 0;
369pub const NVML_NVLINK_POWER_STATE_LOW: u32 = 1;
370pub const NVML_NVLINK_LOW_POWER_THRESHOLD_MIN: u32 = 1;
371pub const NVML_NVLINK_LOW_POWER_THRESHOLD_MAX: u32 = 8191;
372pub const NVML_NVLINK_LOW_POWER_THRESHOLD_RESET: u32 = 4294967295;
373pub const NVML_NVLINK_LOW_POWER_THRESHOLD_DEFAULT: u32 = 4294967295;
374pub const nvmlEventTypeNone: u32 = 0;
375pub const nvmlEventTypeSingleBitEccError: u32 = 1;
376pub const nvmlEventTypeDoubleBitEccError: u32 = 2;
377pub const nvmlEventTypePState: u32 = 4;
378pub const nvmlEventTypeXidCriticalError: u32 = 8;
379pub const nvmlEventTypeClock: u32 = 16;
380pub const nvmlEventTypePowerSourceChange: u32 = 128;
381pub const nvmlEventMigConfigChange: u32 = 256;
382pub const nvmlEventTypeSingleBitEccErrorStorm: u32 = 512;
383pub const nvmlEventTypeDramRetirementEvent: u32 = 1024;
384pub const nvmlEventTypeDramRetirementFailure: u32 = 2048;
385pub const nvmlEventTypeNonFatalPoisonError: u32 = 4096;
386pub const nvmlEventTypeFatalPoisonError: u32 = 8192;
387pub const nvmlEventTypeGpuUnavailableError: u32 = 16384;
388pub const nvmlEventTypeGpuRecoveryAction: u32 = 32768;
389pub const nvmlEventTypeAll: u32 = 65439;
390pub const nvmlClocksEventReasonGpuIdle: u32 = 1;
391pub const nvmlClocksEventReasonApplicationsClocksSetting: u32 = 2;
392pub const nvmlClocksThrottleReasonUserDefinedClocks: u32 = 2;
393pub const nvmlClocksEventReasonSwPowerCap: u32 = 4;
394pub const nvmlClocksThrottleReasonHwSlowdown: u32 = 8;
395pub const nvmlClocksEventReasonSyncBoost: u32 = 16;
396pub const nvmlClocksEventReasonSwThermalSlowdown: u32 = 32;
397pub const nvmlClocksThrottleReasonHwThermalSlowdown: u32 = 64;
398pub const nvmlClocksThrottleReasonHwPowerBrakeSlowdown: u32 = 128;
399pub const nvmlClocksEventReasonDisplayClockSetting: u32 = 256;
400pub const nvmlClocksEventReasonNone: u32 = 0;
401pub const nvmlClocksThrottleReasonGpuIdle: u32 = 1;
402pub const nvmlClocksThrottleReasonApplicationsClocksSetting: u32 = 2;
403pub const nvmlClocksThrottleReasonSyncBoost: u32 = 16;
404pub const nvmlClocksThrottleReasonSwPowerCap: u32 = 4;
405pub const nvmlClocksThrottleReasonSwThermalSlowdown: u32 = 32;
406pub const nvmlClocksThrottleReasonDisplayClockSetting: u32 = 256;
407pub const nvmlClocksThrottleReasonNone: u32 = 0;
408pub const NVML_NVFBC_SESSION_FLAG_DIFFMAP_ENABLED: u32 = 1;
409pub const NVML_NVFBC_SESSION_FLAG_CLASSIFICATIONMAP_ENABLED: u32 = 2;
410pub const NVML_NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_NO_WAIT: u32 = 4;
411pub const NVML_NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_INFINITE: u32 = 8;
412pub const NVML_NVFBC_SESSION_FLAG_CAPTURE_WITH_WAIT_TIMEOUT: u32 = 16;
413pub const NVML_CC_SYSTEM_CPU_CAPS_NONE: u32 = 0;
414pub const NVML_CC_SYSTEM_CPU_CAPS_AMD_SEV: u32 = 1;
415pub const NVML_CC_SYSTEM_CPU_CAPS_INTEL_TDX: u32 = 2;
416pub const NVML_CC_SYSTEM_CPU_CAPS_AMD_SEV_SNP: u32 = 3;
417pub const NVML_CC_SYSTEM_CPU_CAPS_AMD_SNP_VTOM: u32 = 4;
418pub const NVML_CC_SYSTEM_GPUS_CC_NOT_CAPABLE: u32 = 0;
419pub const NVML_CC_SYSTEM_GPUS_CC_CAPABLE: u32 = 1;
420pub const NVML_CC_SYSTEM_DEVTOOLS_MODE_OFF: u32 = 0;
421pub const NVML_CC_SYSTEM_DEVTOOLS_MODE_ON: u32 = 1;
422pub const NVML_CC_SYSTEM_ENVIRONMENT_UNAVAILABLE: u32 = 0;
423pub const NVML_CC_SYSTEM_ENVIRONMENT_SIM: u32 = 1;
424pub const NVML_CC_SYSTEM_ENVIRONMENT_PROD: u32 = 2;
425pub const NVML_CC_SYSTEM_FEATURE_DISABLED: u32 = 0;
426pub const NVML_CC_SYSTEM_FEATURE_ENABLED: u32 = 1;
427pub const NVML_CC_SYSTEM_MULTIGPU_NONE: u32 = 0;
428pub const NVML_CC_SYSTEM_MULTIGPU_PROTECTED_PCIE: u32 = 1;
429pub const NVML_CC_ACCEPTING_CLIENT_REQUESTS_FALSE: u32 = 0;
430pub const NVML_CC_ACCEPTING_CLIENT_REQUESTS_TRUE: u32 = 1;
431pub const NVML_GPU_CERT_CHAIN_SIZE: u32 = 4096;
432pub const NVML_GPU_ATTESTATION_CERT_CHAIN_SIZE: u32 = 5120;
433pub const NVML_CC_GPU_CEC_NONCE_SIZE: u32 = 32;
434pub const NVML_CC_GPU_ATTESTATION_REPORT_SIZE: u32 = 8192;
435pub const NVML_CC_GPU_CEC_ATTESTATION_REPORT_SIZE: u32 = 4096;
436pub const NVML_CC_CEC_ATTESTATION_REPORT_NOT_PRESENT: u32 = 0;
437pub const NVML_CC_CEC_ATTESTATION_REPORT_PRESENT: u32 = 1;
438pub const NVML_CC_KEY_ROTATION_THRESHOLD_ATTACKER_ADVANTAGE_MIN: u32 = 50;
439pub const NVML_CC_KEY_ROTATION_THRESHOLD_ATTACKER_ADVANTAGE_MAX: u32 = 65;
440pub const NVML_GPU_FABRIC_UUID_LEN: u32 = 16;
441pub const NVML_GPU_FABRIC_STATE_NOT_SUPPORTED: u32 = 0;
442pub const NVML_GPU_FABRIC_STATE_NOT_STARTED: u32 = 1;
443pub const NVML_GPU_FABRIC_STATE_IN_PROGRESS: u32 = 2;
444pub const NVML_GPU_FABRIC_STATE_COMPLETED: u32 = 3;
445pub const NVML_GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_NOT_SUPPORTED: u32 = 0;
446pub const NVML_GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_TRUE: u32 = 1;
447pub const NVML_GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_FALSE: u32 = 2;
448pub const NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_DEGRADED_BW: u32 = 0;
449pub const NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_DEGRADED_BW: u32 = 3;
450pub const NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_RECOVERY_NOT_SUPPORTED: u32 = 0;
451pub const NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_RECOVERY_TRUE: u32 = 1;
452pub const NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_RECOVERY_FALSE: u32 = 2;
453pub const NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_ROUTE_RECOVERY: u32 = 2;
454pub const NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_ROUTE_RECOVERY: u32 = 3;
455pub const NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_UNHEALTHY_NOT_SUPPORTED: u32 = 0;
456pub const NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_UNHEALTHY_TRUE: u32 = 1;
457pub const NVML_GPU_FABRIC_HEALTH_MASK_ROUTE_UNHEALTHY_FALSE: u32 = 2;
458pub const NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_ROUTE_UNHEALTHY: u32 = 4;
459pub const NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_ROUTE_UNHEALTHY: u32 = 3;
460pub const NVML_GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_RECOVERY_NOT_SUPPORTED: u32 = 0;
461pub const NVML_GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_RECOVERY_TRUE: u32 = 1;
462pub const NVML_GPU_FABRIC_HEALTH_MASK_ACCESS_TIMEOUT_RECOVERY_FALSE: u32 = 2;
463pub const NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_ACCESS_TIMEOUT_RECOVERY: u32 = 6;
464pub const NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_ACCESS_TIMEOUT_RECOVERY: u32 = 3;
465pub const NVML_INIT_FLAG_NO_GPUS: u32 = 1;
466pub const NVML_INIT_FLAG_NO_ATTACH: u32 = 2;
467pub const NVML_DEVICE_INFOROM_VERSION_BUFFER_SIZE: u32 = 16;
468pub const NVML_DEVICE_UUID_BUFFER_SIZE: u32 = 80;
469pub const NVML_DEVICE_UUID_V2_BUFFER_SIZE: u32 = 96;
470pub const NVML_DEVICE_PART_NUMBER_BUFFER_SIZE: u32 = 80;
471pub const NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE: u32 = 80;
472pub const NVML_SYSTEM_NVML_VERSION_BUFFER_SIZE: u32 = 80;
473pub const NVML_DEVICE_NAME_BUFFER_SIZE: u32 = 64;
474pub const NVML_DEVICE_NAME_V2_BUFFER_SIZE: u32 = 96;
475pub const NVML_DEVICE_SERIAL_BUFFER_SIZE: u32 = 30;
476pub const NVML_DEVICE_VBIOS_VERSION_BUFFER_SIZE: u32 = 32;
477pub const NVML_AFFINITY_SCOPE_NODE: u32 = 0;
478pub const NVML_AFFINITY_SCOPE_SOCKET: u32 = 1;
479pub const NVML_NVLINK_BER_MANTISSA_SHIFT: u32 = 8;
480pub const NVML_NVLINK_BER_MANTISSA_WIDTH: u32 = 15;
481pub const NVML_NVLINK_BER_EXP_SHIFT: u32 = 0;
482pub const NVML_NVLINK_BER_EXP_WIDTH: u32 = 255;
483pub const NVML_NVLINK_STATE_INACTIVE: u32 = 0;
484pub const NVML_NVLINK_STATE_ACTIVE: u32 = 1;
485pub const NVML_NVLINK_STATE_SLEEP: u32 = 2;
486pub const NVML_NVLINK_TOTAL_SUPPORTED_BW_MODES: u32 = 23;
487pub const NVML_DEVICE_MIG_DISABLE: u32 = 0;
488pub const NVML_DEVICE_MIG_ENABLE: u32 = 1;
489pub const NVML_GPU_INSTANCE_PROFILE_1_SLICE: u32 = 0;
490pub const NVML_GPU_INSTANCE_PROFILE_2_SLICE: u32 = 1;
491pub const NVML_GPU_INSTANCE_PROFILE_3_SLICE: u32 = 2;
492pub const NVML_GPU_INSTANCE_PROFILE_4_SLICE: u32 = 3;
493pub const NVML_GPU_INSTANCE_PROFILE_7_SLICE: u32 = 4;
494pub const NVML_GPU_INSTANCE_PROFILE_8_SLICE: u32 = 5;
495pub const NVML_GPU_INSTANCE_PROFILE_6_SLICE: u32 = 6;
496pub const NVML_GPU_INSTANCE_PROFILE_1_SLICE_REV1: u32 = 7;
497pub const NVML_GPU_INSTANCE_PROFILE_2_SLICE_REV1: u32 = 8;
498pub const NVML_GPU_INSTANCE_PROFILE_1_SLICE_REV2: u32 = 9;
499pub const NVML_GPU_INSTANCE_PROFILE_1_SLICE_GFX: u32 = 10;
500pub const NVML_GPU_INSTANCE_PROFILE_2_SLICE_GFX: u32 = 11;
501pub const NVML_GPU_INSTANCE_PROFILE_4_SLICE_GFX: u32 = 12;
502pub const NVML_GPU_INSTANCE_PROFILE_COUNT: u32 = 13;
503pub const NVML_GPU_INSTANCE_PROFILE_CAPS_P2P: u32 = 1;
504pub const NVML_GPU_INTSTANCE_PROFILE_CAPS_P2P: u32 = 1;
505pub const NVML_GPU_INSTANCE_PROFILE_CAPS_GFX: u32 = 2;
506pub const NVML_COMPUTE_INSTANCE_PROFILE_CAPS_GFX: u32 = 1;
507pub const NVML_COMPUTE_INSTANCE_PROFILE_1_SLICE: u32 = 0;
508pub const NVML_COMPUTE_INSTANCE_PROFILE_2_SLICE: u32 = 1;
509pub const NVML_COMPUTE_INSTANCE_PROFILE_3_SLICE: u32 = 2;
510pub const NVML_COMPUTE_INSTANCE_PROFILE_4_SLICE: u32 = 3;
511pub const NVML_COMPUTE_INSTANCE_PROFILE_7_SLICE: u32 = 4;
512pub const NVML_COMPUTE_INSTANCE_PROFILE_8_SLICE: u32 = 5;
513pub const NVML_COMPUTE_INSTANCE_PROFILE_6_SLICE: u32 = 6;
514pub const NVML_COMPUTE_INSTANCE_PROFILE_1_SLICE_REV1: u32 = 7;
515pub const NVML_COMPUTE_INSTANCE_PROFILE_COUNT: u32 = 8;
516pub const NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_SHARED: u32 = 0;
517pub const NVML_COMPUTE_INSTANCE_ENGINE_PROFILE_COUNT: u32 = 1;
518pub const NVML_GPM_METRICS_GET_VERSION: u32 = 1;
519pub const NVML_GPM_SUPPORT_VERSION: u32 = 1;
520pub const NVML_DEV_CAP_EGM: u32 = 1;
521pub const NVML_255_MASK_BITS_PER_ELEM: u32 = 32;
522pub const NVML_255_MASK_NUM_ELEMS: u32 = 8;
523pub const NVML_WORKLOAD_POWER_MAX_PROFILES: u32 = 255;
524pub const NVML_POWER_SMOOTHING_MAX_NUM_PROFILES: u32 = 5;
525pub const NVML_POWER_SMOOTHING_NUM_PROFILE_PARAMS: u32 = 4;
526pub const NVML_POWER_SMOOTHING_ADMIN_OVERRIDE_NOT_SET: u32 = 4294967295;
527pub const NVML_POWER_SMOOTHING_PROFILE_PARAM_PERCENT_TMP_FLOOR: u32 = 0;
528pub const NVML_POWER_SMOOTHING_PROFILE_PARAM_RAMP_UP_RATE: u32 = 1;
529pub const NVML_POWER_SMOOTHING_PROFILE_PARAM_RAMP_DOWN_RATE: u32 = 2;
530pub const NVML_POWER_SMOOTHING_PROFILE_PARAM_RAMP_DOWN_HYSTERESIS: u32 = 3;
531#[repr(C)]
532#[derive(Debug, Copy, Clone)]
533pub struct nvmlDevice_st {
534    _unused: [u8; 0],
535}
536pub type nvmlDevice_t = *mut nvmlDevice_st;
537#[repr(C)]
538#[derive(Debug, Copy, Clone)]
539pub struct nvmlPciInfoExt_v1_t {
540    pub version: raw::c_uint,
541    pub domain: raw::c_uint,
542    pub bus: raw::c_uint,
543    pub device: raw::c_uint,
544    pub pciDeviceId: raw::c_uint,
545    pub pciSubSystemId: raw::c_uint,
546    pub baseClass: raw::c_uint,
547    pub subClass: raw::c_uint,
548    pub busId: [raw::c_char; 32usize],
549}
550pub type nvmlPciInfoExt_t = nvmlPciInfoExt_v1_t;
551#[repr(C)]
552#[derive(Debug, Copy, Clone)]
553pub struct nvmlPciInfo_st {
554    pub busIdLegacy: [raw::c_char; 16usize],
555    pub domain: raw::c_uint,
556    pub bus: raw::c_uint,
557    pub device: raw::c_uint,
558    pub pciDeviceId: raw::c_uint,
559    pub pciSubSystemId: raw::c_uint,
560    pub busId: [raw::c_char; 32usize],
561}
562pub type nvmlPciInfo_t = nvmlPciInfo_st;
563#[repr(C)]
564#[derive(Debug, Copy, Clone)]
565pub struct nvmlEccErrorCounts_st {
566    pub l1Cache: raw::c_ulonglong,
567    pub l2Cache: raw::c_ulonglong,
568    pub deviceMemory: raw::c_ulonglong,
569    pub registerFile: raw::c_ulonglong,
570}
571pub type nvmlEccErrorCounts_t = nvmlEccErrorCounts_st;
572#[repr(C)]
573#[derive(Debug, Copy, Clone)]
574pub struct nvmlUtilization_st {
575    pub gpu: raw::c_uint,
576    pub memory: raw::c_uint,
577}
578pub type nvmlUtilization_t = nvmlUtilization_st;
579#[repr(C)]
580#[derive(Debug, Copy, Clone)]
581pub struct nvmlMemory_st {
582    pub total: raw::c_ulonglong,
583    pub free: raw::c_ulonglong,
584    pub used: raw::c_ulonglong,
585}
586pub type nvmlMemory_t = nvmlMemory_st;
587#[repr(C)]
588#[derive(Debug, Copy, Clone)]
589pub struct nvmlMemory_v2_st {
590    pub version: raw::c_uint,
591    pub total: raw::c_ulonglong,
592    pub reserved: raw::c_ulonglong,
593    pub free: raw::c_ulonglong,
594    pub used: raw::c_ulonglong,
595}
596pub type nvmlMemory_v2_t = nvmlMemory_v2_st;
597#[repr(C)]
598#[derive(Debug, Copy, Clone)]
599pub struct nvmlBAR1Memory_st {
600    pub bar1Total: raw::c_ulonglong,
601    pub bar1Free: raw::c_ulonglong,
602    pub bar1Used: raw::c_ulonglong,
603}
604pub type nvmlBAR1Memory_t = nvmlBAR1Memory_st;
605#[repr(C)]
606#[derive(Debug, Copy, Clone)]
607pub struct nvmlProcessInfo_v1_st {
608    pub pid: raw::c_uint,
609    pub usedGpuMemory: raw::c_ulonglong,
610}
611pub type nvmlProcessInfo_v1_t = nvmlProcessInfo_v1_st;
612#[repr(C)]
613#[derive(Debug, Copy, Clone)]
614pub struct nvmlProcessInfo_v2_st {
615    pub pid: raw::c_uint,
616    pub usedGpuMemory: raw::c_ulonglong,
617    pub gpuInstanceId: raw::c_uint,
618    pub computeInstanceId: raw::c_uint,
619}
620pub type nvmlProcessInfo_v2_t = nvmlProcessInfo_v2_st;
621pub type nvmlProcessInfo_t = nvmlProcessInfo_v2_st;
622#[repr(C)]
623#[derive(Debug, Copy, Clone)]
624pub struct nvmlProcessDetail_v1_t {
625    pub pid: raw::c_uint,
626    pub usedGpuMemory: raw::c_ulonglong,
627    pub gpuInstanceId: raw::c_uint,
628    pub computeInstanceId: raw::c_uint,
629    pub usedGpuCcProtectedMemory: raw::c_ulonglong,
630}
631#[repr(C)]
632#[derive(Debug, Copy, Clone)]
633pub struct nvmlProcessDetailList_v1_t {
634    pub version: raw::c_uint,
635    pub mode: raw::c_uint,
636    pub numProcArrayEntries: raw::c_uint,
637    pub procArray: *mut nvmlProcessDetail_v1_t,
638}
639pub type nvmlProcessDetailList_t = nvmlProcessDetailList_v1_t;
640#[repr(C)]
641#[derive(Debug, Copy, Clone)]
642pub struct nvmlDeviceAttributes_st {
643    pub multiprocessorCount: raw::c_uint,
644    pub sharedCopyEngineCount: raw::c_uint,
645    pub sharedDecoderCount: raw::c_uint,
646    pub sharedEncoderCount: raw::c_uint,
647    pub sharedJpegCount: raw::c_uint,
648    pub sharedOfaCount: raw::c_uint,
649    pub gpuInstanceSliceCount: raw::c_uint,
650    pub computeInstanceSliceCount: raw::c_uint,
651    pub memorySizeMB: raw::c_ulonglong,
652}
653pub type nvmlDeviceAttributes_t = nvmlDeviceAttributes_st;
654#[repr(C)]
655#[derive(Debug, Copy, Clone)]
656pub struct nvmlC2cModeInfo_v1_t {
657    pub isC2cEnabled: raw::c_uint,
658}
659#[repr(C)]
660#[derive(Debug, Copy, Clone)]
661pub struct nvmlRowRemapperHistogramValues_st {
662    pub max: raw::c_uint,
663    pub high: raw::c_uint,
664    pub partial: raw::c_uint,
665    pub low: raw::c_uint,
666    pub none: raw::c_uint,
667}
668pub type nvmlRowRemapperHistogramValues_t = nvmlRowRemapperHistogramValues_st;
669pub const nvmlBridgeChipType_enum_NVML_BRIDGE_CHIP_PLX: nvmlBridgeChipType_enum = 0;
670pub const nvmlBridgeChipType_enum_NVML_BRIDGE_CHIP_BRO4: nvmlBridgeChipType_enum = 1;
671pub type nvmlBridgeChipType_enum = raw::c_uint;
672pub use self::nvmlBridgeChipType_enum as nvmlBridgeChipType_t;
673pub const nvmlNvLinkUtilizationCountUnits_enum_NVML_NVLINK_COUNTER_UNIT_CYCLES:
674    nvmlNvLinkUtilizationCountUnits_enum = 0;
675pub const nvmlNvLinkUtilizationCountUnits_enum_NVML_NVLINK_COUNTER_UNIT_PACKETS:
676    nvmlNvLinkUtilizationCountUnits_enum = 1;
677pub const nvmlNvLinkUtilizationCountUnits_enum_NVML_NVLINK_COUNTER_UNIT_BYTES:
678    nvmlNvLinkUtilizationCountUnits_enum = 2;
679pub const nvmlNvLinkUtilizationCountUnits_enum_NVML_NVLINK_COUNTER_UNIT_RESERVED:
680    nvmlNvLinkUtilizationCountUnits_enum = 3;
681pub const nvmlNvLinkUtilizationCountUnits_enum_NVML_NVLINK_COUNTER_UNIT_COUNT:
682    nvmlNvLinkUtilizationCountUnits_enum = 4;
683pub type nvmlNvLinkUtilizationCountUnits_enum = raw::c_uint;
684pub use self::nvmlNvLinkUtilizationCountUnits_enum as nvmlNvLinkUtilizationCountUnits_t;
685pub const nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_NOP:
686    nvmlNvLinkUtilizationCountPktTypes_enum = 1;
687pub const nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_READ:
688    nvmlNvLinkUtilizationCountPktTypes_enum = 2;
689pub const nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_WRITE:
690    nvmlNvLinkUtilizationCountPktTypes_enum = 4;
691pub const nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_RATOM:
692    nvmlNvLinkUtilizationCountPktTypes_enum = 8;
693pub const nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_NRATOM:
694    nvmlNvLinkUtilizationCountPktTypes_enum = 16;
695pub const nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_FLUSH:
696    nvmlNvLinkUtilizationCountPktTypes_enum = 32;
697pub const nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_RESPDATA:
698    nvmlNvLinkUtilizationCountPktTypes_enum = 64;
699pub const nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_RESPNODATA:
700    nvmlNvLinkUtilizationCountPktTypes_enum = 128;
701pub const nvmlNvLinkUtilizationCountPktTypes_enum_NVML_NVLINK_COUNTER_PKTFILTER_ALL:
702    nvmlNvLinkUtilizationCountPktTypes_enum = 255;
703pub type nvmlNvLinkUtilizationCountPktTypes_enum = raw::c_uint;
704pub use self::nvmlNvLinkUtilizationCountPktTypes_enum as nvmlNvLinkUtilizationCountPktTypes_t;
705#[repr(C)]
706#[derive(Debug, Copy, Clone)]
707pub struct nvmlNvLinkUtilizationControl_st {
708    pub units: nvmlNvLinkUtilizationCountUnits_t,
709    pub pktfilter: nvmlNvLinkUtilizationCountPktTypes_t,
710}
711pub type nvmlNvLinkUtilizationControl_t = nvmlNvLinkUtilizationControl_st;
712pub const nvmlNvLinkCapability_enum_NVML_NVLINK_CAP_P2P_SUPPORTED: nvmlNvLinkCapability_enum = 0;
713pub const nvmlNvLinkCapability_enum_NVML_NVLINK_CAP_SYSMEM_ACCESS: nvmlNvLinkCapability_enum = 1;
714pub const nvmlNvLinkCapability_enum_NVML_NVLINK_CAP_P2P_ATOMICS: nvmlNvLinkCapability_enum = 2;
715pub const nvmlNvLinkCapability_enum_NVML_NVLINK_CAP_SYSMEM_ATOMICS: nvmlNvLinkCapability_enum = 3;
716pub const nvmlNvLinkCapability_enum_NVML_NVLINK_CAP_SLI_BRIDGE: nvmlNvLinkCapability_enum = 4;
717pub const nvmlNvLinkCapability_enum_NVML_NVLINK_CAP_VALID: nvmlNvLinkCapability_enum = 5;
718pub const nvmlNvLinkCapability_enum_NVML_NVLINK_CAP_COUNT: nvmlNvLinkCapability_enum = 6;
719pub type nvmlNvLinkCapability_enum = raw::c_uint;
720pub use self::nvmlNvLinkCapability_enum as nvmlNvLinkCapability_t;
721pub const nvmlNvLinkErrorCounter_enum_NVML_NVLINK_ERROR_DL_REPLAY: nvmlNvLinkErrorCounter_enum = 0;
722pub const nvmlNvLinkErrorCounter_enum_NVML_NVLINK_ERROR_DL_RECOVERY: nvmlNvLinkErrorCounter_enum =
723    1;
724pub const nvmlNvLinkErrorCounter_enum_NVML_NVLINK_ERROR_DL_CRC_FLIT: nvmlNvLinkErrorCounter_enum =
725    2;
726pub const nvmlNvLinkErrorCounter_enum_NVML_NVLINK_ERROR_DL_CRC_DATA: nvmlNvLinkErrorCounter_enum =
727    3;
728pub const nvmlNvLinkErrorCounter_enum_NVML_NVLINK_ERROR_DL_ECC_DATA: nvmlNvLinkErrorCounter_enum =
729    4;
730pub const nvmlNvLinkErrorCounter_enum_NVML_NVLINK_ERROR_COUNT: nvmlNvLinkErrorCounter_enum = 5;
731pub type nvmlNvLinkErrorCounter_enum = raw::c_uint;
732pub use self::nvmlNvLinkErrorCounter_enum as nvmlNvLinkErrorCounter_t;
733pub const nvmlIntNvLinkDeviceType_enum_NVML_NVLINK_DEVICE_TYPE_GPU: nvmlIntNvLinkDeviceType_enum =
734    0;
735pub const nvmlIntNvLinkDeviceType_enum_NVML_NVLINK_DEVICE_TYPE_IBMNPU:
736    nvmlIntNvLinkDeviceType_enum = 1;
737pub const nvmlIntNvLinkDeviceType_enum_NVML_NVLINK_DEVICE_TYPE_SWITCH:
738    nvmlIntNvLinkDeviceType_enum = 2;
739pub const nvmlIntNvLinkDeviceType_enum_NVML_NVLINK_DEVICE_TYPE_UNKNOWN:
740    nvmlIntNvLinkDeviceType_enum = 255;
741pub type nvmlIntNvLinkDeviceType_enum = raw::c_uint;
742pub use self::nvmlIntNvLinkDeviceType_enum as nvmlIntNvLinkDeviceType_t;
743pub const nvmlGpuLevel_enum_NVML_TOPOLOGY_INTERNAL: nvmlGpuLevel_enum = 0;
744pub const nvmlGpuLevel_enum_NVML_TOPOLOGY_SINGLE: nvmlGpuLevel_enum = 10;
745pub const nvmlGpuLevel_enum_NVML_TOPOLOGY_MULTIPLE: nvmlGpuLevel_enum = 20;
746pub const nvmlGpuLevel_enum_NVML_TOPOLOGY_HOSTBRIDGE: nvmlGpuLevel_enum = 30;
747pub const nvmlGpuLevel_enum_NVML_TOPOLOGY_NODE: nvmlGpuLevel_enum = 40;
748pub const nvmlGpuLevel_enum_NVML_TOPOLOGY_SYSTEM: nvmlGpuLevel_enum = 50;
749pub type nvmlGpuLevel_enum = raw::c_uint;
750pub use self::nvmlGpuLevel_enum as nvmlGpuTopologyLevel_t;
751pub const nvmlGpuP2PStatus_enum_NVML_P2P_STATUS_OK: nvmlGpuP2PStatus_enum = 0;
752pub const nvmlGpuP2PStatus_enum_NVML_P2P_STATUS_CHIPSET_NOT_SUPPORED: nvmlGpuP2PStatus_enum = 1;
753pub const nvmlGpuP2PStatus_enum_NVML_P2P_STATUS_CHIPSET_NOT_SUPPORTED: nvmlGpuP2PStatus_enum = 1;
754pub const nvmlGpuP2PStatus_enum_NVML_P2P_STATUS_GPU_NOT_SUPPORTED: nvmlGpuP2PStatus_enum = 2;
755pub const nvmlGpuP2PStatus_enum_NVML_P2P_STATUS_IOH_TOPOLOGY_NOT_SUPPORTED: nvmlGpuP2PStatus_enum =
756    3;
757pub const nvmlGpuP2PStatus_enum_NVML_P2P_STATUS_DISABLED_BY_REGKEY: nvmlGpuP2PStatus_enum = 4;
758pub const nvmlGpuP2PStatus_enum_NVML_P2P_STATUS_NOT_SUPPORTED: nvmlGpuP2PStatus_enum = 5;
759pub const nvmlGpuP2PStatus_enum_NVML_P2P_STATUS_UNKNOWN: nvmlGpuP2PStatus_enum = 6;
760pub type nvmlGpuP2PStatus_enum = raw::c_uint;
761pub use self::nvmlGpuP2PStatus_enum as nvmlGpuP2PStatus_t;
762pub const nvmlGpuP2PCapsIndex_enum_NVML_P2P_CAPS_INDEX_READ: nvmlGpuP2PCapsIndex_enum = 0;
763pub const nvmlGpuP2PCapsIndex_enum_NVML_P2P_CAPS_INDEX_WRITE: nvmlGpuP2PCapsIndex_enum = 1;
764pub const nvmlGpuP2PCapsIndex_enum_NVML_P2P_CAPS_INDEX_NVLINK: nvmlGpuP2PCapsIndex_enum = 2;
765pub const nvmlGpuP2PCapsIndex_enum_NVML_P2P_CAPS_INDEX_ATOMICS: nvmlGpuP2PCapsIndex_enum = 3;
766pub const nvmlGpuP2PCapsIndex_enum_NVML_P2P_CAPS_INDEX_PCI: nvmlGpuP2PCapsIndex_enum = 4;
767pub const nvmlGpuP2PCapsIndex_enum_NVML_P2P_CAPS_INDEX_PROP: nvmlGpuP2PCapsIndex_enum = 4;
768pub const nvmlGpuP2PCapsIndex_enum_NVML_P2P_CAPS_INDEX_UNKNOWN: nvmlGpuP2PCapsIndex_enum = 5;
769pub type nvmlGpuP2PCapsIndex_enum = raw::c_uint;
770pub use self::nvmlGpuP2PCapsIndex_enum as nvmlGpuP2PCapsIndex_t;
771#[repr(C)]
772#[derive(Debug, Copy, Clone)]
773pub struct nvmlBridgeChipInfo_st {
774    pub type_: nvmlBridgeChipType_t,
775    pub fwVersion: raw::c_uint,
776}
777pub type nvmlBridgeChipInfo_t = nvmlBridgeChipInfo_st;
778#[repr(C)]
779#[derive(Debug, Copy, Clone)]
780pub struct nvmlBridgeChipHierarchy_st {
781    pub bridgeCount: raw::c_uchar,
782    pub bridgeChipInfo: [nvmlBridgeChipInfo_t; 128usize],
783}
784pub type nvmlBridgeChipHierarchy_t = nvmlBridgeChipHierarchy_st;
785pub const nvmlSamplingType_enum_NVML_TOTAL_POWER_SAMPLES: nvmlSamplingType_enum = 0;
786pub const nvmlSamplingType_enum_NVML_GPU_UTILIZATION_SAMPLES: nvmlSamplingType_enum = 1;
787pub const nvmlSamplingType_enum_NVML_MEMORY_UTILIZATION_SAMPLES: nvmlSamplingType_enum = 2;
788pub const nvmlSamplingType_enum_NVML_ENC_UTILIZATION_SAMPLES: nvmlSamplingType_enum = 3;
789pub const nvmlSamplingType_enum_NVML_DEC_UTILIZATION_SAMPLES: nvmlSamplingType_enum = 4;
790pub const nvmlSamplingType_enum_NVML_PROCESSOR_CLK_SAMPLES: nvmlSamplingType_enum = 5;
791pub const nvmlSamplingType_enum_NVML_MEMORY_CLK_SAMPLES: nvmlSamplingType_enum = 6;
792pub const nvmlSamplingType_enum_NVML_MODULE_POWER_SAMPLES: nvmlSamplingType_enum = 7;
793pub const nvmlSamplingType_enum_NVML_JPG_UTILIZATION_SAMPLES: nvmlSamplingType_enum = 8;
794pub const nvmlSamplingType_enum_NVML_OFA_UTILIZATION_SAMPLES: nvmlSamplingType_enum = 9;
795pub const nvmlSamplingType_enum_NVML_SAMPLINGTYPE_COUNT: nvmlSamplingType_enum = 10;
796pub type nvmlSamplingType_enum = raw::c_uint;
797pub use self::nvmlSamplingType_enum as nvmlSamplingType_t;
798pub const nvmlPcieUtilCounter_enum_NVML_PCIE_UTIL_TX_BYTES: nvmlPcieUtilCounter_enum = 0;
799pub const nvmlPcieUtilCounter_enum_NVML_PCIE_UTIL_RX_BYTES: nvmlPcieUtilCounter_enum = 1;
800pub const nvmlPcieUtilCounter_enum_NVML_PCIE_UTIL_COUNT: nvmlPcieUtilCounter_enum = 2;
801pub type nvmlPcieUtilCounter_enum = raw::c_uint;
802pub use self::nvmlPcieUtilCounter_enum as nvmlPcieUtilCounter_t;
803pub const nvmlValueType_enum_NVML_VALUE_TYPE_DOUBLE: nvmlValueType_enum = 0;
804pub const nvmlValueType_enum_NVML_VALUE_TYPE_UNSIGNED_INT: nvmlValueType_enum = 1;
805pub const nvmlValueType_enum_NVML_VALUE_TYPE_UNSIGNED_LONG: nvmlValueType_enum = 2;
806pub const nvmlValueType_enum_NVML_VALUE_TYPE_UNSIGNED_LONG_LONG: nvmlValueType_enum = 3;
807pub const nvmlValueType_enum_NVML_VALUE_TYPE_SIGNED_LONG_LONG: nvmlValueType_enum = 4;
808pub const nvmlValueType_enum_NVML_VALUE_TYPE_SIGNED_INT: nvmlValueType_enum = 5;
809pub const nvmlValueType_enum_NVML_VALUE_TYPE_UNSIGNED_SHORT: nvmlValueType_enum = 6;
810pub const nvmlValueType_enum_NVML_VALUE_TYPE_COUNT: nvmlValueType_enum = 7;
811pub type nvmlValueType_enum = raw::c_uint;
812pub use self::nvmlValueType_enum as nvmlValueType_t;
813#[repr(C)]
814#[derive(Copy, Clone)]
815pub union nvmlValue_st {
816    pub dVal: f64,
817    pub siVal: raw::c_int,
818    pub uiVal: raw::c_uint,
819    pub ulVal: raw::c_ulong,
820    pub ullVal: raw::c_ulonglong,
821    pub sllVal: raw::c_longlong,
822    pub usVal: raw::c_ushort,
823}
824pub type nvmlValue_t = nvmlValue_st;
825#[repr(C)]
826#[derive(Copy, Clone)]
827pub struct nvmlSample_st {
828    pub timeStamp: raw::c_ulonglong,
829    pub sampleValue: nvmlValue_t,
830}
831pub type nvmlSample_t = nvmlSample_st;
832pub const nvmlPerfPolicyType_enum_NVML_PERF_POLICY_POWER: nvmlPerfPolicyType_enum = 0;
833pub const nvmlPerfPolicyType_enum_NVML_PERF_POLICY_THERMAL: nvmlPerfPolicyType_enum = 1;
834pub const nvmlPerfPolicyType_enum_NVML_PERF_POLICY_SYNC_BOOST: nvmlPerfPolicyType_enum = 2;
835pub const nvmlPerfPolicyType_enum_NVML_PERF_POLICY_BOARD_LIMIT: nvmlPerfPolicyType_enum = 3;
836pub const nvmlPerfPolicyType_enum_NVML_PERF_POLICY_LOW_UTILIZATION: nvmlPerfPolicyType_enum = 4;
837pub const nvmlPerfPolicyType_enum_NVML_PERF_POLICY_RELIABILITY: nvmlPerfPolicyType_enum = 5;
838pub const nvmlPerfPolicyType_enum_NVML_PERF_POLICY_TOTAL_APP_CLOCKS: nvmlPerfPolicyType_enum = 10;
839pub const nvmlPerfPolicyType_enum_NVML_PERF_POLICY_TOTAL_BASE_CLOCKS: nvmlPerfPolicyType_enum = 11;
840pub const nvmlPerfPolicyType_enum_NVML_PERF_POLICY_COUNT: nvmlPerfPolicyType_enum = 12;
841pub type nvmlPerfPolicyType_enum = raw::c_uint;
842pub use self::nvmlPerfPolicyType_enum as nvmlPerfPolicyType_t;
843#[repr(C)]
844#[derive(Debug, Copy, Clone)]
845pub struct nvmlViolationTime_st {
846    pub referenceTime: raw::c_ulonglong,
847    pub violationTime: raw::c_ulonglong,
848}
849pub type nvmlViolationTime_t = nvmlViolationTime_st;
850pub const nvmlThermalTarget_t_NVML_THERMAL_TARGET_NONE: nvmlThermalTarget_t = 0;
851pub const nvmlThermalTarget_t_NVML_THERMAL_TARGET_GPU: nvmlThermalTarget_t = 1;
852pub const nvmlThermalTarget_t_NVML_THERMAL_TARGET_MEMORY: nvmlThermalTarget_t = 2;
853pub const nvmlThermalTarget_t_NVML_THERMAL_TARGET_POWER_SUPPLY: nvmlThermalTarget_t = 4;
854pub const nvmlThermalTarget_t_NVML_THERMAL_TARGET_BOARD: nvmlThermalTarget_t = 8;
855pub const nvmlThermalTarget_t_NVML_THERMAL_TARGET_VCD_BOARD: nvmlThermalTarget_t = 9;
856pub const nvmlThermalTarget_t_NVML_THERMAL_TARGET_VCD_INLET: nvmlThermalTarget_t = 10;
857pub const nvmlThermalTarget_t_NVML_THERMAL_TARGET_VCD_OUTLET: nvmlThermalTarget_t = 11;
858pub const nvmlThermalTarget_t_NVML_THERMAL_TARGET_ALL: nvmlThermalTarget_t = 15;
859pub const nvmlThermalTarget_t_NVML_THERMAL_TARGET_UNKNOWN: nvmlThermalTarget_t = -1;
860pub type nvmlThermalTarget_t = raw::c_int;
861pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_NONE: nvmlThermalController_t = 0;
862pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_GPU_INTERNAL: nvmlThermalController_t = 1;
863pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_ADM1032: nvmlThermalController_t = 2;
864pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_ADT7461: nvmlThermalController_t = 3;
865pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_MAX6649: nvmlThermalController_t = 4;
866pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_MAX1617: nvmlThermalController_t = 5;
867pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_LM99: nvmlThermalController_t = 6;
868pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_LM89: nvmlThermalController_t = 7;
869pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_LM64: nvmlThermalController_t = 8;
870pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_G781: nvmlThermalController_t = 9;
871pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_ADT7473: nvmlThermalController_t = 10;
872pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_SBMAX6649: nvmlThermalController_t = 11;
873pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_VBIOSEVT: nvmlThermalController_t = 12;
874pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_OS: nvmlThermalController_t = 13;
875pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_NVSYSCON_CANOAS: nvmlThermalController_t =
876    14;
877pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_NVSYSCON_E551: nvmlThermalController_t =
878    15;
879pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_MAX6649R: nvmlThermalController_t = 16;
880pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_ADT7473S: nvmlThermalController_t = 17;
881pub const nvmlThermalController_t_NVML_THERMAL_CONTROLLER_UNKNOWN: nvmlThermalController_t = -1;
882pub type nvmlThermalController_t = raw::c_int;
883#[repr(C)]
884#[derive(Debug, Copy, Clone)]
885pub struct nvmlGpuThermalSettings_t {
886    pub count: raw::c_uint,
887    pub sensor: [nvmlGpuThermalSettings_t__bindgen_ty_1; 3usize],
888}
889#[repr(C)]
890#[derive(Debug, Copy, Clone)]
891pub struct nvmlGpuThermalSettings_t__bindgen_ty_1 {
892    pub controller: nvmlThermalController_t,
893    pub defaultMinTemp: raw::c_int,
894    pub defaultMaxTemp: raw::c_int,
895    pub currentTemp: raw::c_int,
896    pub target: nvmlThermalTarget_t,
897}
898pub const nvmlCoolerControl_enum_NVML_THERMAL_COOLER_SIGNAL_NONE: nvmlCoolerControl_enum = 0;
899pub const nvmlCoolerControl_enum_NVML_THERMAL_COOLER_SIGNAL_TOGGLE: nvmlCoolerControl_enum = 1;
900pub const nvmlCoolerControl_enum_NVML_THERMAL_COOLER_SIGNAL_VARIABLE: nvmlCoolerControl_enum = 2;
901pub const nvmlCoolerControl_enum_NVML_THERMAL_COOLER_SIGNAL_COUNT: nvmlCoolerControl_enum = 3;
902pub type nvmlCoolerControl_enum = raw::c_uint;
903pub use self::nvmlCoolerControl_enum as nvmlCoolerControl_t;
904pub const nvmlCoolerTarget_enum_NVML_THERMAL_COOLER_TARGET_NONE: nvmlCoolerTarget_enum = 1;
905pub const nvmlCoolerTarget_enum_NVML_THERMAL_COOLER_TARGET_GPU: nvmlCoolerTarget_enum = 2;
906pub const nvmlCoolerTarget_enum_NVML_THERMAL_COOLER_TARGET_MEMORY: nvmlCoolerTarget_enum = 4;
907pub const nvmlCoolerTarget_enum_NVML_THERMAL_COOLER_TARGET_POWER_SUPPLY: nvmlCoolerTarget_enum = 8;
908pub const nvmlCoolerTarget_enum_NVML_THERMAL_COOLER_TARGET_GPU_RELATED: nvmlCoolerTarget_enum = 14;
909pub type nvmlCoolerTarget_enum = raw::c_uint;
910pub use self::nvmlCoolerTarget_enum as nvmlCoolerTarget_t;
911#[repr(C)]
912#[derive(Debug, Copy, Clone)]
913pub struct nvmlCoolerInfo_v1_t {
914    pub version: raw::c_uint,
915    pub index: raw::c_uint,
916    pub signalType: nvmlCoolerControl_t,
917    pub target: nvmlCoolerTarget_t,
918}
919pub type nvmlCoolerInfo_t = nvmlCoolerInfo_v1_t;
920pub const nvmlEnableState_enum_NVML_FEATURE_DISABLED: nvmlEnableState_enum = 0;
921pub const nvmlEnableState_enum_NVML_FEATURE_ENABLED: nvmlEnableState_enum = 1;
922pub type nvmlEnableState_enum = raw::c_uint;
923pub use self::nvmlEnableState_enum as nvmlEnableState_t;
924#[repr(C)]
925#[derive(Debug, Copy, Clone)]
926pub struct nvmlDramEncryptionInfo_v1_t {
927    pub version: raw::c_uint,
928    pub encryptionState: nvmlEnableState_t,
929}
930pub type nvmlDramEncryptionInfo_t = nvmlDramEncryptionInfo_v1_t;
931pub const nvmlBrandType_enum_NVML_BRAND_UNKNOWN: nvmlBrandType_enum = 0;
932pub const nvmlBrandType_enum_NVML_BRAND_QUADRO: nvmlBrandType_enum = 1;
933pub const nvmlBrandType_enum_NVML_BRAND_TESLA: nvmlBrandType_enum = 2;
934pub const nvmlBrandType_enum_NVML_BRAND_NVS: nvmlBrandType_enum = 3;
935pub const nvmlBrandType_enum_NVML_BRAND_GRID: nvmlBrandType_enum = 4;
936pub const nvmlBrandType_enum_NVML_BRAND_GEFORCE: nvmlBrandType_enum = 5;
937pub const nvmlBrandType_enum_NVML_BRAND_TITAN: nvmlBrandType_enum = 6;
938pub const nvmlBrandType_enum_NVML_BRAND_NVIDIA_VAPPS: nvmlBrandType_enum = 7;
939pub const nvmlBrandType_enum_NVML_BRAND_NVIDIA_VPC: nvmlBrandType_enum = 8;
940pub const nvmlBrandType_enum_NVML_BRAND_NVIDIA_VCS: nvmlBrandType_enum = 9;
941pub const nvmlBrandType_enum_NVML_BRAND_NVIDIA_VWS: nvmlBrandType_enum = 10;
942pub const nvmlBrandType_enum_NVML_BRAND_NVIDIA_CLOUD_GAMING: nvmlBrandType_enum = 11;
943pub const nvmlBrandType_enum_NVML_BRAND_NVIDIA_VGAMING: nvmlBrandType_enum = 11;
944pub const nvmlBrandType_enum_NVML_BRAND_QUADRO_RTX: nvmlBrandType_enum = 12;
945pub const nvmlBrandType_enum_NVML_BRAND_NVIDIA_RTX: nvmlBrandType_enum = 13;
946pub const nvmlBrandType_enum_NVML_BRAND_NVIDIA: nvmlBrandType_enum = 14;
947pub const nvmlBrandType_enum_NVML_BRAND_GEFORCE_RTX: nvmlBrandType_enum = 15;
948pub const nvmlBrandType_enum_NVML_BRAND_TITAN_RTX: nvmlBrandType_enum = 16;
949pub const nvmlBrandType_enum_NVML_BRAND_COUNT: nvmlBrandType_enum = 17;
950pub type nvmlBrandType_enum = raw::c_uint;
951pub use self::nvmlBrandType_enum as nvmlBrandType_t;
952pub const nvmlTemperatureThresholds_enum_NVML_TEMPERATURE_THRESHOLD_SHUTDOWN:
953    nvmlTemperatureThresholds_enum = 0;
954pub const nvmlTemperatureThresholds_enum_NVML_TEMPERATURE_THRESHOLD_SLOWDOWN:
955    nvmlTemperatureThresholds_enum = 1;
956pub const nvmlTemperatureThresholds_enum_NVML_TEMPERATURE_THRESHOLD_MEM_MAX:
957    nvmlTemperatureThresholds_enum = 2;
958pub const nvmlTemperatureThresholds_enum_NVML_TEMPERATURE_THRESHOLD_GPU_MAX:
959    nvmlTemperatureThresholds_enum = 3;
960pub const nvmlTemperatureThresholds_enum_NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MIN:
961    nvmlTemperatureThresholds_enum = 4;
962pub const nvmlTemperatureThresholds_enum_NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_CURR:
963    nvmlTemperatureThresholds_enum = 5;
964pub const nvmlTemperatureThresholds_enum_NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MAX:
965    nvmlTemperatureThresholds_enum = 6;
966pub const nvmlTemperatureThresholds_enum_NVML_TEMPERATURE_THRESHOLD_GPS_CURR:
967    nvmlTemperatureThresholds_enum = 7;
968pub const nvmlTemperatureThresholds_enum_NVML_TEMPERATURE_THRESHOLD_COUNT:
969    nvmlTemperatureThresholds_enum = 8;
970pub type nvmlTemperatureThresholds_enum = raw::c_uint;
971pub use self::nvmlTemperatureThresholds_enum as nvmlTemperatureThresholds_t;
972pub const nvmlTemperatureSensors_enum_NVML_TEMPERATURE_GPU: nvmlTemperatureSensors_enum = 0;
973pub const nvmlTemperatureSensors_enum_NVML_TEMPERATURE_COUNT: nvmlTemperatureSensors_enum = 1;
974pub type nvmlTemperatureSensors_enum = raw::c_uint;
975pub use self::nvmlTemperatureSensors_enum as nvmlTemperatureSensors_t;
976#[repr(C)]
977#[derive(Debug, Copy, Clone)]
978pub struct nvmlMarginTemperature_v1_t {
979    pub version: raw::c_uint,
980    pub marginTemperature: raw::c_int,
981}
982pub type nvmlMarginTemperature_t = nvmlMarginTemperature_v1_t;
983pub const nvmlComputeMode_enum_NVML_COMPUTEMODE_DEFAULT: nvmlComputeMode_enum = 0;
984pub const nvmlComputeMode_enum_NVML_COMPUTEMODE_EXCLUSIVE_THREAD: nvmlComputeMode_enum = 1;
985pub const nvmlComputeMode_enum_NVML_COMPUTEMODE_PROHIBITED: nvmlComputeMode_enum = 2;
986pub const nvmlComputeMode_enum_NVML_COMPUTEMODE_EXCLUSIVE_PROCESS: nvmlComputeMode_enum = 3;
987pub const nvmlComputeMode_enum_NVML_COMPUTEMODE_COUNT: nvmlComputeMode_enum = 4;
988pub type nvmlComputeMode_enum = raw::c_uint;
989pub use self::nvmlComputeMode_enum as nvmlComputeMode_t;
990#[repr(C)]
991#[derive(Debug, Copy, Clone)]
992pub struct nvmlClkMonFaultInfo_struct {
993    pub clkApiDomain: raw::c_uint,
994    pub clkDomainFaultMask: raw::c_uint,
995}
996pub type nvmlClkMonFaultInfo_t = nvmlClkMonFaultInfo_struct;
997#[repr(C)]
998#[derive(Debug, Copy, Clone)]
999pub struct nvmlClkMonStatus_status {
1000    pub bGlobalStatus: raw::c_uint,
1001    pub clkMonListSize: raw::c_uint,
1002    pub clkMonList: [nvmlClkMonFaultInfo_t; 32usize],
1003}
1004pub type nvmlClkMonStatus_t = nvmlClkMonStatus_status;
1005pub const nvmlMemoryErrorType_enum_NVML_MEMORY_ERROR_TYPE_CORRECTED: nvmlMemoryErrorType_enum = 0;
1006pub const nvmlMemoryErrorType_enum_NVML_MEMORY_ERROR_TYPE_UNCORRECTED: nvmlMemoryErrorType_enum = 1;
1007pub const nvmlMemoryErrorType_enum_NVML_MEMORY_ERROR_TYPE_COUNT: nvmlMemoryErrorType_enum = 2;
1008pub type nvmlMemoryErrorType_enum = raw::c_uint;
1009pub use self::nvmlMemoryErrorType_enum as nvmlMemoryErrorType_t;
1010pub const nvmlNvlinkVersion_enum_NVML_NVLINK_VERSION_INVALID: nvmlNvlinkVersion_enum = 0;
1011pub const nvmlNvlinkVersion_enum_NVML_NVLINK_VERSION_1_0: nvmlNvlinkVersion_enum = 1;
1012pub const nvmlNvlinkVersion_enum_NVML_NVLINK_VERSION_2_0: nvmlNvlinkVersion_enum = 2;
1013pub const nvmlNvlinkVersion_enum_NVML_NVLINK_VERSION_2_2: nvmlNvlinkVersion_enum = 3;
1014pub const nvmlNvlinkVersion_enum_NVML_NVLINK_VERSION_3_0: nvmlNvlinkVersion_enum = 4;
1015pub const nvmlNvlinkVersion_enum_NVML_NVLINK_VERSION_3_1: nvmlNvlinkVersion_enum = 5;
1016pub const nvmlNvlinkVersion_enum_NVML_NVLINK_VERSION_4_0: nvmlNvlinkVersion_enum = 6;
1017pub const nvmlNvlinkVersion_enum_NVML_NVLINK_VERSION_5_0: nvmlNvlinkVersion_enum = 7;
1018pub type nvmlNvlinkVersion_enum = raw::c_uint;
1019pub use self::nvmlNvlinkVersion_enum as nvmlNvlinkVersion_t;
1020pub const nvmlEccCounterType_enum_NVML_VOLATILE_ECC: nvmlEccCounterType_enum = 0;
1021pub const nvmlEccCounterType_enum_NVML_AGGREGATE_ECC: nvmlEccCounterType_enum = 1;
1022pub const nvmlEccCounterType_enum_NVML_ECC_COUNTER_TYPE_COUNT: nvmlEccCounterType_enum = 2;
1023pub type nvmlEccCounterType_enum = raw::c_uint;
1024pub use self::nvmlEccCounterType_enum as nvmlEccCounterType_t;
1025pub const nvmlClockType_enum_NVML_CLOCK_GRAPHICS: nvmlClockType_enum = 0;
1026pub const nvmlClockType_enum_NVML_CLOCK_SM: nvmlClockType_enum = 1;
1027pub const nvmlClockType_enum_NVML_CLOCK_MEM: nvmlClockType_enum = 2;
1028pub const nvmlClockType_enum_NVML_CLOCK_VIDEO: nvmlClockType_enum = 3;
1029pub const nvmlClockType_enum_NVML_CLOCK_COUNT: nvmlClockType_enum = 4;
1030pub type nvmlClockType_enum = raw::c_uint;
1031pub use self::nvmlClockType_enum as nvmlClockType_t;
1032pub const nvmlClockId_enum_NVML_CLOCK_ID_CURRENT: nvmlClockId_enum = 0;
1033pub const nvmlClockId_enum_NVML_CLOCK_ID_APP_CLOCK_TARGET: nvmlClockId_enum = 1;
1034pub const nvmlClockId_enum_NVML_CLOCK_ID_APP_CLOCK_DEFAULT: nvmlClockId_enum = 2;
1035pub const nvmlClockId_enum_NVML_CLOCK_ID_CUSTOMER_BOOST_MAX: nvmlClockId_enum = 3;
1036pub const nvmlClockId_enum_NVML_CLOCK_ID_COUNT: nvmlClockId_enum = 4;
1037pub type nvmlClockId_enum = raw::c_uint;
1038pub use self::nvmlClockId_enum as nvmlClockId_t;
1039pub const nvmlDriverModel_enum_NVML_DRIVER_WDDM: nvmlDriverModel_enum = 0;
1040pub const nvmlDriverModel_enum_NVML_DRIVER_WDM: nvmlDriverModel_enum = 1;
1041pub const nvmlDriverModel_enum_NVML_DRIVER_MCDM: nvmlDriverModel_enum = 2;
1042pub type nvmlDriverModel_enum = raw::c_uint;
1043pub use self::nvmlDriverModel_enum as nvmlDriverModel_t;
1044pub const nvmlPStates_enum_NVML_PSTATE_0: nvmlPStates_enum = 0;
1045pub const nvmlPStates_enum_NVML_PSTATE_1: nvmlPStates_enum = 1;
1046pub const nvmlPStates_enum_NVML_PSTATE_2: nvmlPStates_enum = 2;
1047pub const nvmlPStates_enum_NVML_PSTATE_3: nvmlPStates_enum = 3;
1048pub const nvmlPStates_enum_NVML_PSTATE_4: nvmlPStates_enum = 4;
1049pub const nvmlPStates_enum_NVML_PSTATE_5: nvmlPStates_enum = 5;
1050pub const nvmlPStates_enum_NVML_PSTATE_6: nvmlPStates_enum = 6;
1051pub const nvmlPStates_enum_NVML_PSTATE_7: nvmlPStates_enum = 7;
1052pub const nvmlPStates_enum_NVML_PSTATE_8: nvmlPStates_enum = 8;
1053pub const nvmlPStates_enum_NVML_PSTATE_9: nvmlPStates_enum = 9;
1054pub const nvmlPStates_enum_NVML_PSTATE_10: nvmlPStates_enum = 10;
1055pub const nvmlPStates_enum_NVML_PSTATE_11: nvmlPStates_enum = 11;
1056pub const nvmlPStates_enum_NVML_PSTATE_12: nvmlPStates_enum = 12;
1057pub const nvmlPStates_enum_NVML_PSTATE_13: nvmlPStates_enum = 13;
1058pub const nvmlPStates_enum_NVML_PSTATE_14: nvmlPStates_enum = 14;
1059pub const nvmlPStates_enum_NVML_PSTATE_15: nvmlPStates_enum = 15;
1060pub const nvmlPStates_enum_NVML_PSTATE_UNKNOWN: nvmlPStates_enum = 32;
1061pub type nvmlPStates_enum = raw::c_uint;
1062pub use self::nvmlPStates_enum as nvmlPstates_t;
1063#[repr(C)]
1064#[derive(Debug, Copy, Clone)]
1065pub struct nvmlClockOffset_v1_t {
1066    pub version: raw::c_uint,
1067    pub type_: nvmlClockType_t,
1068    pub pstate: nvmlPstates_t,
1069    pub clockOffsetMHz: raw::c_int,
1070    pub minClockOffsetMHz: raw::c_int,
1071    pub maxClockOffsetMHz: raw::c_int,
1072}
1073pub type nvmlClockOffset_t = nvmlClockOffset_v1_t;
1074#[repr(C)]
1075#[derive(Debug, Copy, Clone)]
1076pub struct nvmlFanSpeedInfo_v1_t {
1077    pub version: raw::c_uint,
1078    pub fan: raw::c_uint,
1079    pub speed: raw::c_uint,
1080}
1081pub type nvmlFanSpeedInfo_t = nvmlFanSpeedInfo_v1_t;
1082#[repr(C)]
1083#[derive(Debug, Copy, Clone)]
1084pub struct nvmlDevicePerfModes_v1_t {
1085    pub version: raw::c_uint,
1086    pub str_: [raw::c_char; 2048usize],
1087}
1088pub type nvmlDevicePerfModes_t = nvmlDevicePerfModes_v1_t;
1089#[repr(C)]
1090#[derive(Debug, Copy, Clone)]
1091pub struct nvmlDeviceCurrentClockFreqs_v1_t {
1092    pub version: raw::c_uint,
1093    pub str_: [raw::c_char; 2048usize],
1094}
1095pub type nvmlDeviceCurrentClockFreqs_t = nvmlDeviceCurrentClockFreqs_v1_t;
1096pub const nvmlGom_enum_NVML_GOM_ALL_ON: nvmlGom_enum = 0;
1097pub const nvmlGom_enum_NVML_GOM_COMPUTE: nvmlGom_enum = 1;
1098pub const nvmlGom_enum_NVML_GOM_LOW_DP: nvmlGom_enum = 2;
1099pub type nvmlGom_enum = raw::c_uint;
1100pub use self::nvmlGom_enum as nvmlGpuOperationMode_t;
1101pub const nvmlInforomObject_enum_NVML_INFOROM_OEM: nvmlInforomObject_enum = 0;
1102pub const nvmlInforomObject_enum_NVML_INFOROM_ECC: nvmlInforomObject_enum = 1;
1103pub const nvmlInforomObject_enum_NVML_INFOROM_POWER: nvmlInforomObject_enum = 2;
1104pub const nvmlInforomObject_enum_NVML_INFOROM_DEN: nvmlInforomObject_enum = 3;
1105pub const nvmlInforomObject_enum_NVML_INFOROM_COUNT: nvmlInforomObject_enum = 4;
1106pub type nvmlInforomObject_enum = raw::c_uint;
1107pub use self::nvmlInforomObject_enum as nvmlInforomObject_t;
1108pub const nvmlReturn_enum_NVML_SUCCESS: nvmlReturn_enum = 0;
1109pub const nvmlReturn_enum_NVML_ERROR_UNINITIALIZED: nvmlReturn_enum = 1;
1110pub const nvmlReturn_enum_NVML_ERROR_INVALID_ARGUMENT: nvmlReturn_enum = 2;
1111pub const nvmlReturn_enum_NVML_ERROR_NOT_SUPPORTED: nvmlReturn_enum = 3;
1112pub const nvmlReturn_enum_NVML_ERROR_NO_PERMISSION: nvmlReturn_enum = 4;
1113pub const nvmlReturn_enum_NVML_ERROR_ALREADY_INITIALIZED: nvmlReturn_enum = 5;
1114pub const nvmlReturn_enum_NVML_ERROR_NOT_FOUND: nvmlReturn_enum = 6;
1115pub const nvmlReturn_enum_NVML_ERROR_INSUFFICIENT_SIZE: nvmlReturn_enum = 7;
1116pub const nvmlReturn_enum_NVML_ERROR_INSUFFICIENT_POWER: nvmlReturn_enum = 8;
1117pub const nvmlReturn_enum_NVML_ERROR_DRIVER_NOT_LOADED: nvmlReturn_enum = 9;
1118pub const nvmlReturn_enum_NVML_ERROR_TIMEOUT: nvmlReturn_enum = 10;
1119pub const nvmlReturn_enum_NVML_ERROR_IRQ_ISSUE: nvmlReturn_enum = 11;
1120pub const nvmlReturn_enum_NVML_ERROR_LIBRARY_NOT_FOUND: nvmlReturn_enum = 12;
1121pub const nvmlReturn_enum_NVML_ERROR_FUNCTION_NOT_FOUND: nvmlReturn_enum = 13;
1122pub const nvmlReturn_enum_NVML_ERROR_CORRUPTED_INFOROM: nvmlReturn_enum = 14;
1123pub const nvmlReturn_enum_NVML_ERROR_GPU_IS_LOST: nvmlReturn_enum = 15;
1124pub const nvmlReturn_enum_NVML_ERROR_RESET_REQUIRED: nvmlReturn_enum = 16;
1125pub const nvmlReturn_enum_NVML_ERROR_OPERATING_SYSTEM: nvmlReturn_enum = 17;
1126pub const nvmlReturn_enum_NVML_ERROR_LIB_RM_VERSION_MISMATCH: nvmlReturn_enum = 18;
1127pub const nvmlReturn_enum_NVML_ERROR_IN_USE: nvmlReturn_enum = 19;
1128pub const nvmlReturn_enum_NVML_ERROR_MEMORY: nvmlReturn_enum = 20;
1129pub const nvmlReturn_enum_NVML_ERROR_NO_DATA: nvmlReturn_enum = 21;
1130pub const nvmlReturn_enum_NVML_ERROR_VGPU_ECC_NOT_SUPPORTED: nvmlReturn_enum = 22;
1131pub const nvmlReturn_enum_NVML_ERROR_INSUFFICIENT_RESOURCES: nvmlReturn_enum = 23;
1132pub const nvmlReturn_enum_NVML_ERROR_FREQ_NOT_SUPPORTED: nvmlReturn_enum = 24;
1133pub const nvmlReturn_enum_NVML_ERROR_ARGUMENT_VERSION_MISMATCH: nvmlReturn_enum = 25;
1134pub const nvmlReturn_enum_NVML_ERROR_DEPRECATED: nvmlReturn_enum = 26;
1135pub const nvmlReturn_enum_NVML_ERROR_NOT_READY: nvmlReturn_enum = 27;
1136pub const nvmlReturn_enum_NVML_ERROR_GPU_NOT_FOUND: nvmlReturn_enum = 28;
1137pub const nvmlReturn_enum_NVML_ERROR_INVALID_STATE: nvmlReturn_enum = 29;
1138pub const nvmlReturn_enum_NVML_ERROR_UNKNOWN: nvmlReturn_enum = 999;
1139pub type nvmlReturn_enum = raw::c_uint;
1140pub use self::nvmlReturn_enum as nvmlReturn_t;
1141pub const nvmlMemoryLocation_enum_NVML_MEMORY_LOCATION_L1_CACHE: nvmlMemoryLocation_enum = 0;
1142pub const nvmlMemoryLocation_enum_NVML_MEMORY_LOCATION_L2_CACHE: nvmlMemoryLocation_enum = 1;
1143pub const nvmlMemoryLocation_enum_NVML_MEMORY_LOCATION_DRAM: nvmlMemoryLocation_enum = 2;
1144pub const nvmlMemoryLocation_enum_NVML_MEMORY_LOCATION_DEVICE_MEMORY: nvmlMemoryLocation_enum = 2;
1145pub const nvmlMemoryLocation_enum_NVML_MEMORY_LOCATION_REGISTER_FILE: nvmlMemoryLocation_enum = 3;
1146pub const nvmlMemoryLocation_enum_NVML_MEMORY_LOCATION_TEXTURE_MEMORY: nvmlMemoryLocation_enum = 4;
1147pub const nvmlMemoryLocation_enum_NVML_MEMORY_LOCATION_TEXTURE_SHM: nvmlMemoryLocation_enum = 5;
1148pub const nvmlMemoryLocation_enum_NVML_MEMORY_LOCATION_CBU: nvmlMemoryLocation_enum = 6;
1149pub const nvmlMemoryLocation_enum_NVML_MEMORY_LOCATION_SRAM: nvmlMemoryLocation_enum = 7;
1150pub const nvmlMemoryLocation_enum_NVML_MEMORY_LOCATION_COUNT: nvmlMemoryLocation_enum = 8;
1151pub type nvmlMemoryLocation_enum = raw::c_uint;
1152pub use self::nvmlMemoryLocation_enum as nvmlMemoryLocation_t;
1153pub const nvmlPageRetirementCause_enum_NVML_PAGE_RETIREMENT_CAUSE_MULTIPLE_SINGLE_BIT_ECC_ERRORS:
1154    nvmlPageRetirementCause_enum = 0;
1155pub const nvmlPageRetirementCause_enum_NVML_PAGE_RETIREMENT_CAUSE_DOUBLE_BIT_ECC_ERROR:
1156    nvmlPageRetirementCause_enum = 1;
1157pub const nvmlPageRetirementCause_enum_NVML_PAGE_RETIREMENT_CAUSE_COUNT:
1158    nvmlPageRetirementCause_enum = 2;
1159pub type nvmlPageRetirementCause_enum = raw::c_uint;
1160pub use self::nvmlPageRetirementCause_enum as nvmlPageRetirementCause_t;
1161pub const nvmlRestrictedAPI_enum_NVML_RESTRICTED_API_SET_APPLICATION_CLOCKS:
1162    nvmlRestrictedAPI_enum = 0;
1163pub const nvmlRestrictedAPI_enum_NVML_RESTRICTED_API_SET_AUTO_BOOSTED_CLOCKS:
1164    nvmlRestrictedAPI_enum = 1;
1165pub const nvmlRestrictedAPI_enum_NVML_RESTRICTED_API_COUNT: nvmlRestrictedAPI_enum = 2;
1166pub type nvmlRestrictedAPI_enum = raw::c_uint;
1167pub use self::nvmlRestrictedAPI_enum as nvmlRestrictedAPI_t;
1168#[repr(C)]
1169#[derive(Debug, Copy, Clone)]
1170pub struct nvmlProcessUtilizationSample_st {
1171    pub pid: raw::c_uint,
1172    pub timeStamp: raw::c_ulonglong,
1173    pub smUtil: raw::c_uint,
1174    pub memUtil: raw::c_uint,
1175    pub encUtil: raw::c_uint,
1176    pub decUtil: raw::c_uint,
1177}
1178pub type nvmlProcessUtilizationSample_t = nvmlProcessUtilizationSample_st;
1179#[repr(C)]
1180#[derive(Debug, Copy, Clone)]
1181pub struct nvmlProcessUtilizationInfo_v1_t {
1182    pub timeStamp: raw::c_ulonglong,
1183    pub pid: raw::c_uint,
1184    pub smUtil: raw::c_uint,
1185    pub memUtil: raw::c_uint,
1186    pub encUtil: raw::c_uint,
1187    pub decUtil: raw::c_uint,
1188    pub jpgUtil: raw::c_uint,
1189    pub ofaUtil: raw::c_uint,
1190}
1191#[repr(C)]
1192#[derive(Debug, Copy, Clone)]
1193pub struct nvmlProcessesUtilizationInfo_v1_t {
1194    pub version: raw::c_uint,
1195    pub processSamplesCount: raw::c_uint,
1196    pub lastSeenTimeStamp: raw::c_ulonglong,
1197    pub procUtilArray: *mut nvmlProcessUtilizationInfo_v1_t,
1198}
1199pub type nvmlProcessesUtilizationInfo_t = nvmlProcessesUtilizationInfo_v1_t;
1200#[repr(C)]
1201#[derive(Debug, Copy, Clone)]
1202pub struct nvmlEccSramErrorStatus_v1_t {
1203    pub version: raw::c_uint,
1204    pub aggregateUncParity: raw::c_ulonglong,
1205    pub aggregateUncSecDed: raw::c_ulonglong,
1206    pub aggregateCor: raw::c_ulonglong,
1207    pub volatileUncParity: raw::c_ulonglong,
1208    pub volatileUncSecDed: raw::c_ulonglong,
1209    pub volatileCor: raw::c_ulonglong,
1210    pub aggregateUncBucketL2: raw::c_ulonglong,
1211    pub aggregateUncBucketSm: raw::c_ulonglong,
1212    pub aggregateUncBucketPcie: raw::c_ulonglong,
1213    pub aggregateUncBucketMcu: raw::c_ulonglong,
1214    pub aggregateUncBucketOther: raw::c_ulonglong,
1215    pub bThresholdExceeded: raw::c_uint,
1216}
1217pub type nvmlEccSramErrorStatus_t = nvmlEccSramErrorStatus_v1_t;
1218#[repr(C)]
1219#[derive(Debug, Copy, Clone)]
1220pub struct nvmlPlatformInfo_v1_t {
1221    pub version: raw::c_uint,
1222    pub ibGuid: [raw::c_uchar; 16usize],
1223    pub rackGuid: [raw::c_uchar; 16usize],
1224    pub chassisPhysicalSlotNumber: raw::c_uchar,
1225    pub computeSlotIndex: raw::c_uchar,
1226    pub nodeIndex: raw::c_uchar,
1227    pub peerType: raw::c_uchar,
1228    pub moduleId: raw::c_uchar,
1229}
1230#[repr(C)]
1231#[derive(Debug, Copy, Clone)]
1232pub struct nvmlPlatformInfo_v2_t {
1233    pub version: raw::c_uint,
1234    pub ibGuid: [raw::c_uchar; 16usize],
1235    pub chassisSerialNumber: [raw::c_uchar; 16usize],
1236    pub slotNumber: raw::c_uchar,
1237    pub trayIndex: raw::c_uchar,
1238    pub hostId: raw::c_uchar,
1239    pub peerType: raw::c_uchar,
1240    pub moduleId: raw::c_uchar,
1241}
1242pub type nvmlPlatformInfo_t = nvmlPlatformInfo_v2_t;
1243pub type nvmlDeviceArchitecture_t = raw::c_uint;
1244pub type nvmlBusType_t = raw::c_uint;
1245pub type nvmlFanControlPolicy_t = raw::c_uint;
1246pub type nvmlPowerSource_t = raw::c_uint;
1247pub const nvmlGpuUtilizationDomainId_t_NVML_GPU_UTILIZATION_DOMAIN_GPU:
1248    nvmlGpuUtilizationDomainId_t = 0;
1249pub const nvmlGpuUtilizationDomainId_t_NVML_GPU_UTILIZATION_DOMAIN_FB:
1250    nvmlGpuUtilizationDomainId_t = 1;
1251pub const nvmlGpuUtilizationDomainId_t_NVML_GPU_UTILIZATION_DOMAIN_VID:
1252    nvmlGpuUtilizationDomainId_t = 2;
1253pub const nvmlGpuUtilizationDomainId_t_NVML_GPU_UTILIZATION_DOMAIN_BUS:
1254    nvmlGpuUtilizationDomainId_t = 3;
1255pub type nvmlGpuUtilizationDomainId_t = raw::c_uint;
1256#[repr(C)]
1257#[derive(Debug, Copy, Clone)]
1258pub struct nvmlGpuDynamicPstatesInfo_st {
1259    pub flags: raw::c_uint,
1260    pub utilization: [nvmlGpuDynamicPstatesInfo_st__bindgen_ty_1; 8usize],
1261}
1262#[repr(C)]
1263#[derive(Debug, Copy, Clone)]
1264pub struct nvmlGpuDynamicPstatesInfo_st__bindgen_ty_1 {
1265    pub bIsPresent: raw::c_uint,
1266    pub percentage: raw::c_uint,
1267    pub incThreshold: raw::c_uint,
1268    pub decThreshold: raw::c_uint,
1269}
1270pub type nvmlGpuDynamicPstatesInfo_t = nvmlGpuDynamicPstatesInfo_st;
1271pub type nvmlPowerScopeType_t = raw::c_uchar;
1272#[repr(C)]
1273#[derive(Debug, Copy, Clone)]
1274pub struct nvmlPowerValue_v2_t {
1275    pub version: raw::c_uint,
1276    pub powerScope: nvmlPowerScopeType_t,
1277    pub powerValueMw: raw::c_uint,
1278}
1279pub const nvmlGpuVirtualizationMode_NVML_GPU_VIRTUALIZATION_MODE_NONE: nvmlGpuVirtualizationMode =
1280    0;
1281pub const nvmlGpuVirtualizationMode_NVML_GPU_VIRTUALIZATION_MODE_PASSTHROUGH:
1282    nvmlGpuVirtualizationMode = 1;
1283pub const nvmlGpuVirtualizationMode_NVML_GPU_VIRTUALIZATION_MODE_VGPU: nvmlGpuVirtualizationMode =
1284    2;
1285pub const nvmlGpuVirtualizationMode_NVML_GPU_VIRTUALIZATION_MODE_HOST_VGPU:
1286    nvmlGpuVirtualizationMode = 3;
1287pub const nvmlGpuVirtualizationMode_NVML_GPU_VIRTUALIZATION_MODE_HOST_VSGA:
1288    nvmlGpuVirtualizationMode = 4;
1289pub type nvmlGpuVirtualizationMode = raw::c_uint;
1290pub use self::nvmlGpuVirtualizationMode as nvmlGpuVirtualizationMode_t;
1291pub const nvmlHostVgpuMode_enum_NVML_HOST_VGPU_MODE_NON_SRIOV: nvmlHostVgpuMode_enum = 0;
1292pub const nvmlHostVgpuMode_enum_NVML_HOST_VGPU_MODE_SRIOV: nvmlHostVgpuMode_enum = 1;
1293pub type nvmlHostVgpuMode_enum = raw::c_uint;
1294pub use self::nvmlHostVgpuMode_enum as nvmlHostVgpuMode_t;
1295pub const nvmlVgpuVmIdType_NVML_VGPU_VM_ID_DOMAIN_ID: nvmlVgpuVmIdType = 0;
1296pub const nvmlVgpuVmIdType_NVML_VGPU_VM_ID_UUID: nvmlVgpuVmIdType = 1;
1297pub type nvmlVgpuVmIdType = raw::c_uint;
1298pub use self::nvmlVgpuVmIdType as nvmlVgpuVmIdType_t;
1299pub const nvmlVgpuGuestInfoState_enum_NVML_VGPU_INSTANCE_GUEST_INFO_STATE_UNINITIALIZED:
1300    nvmlVgpuGuestInfoState_enum = 0;
1301pub const nvmlVgpuGuestInfoState_enum_NVML_VGPU_INSTANCE_GUEST_INFO_STATE_INITIALIZED:
1302    nvmlVgpuGuestInfoState_enum = 1;
1303pub type nvmlVgpuGuestInfoState_enum = raw::c_uint;
1304pub use self::nvmlVgpuGuestInfoState_enum as nvmlVgpuGuestInfoState_t;
1305pub const nvmlGridLicenseFeatureCode_t_NVML_GRID_LICENSE_FEATURE_CODE_UNKNOWN:
1306    nvmlGridLicenseFeatureCode_t = 0;
1307pub const nvmlGridLicenseFeatureCode_t_NVML_GRID_LICENSE_FEATURE_CODE_VGPU:
1308    nvmlGridLicenseFeatureCode_t = 1;
1309pub const nvmlGridLicenseFeatureCode_t_NVML_GRID_LICENSE_FEATURE_CODE_NVIDIA_RTX:
1310    nvmlGridLicenseFeatureCode_t = 2;
1311pub const nvmlGridLicenseFeatureCode_t_NVML_GRID_LICENSE_FEATURE_CODE_VWORKSTATION:
1312    nvmlGridLicenseFeatureCode_t = 2;
1313pub const nvmlGridLicenseFeatureCode_t_NVML_GRID_LICENSE_FEATURE_CODE_GAMING:
1314    nvmlGridLicenseFeatureCode_t = 3;
1315pub const nvmlGridLicenseFeatureCode_t_NVML_GRID_LICENSE_FEATURE_CODE_COMPUTE:
1316    nvmlGridLicenseFeatureCode_t = 4;
1317pub type nvmlGridLicenseFeatureCode_t = raw::c_uint;
1318pub const nvmlVgpuCapability_enum_NVML_VGPU_CAP_NVLINK_P2P: nvmlVgpuCapability_enum = 0;
1319pub const nvmlVgpuCapability_enum_NVML_VGPU_CAP_GPUDIRECT: nvmlVgpuCapability_enum = 1;
1320pub const nvmlVgpuCapability_enum_NVML_VGPU_CAP_MULTI_VGPU_EXCLUSIVE: nvmlVgpuCapability_enum = 2;
1321pub const nvmlVgpuCapability_enum_NVML_VGPU_CAP_EXCLUSIVE_TYPE: nvmlVgpuCapability_enum = 3;
1322pub const nvmlVgpuCapability_enum_NVML_VGPU_CAP_EXCLUSIVE_SIZE: nvmlVgpuCapability_enum = 4;
1323pub const nvmlVgpuCapability_enum_NVML_VGPU_CAP_COUNT: nvmlVgpuCapability_enum = 5;
1324pub type nvmlVgpuCapability_enum = raw::c_uint;
1325pub use self::nvmlVgpuCapability_enum as nvmlVgpuCapability_t;
1326pub const nvmlVgpuDriverCapability_enum_NVML_VGPU_DRIVER_CAP_HETEROGENEOUS_MULTI_VGPU:
1327    nvmlVgpuDriverCapability_enum = 0;
1328pub const nvmlVgpuDriverCapability_enum_NVML_VGPU_DRIVER_CAP_WARM_UPDATE:
1329    nvmlVgpuDriverCapability_enum = 1;
1330pub const nvmlVgpuDriverCapability_enum_NVML_VGPU_DRIVER_CAP_COUNT: nvmlVgpuDriverCapability_enum =
1331    2;
1332pub type nvmlVgpuDriverCapability_enum = raw::c_uint;
1333pub use self::nvmlVgpuDriverCapability_enum as nvmlVgpuDriverCapability_t;
1334pub const nvmlDeviceVgpuCapability_enum_NVML_DEVICE_VGPU_CAP_FRACTIONAL_MULTI_VGPU:
1335    nvmlDeviceVgpuCapability_enum = 0;
1336pub const nvmlDeviceVgpuCapability_enum_NVML_DEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_PROFILES:
1337    nvmlDeviceVgpuCapability_enum = 1;
1338pub const nvmlDeviceVgpuCapability_enum_NVML_DEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_SIZES:
1339    nvmlDeviceVgpuCapability_enum = 2;
1340pub const nvmlDeviceVgpuCapability_enum_NVML_DEVICE_VGPU_CAP_READ_DEVICE_BUFFER_BW:
1341    nvmlDeviceVgpuCapability_enum = 3;
1342pub const nvmlDeviceVgpuCapability_enum_NVML_DEVICE_VGPU_CAP_WRITE_DEVICE_BUFFER_BW:
1343    nvmlDeviceVgpuCapability_enum = 4;
1344pub const nvmlDeviceVgpuCapability_enum_NVML_DEVICE_VGPU_CAP_DEVICE_STREAMING:
1345    nvmlDeviceVgpuCapability_enum = 5;
1346pub const nvmlDeviceVgpuCapability_enum_NVML_DEVICE_VGPU_CAP_MINI_QUARTER_GPU:
1347    nvmlDeviceVgpuCapability_enum = 6;
1348pub const nvmlDeviceVgpuCapability_enum_NVML_DEVICE_VGPU_CAP_COMPUTE_MEDIA_ENGINE_GPU:
1349    nvmlDeviceVgpuCapability_enum = 7;
1350pub const nvmlDeviceVgpuCapability_enum_NVML_DEVICE_VGPU_CAP_WARM_UPDATE:
1351    nvmlDeviceVgpuCapability_enum = 8;
1352pub const nvmlDeviceVgpuCapability_enum_NVML_DEVICE_VGPU_CAP_HOMOGENEOUS_PLACEMENTS:
1353    nvmlDeviceVgpuCapability_enum = 9;
1354pub const nvmlDeviceVgpuCapability_enum_NVML_DEVICE_VGPU_CAP_COUNT: nvmlDeviceVgpuCapability_enum =
1355    10;
1356pub type nvmlDeviceVgpuCapability_enum = raw::c_uint;
1357pub use self::nvmlDeviceVgpuCapability_enum as nvmlDeviceVgpuCapability_t;
1358pub type nvmlVgpuTypeId_t = raw::c_uint;
1359pub type nvmlVgpuInstance_t = raw::c_uint;
1360#[repr(C)]
1361#[derive(Debug, Copy, Clone)]
1362pub struct nvmlVgpuHeterogeneousMode_v1_t {
1363    pub version: raw::c_uint,
1364    pub mode: raw::c_uint,
1365}
1366pub type nvmlVgpuHeterogeneousMode_t = nvmlVgpuHeterogeneousMode_v1_t;
1367#[repr(C)]
1368#[derive(Debug, Copy, Clone)]
1369pub struct nvmlVgpuPlacementId_v1_t {
1370    pub version: raw::c_uint,
1371    pub placementId: raw::c_uint,
1372}
1373pub type nvmlVgpuPlacementId_t = nvmlVgpuPlacementId_v1_t;
1374#[repr(C)]
1375#[derive(Debug, Copy, Clone)]
1376pub struct nvmlVgpuPlacementList_v1_t {
1377    pub version: raw::c_uint,
1378    pub placementSize: raw::c_uint,
1379    pub count: raw::c_uint,
1380    pub placementIds: *mut raw::c_uint,
1381}
1382#[repr(C)]
1383#[derive(Debug, Copy, Clone)]
1384pub struct nvmlVgpuPlacementList_v2_t {
1385    pub version: raw::c_uint,
1386    pub placementSize: raw::c_uint,
1387    pub count: raw::c_uint,
1388    pub placementIds: *mut raw::c_uint,
1389    pub mode: raw::c_uint,
1390}
1391pub type nvmlVgpuPlacementList_t = nvmlVgpuPlacementList_v2_t;
1392#[repr(C)]
1393#[derive(Debug, Copy, Clone)]
1394pub struct nvmlVgpuTypeBar1Info_v1_t {
1395    pub version: raw::c_uint,
1396    pub bar1Size: raw::c_ulonglong,
1397}
1398pub type nvmlVgpuTypeBar1Info_t = nvmlVgpuTypeBar1Info_v1_t;
1399#[repr(C)]
1400#[derive(Copy, Clone)]
1401pub struct nvmlVgpuInstanceUtilizationSample_st {
1402    pub vgpuInstance: nvmlVgpuInstance_t,
1403    pub timeStamp: raw::c_ulonglong,
1404    pub smUtil: nvmlValue_t,
1405    pub memUtil: nvmlValue_t,
1406    pub encUtil: nvmlValue_t,
1407    pub decUtil: nvmlValue_t,
1408}
1409pub type nvmlVgpuInstanceUtilizationSample_t = nvmlVgpuInstanceUtilizationSample_st;
1410#[repr(C)]
1411#[derive(Copy, Clone)]
1412pub struct nvmlVgpuInstanceUtilizationInfo_v1_t {
1413    pub timeStamp: raw::c_ulonglong,
1414    pub vgpuInstance: nvmlVgpuInstance_t,
1415    pub smUtil: nvmlValue_t,
1416    pub memUtil: nvmlValue_t,
1417    pub encUtil: nvmlValue_t,
1418    pub decUtil: nvmlValue_t,
1419    pub jpgUtil: nvmlValue_t,
1420    pub ofaUtil: nvmlValue_t,
1421}
1422#[repr(C)]
1423#[derive(Debug, Copy, Clone)]
1424pub struct nvmlVgpuInstancesUtilizationInfo_v1_t {
1425    pub version: raw::c_uint,
1426    pub sampleValType: nvmlValueType_t,
1427    pub vgpuInstanceCount: raw::c_uint,
1428    pub lastSeenTimeStamp: raw::c_ulonglong,
1429    pub vgpuUtilArray: *mut nvmlVgpuInstanceUtilizationInfo_v1_t,
1430}
1431pub type nvmlVgpuInstancesUtilizationInfo_t = nvmlVgpuInstancesUtilizationInfo_v1_t;
1432#[repr(C)]
1433#[derive(Debug, Copy, Clone)]
1434pub struct nvmlVgpuProcessUtilizationSample_st {
1435    pub vgpuInstance: nvmlVgpuInstance_t,
1436    pub pid: raw::c_uint,
1437    pub processName: [raw::c_char; 64usize],
1438    pub timeStamp: raw::c_ulonglong,
1439    pub smUtil: raw::c_uint,
1440    pub memUtil: raw::c_uint,
1441    pub encUtil: raw::c_uint,
1442    pub decUtil: raw::c_uint,
1443}
1444pub type nvmlVgpuProcessUtilizationSample_t = nvmlVgpuProcessUtilizationSample_st;
1445#[repr(C)]
1446#[derive(Debug, Copy, Clone)]
1447pub struct nvmlVgpuProcessUtilizationInfo_v1_t {
1448    pub processName: [raw::c_char; 64usize],
1449    pub timeStamp: raw::c_ulonglong,
1450    pub vgpuInstance: nvmlVgpuInstance_t,
1451    pub pid: raw::c_uint,
1452    pub smUtil: raw::c_uint,
1453    pub memUtil: raw::c_uint,
1454    pub encUtil: raw::c_uint,
1455    pub decUtil: raw::c_uint,
1456    pub jpgUtil: raw::c_uint,
1457    pub ofaUtil: raw::c_uint,
1458}
1459#[repr(C)]
1460#[derive(Debug, Copy, Clone)]
1461pub struct nvmlVgpuProcessesUtilizationInfo_v1_t {
1462    pub version: raw::c_uint,
1463    pub vgpuProcessCount: raw::c_uint,
1464    pub lastSeenTimeStamp: raw::c_ulonglong,
1465    pub vgpuProcUtilArray: *mut nvmlVgpuProcessUtilizationInfo_v1_t,
1466}
1467pub type nvmlVgpuProcessesUtilizationInfo_t = nvmlVgpuProcessesUtilizationInfo_v1_t;
1468#[repr(C)]
1469#[derive(Debug, Copy, Clone)]
1470pub struct nvmlVgpuRuntimeState_v1_t {
1471    pub version: raw::c_uint,
1472    pub size: raw::c_ulonglong,
1473}
1474pub type nvmlVgpuRuntimeState_t = nvmlVgpuRuntimeState_v1_t;
1475#[repr(C)]
1476#[derive(Copy, Clone)]
1477pub union nvmlVgpuSchedulerParams_t {
1478    pub vgpuSchedDataWithARR: nvmlVgpuSchedulerParams_t__bindgen_ty_1,
1479    pub vgpuSchedData: nvmlVgpuSchedulerParams_t__bindgen_ty_2,
1480}
1481#[repr(C)]
1482#[derive(Debug, Copy, Clone)]
1483pub struct nvmlVgpuSchedulerParams_t__bindgen_ty_1 {
1484    pub avgFactor: raw::c_uint,
1485    pub timeslice: raw::c_uint,
1486}
1487#[repr(C)]
1488#[derive(Debug, Copy, Clone)]
1489pub struct nvmlVgpuSchedulerParams_t__bindgen_ty_2 {
1490    pub timeslice: raw::c_uint,
1491}
1492#[repr(C)]
1493#[derive(Debug, Copy, Clone)]
1494pub struct nvmlVgpuSchedulerLogEntries_st {
1495    pub timestamp: raw::c_ulonglong,
1496    pub timeRunTotal: raw::c_ulonglong,
1497    pub timeRun: raw::c_ulonglong,
1498    pub swRunlistId: raw::c_uint,
1499    pub targetTimeSlice: raw::c_ulonglong,
1500    pub cumulativePreemptionTime: raw::c_ulonglong,
1501}
1502pub type nvmlVgpuSchedulerLogEntry_t = nvmlVgpuSchedulerLogEntries_st;
1503#[repr(C)]
1504#[derive(Copy, Clone)]
1505pub struct nvmlVgpuSchedulerLog_st {
1506    pub engineId: raw::c_uint,
1507    pub schedulerPolicy: raw::c_uint,
1508    pub arrMode: raw::c_uint,
1509    pub schedulerParams: nvmlVgpuSchedulerParams_t,
1510    pub entriesCount: raw::c_uint,
1511    pub logEntries: [nvmlVgpuSchedulerLogEntry_t; 200usize],
1512}
1513pub type nvmlVgpuSchedulerLog_t = nvmlVgpuSchedulerLog_st;
1514#[repr(C)]
1515#[derive(Copy, Clone)]
1516pub struct nvmlVgpuSchedulerGetState_st {
1517    pub schedulerPolicy: raw::c_uint,
1518    pub arrMode: raw::c_uint,
1519    pub schedulerParams: nvmlVgpuSchedulerParams_t,
1520}
1521pub type nvmlVgpuSchedulerGetState_t = nvmlVgpuSchedulerGetState_st;
1522#[repr(C)]
1523#[derive(Copy, Clone)]
1524pub union nvmlVgpuSchedulerSetParams_t {
1525    pub vgpuSchedDataWithARR: nvmlVgpuSchedulerSetParams_t__bindgen_ty_1,
1526    pub vgpuSchedData: nvmlVgpuSchedulerSetParams_t__bindgen_ty_2,
1527}
1528#[repr(C)]
1529#[derive(Debug, Copy, Clone)]
1530pub struct nvmlVgpuSchedulerSetParams_t__bindgen_ty_1 {
1531    pub avgFactor: raw::c_uint,
1532    pub frequency: raw::c_uint,
1533}
1534#[repr(C)]
1535#[derive(Debug, Copy, Clone)]
1536pub struct nvmlVgpuSchedulerSetParams_t__bindgen_ty_2 {
1537    pub timeslice: raw::c_uint,
1538}
1539#[repr(C)]
1540#[derive(Copy, Clone)]
1541pub struct nvmlVgpuSchedulerSetState_st {
1542    pub schedulerPolicy: raw::c_uint,
1543    pub enableARRMode: raw::c_uint,
1544    pub schedulerParams: nvmlVgpuSchedulerSetParams_t,
1545}
1546pub type nvmlVgpuSchedulerSetState_t = nvmlVgpuSchedulerSetState_st;
1547#[repr(C)]
1548#[derive(Debug, Copy, Clone)]
1549pub struct nvmlVgpuSchedulerCapabilities_st {
1550    pub supportedSchedulers: [raw::c_uint; 3usize],
1551    pub maxTimeslice: raw::c_uint,
1552    pub minTimeslice: raw::c_uint,
1553    pub isArrModeSupported: raw::c_uint,
1554    pub maxFrequencyForARR: raw::c_uint,
1555    pub minFrequencyForARR: raw::c_uint,
1556    pub maxAvgFactorForARR: raw::c_uint,
1557    pub minAvgFactorForARR: raw::c_uint,
1558}
1559pub type nvmlVgpuSchedulerCapabilities_t = nvmlVgpuSchedulerCapabilities_st;
1560#[repr(C)]
1561#[derive(Debug, Copy, Clone)]
1562pub struct nvmlVgpuLicenseExpiry_st {
1563    pub year: raw::c_uint,
1564    pub month: raw::c_ushort,
1565    pub day: raw::c_ushort,
1566    pub hour: raw::c_ushort,
1567    pub min: raw::c_ushort,
1568    pub sec: raw::c_ushort,
1569    pub status: raw::c_uchar,
1570}
1571pub type nvmlVgpuLicenseExpiry_t = nvmlVgpuLicenseExpiry_st;
1572#[repr(C)]
1573#[derive(Debug, Copy, Clone)]
1574pub struct nvmlVgpuLicenseInfo_st {
1575    pub isLicensed: raw::c_uchar,
1576    pub licenseExpiry: nvmlVgpuLicenseExpiry_t,
1577    pub currentState: raw::c_uint,
1578}
1579pub type nvmlVgpuLicenseInfo_t = nvmlVgpuLicenseInfo_st;
1580#[repr(C)]
1581#[derive(Debug, Copy, Clone)]
1582pub struct nvmlGridLicenseExpiry_st {
1583    pub year: raw::c_uint,
1584    pub month: raw::c_ushort,
1585    pub day: raw::c_ushort,
1586    pub hour: raw::c_ushort,
1587    pub min: raw::c_ushort,
1588    pub sec: raw::c_ushort,
1589    pub status: raw::c_uchar,
1590}
1591pub type nvmlGridLicenseExpiry_t = nvmlGridLicenseExpiry_st;
1592#[repr(C)]
1593#[derive(Debug, Copy, Clone)]
1594pub struct nvmlGridLicensableFeature_st {
1595    pub featureCode: nvmlGridLicenseFeatureCode_t,
1596    pub featureState: raw::c_uint,
1597    pub licenseInfo: [raw::c_char; 128usize],
1598    pub productName: [raw::c_char; 128usize],
1599    pub featureEnabled: raw::c_uint,
1600    pub licenseExpiry: nvmlGridLicenseExpiry_t,
1601}
1602pub type nvmlGridLicensableFeature_t = nvmlGridLicensableFeature_st;
1603#[repr(C)]
1604#[derive(Debug, Copy, Clone)]
1605pub struct nvmlGridLicensableFeatures_st {
1606    pub isGridLicenseSupported: raw::c_int,
1607    pub licensableFeaturesCount: raw::c_uint,
1608    pub gridLicensableFeatures: [nvmlGridLicensableFeature_t; 3usize],
1609}
1610pub type nvmlGridLicensableFeatures_t = nvmlGridLicensableFeatures_st;
1611pub const nvmlDeviceGpuRecoveryAction_s_NVML_GPU_RECOVERY_ACTION_NONE:
1612    nvmlDeviceGpuRecoveryAction_s = 0;
1613pub const nvmlDeviceGpuRecoveryAction_s_NVML_GPU_RECOVERY_ACTION_GPU_RESET:
1614    nvmlDeviceGpuRecoveryAction_s = 1;
1615pub const nvmlDeviceGpuRecoveryAction_s_NVML_GPU_RECOVERY_ACTION_NODE_REBOOT:
1616    nvmlDeviceGpuRecoveryAction_s = 2;
1617pub const nvmlDeviceGpuRecoveryAction_s_NVML_GPU_RECOVERY_ACTION_DRAIN_P2P:
1618    nvmlDeviceGpuRecoveryAction_s = 3;
1619pub const nvmlDeviceGpuRecoveryAction_s_NVML_GPU_RECOVERY_ACTION_DRAIN_AND_RESET:
1620    nvmlDeviceGpuRecoveryAction_s = 4;
1621pub type nvmlDeviceGpuRecoveryAction_s = raw::c_uint;
1622pub use self::nvmlDeviceGpuRecoveryAction_s as nvmlDeviceGpuRecoveryAction_t;
1623#[repr(C)]
1624#[derive(Debug, Copy, Clone)]
1625pub struct nvmlNvLinkPowerThres_st {
1626    pub lowPwrThreshold: raw::c_uint,
1627}
1628pub type nvmlNvLinkPowerThres_t = nvmlNvLinkPowerThres_st;
1629#[repr(C)]
1630#[derive(Copy, Clone)]
1631pub struct nvmlFieldValue_st {
1632    pub fieldId: raw::c_uint,
1633    pub scopeId: raw::c_uint,
1634    pub timestamp: raw::c_longlong,
1635    pub latencyUsec: raw::c_longlong,
1636    pub valueType: nvmlValueType_t,
1637    pub nvmlReturn: nvmlReturn_t,
1638    pub value: nvmlValue_t,
1639}
1640pub type nvmlFieldValue_t = nvmlFieldValue_st;
1641#[repr(C)]
1642#[derive(Debug, Copy, Clone)]
1643pub struct nvmlUnit_st {
1644    _unused: [u8; 0],
1645}
1646pub type nvmlUnit_t = *mut nvmlUnit_st;
1647#[repr(C)]
1648#[derive(Debug, Copy, Clone)]
1649pub struct nvmlHwbcEntry_st {
1650    pub hwbcId: raw::c_uint,
1651    pub firmwareVersion: [raw::c_char; 32usize],
1652}
1653pub type nvmlHwbcEntry_t = nvmlHwbcEntry_st;
1654pub const nvmlFanState_enum_NVML_FAN_NORMAL: nvmlFanState_enum = 0;
1655pub const nvmlFanState_enum_NVML_FAN_FAILED: nvmlFanState_enum = 1;
1656pub type nvmlFanState_enum = raw::c_uint;
1657pub use self::nvmlFanState_enum as nvmlFanState_t;
1658pub const nvmlLedColor_enum_NVML_LED_COLOR_GREEN: nvmlLedColor_enum = 0;
1659pub const nvmlLedColor_enum_NVML_LED_COLOR_AMBER: nvmlLedColor_enum = 1;
1660pub type nvmlLedColor_enum = raw::c_uint;
1661pub use self::nvmlLedColor_enum as nvmlLedColor_t;
1662#[repr(C)]
1663#[derive(Debug, Copy, Clone)]
1664pub struct nvmlLedState_st {
1665    pub cause: [raw::c_char; 256usize],
1666    pub color: nvmlLedColor_t,
1667}
1668pub type nvmlLedState_t = nvmlLedState_st;
1669#[repr(C)]
1670#[derive(Debug, Copy, Clone)]
1671pub struct nvmlUnitInfo_st {
1672    pub name: [raw::c_char; 96usize],
1673    pub id: [raw::c_char; 96usize],
1674    pub serial: [raw::c_char; 96usize],
1675    pub firmwareVersion: [raw::c_char; 96usize],
1676}
1677pub type nvmlUnitInfo_t = nvmlUnitInfo_st;
1678#[repr(C)]
1679#[derive(Debug, Copy, Clone)]
1680pub struct nvmlPSUInfo_st {
1681    pub state: [raw::c_char; 256usize],
1682    pub current: raw::c_uint,
1683    pub voltage: raw::c_uint,
1684    pub power: raw::c_uint,
1685}
1686pub type nvmlPSUInfo_t = nvmlPSUInfo_st;
1687#[repr(C)]
1688#[derive(Debug, Copy, Clone)]
1689pub struct nvmlUnitFanInfo_st {
1690    pub speed: raw::c_uint,
1691    pub state: nvmlFanState_t,
1692}
1693pub type nvmlUnitFanInfo_t = nvmlUnitFanInfo_st;
1694#[repr(C)]
1695#[derive(Debug, Copy, Clone)]
1696pub struct nvmlUnitFanSpeeds_st {
1697    pub fans: [nvmlUnitFanInfo_t; 24usize],
1698    pub count: raw::c_uint,
1699}
1700pub type nvmlUnitFanSpeeds_t = nvmlUnitFanSpeeds_st;
1701#[repr(C)]
1702#[derive(Debug, Copy, Clone)]
1703pub struct nvmlEventSet_st {
1704    _unused: [u8; 0],
1705}
1706pub type nvmlEventSet_t = *mut nvmlEventSet_st;
1707#[repr(C)]
1708#[derive(Debug, Copy, Clone)]
1709pub struct nvmlEventData_st {
1710    pub device: nvmlDevice_t,
1711    pub eventType: raw::c_ulonglong,
1712    pub eventData: raw::c_ulonglong,
1713    pub gpuInstanceId: raw::c_uint,
1714    pub computeInstanceId: raw::c_uint,
1715}
1716pub type nvmlEventData_t = nvmlEventData_st;
1717#[repr(C)]
1718#[derive(Debug, Copy, Clone)]
1719pub struct nvmlAccountingStats_st {
1720    pub gpuUtilization: raw::c_uint,
1721    pub memoryUtilization: raw::c_uint,
1722    pub maxMemoryUsage: raw::c_ulonglong,
1723    pub time: raw::c_ulonglong,
1724    pub startTime: raw::c_ulonglong,
1725    pub isRunning: raw::c_uint,
1726    pub reserved: [raw::c_uint; 5usize],
1727}
1728pub type nvmlAccountingStats_t = nvmlAccountingStats_st;
1729pub const nvmlEncoderQueryType_enum_NVML_ENCODER_QUERY_H264: nvmlEncoderQueryType_enum = 0;
1730pub const nvmlEncoderQueryType_enum_NVML_ENCODER_QUERY_HEVC: nvmlEncoderQueryType_enum = 1;
1731pub const nvmlEncoderQueryType_enum_NVML_ENCODER_QUERY_AV1: nvmlEncoderQueryType_enum = 2;
1732pub const nvmlEncoderQueryType_enum_NVML_ENCODER_QUERY_UNKNOWN: nvmlEncoderQueryType_enum = 255;
1733pub type nvmlEncoderQueryType_enum = raw::c_uint;
1734pub use self::nvmlEncoderQueryType_enum as nvmlEncoderType_t;
1735#[repr(C)]
1736#[derive(Debug, Copy, Clone)]
1737pub struct nvmlEncoderSessionInfo_st {
1738    pub sessionId: raw::c_uint,
1739    pub pid: raw::c_uint,
1740    pub vgpuInstance: nvmlVgpuInstance_t,
1741    pub codecType: nvmlEncoderType_t,
1742    pub hResolution: raw::c_uint,
1743    pub vResolution: raw::c_uint,
1744    pub averageFps: raw::c_uint,
1745    pub averageLatency: raw::c_uint,
1746}
1747pub type nvmlEncoderSessionInfo_t = nvmlEncoderSessionInfo_st;
1748pub const nvmlFBCSessionType_enum_NVML_FBC_SESSION_TYPE_UNKNOWN: nvmlFBCSessionType_enum = 0;
1749pub const nvmlFBCSessionType_enum_NVML_FBC_SESSION_TYPE_TOSYS: nvmlFBCSessionType_enum = 1;
1750pub const nvmlFBCSessionType_enum_NVML_FBC_SESSION_TYPE_CUDA: nvmlFBCSessionType_enum = 2;
1751pub const nvmlFBCSessionType_enum_NVML_FBC_SESSION_TYPE_VID: nvmlFBCSessionType_enum = 3;
1752pub const nvmlFBCSessionType_enum_NVML_FBC_SESSION_TYPE_HWENC: nvmlFBCSessionType_enum = 4;
1753pub type nvmlFBCSessionType_enum = raw::c_uint;
1754pub use self::nvmlFBCSessionType_enum as nvmlFBCSessionType_t;
1755#[repr(C)]
1756#[derive(Debug, Copy, Clone)]
1757pub struct nvmlFBCStats_st {
1758    pub sessionsCount: raw::c_uint,
1759    pub averageFPS: raw::c_uint,
1760    pub averageLatency: raw::c_uint,
1761}
1762pub type nvmlFBCStats_t = nvmlFBCStats_st;
1763#[repr(C)]
1764#[derive(Debug, Copy, Clone)]
1765pub struct nvmlFBCSessionInfo_st {
1766    pub sessionId: raw::c_uint,
1767    pub pid: raw::c_uint,
1768    pub vgpuInstance: nvmlVgpuInstance_t,
1769    pub displayOrdinal: raw::c_uint,
1770    pub sessionType: nvmlFBCSessionType_t,
1771    pub sessionFlags: raw::c_uint,
1772    pub hMaxResolution: raw::c_uint,
1773    pub vMaxResolution: raw::c_uint,
1774    pub hResolution: raw::c_uint,
1775    pub vResolution: raw::c_uint,
1776    pub averageFPS: raw::c_uint,
1777    pub averageLatency: raw::c_uint,
1778}
1779pub type nvmlFBCSessionInfo_t = nvmlFBCSessionInfo_st;
1780pub const nvmlDetachGpuState_enum_NVML_DETACH_GPU_KEEP: nvmlDetachGpuState_enum = 0;
1781pub const nvmlDetachGpuState_enum_NVML_DETACH_GPU_REMOVE: nvmlDetachGpuState_enum = 1;
1782pub type nvmlDetachGpuState_enum = raw::c_uint;
1783pub use self::nvmlDetachGpuState_enum as nvmlDetachGpuState_t;
1784pub const nvmlPcieLinkState_enum_NVML_PCIE_LINK_KEEP: nvmlPcieLinkState_enum = 0;
1785pub const nvmlPcieLinkState_enum_NVML_PCIE_LINK_SHUT_DOWN: nvmlPcieLinkState_enum = 1;
1786pub type nvmlPcieLinkState_enum = raw::c_uint;
1787pub use self::nvmlPcieLinkState_enum as nvmlPcieLinkState_t;
1788#[repr(C)]
1789#[derive(Debug, Copy, Clone)]
1790pub struct nvmlConfComputeSystemCaps_st {
1791    pub cpuCaps: raw::c_uint,
1792    pub gpusCaps: raw::c_uint,
1793}
1794pub type nvmlConfComputeSystemCaps_t = nvmlConfComputeSystemCaps_st;
1795#[repr(C)]
1796#[derive(Debug, Copy, Clone)]
1797pub struct nvmlConfComputeSystemState_st {
1798    pub environment: raw::c_uint,
1799    pub ccFeature: raw::c_uint,
1800    pub devToolsMode: raw::c_uint,
1801}
1802pub type nvmlConfComputeSystemState_t = nvmlConfComputeSystemState_st;
1803#[repr(C)]
1804#[derive(Debug, Copy, Clone)]
1805pub struct nvmlSystemConfComputeSettings_v1_t {
1806    pub version: raw::c_uint,
1807    pub environment: raw::c_uint,
1808    pub ccFeature: raw::c_uint,
1809    pub devToolsMode: raw::c_uint,
1810    pub multiGpuMode: raw::c_uint,
1811}
1812pub type nvmlSystemConfComputeSettings_t = nvmlSystemConfComputeSettings_v1_t;
1813#[repr(C)]
1814#[derive(Debug, Copy, Clone)]
1815pub struct nvmlConfComputeMemSizeInfo_st {
1816    pub protectedMemSizeKib: raw::c_ulonglong,
1817    pub unprotectedMemSizeKib: raw::c_ulonglong,
1818}
1819pub type nvmlConfComputeMemSizeInfo_t = nvmlConfComputeMemSizeInfo_st;
1820#[repr(C)]
1821#[derive(Debug, Copy, Clone)]
1822pub struct nvmlConfComputeGpuCertificate_st {
1823    pub certChainSize: raw::c_uint,
1824    pub attestationCertChainSize: raw::c_uint,
1825    pub certChain: [raw::c_uchar; 4096usize],
1826    pub attestationCertChain: [raw::c_uchar; 5120usize],
1827}
1828pub type nvmlConfComputeGpuCertificate_t = nvmlConfComputeGpuCertificate_st;
1829#[repr(C)]
1830#[derive(Debug, Copy, Clone)]
1831pub struct nvmlConfComputeGpuAttestationReport_st {
1832    pub isCecAttestationReportPresent: raw::c_uint,
1833    pub attestationReportSize: raw::c_uint,
1834    pub cecAttestationReportSize: raw::c_uint,
1835    pub nonce: [raw::c_uchar; 32usize],
1836    pub attestationReport: [raw::c_uchar; 8192usize],
1837    pub cecAttestationReport: [raw::c_uchar; 4096usize],
1838}
1839pub type nvmlConfComputeGpuAttestationReport_t = nvmlConfComputeGpuAttestationReport_st;
1840#[repr(C)]
1841#[derive(Debug, Copy, Clone)]
1842pub struct nvmlConfComputeSetKeyRotationThresholdInfo_st {
1843    pub version: raw::c_uint,
1844    pub maxAttackerAdvantage: raw::c_ulonglong,
1845}
1846pub type nvmlConfComputeSetKeyRotationThresholdInfo_v1_t =
1847    nvmlConfComputeSetKeyRotationThresholdInfo_st;
1848pub type nvmlConfComputeSetKeyRotationThresholdInfo_t =
1849    nvmlConfComputeSetKeyRotationThresholdInfo_v1_t;
1850#[repr(C)]
1851#[derive(Debug, Copy, Clone)]
1852pub struct nvmlConfComputeGetKeyRotationThresholdInfo_st {
1853    pub version: raw::c_uint,
1854    pub attackerAdvantage: raw::c_ulonglong,
1855}
1856pub type nvmlConfComputeGetKeyRotationThresholdInfo_v1_t =
1857    nvmlConfComputeGetKeyRotationThresholdInfo_st;
1858pub type nvmlConfComputeGetKeyRotationThresholdInfo_t =
1859    nvmlConfComputeGetKeyRotationThresholdInfo_v1_t;
1860pub type nvmlGpuFabricState_t = raw::c_uchar;
1861#[repr(C)]
1862#[derive(Debug, Copy, Clone)]
1863pub struct nvmlGpuFabricInfo_t {
1864    pub clusterUuid: [raw::c_uchar; 16usize],
1865    pub status: nvmlReturn_t,
1866    pub cliqueId: raw::c_uint,
1867    pub state: nvmlGpuFabricState_t,
1868}
1869#[repr(C)]
1870#[derive(Debug, Copy, Clone)]
1871pub struct nvmlGpuFabricInfo_v2_t {
1872    pub version: raw::c_uint,
1873    pub clusterUuid: [raw::c_uchar; 16usize],
1874    pub status: nvmlReturn_t,
1875    pub cliqueId: raw::c_uint,
1876    pub state: nvmlGpuFabricState_t,
1877    pub healthMask: raw::c_uint,
1878}
1879pub type nvmlGpuFabricInfoV_t = nvmlGpuFabricInfo_v2_t;
1880#[repr(C)]
1881#[derive(Debug, Copy, Clone)]
1882pub struct nvmlSystemDriverBranchInfo_v1_t {
1883    pub version: raw::c_uint,
1884    pub branch: [raw::c_char; 80usize],
1885}
1886pub type nvmlSystemDriverBranchInfo_t = nvmlSystemDriverBranchInfo_v1_t;
1887pub type nvmlAffinityScope_t = raw::c_uint;
1888#[repr(C)]
1889#[derive(Debug, Copy, Clone)]
1890pub struct nvmlTemperature_v1_t {
1891    pub version: raw::c_uint,
1892    pub sensorType: nvmlTemperatureSensors_t,
1893    pub temperature: raw::c_int,
1894}
1895pub type nvmlTemperature_t = nvmlTemperature_v1_t;
1896pub const nvmlClockLimitId_enum_NVML_CLOCK_LIMIT_ID_RANGE_START: nvmlClockLimitId_enum = 4294967040;
1897pub const nvmlClockLimitId_enum_NVML_CLOCK_LIMIT_ID_TDP: nvmlClockLimitId_enum = 4294967041;
1898pub const nvmlClockLimitId_enum_NVML_CLOCK_LIMIT_ID_UNLIMITED: nvmlClockLimitId_enum = 4294967042;
1899pub type nvmlClockLimitId_enum = raw::c_uint;
1900pub use self::nvmlClockLimitId_enum as nvmlClockLimitId_t;
1901#[repr(C)]
1902#[derive(Debug, Copy, Clone)]
1903pub struct nvmlNvlinkSupportedBwModes_v1_t {
1904    pub version: raw::c_uint,
1905    pub bwModes: [raw::c_uchar; 23usize],
1906    pub totalBwModes: raw::c_uchar,
1907}
1908pub type nvmlNvlinkSupportedBwModes_t = nvmlNvlinkSupportedBwModes_v1_t;
1909#[repr(C)]
1910#[derive(Debug, Copy, Clone)]
1911pub struct nvmlNvlinkGetBwMode_v1_t {
1912    pub version: raw::c_uint,
1913    pub bIsBest: raw::c_uint,
1914    pub bwMode: raw::c_uchar,
1915}
1916pub type nvmlNvlinkGetBwMode_t = nvmlNvlinkGetBwMode_v1_t;
1917#[repr(C)]
1918#[derive(Debug, Copy, Clone)]
1919pub struct nvmlNvlinkSetBwMode_v1_t {
1920    pub version: raw::c_uint,
1921    pub bSetBest: raw::c_uint,
1922    pub bwMode: raw::c_uchar,
1923}
1924pub type nvmlNvlinkSetBwMode_t = nvmlNvlinkSetBwMode_v1_t;
1925#[repr(C)]
1926#[derive(Debug, Copy, Clone)]
1927pub struct nvmlVgpuVersion_st {
1928    pub minVersion: raw::c_uint,
1929    pub maxVersion: raw::c_uint,
1930}
1931pub type nvmlVgpuVersion_t = nvmlVgpuVersion_st;
1932#[repr(C)]
1933#[derive(Debug, Copy, Clone)]
1934pub struct nvmlVgpuMetadata_st {
1935    pub version: raw::c_uint,
1936    pub revision: raw::c_uint,
1937    pub guestInfoState: nvmlVgpuGuestInfoState_t,
1938    pub guestDriverVersion: [raw::c_char; 80usize],
1939    pub hostDriverVersion: [raw::c_char; 80usize],
1940    pub reserved: [raw::c_uint; 6usize],
1941    pub vgpuVirtualizationCaps: raw::c_uint,
1942    pub guestVgpuVersion: raw::c_uint,
1943    pub opaqueDataSize: raw::c_uint,
1944    pub opaqueData: [raw::c_char; 4usize],
1945}
1946pub type nvmlVgpuMetadata_t = nvmlVgpuMetadata_st;
1947#[repr(C)]
1948#[derive(Debug, Copy, Clone)]
1949pub struct nvmlVgpuPgpuMetadata_st {
1950    pub version: raw::c_uint,
1951    pub revision: raw::c_uint,
1952    pub hostDriverVersion: [raw::c_char; 80usize],
1953    pub pgpuVirtualizationCaps: raw::c_uint,
1954    pub reserved: [raw::c_uint; 5usize],
1955    pub hostSupportedVgpuRange: nvmlVgpuVersion_t,
1956    pub opaqueDataSize: raw::c_uint,
1957    pub opaqueData: [raw::c_char; 4usize],
1958}
1959pub type nvmlVgpuPgpuMetadata_t = nvmlVgpuPgpuMetadata_st;
1960pub const nvmlVgpuVmCompatibility_enum_NVML_VGPU_VM_COMPATIBILITY_NONE:
1961    nvmlVgpuVmCompatibility_enum = 0;
1962pub const nvmlVgpuVmCompatibility_enum_NVML_VGPU_VM_COMPATIBILITY_COLD:
1963    nvmlVgpuVmCompatibility_enum = 1;
1964pub const nvmlVgpuVmCompatibility_enum_NVML_VGPU_VM_COMPATIBILITY_HIBERNATE:
1965    nvmlVgpuVmCompatibility_enum = 2;
1966pub const nvmlVgpuVmCompatibility_enum_NVML_VGPU_VM_COMPATIBILITY_SLEEP:
1967    nvmlVgpuVmCompatibility_enum = 4;
1968pub const nvmlVgpuVmCompatibility_enum_NVML_VGPU_VM_COMPATIBILITY_LIVE:
1969    nvmlVgpuVmCompatibility_enum = 8;
1970pub type nvmlVgpuVmCompatibility_enum = raw::c_uint;
1971pub use self::nvmlVgpuVmCompatibility_enum as nvmlVgpuVmCompatibility_t;
1972pub const nvmlVgpuPgpuCompatibilityLimitCode_enum_NVML_VGPU_COMPATIBILITY_LIMIT_NONE:
1973    nvmlVgpuPgpuCompatibilityLimitCode_enum = 0;
1974pub const nvmlVgpuPgpuCompatibilityLimitCode_enum_NVML_VGPU_COMPATIBILITY_LIMIT_HOST_DRIVER:
1975    nvmlVgpuPgpuCompatibilityLimitCode_enum = 1;
1976pub const nvmlVgpuPgpuCompatibilityLimitCode_enum_NVML_VGPU_COMPATIBILITY_LIMIT_GUEST_DRIVER:
1977    nvmlVgpuPgpuCompatibilityLimitCode_enum = 2;
1978pub const nvmlVgpuPgpuCompatibilityLimitCode_enum_NVML_VGPU_COMPATIBILITY_LIMIT_GPU:
1979    nvmlVgpuPgpuCompatibilityLimitCode_enum = 4;
1980pub const nvmlVgpuPgpuCompatibilityLimitCode_enum_NVML_VGPU_COMPATIBILITY_LIMIT_OTHER:
1981    nvmlVgpuPgpuCompatibilityLimitCode_enum = 2147483648;
1982pub type nvmlVgpuPgpuCompatibilityLimitCode_enum = raw::c_uint;
1983pub use self::nvmlVgpuPgpuCompatibilityLimitCode_enum as nvmlVgpuPgpuCompatibilityLimitCode_t;
1984#[repr(C)]
1985#[derive(Debug, Copy, Clone)]
1986pub struct nvmlVgpuPgpuCompatibility_st {
1987    pub vgpuVmCompatibility: nvmlVgpuVmCompatibility_t,
1988    pub compatibilityLimitCode: nvmlVgpuPgpuCompatibilityLimitCode_t,
1989}
1990pub type nvmlVgpuPgpuCompatibility_t = nvmlVgpuPgpuCompatibility_st;
1991#[repr(C)]
1992#[derive(Debug, Copy, Clone)]
1993pub struct nvmlExcludedDeviceInfo_st {
1994    pub pciInfo: nvmlPciInfo_t,
1995    pub uuid: [raw::c_char; 80usize],
1996}
1997pub type nvmlExcludedDeviceInfo_t = nvmlExcludedDeviceInfo_st;
1998#[repr(C)]
1999#[derive(Debug, Copy, Clone)]
2000pub struct nvmlGpuInstancePlacement_st {
2001    pub start: raw::c_uint,
2002    pub size: raw::c_uint,
2003}
2004pub type nvmlGpuInstancePlacement_t = nvmlGpuInstancePlacement_st;
2005#[repr(C)]
2006#[derive(Debug, Copy, Clone)]
2007pub struct nvmlGpuInstanceProfileInfo_st {
2008    pub id: raw::c_uint,
2009    pub isP2pSupported: raw::c_uint,
2010    pub sliceCount: raw::c_uint,
2011    pub instanceCount: raw::c_uint,
2012    pub multiprocessorCount: raw::c_uint,
2013    pub copyEngineCount: raw::c_uint,
2014    pub decoderCount: raw::c_uint,
2015    pub encoderCount: raw::c_uint,
2016    pub jpegCount: raw::c_uint,
2017    pub ofaCount: raw::c_uint,
2018    pub memorySizeMB: raw::c_ulonglong,
2019}
2020pub type nvmlGpuInstanceProfileInfo_t = nvmlGpuInstanceProfileInfo_st;
2021#[repr(C)]
2022#[derive(Debug, Copy, Clone)]
2023pub struct nvmlGpuInstanceProfileInfo_v2_st {
2024    pub version: raw::c_uint,
2025    pub id: raw::c_uint,
2026    pub isP2pSupported: raw::c_uint,
2027    pub sliceCount: raw::c_uint,
2028    pub instanceCount: raw::c_uint,
2029    pub multiprocessorCount: raw::c_uint,
2030    pub copyEngineCount: raw::c_uint,
2031    pub decoderCount: raw::c_uint,
2032    pub encoderCount: raw::c_uint,
2033    pub jpegCount: raw::c_uint,
2034    pub ofaCount: raw::c_uint,
2035    pub memorySizeMB: raw::c_ulonglong,
2036    pub name: [raw::c_char; 96usize],
2037}
2038pub type nvmlGpuInstanceProfileInfo_v2_t = nvmlGpuInstanceProfileInfo_v2_st;
2039#[repr(C)]
2040#[derive(Debug, Copy, Clone)]
2041pub struct nvmlGpuInstanceProfileInfo_v3_st {
2042    pub version: raw::c_uint,
2043    pub id: raw::c_uint,
2044    pub sliceCount: raw::c_uint,
2045    pub instanceCount: raw::c_uint,
2046    pub multiprocessorCount: raw::c_uint,
2047    pub copyEngineCount: raw::c_uint,
2048    pub decoderCount: raw::c_uint,
2049    pub encoderCount: raw::c_uint,
2050    pub jpegCount: raw::c_uint,
2051    pub ofaCount: raw::c_uint,
2052    pub memorySizeMB: raw::c_ulonglong,
2053    pub name: [raw::c_char; 96usize],
2054    pub capabilities: raw::c_uint,
2055}
2056pub type nvmlGpuInstanceProfileInfo_v3_t = nvmlGpuInstanceProfileInfo_v3_st;
2057#[repr(C)]
2058#[derive(Debug, Copy, Clone)]
2059pub struct nvmlGpuInstanceInfo_st {
2060    pub device: nvmlDevice_t,
2061    pub id: raw::c_uint,
2062    pub profileId: raw::c_uint,
2063    pub placement: nvmlGpuInstancePlacement_t,
2064}
2065pub type nvmlGpuInstanceInfo_t = nvmlGpuInstanceInfo_st;
2066#[repr(C)]
2067#[derive(Debug, Copy, Clone)]
2068pub struct nvmlGpuInstance_st {
2069    _unused: [u8; 0],
2070}
2071pub type nvmlGpuInstance_t = *mut nvmlGpuInstance_st;
2072#[repr(C)]
2073#[derive(Debug, Copy, Clone)]
2074pub struct nvmlComputeInstancePlacement_st {
2075    pub start: raw::c_uint,
2076    pub size: raw::c_uint,
2077}
2078pub type nvmlComputeInstancePlacement_t = nvmlComputeInstancePlacement_st;
2079#[repr(C)]
2080#[derive(Debug, Copy, Clone)]
2081pub struct nvmlComputeInstanceProfileInfo_st {
2082    pub id: raw::c_uint,
2083    pub sliceCount: raw::c_uint,
2084    pub instanceCount: raw::c_uint,
2085    pub multiprocessorCount: raw::c_uint,
2086    pub sharedCopyEngineCount: raw::c_uint,
2087    pub sharedDecoderCount: raw::c_uint,
2088    pub sharedEncoderCount: raw::c_uint,
2089    pub sharedJpegCount: raw::c_uint,
2090    pub sharedOfaCount: raw::c_uint,
2091}
2092pub type nvmlComputeInstanceProfileInfo_t = nvmlComputeInstanceProfileInfo_st;
2093#[repr(C)]
2094#[derive(Debug, Copy, Clone)]
2095pub struct nvmlComputeInstanceProfileInfo_v2_st {
2096    pub version: raw::c_uint,
2097    pub id: raw::c_uint,
2098    pub sliceCount: raw::c_uint,
2099    pub instanceCount: raw::c_uint,
2100    pub multiprocessorCount: raw::c_uint,
2101    pub sharedCopyEngineCount: raw::c_uint,
2102    pub sharedDecoderCount: raw::c_uint,
2103    pub sharedEncoderCount: raw::c_uint,
2104    pub sharedJpegCount: raw::c_uint,
2105    pub sharedOfaCount: raw::c_uint,
2106    pub name: [raw::c_char; 96usize],
2107}
2108pub type nvmlComputeInstanceProfileInfo_v2_t = nvmlComputeInstanceProfileInfo_v2_st;
2109#[repr(C)]
2110#[derive(Debug, Copy, Clone)]
2111pub struct nvmlComputeInstanceProfileInfo_v3_st {
2112    pub version: raw::c_uint,
2113    pub id: raw::c_uint,
2114    pub sliceCount: raw::c_uint,
2115    pub instanceCount: raw::c_uint,
2116    pub multiprocessorCount: raw::c_uint,
2117    pub sharedCopyEngineCount: raw::c_uint,
2118    pub sharedDecoderCount: raw::c_uint,
2119    pub sharedEncoderCount: raw::c_uint,
2120    pub sharedJpegCount: raw::c_uint,
2121    pub sharedOfaCount: raw::c_uint,
2122    pub name: [raw::c_char; 96usize],
2123    pub capabilities: raw::c_uint,
2124}
2125pub type nvmlComputeInstanceProfileInfo_v3_t = nvmlComputeInstanceProfileInfo_v3_st;
2126#[repr(C)]
2127#[derive(Debug, Copy, Clone)]
2128pub struct nvmlComputeInstanceInfo_st {
2129    pub device: nvmlDevice_t,
2130    pub gpuInstance: nvmlGpuInstance_t,
2131    pub id: raw::c_uint,
2132    pub profileId: raw::c_uint,
2133    pub placement: nvmlComputeInstancePlacement_t,
2134}
2135pub type nvmlComputeInstanceInfo_t = nvmlComputeInstanceInfo_st;
2136#[repr(C)]
2137#[derive(Debug, Copy, Clone)]
2138pub struct nvmlComputeInstance_st {
2139    _unused: [u8; 0],
2140}
2141pub type nvmlComputeInstance_t = *mut nvmlComputeInstance_st;
2142pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_GRAPHICS_UTIL: nvmlGpmMetricId_t = 1;
2143pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_SM_UTIL: nvmlGpmMetricId_t = 2;
2144pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_SM_OCCUPANCY: nvmlGpmMetricId_t = 3;
2145pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_INTEGER_UTIL: nvmlGpmMetricId_t = 4;
2146pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_ANY_TENSOR_UTIL: nvmlGpmMetricId_t = 5;
2147pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_DFMA_TENSOR_UTIL: nvmlGpmMetricId_t = 6;
2148pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_HMMA_TENSOR_UTIL: nvmlGpmMetricId_t = 7;
2149pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_IMMA_TENSOR_UTIL: nvmlGpmMetricId_t = 9;
2150pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_DRAM_BW_UTIL: nvmlGpmMetricId_t = 10;
2151pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_FP64_UTIL: nvmlGpmMetricId_t = 11;
2152pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_FP32_UTIL: nvmlGpmMetricId_t = 12;
2153pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_FP16_UTIL: nvmlGpmMetricId_t = 13;
2154pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_PCIE_TX_PER_SEC: nvmlGpmMetricId_t = 20;
2155pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_PCIE_RX_PER_SEC: nvmlGpmMetricId_t = 21;
2156pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVDEC_0_UTIL: nvmlGpmMetricId_t = 30;
2157pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVDEC_1_UTIL: nvmlGpmMetricId_t = 31;
2158pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVDEC_2_UTIL: nvmlGpmMetricId_t = 32;
2159pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVDEC_3_UTIL: nvmlGpmMetricId_t = 33;
2160pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVDEC_4_UTIL: nvmlGpmMetricId_t = 34;
2161pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVDEC_5_UTIL: nvmlGpmMetricId_t = 35;
2162pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVDEC_6_UTIL: nvmlGpmMetricId_t = 36;
2163pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVDEC_7_UTIL: nvmlGpmMetricId_t = 37;
2164pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVJPG_0_UTIL: nvmlGpmMetricId_t = 40;
2165pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVJPG_1_UTIL: nvmlGpmMetricId_t = 41;
2166pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVJPG_2_UTIL: nvmlGpmMetricId_t = 42;
2167pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVJPG_3_UTIL: nvmlGpmMetricId_t = 43;
2168pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVJPG_4_UTIL: nvmlGpmMetricId_t = 44;
2169pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVJPG_5_UTIL: nvmlGpmMetricId_t = 45;
2170pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVJPG_6_UTIL: nvmlGpmMetricId_t = 46;
2171pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVJPG_7_UTIL: nvmlGpmMetricId_t = 47;
2172pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVOFA_0_UTIL: nvmlGpmMetricId_t = 50;
2173pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVOFA_1_UTIL: nvmlGpmMetricId_t = 51;
2174pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_TOTAL_RX_PER_SEC: nvmlGpmMetricId_t = 60;
2175pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_TOTAL_TX_PER_SEC: nvmlGpmMetricId_t = 61;
2176pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L0_RX_PER_SEC: nvmlGpmMetricId_t = 62;
2177pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L0_TX_PER_SEC: nvmlGpmMetricId_t = 63;
2178pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L1_RX_PER_SEC: nvmlGpmMetricId_t = 64;
2179pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L1_TX_PER_SEC: nvmlGpmMetricId_t = 65;
2180pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L2_RX_PER_SEC: nvmlGpmMetricId_t = 66;
2181pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L2_TX_PER_SEC: nvmlGpmMetricId_t = 67;
2182pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L3_RX_PER_SEC: nvmlGpmMetricId_t = 68;
2183pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L3_TX_PER_SEC: nvmlGpmMetricId_t = 69;
2184pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L4_RX_PER_SEC: nvmlGpmMetricId_t = 70;
2185pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L4_TX_PER_SEC: nvmlGpmMetricId_t = 71;
2186pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L5_RX_PER_SEC: nvmlGpmMetricId_t = 72;
2187pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L5_TX_PER_SEC: nvmlGpmMetricId_t = 73;
2188pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L6_RX_PER_SEC: nvmlGpmMetricId_t = 74;
2189pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L6_TX_PER_SEC: nvmlGpmMetricId_t = 75;
2190pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L7_RX_PER_SEC: nvmlGpmMetricId_t = 76;
2191pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L7_TX_PER_SEC: nvmlGpmMetricId_t = 77;
2192pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L8_RX_PER_SEC: nvmlGpmMetricId_t = 78;
2193pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L8_TX_PER_SEC: nvmlGpmMetricId_t = 79;
2194pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L9_RX_PER_SEC: nvmlGpmMetricId_t = 80;
2195pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L9_TX_PER_SEC: nvmlGpmMetricId_t = 81;
2196pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L10_RX_PER_SEC: nvmlGpmMetricId_t = 82;
2197pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L10_TX_PER_SEC: nvmlGpmMetricId_t = 83;
2198pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L11_RX_PER_SEC: nvmlGpmMetricId_t = 84;
2199pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L11_TX_PER_SEC: nvmlGpmMetricId_t = 85;
2200pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L12_RX_PER_SEC: nvmlGpmMetricId_t = 86;
2201pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L12_TX_PER_SEC: nvmlGpmMetricId_t = 87;
2202pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L13_RX_PER_SEC: nvmlGpmMetricId_t = 88;
2203pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L13_TX_PER_SEC: nvmlGpmMetricId_t = 89;
2204pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L14_RX_PER_SEC: nvmlGpmMetricId_t = 90;
2205pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L14_TX_PER_SEC: nvmlGpmMetricId_t = 91;
2206pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L15_RX_PER_SEC: nvmlGpmMetricId_t = 92;
2207pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L15_TX_PER_SEC: nvmlGpmMetricId_t = 93;
2208pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L16_RX_PER_SEC: nvmlGpmMetricId_t = 94;
2209pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L16_TX_PER_SEC: nvmlGpmMetricId_t = 95;
2210pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L17_RX_PER_SEC: nvmlGpmMetricId_t = 96;
2211pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_NVLINK_L17_TX_PER_SEC: nvmlGpmMetricId_t = 97;
2212pub const nvmlGpmMetricId_t_NVML_GPM_METRIC_MAX: nvmlGpmMetricId_t = 98;
2213pub type nvmlGpmMetricId_t = raw::c_uint;
2214#[repr(C)]
2215#[derive(Debug, Copy, Clone)]
2216pub struct nvmlGpmSample_st {
2217    _unused: [u8; 0],
2218}
2219pub type nvmlGpmSample_t = *mut nvmlGpmSample_st;
2220#[repr(C)]
2221#[derive(Debug, Copy, Clone)]
2222pub struct nvmlGpmMetric_t {
2223    pub metricId: raw::c_uint,
2224    pub nvmlReturn: nvmlReturn_t,
2225    pub value: f64,
2226    pub metricInfo: nvmlGpmMetric_t__bindgen_ty_1,
2227}
2228#[repr(C)]
2229#[derive(Debug, Copy, Clone)]
2230pub struct nvmlGpmMetric_t__bindgen_ty_1 {
2231    pub shortName: *mut raw::c_char,
2232    pub longName: *mut raw::c_char,
2233    pub unit: *mut raw::c_char,
2234}
2235#[repr(C)]
2236#[derive(Debug, Copy, Clone)]
2237pub struct nvmlGpmMetricsGet_t {
2238    pub version: raw::c_uint,
2239    pub numMetrics: raw::c_uint,
2240    pub sample1: nvmlGpmSample_t,
2241    pub sample2: nvmlGpmSample_t,
2242    pub metrics: [nvmlGpmMetric_t; 98usize],
2243}
2244#[repr(C)]
2245#[derive(Debug, Copy, Clone)]
2246pub struct nvmlGpmSupport_t {
2247    pub version: raw::c_uint,
2248    pub isSupportedDevice: raw::c_uint,
2249}
2250#[repr(C)]
2251#[derive(Debug, Copy, Clone)]
2252pub struct nvmlDeviceCapabilities_v1_t {
2253    pub version: raw::c_uint,
2254    pub capMask: raw::c_uint,
2255}
2256pub type nvmlDeviceCapabilities_t = nvmlDeviceCapabilities_v1_t;
2257#[repr(C)]
2258#[derive(Debug, Copy, Clone)]
2259pub struct nvmlMask255_t {
2260    pub mask: [raw::c_uint; 8usize],
2261}
2262pub const nvmlPowerProfileType_t_NVML_POWER_PROFILE_MAX_P: nvmlPowerProfileType_t = 0;
2263pub const nvmlPowerProfileType_t_NVML_POWER_PROFILE_MAX_Q: nvmlPowerProfileType_t = 1;
2264pub const nvmlPowerProfileType_t_NVML_POWER_PROFILE_COMPUTE: nvmlPowerProfileType_t = 2;
2265pub const nvmlPowerProfileType_t_NVML_POWER_PROFILE_MEMORY_BOUND: nvmlPowerProfileType_t = 3;
2266pub const nvmlPowerProfileType_t_NVML_POWER_PROFILE_NETWORK: nvmlPowerProfileType_t = 4;
2267pub const nvmlPowerProfileType_t_NVML_POWER_PROFILE_BALANCED: nvmlPowerProfileType_t = 5;
2268pub const nvmlPowerProfileType_t_NVML_POWER_PROFILE_LLM_INFERENCE: nvmlPowerProfileType_t = 6;
2269pub const nvmlPowerProfileType_t_NVML_POWER_PROFILE_LLM_TRAINING: nvmlPowerProfileType_t = 7;
2270pub const nvmlPowerProfileType_t_NVML_POWER_PROFILE_RBM: nvmlPowerProfileType_t = 8;
2271pub const nvmlPowerProfileType_t_NVML_POWER_PROFILE_DCPCIE: nvmlPowerProfileType_t = 9;
2272pub const nvmlPowerProfileType_t_NVML_POWER_PROFILE_HMMA_SPARSE: nvmlPowerProfileType_t = 10;
2273pub const nvmlPowerProfileType_t_NVML_POWER_PROFILE_HMMA_DENSE: nvmlPowerProfileType_t = 11;
2274pub const nvmlPowerProfileType_t_NVML_POWER_PROFILE_SYNC_BALANCED: nvmlPowerProfileType_t = 12;
2275pub const nvmlPowerProfileType_t_NVML_POWER_PROFILE_HPC: nvmlPowerProfileType_t = 13;
2276pub const nvmlPowerProfileType_t_NVML_POWER_PROFILE_MIG: nvmlPowerProfileType_t = 14;
2277pub const nvmlPowerProfileType_t_NVML_POWER_PROFILE_MAX: nvmlPowerProfileType_t = 15;
2278pub type nvmlPowerProfileType_t = raw::c_uint;
2279#[repr(C)]
2280#[derive(Debug, Copy, Clone)]
2281pub struct nvmlWorkloadPowerProfileInfo_v1_t {
2282    pub version: raw::c_uint,
2283    pub profileId: raw::c_uint,
2284    pub priority: raw::c_uint,
2285    pub conflictingMask: nvmlMask255_t,
2286}
2287pub type nvmlWorkloadPowerProfileInfo_t = nvmlWorkloadPowerProfileInfo_v1_t;
2288#[repr(C)]
2289#[derive(Debug, Copy, Clone)]
2290pub struct nvmlWorkloadPowerProfileProfilesInfo_v1_t {
2291    pub version: raw::c_uint,
2292    pub perfProfilesMask: nvmlMask255_t,
2293    pub perfProfile: [nvmlWorkloadPowerProfileInfo_t; 255usize],
2294}
2295pub type nvmlWorkloadPowerProfileProfilesInfo_t = nvmlWorkloadPowerProfileProfilesInfo_v1_t;
2296#[repr(C)]
2297#[derive(Debug, Copy, Clone)]
2298pub struct nvmlWorkloadPowerProfileCurrentProfiles_v1_t {
2299    pub version: raw::c_uint,
2300    pub perfProfilesMask: nvmlMask255_t,
2301    pub requestedProfilesMask: nvmlMask255_t,
2302    pub enforcedProfilesMask: nvmlMask255_t,
2303}
2304pub type nvmlWorkloadPowerProfileCurrentProfiles_t = nvmlWorkloadPowerProfileCurrentProfiles_v1_t;
2305#[repr(C)]
2306#[derive(Debug, Copy, Clone)]
2307pub struct nvmlWorkloadPowerProfileRequestedProfiles_v1_t {
2308    pub version: raw::c_uint,
2309    pub requestedProfilesMask: nvmlMask255_t,
2310}
2311pub type nvmlWorkloadPowerProfileRequestedProfiles_t =
2312    nvmlWorkloadPowerProfileRequestedProfiles_v1_t;
2313#[repr(C)]
2314#[derive(Debug, Copy, Clone)]
2315pub struct nvmlPowerSmoothingProfile_v1_t {
2316    pub version: raw::c_uint,
2317    pub profileId: raw::c_uint,
2318    pub paramId: raw::c_uint,
2319    pub value: f64,
2320}
2321pub type nvmlPowerSmoothingProfile_t = nvmlPowerSmoothingProfile_v1_t;
2322#[repr(C)]
2323#[derive(Debug, Copy, Clone)]
2324pub struct nvmlPowerSmoothingState_v1_t {
2325    pub version: raw::c_uint,
2326    pub state: nvmlEnableState_t,
2327}
2328pub type nvmlPowerSmoothingState_t = nvmlPowerSmoothingState_v1_t;
2329pub struct NvmlLib {
2330    pub __library: ::libloading::Library,
2331    pub nvmlInit_v2: Result<unsafe extern "C" fn() -> nvmlReturn_t, ::libloading::Error>,
2332    pub nvmlInitWithFlags:
2333        Result<unsafe extern "C" fn(flags: raw::c_uint) -> nvmlReturn_t, ::libloading::Error>,
2334    pub nvmlShutdown: Result<unsafe extern "C" fn() -> nvmlReturn_t, ::libloading::Error>,
2335    pub nvmlErrorString: Result<
2336        unsafe extern "C" fn(result: nvmlReturn_t) -> *const raw::c_char,
2337        ::libloading::Error,
2338    >,
2339    pub nvmlSystemGetDriverVersion: Result<
2340        unsafe extern "C" fn(version: *mut raw::c_char, length: raw::c_uint) -> nvmlReturn_t,
2341        ::libloading::Error,
2342    >,
2343    pub nvmlSystemGetNVMLVersion: Result<
2344        unsafe extern "C" fn(version: *mut raw::c_char, length: raw::c_uint) -> nvmlReturn_t,
2345        ::libloading::Error,
2346    >,
2347    pub nvmlSystemGetCudaDriverVersion: Result<
2348        unsafe extern "C" fn(cudaDriverVersion: *mut raw::c_int) -> nvmlReturn_t,
2349        ::libloading::Error,
2350    >,
2351    pub nvmlSystemGetCudaDriverVersion_v2: Result<
2352        unsafe extern "C" fn(cudaDriverVersion: *mut raw::c_int) -> nvmlReturn_t,
2353        ::libloading::Error,
2354    >,
2355    pub nvmlSystemGetProcessName: Result<
2356        unsafe extern "C" fn(
2357            pid: raw::c_uint,
2358            name: *mut raw::c_char,
2359            length: raw::c_uint,
2360        ) -> nvmlReturn_t,
2361        ::libloading::Error,
2362    >,
2363    pub nvmlSystemGetHicVersion: Result<
2364        unsafe extern "C" fn(
2365            hwbcCount: *mut raw::c_uint,
2366            hwbcEntries: *mut nvmlHwbcEntry_t,
2367        ) -> nvmlReturn_t,
2368        ::libloading::Error,
2369    >,
2370    pub nvmlSystemGetTopologyGpuSet: Result<
2371        unsafe extern "C" fn(
2372            cpuNumber: raw::c_uint,
2373            count: *mut raw::c_uint,
2374            deviceArray: *mut nvmlDevice_t,
2375        ) -> nvmlReturn_t,
2376        ::libloading::Error,
2377    >,
2378    pub nvmlSystemGetDriverBranch: Result<
2379        unsafe extern "C" fn(
2380            branchInfo: *mut nvmlSystemDriverBranchInfo_t,
2381            length: raw::c_uint,
2382        ) -> nvmlReturn_t,
2383        ::libloading::Error,
2384    >,
2385    pub nvmlUnitGetCount: Result<
2386        unsafe extern "C" fn(unitCount: *mut raw::c_uint) -> nvmlReturn_t,
2387        ::libloading::Error,
2388    >,
2389    pub nvmlUnitGetHandleByIndex: Result<
2390        unsafe extern "C" fn(index: raw::c_uint, unit: *mut nvmlUnit_t) -> nvmlReturn_t,
2391        ::libloading::Error,
2392    >,
2393    pub nvmlUnitGetUnitInfo: Result<
2394        unsafe extern "C" fn(unit: nvmlUnit_t, info: *mut nvmlUnitInfo_t) -> nvmlReturn_t,
2395        ::libloading::Error,
2396    >,
2397    pub nvmlUnitGetLedState: Result<
2398        unsafe extern "C" fn(unit: nvmlUnit_t, state: *mut nvmlLedState_t) -> nvmlReturn_t,
2399        ::libloading::Error,
2400    >,
2401    pub nvmlUnitGetPsuInfo: Result<
2402        unsafe extern "C" fn(unit: nvmlUnit_t, psu: *mut nvmlPSUInfo_t) -> nvmlReturn_t,
2403        ::libloading::Error,
2404    >,
2405    pub nvmlUnitGetTemperature: Result<
2406        unsafe extern "C" fn(
2407            unit: nvmlUnit_t,
2408            type_: raw::c_uint,
2409            temp: *mut raw::c_uint,
2410        ) -> nvmlReturn_t,
2411        ::libloading::Error,
2412    >,
2413    pub nvmlUnitGetFanSpeedInfo: Result<
2414        unsafe extern "C" fn(unit: nvmlUnit_t, fanSpeeds: *mut nvmlUnitFanSpeeds_t) -> nvmlReturn_t,
2415        ::libloading::Error,
2416    >,
2417    pub nvmlUnitGetDevices: Result<
2418        unsafe extern "C" fn(
2419            unit: nvmlUnit_t,
2420            deviceCount: *mut raw::c_uint,
2421            devices: *mut nvmlDevice_t,
2422        ) -> nvmlReturn_t,
2423        ::libloading::Error,
2424    >,
2425    pub nvmlDeviceGetCount_v2: Result<
2426        unsafe extern "C" fn(deviceCount: *mut raw::c_uint) -> nvmlReturn_t,
2427        ::libloading::Error,
2428    >,
2429    pub nvmlDeviceGetAttributes_v2: Result<
2430        unsafe extern "C" fn(
2431            device: nvmlDevice_t,
2432            attributes: *mut nvmlDeviceAttributes_t,
2433        ) -> nvmlReturn_t,
2434        ::libloading::Error,
2435    >,
2436    pub nvmlDeviceGetHandleByIndex_v2: Result<
2437        unsafe extern "C" fn(index: raw::c_uint, device: *mut nvmlDevice_t) -> nvmlReturn_t,
2438        ::libloading::Error,
2439    >,
2440    pub nvmlDeviceGetHandleBySerial: Result<
2441        unsafe extern "C" fn(serial: *const raw::c_char, device: *mut nvmlDevice_t) -> nvmlReturn_t,
2442        ::libloading::Error,
2443    >,
2444    pub nvmlDeviceGetHandleByUUID: Result<
2445        unsafe extern "C" fn(uuid: *const raw::c_char, device: *mut nvmlDevice_t) -> nvmlReturn_t,
2446        ::libloading::Error,
2447    >,
2448    pub nvmlDeviceGetHandleByPciBusId_v2: Result<
2449        unsafe extern "C" fn(
2450            pciBusId: *const raw::c_char,
2451            device: *mut nvmlDevice_t,
2452        ) -> nvmlReturn_t,
2453        ::libloading::Error,
2454    >,
2455    pub nvmlDeviceGetName: Result<
2456        unsafe extern "C" fn(
2457            device: nvmlDevice_t,
2458            name: *mut raw::c_char,
2459            length: raw::c_uint,
2460        ) -> nvmlReturn_t,
2461        ::libloading::Error,
2462    >,
2463    pub nvmlDeviceGetBrand: Result<
2464        unsafe extern "C" fn(device: nvmlDevice_t, type_: *mut nvmlBrandType_t) -> nvmlReturn_t,
2465        ::libloading::Error,
2466    >,
2467    pub nvmlDeviceGetIndex: Result<
2468        unsafe extern "C" fn(device: nvmlDevice_t, index: *mut raw::c_uint) -> nvmlReturn_t,
2469        ::libloading::Error,
2470    >,
2471    pub nvmlDeviceGetSerial: Result<
2472        unsafe extern "C" fn(
2473            device: nvmlDevice_t,
2474            serial: *mut raw::c_char,
2475            length: raw::c_uint,
2476        ) -> nvmlReturn_t,
2477        ::libloading::Error,
2478    >,
2479    pub nvmlDeviceGetModuleId: Result<
2480        unsafe extern "C" fn(device: nvmlDevice_t, moduleId: *mut raw::c_uint) -> nvmlReturn_t,
2481        ::libloading::Error,
2482    >,
2483    pub nvmlDeviceGetC2cModeInfoV: Result<
2484        unsafe extern "C" fn(
2485            device: nvmlDevice_t,
2486            c2cModeInfo: *mut nvmlC2cModeInfo_v1_t,
2487        ) -> nvmlReturn_t,
2488        ::libloading::Error,
2489    >,
2490    pub nvmlDeviceGetMemoryAffinity: Result<
2491        unsafe extern "C" fn(
2492            device: nvmlDevice_t,
2493            nodeSetSize: raw::c_uint,
2494            nodeSet: *mut raw::c_ulong,
2495            scope: nvmlAffinityScope_t,
2496        ) -> nvmlReturn_t,
2497        ::libloading::Error,
2498    >,
2499    pub nvmlDeviceGetCpuAffinityWithinScope: Result<
2500        unsafe extern "C" fn(
2501            device: nvmlDevice_t,
2502            cpuSetSize: raw::c_uint,
2503            cpuSet: *mut raw::c_ulong,
2504            scope: nvmlAffinityScope_t,
2505        ) -> nvmlReturn_t,
2506        ::libloading::Error,
2507    >,
2508    pub nvmlDeviceGetCpuAffinity: Result<
2509        unsafe extern "C" fn(
2510            device: nvmlDevice_t,
2511            cpuSetSize: raw::c_uint,
2512            cpuSet: *mut raw::c_ulong,
2513        ) -> nvmlReturn_t,
2514        ::libloading::Error,
2515    >,
2516    pub nvmlDeviceSetCpuAffinity:
2517        Result<unsafe extern "C" fn(device: nvmlDevice_t) -> nvmlReturn_t, ::libloading::Error>,
2518    pub nvmlDeviceClearCpuAffinity:
2519        Result<unsafe extern "C" fn(device: nvmlDevice_t) -> nvmlReturn_t, ::libloading::Error>,
2520    pub nvmlDeviceGetNumaNodeId: Result<
2521        unsafe extern "C" fn(device: nvmlDevice_t, node: *mut raw::c_uint) -> nvmlReturn_t,
2522        ::libloading::Error,
2523    >,
2524    pub nvmlDeviceGetTopologyCommonAncestor: Result<
2525        unsafe extern "C" fn(
2526            device1: nvmlDevice_t,
2527            device2: nvmlDevice_t,
2528            pathInfo: *mut nvmlGpuTopologyLevel_t,
2529        ) -> nvmlReturn_t,
2530        ::libloading::Error,
2531    >,
2532    pub nvmlDeviceGetTopologyNearestGpus: Result<
2533        unsafe extern "C" fn(
2534            device: nvmlDevice_t,
2535            level: nvmlGpuTopologyLevel_t,
2536            count: *mut raw::c_uint,
2537            deviceArray: *mut nvmlDevice_t,
2538        ) -> nvmlReturn_t,
2539        ::libloading::Error,
2540    >,
2541    pub nvmlDeviceGetP2PStatus: Result<
2542        unsafe extern "C" fn(
2543            device1: nvmlDevice_t,
2544            device2: nvmlDevice_t,
2545            p2pIndex: nvmlGpuP2PCapsIndex_t,
2546            p2pStatus: *mut nvmlGpuP2PStatus_t,
2547        ) -> nvmlReturn_t,
2548        ::libloading::Error,
2549    >,
2550    pub nvmlDeviceGetUUID: Result<
2551        unsafe extern "C" fn(
2552            device: nvmlDevice_t,
2553            uuid: *mut raw::c_char,
2554            length: raw::c_uint,
2555        ) -> nvmlReturn_t,
2556        ::libloading::Error,
2557    >,
2558    pub nvmlDeviceGetMinorNumber: Result<
2559        unsafe extern "C" fn(device: nvmlDevice_t, minorNumber: *mut raw::c_uint) -> nvmlReturn_t,
2560        ::libloading::Error,
2561    >,
2562    pub nvmlDeviceGetBoardPartNumber: Result<
2563        unsafe extern "C" fn(
2564            device: nvmlDevice_t,
2565            partNumber: *mut raw::c_char,
2566            length: raw::c_uint,
2567        ) -> nvmlReturn_t,
2568        ::libloading::Error,
2569    >,
2570    pub nvmlDeviceGetInforomVersion: Result<
2571        unsafe extern "C" fn(
2572            device: nvmlDevice_t,
2573            object: nvmlInforomObject_t,
2574            version: *mut raw::c_char,
2575            length: raw::c_uint,
2576        ) -> nvmlReturn_t,
2577        ::libloading::Error,
2578    >,
2579    pub nvmlDeviceGetInforomImageVersion: Result<
2580        unsafe extern "C" fn(
2581            device: nvmlDevice_t,
2582            version: *mut raw::c_char,
2583            length: raw::c_uint,
2584        ) -> nvmlReturn_t,
2585        ::libloading::Error,
2586    >,
2587    pub nvmlDeviceGetInforomConfigurationChecksum: Result<
2588        unsafe extern "C" fn(device: nvmlDevice_t, checksum: *mut raw::c_uint) -> nvmlReturn_t,
2589        ::libloading::Error,
2590    >,
2591    pub nvmlDeviceValidateInforom:
2592        Result<unsafe extern "C" fn(device: nvmlDevice_t) -> nvmlReturn_t, ::libloading::Error>,
2593    pub nvmlDeviceGetLastBBXFlushTime: Result<
2594        unsafe extern "C" fn(
2595            device: nvmlDevice_t,
2596            timestamp: *mut raw::c_ulonglong,
2597            durationUs: *mut raw::c_ulong,
2598        ) -> nvmlReturn_t,
2599        ::libloading::Error,
2600    >,
2601    pub nvmlDeviceGetDisplayMode: Result<
2602        unsafe extern "C" fn(device: nvmlDevice_t, display: *mut nvmlEnableState_t) -> nvmlReturn_t,
2603        ::libloading::Error,
2604    >,
2605    pub nvmlDeviceGetDisplayActive: Result<
2606        unsafe extern "C" fn(
2607            device: nvmlDevice_t,
2608            isActive: *mut nvmlEnableState_t,
2609        ) -> nvmlReturn_t,
2610        ::libloading::Error,
2611    >,
2612    pub nvmlDeviceGetPersistenceMode: Result<
2613        unsafe extern "C" fn(device: nvmlDevice_t, mode: *mut nvmlEnableState_t) -> nvmlReturn_t,
2614        ::libloading::Error,
2615    >,
2616    pub nvmlDeviceGetPciInfoExt: Result<
2617        unsafe extern "C" fn(device: nvmlDevice_t, pci: *mut nvmlPciInfoExt_t) -> nvmlReturn_t,
2618        ::libloading::Error,
2619    >,
2620    pub nvmlDeviceGetPciInfo_v3: Result<
2621        unsafe extern "C" fn(device: nvmlDevice_t, pci: *mut nvmlPciInfo_t) -> nvmlReturn_t,
2622        ::libloading::Error,
2623    >,
2624    pub nvmlDeviceGetMaxPcieLinkGeneration: Result<
2625        unsafe extern "C" fn(device: nvmlDevice_t, maxLinkGen: *mut raw::c_uint) -> nvmlReturn_t,
2626        ::libloading::Error,
2627    >,
2628    pub nvmlDeviceGetGpuMaxPcieLinkGeneration: Result<
2629        unsafe extern "C" fn(
2630            device: nvmlDevice_t,
2631            maxLinkGenDevice: *mut raw::c_uint,
2632        ) -> nvmlReturn_t,
2633        ::libloading::Error,
2634    >,
2635    pub nvmlDeviceGetMaxPcieLinkWidth: Result<
2636        unsafe extern "C" fn(device: nvmlDevice_t, maxLinkWidth: *mut raw::c_uint) -> nvmlReturn_t,
2637        ::libloading::Error,
2638    >,
2639    pub nvmlDeviceGetCurrPcieLinkGeneration: Result<
2640        unsafe extern "C" fn(device: nvmlDevice_t, currLinkGen: *mut raw::c_uint) -> nvmlReturn_t,
2641        ::libloading::Error,
2642    >,
2643    pub nvmlDeviceGetCurrPcieLinkWidth: Result<
2644        unsafe extern "C" fn(device: nvmlDevice_t, currLinkWidth: *mut raw::c_uint) -> nvmlReturn_t,
2645        ::libloading::Error,
2646    >,
2647    pub nvmlDeviceGetPcieThroughput: Result<
2648        unsafe extern "C" fn(
2649            device: nvmlDevice_t,
2650            counter: nvmlPcieUtilCounter_t,
2651            value: *mut raw::c_uint,
2652        ) -> nvmlReturn_t,
2653        ::libloading::Error,
2654    >,
2655    pub nvmlDeviceGetPcieReplayCounter: Result<
2656        unsafe extern "C" fn(device: nvmlDevice_t, value: *mut raw::c_uint) -> nvmlReturn_t,
2657        ::libloading::Error,
2658    >,
2659    pub nvmlDeviceGetClockInfo: Result<
2660        unsafe extern "C" fn(
2661            device: nvmlDevice_t,
2662            type_: nvmlClockType_t,
2663            clock: *mut raw::c_uint,
2664        ) -> nvmlReturn_t,
2665        ::libloading::Error,
2666    >,
2667    pub nvmlDeviceGetMaxClockInfo: Result<
2668        unsafe extern "C" fn(
2669            device: nvmlDevice_t,
2670            type_: nvmlClockType_t,
2671            clock: *mut raw::c_uint,
2672        ) -> nvmlReturn_t,
2673        ::libloading::Error,
2674    >,
2675    pub nvmlDeviceGetGpcClkVfOffset: Result<
2676        unsafe extern "C" fn(device: nvmlDevice_t, offset: *mut raw::c_int) -> nvmlReturn_t,
2677        ::libloading::Error,
2678    >,
2679    pub nvmlDeviceGetApplicationsClock: Result<
2680        unsafe extern "C" fn(
2681            device: nvmlDevice_t,
2682            clockType: nvmlClockType_t,
2683            clockMHz: *mut raw::c_uint,
2684        ) -> nvmlReturn_t,
2685        ::libloading::Error,
2686    >,
2687    pub nvmlDeviceGetDefaultApplicationsClock: Result<
2688        unsafe extern "C" fn(
2689            device: nvmlDevice_t,
2690            clockType: nvmlClockType_t,
2691            clockMHz: *mut raw::c_uint,
2692        ) -> nvmlReturn_t,
2693        ::libloading::Error,
2694    >,
2695    pub nvmlDeviceGetClock: Result<
2696        unsafe extern "C" fn(
2697            device: nvmlDevice_t,
2698            clockType: nvmlClockType_t,
2699            clockId: nvmlClockId_t,
2700            clockMHz: *mut raw::c_uint,
2701        ) -> nvmlReturn_t,
2702        ::libloading::Error,
2703    >,
2704    pub nvmlDeviceGetMaxCustomerBoostClock: Result<
2705        unsafe extern "C" fn(
2706            device: nvmlDevice_t,
2707            clockType: nvmlClockType_t,
2708            clockMHz: *mut raw::c_uint,
2709        ) -> nvmlReturn_t,
2710        ::libloading::Error,
2711    >,
2712    pub nvmlDeviceGetSupportedMemoryClocks: Result<
2713        unsafe extern "C" fn(
2714            device: nvmlDevice_t,
2715            count: *mut raw::c_uint,
2716            clocksMHz: *mut raw::c_uint,
2717        ) -> nvmlReturn_t,
2718        ::libloading::Error,
2719    >,
2720    pub nvmlDeviceGetSupportedGraphicsClocks: Result<
2721        unsafe extern "C" fn(
2722            device: nvmlDevice_t,
2723            memoryClockMHz: raw::c_uint,
2724            count: *mut raw::c_uint,
2725            clocksMHz: *mut raw::c_uint,
2726        ) -> nvmlReturn_t,
2727        ::libloading::Error,
2728    >,
2729    pub nvmlDeviceGetAutoBoostedClocksEnabled: Result<
2730        unsafe extern "C" fn(
2731            device: nvmlDevice_t,
2732            isEnabled: *mut nvmlEnableState_t,
2733            defaultIsEnabled: *mut nvmlEnableState_t,
2734        ) -> nvmlReturn_t,
2735        ::libloading::Error,
2736    >,
2737    pub nvmlDeviceGetFanSpeed: Result<
2738        unsafe extern "C" fn(device: nvmlDevice_t, speed: *mut raw::c_uint) -> nvmlReturn_t,
2739        ::libloading::Error,
2740    >,
2741    pub nvmlDeviceGetFanSpeed_v2: Result<
2742        unsafe extern "C" fn(
2743            device: nvmlDevice_t,
2744            fan: raw::c_uint,
2745            speed: *mut raw::c_uint,
2746        ) -> nvmlReturn_t,
2747        ::libloading::Error,
2748    >,
2749    pub nvmlDeviceGetFanSpeedRPM: Result<
2750        unsafe extern "C" fn(
2751            device: nvmlDevice_t,
2752            fanSpeed: *mut nvmlFanSpeedInfo_t,
2753        ) -> nvmlReturn_t,
2754        ::libloading::Error,
2755    >,
2756    pub nvmlDeviceGetTargetFanSpeed: Result<
2757        unsafe extern "C" fn(
2758            device: nvmlDevice_t,
2759            fan: raw::c_uint,
2760            targetSpeed: *mut raw::c_uint,
2761        ) -> nvmlReturn_t,
2762        ::libloading::Error,
2763    >,
2764    pub nvmlDeviceGetMinMaxFanSpeed: Result<
2765        unsafe extern "C" fn(
2766            device: nvmlDevice_t,
2767            minSpeed: *mut raw::c_uint,
2768            maxSpeed: *mut raw::c_uint,
2769        ) -> nvmlReturn_t,
2770        ::libloading::Error,
2771    >,
2772    pub nvmlDeviceGetFanControlPolicy_v2: Result<
2773        unsafe extern "C" fn(
2774            device: nvmlDevice_t,
2775            fan: raw::c_uint,
2776            policy: *mut nvmlFanControlPolicy_t,
2777        ) -> nvmlReturn_t,
2778        ::libloading::Error,
2779    >,
2780    pub nvmlDeviceGetNumFans: Result<
2781        unsafe extern "C" fn(device: nvmlDevice_t, numFans: *mut raw::c_uint) -> nvmlReturn_t,
2782        ::libloading::Error,
2783    >,
2784    pub nvmlDeviceGetTemperature: Result<
2785        unsafe extern "C" fn(
2786            device: nvmlDevice_t,
2787            sensorType: nvmlTemperatureSensors_t,
2788            temp: *mut raw::c_uint,
2789        ) -> nvmlReturn_t,
2790        ::libloading::Error,
2791    >,
2792    pub nvmlDeviceGetCoolerInfo: Result<
2793        unsafe extern "C" fn(
2794            device: nvmlDevice_t,
2795            coolerInfo: *mut nvmlCoolerInfo_t,
2796        ) -> nvmlReturn_t,
2797        ::libloading::Error,
2798    >,
2799    pub nvmlDeviceGetTemperatureV: Result<
2800        unsafe extern "C" fn(
2801            device: nvmlDevice_t,
2802            temperature: *mut nvmlTemperature_t,
2803        ) -> nvmlReturn_t,
2804        ::libloading::Error,
2805    >,
2806    pub nvmlDeviceGetTemperatureThreshold: Result<
2807        unsafe extern "C" fn(
2808            device: nvmlDevice_t,
2809            thresholdType: nvmlTemperatureThresholds_t,
2810            temp: *mut raw::c_uint,
2811        ) -> nvmlReturn_t,
2812        ::libloading::Error,
2813    >,
2814    pub nvmlDeviceGetMarginTemperature: Result<
2815        unsafe extern "C" fn(
2816            device: nvmlDevice_t,
2817            marginTempInfo: *mut nvmlMarginTemperature_t,
2818        ) -> nvmlReturn_t,
2819        ::libloading::Error,
2820    >,
2821    pub nvmlDeviceGetThermalSettings: Result<
2822        unsafe extern "C" fn(
2823            device: nvmlDevice_t,
2824            sensorIndex: raw::c_uint,
2825            pThermalSettings: *mut nvmlGpuThermalSettings_t,
2826        ) -> nvmlReturn_t,
2827        ::libloading::Error,
2828    >,
2829    pub nvmlDeviceGetPerformanceState: Result<
2830        unsafe extern "C" fn(device: nvmlDevice_t, pState: *mut nvmlPstates_t) -> nvmlReturn_t,
2831        ::libloading::Error,
2832    >,
2833    pub nvmlDeviceGetCurrentClocksEventReasons: Result<
2834        unsafe extern "C" fn(
2835            device: nvmlDevice_t,
2836            clocksEventReasons: *mut raw::c_ulonglong,
2837        ) -> nvmlReturn_t,
2838        ::libloading::Error,
2839    >,
2840    pub nvmlDeviceGetCurrentClocksThrottleReasons: Result<
2841        unsafe extern "C" fn(
2842            device: nvmlDevice_t,
2843            clocksThrottleReasons: *mut raw::c_ulonglong,
2844        ) -> nvmlReturn_t,
2845        ::libloading::Error,
2846    >,
2847    pub nvmlDeviceGetSupportedClocksEventReasons: Result<
2848        unsafe extern "C" fn(
2849            device: nvmlDevice_t,
2850            supportedClocksEventReasons: *mut raw::c_ulonglong,
2851        ) -> nvmlReturn_t,
2852        ::libloading::Error,
2853    >,
2854    pub nvmlDeviceGetSupportedClocksThrottleReasons: Result<
2855        unsafe extern "C" fn(
2856            device: nvmlDevice_t,
2857            supportedClocksThrottleReasons: *mut raw::c_ulonglong,
2858        ) -> nvmlReturn_t,
2859        ::libloading::Error,
2860    >,
2861    pub nvmlDeviceGetPowerState: Result<
2862        unsafe extern "C" fn(device: nvmlDevice_t, pState: *mut nvmlPstates_t) -> nvmlReturn_t,
2863        ::libloading::Error,
2864    >,
2865    pub nvmlDeviceGetDynamicPstatesInfo: Result<
2866        unsafe extern "C" fn(
2867            device: nvmlDevice_t,
2868            pDynamicPstatesInfo: *mut nvmlGpuDynamicPstatesInfo_t,
2869        ) -> nvmlReturn_t,
2870        ::libloading::Error,
2871    >,
2872    pub nvmlDeviceGetMemClkVfOffset: Result<
2873        unsafe extern "C" fn(device: nvmlDevice_t, offset: *mut raw::c_int) -> nvmlReturn_t,
2874        ::libloading::Error,
2875    >,
2876    pub nvmlDeviceGetMinMaxClockOfPState: Result<
2877        unsafe extern "C" fn(
2878            device: nvmlDevice_t,
2879            type_: nvmlClockType_t,
2880            pstate: nvmlPstates_t,
2881            minClockMHz: *mut raw::c_uint,
2882            maxClockMHz: *mut raw::c_uint,
2883        ) -> nvmlReturn_t,
2884        ::libloading::Error,
2885    >,
2886    pub nvmlDeviceGetSupportedPerformanceStates: Result<
2887        unsafe extern "C" fn(
2888            device: nvmlDevice_t,
2889            pstates: *mut nvmlPstates_t,
2890            size: raw::c_uint,
2891        ) -> nvmlReturn_t,
2892        ::libloading::Error,
2893    >,
2894    pub nvmlDeviceGetGpcClkMinMaxVfOffset: Result<
2895        unsafe extern "C" fn(
2896            device: nvmlDevice_t,
2897            minOffset: *mut raw::c_int,
2898            maxOffset: *mut raw::c_int,
2899        ) -> nvmlReturn_t,
2900        ::libloading::Error,
2901    >,
2902    pub nvmlDeviceGetMemClkMinMaxVfOffset: Result<
2903        unsafe extern "C" fn(
2904            device: nvmlDevice_t,
2905            minOffset: *mut raw::c_int,
2906            maxOffset: *mut raw::c_int,
2907        ) -> nvmlReturn_t,
2908        ::libloading::Error,
2909    >,
2910    pub nvmlDeviceGetClockOffsets: Result<
2911        unsafe extern "C" fn(device: nvmlDevice_t, info: *mut nvmlClockOffset_t) -> nvmlReturn_t,
2912        ::libloading::Error,
2913    >,
2914    pub nvmlDeviceSetClockOffsets: Result<
2915        unsafe extern "C" fn(device: nvmlDevice_t, info: *mut nvmlClockOffset_t) -> nvmlReturn_t,
2916        ::libloading::Error,
2917    >,
2918    pub nvmlDeviceGetPerformanceModes: Result<
2919        unsafe extern "C" fn(
2920            device: nvmlDevice_t,
2921            perfModes: *mut nvmlDevicePerfModes_t,
2922        ) -> nvmlReturn_t,
2923        ::libloading::Error,
2924    >,
2925    pub nvmlDeviceGetCurrentClockFreqs: Result<
2926        unsafe extern "C" fn(
2927            device: nvmlDevice_t,
2928            currentClockFreqs: *mut nvmlDeviceCurrentClockFreqs_t,
2929        ) -> nvmlReturn_t,
2930        ::libloading::Error,
2931    >,
2932    pub nvmlDeviceGetPowerManagementMode: Result<
2933        unsafe extern "C" fn(device: nvmlDevice_t, mode: *mut nvmlEnableState_t) -> nvmlReturn_t,
2934        ::libloading::Error,
2935    >,
2936    pub nvmlDeviceGetPowerManagementLimit: Result<
2937        unsafe extern "C" fn(device: nvmlDevice_t, limit: *mut raw::c_uint) -> nvmlReturn_t,
2938        ::libloading::Error,
2939    >,
2940    pub nvmlDeviceGetPowerManagementLimitConstraints: Result<
2941        unsafe extern "C" fn(
2942            device: nvmlDevice_t,
2943            minLimit: *mut raw::c_uint,
2944            maxLimit: *mut raw::c_uint,
2945        ) -> nvmlReturn_t,
2946        ::libloading::Error,
2947    >,
2948    pub nvmlDeviceGetPowerManagementDefaultLimit: Result<
2949        unsafe extern "C" fn(device: nvmlDevice_t, defaultLimit: *mut raw::c_uint) -> nvmlReturn_t,
2950        ::libloading::Error,
2951    >,
2952    pub nvmlDeviceGetPowerUsage: Result<
2953        unsafe extern "C" fn(device: nvmlDevice_t, power: *mut raw::c_uint) -> nvmlReturn_t,
2954        ::libloading::Error,
2955    >,
2956    pub nvmlDeviceGetTotalEnergyConsumption: Result<
2957        unsafe extern "C" fn(device: nvmlDevice_t, energy: *mut raw::c_ulonglong) -> nvmlReturn_t,
2958        ::libloading::Error,
2959    >,
2960    pub nvmlDeviceGetEnforcedPowerLimit: Result<
2961        unsafe extern "C" fn(device: nvmlDevice_t, limit: *mut raw::c_uint) -> nvmlReturn_t,
2962        ::libloading::Error,
2963    >,
2964    pub nvmlDeviceGetGpuOperationMode: Result<
2965        unsafe extern "C" fn(
2966            device: nvmlDevice_t,
2967            current: *mut nvmlGpuOperationMode_t,
2968            pending: *mut nvmlGpuOperationMode_t,
2969        ) -> nvmlReturn_t,
2970        ::libloading::Error,
2971    >,
2972    pub nvmlDeviceGetMemoryInfo: Result<
2973        unsafe extern "C" fn(device: nvmlDevice_t, memory: *mut nvmlMemory_t) -> nvmlReturn_t,
2974        ::libloading::Error,
2975    >,
2976    pub nvmlDeviceGetMemoryInfo_v2: Result<
2977        unsafe extern "C" fn(device: nvmlDevice_t, memory: *mut nvmlMemory_v2_t) -> nvmlReturn_t,
2978        ::libloading::Error,
2979    >,
2980    pub nvmlDeviceGetComputeMode: Result<
2981        unsafe extern "C" fn(device: nvmlDevice_t, mode: *mut nvmlComputeMode_t) -> nvmlReturn_t,
2982        ::libloading::Error,
2983    >,
2984    pub nvmlDeviceGetCudaComputeCapability: Result<
2985        unsafe extern "C" fn(
2986            device: nvmlDevice_t,
2987            major: *mut raw::c_int,
2988            minor: *mut raw::c_int,
2989        ) -> nvmlReturn_t,
2990        ::libloading::Error,
2991    >,
2992    pub nvmlDeviceGetDramEncryptionMode: Result<
2993        unsafe extern "C" fn(
2994            device: nvmlDevice_t,
2995            current: *mut nvmlDramEncryptionInfo_t,
2996            pending: *mut nvmlDramEncryptionInfo_t,
2997        ) -> nvmlReturn_t,
2998        ::libloading::Error,
2999    >,
3000    pub nvmlDeviceSetDramEncryptionMode: Result<
3001        unsafe extern "C" fn(
3002            device: nvmlDevice_t,
3003            dramEncryption: *const nvmlDramEncryptionInfo_t,
3004        ) -> nvmlReturn_t,
3005        ::libloading::Error,
3006    >,
3007    pub nvmlDeviceGetEccMode: Result<
3008        unsafe extern "C" fn(
3009            device: nvmlDevice_t,
3010            current: *mut nvmlEnableState_t,
3011            pending: *mut nvmlEnableState_t,
3012        ) -> nvmlReturn_t,
3013        ::libloading::Error,
3014    >,
3015    pub nvmlDeviceGetDefaultEccMode: Result<
3016        unsafe extern "C" fn(
3017            device: nvmlDevice_t,
3018            defaultMode: *mut nvmlEnableState_t,
3019        ) -> nvmlReturn_t,
3020        ::libloading::Error,
3021    >,
3022    pub nvmlDeviceGetBoardId: Result<
3023        unsafe extern "C" fn(device: nvmlDevice_t, boardId: *mut raw::c_uint) -> nvmlReturn_t,
3024        ::libloading::Error,
3025    >,
3026    pub nvmlDeviceGetMultiGpuBoard: Result<
3027        unsafe extern "C" fn(device: nvmlDevice_t, multiGpuBool: *mut raw::c_uint) -> nvmlReturn_t,
3028        ::libloading::Error,
3029    >,
3030    pub nvmlDeviceGetTotalEccErrors: Result<
3031        unsafe extern "C" fn(
3032            device: nvmlDevice_t,
3033            errorType: nvmlMemoryErrorType_t,
3034            counterType: nvmlEccCounterType_t,
3035            eccCounts: *mut raw::c_ulonglong,
3036        ) -> nvmlReturn_t,
3037        ::libloading::Error,
3038    >,
3039    pub nvmlDeviceGetDetailedEccErrors: Result<
3040        unsafe extern "C" fn(
3041            device: nvmlDevice_t,
3042            errorType: nvmlMemoryErrorType_t,
3043            counterType: nvmlEccCounterType_t,
3044            eccCounts: *mut nvmlEccErrorCounts_t,
3045        ) -> nvmlReturn_t,
3046        ::libloading::Error,
3047    >,
3048    pub nvmlDeviceGetMemoryErrorCounter: Result<
3049        unsafe extern "C" fn(
3050            device: nvmlDevice_t,
3051            errorType: nvmlMemoryErrorType_t,
3052            counterType: nvmlEccCounterType_t,
3053            locationType: nvmlMemoryLocation_t,
3054            count: *mut raw::c_ulonglong,
3055        ) -> nvmlReturn_t,
3056        ::libloading::Error,
3057    >,
3058    pub nvmlDeviceGetUtilizationRates: Result<
3059        unsafe extern "C" fn(
3060            device: nvmlDevice_t,
3061            utilization: *mut nvmlUtilization_t,
3062        ) -> nvmlReturn_t,
3063        ::libloading::Error,
3064    >,
3065    pub nvmlDeviceGetEncoderUtilization: Result<
3066        unsafe extern "C" fn(
3067            device: nvmlDevice_t,
3068            utilization: *mut raw::c_uint,
3069            samplingPeriodUs: *mut raw::c_uint,
3070        ) -> nvmlReturn_t,
3071        ::libloading::Error,
3072    >,
3073    pub nvmlDeviceGetEncoderCapacity: Result<
3074        unsafe extern "C" fn(
3075            device: nvmlDevice_t,
3076            encoderQueryType: nvmlEncoderType_t,
3077            encoderCapacity: *mut raw::c_uint,
3078        ) -> nvmlReturn_t,
3079        ::libloading::Error,
3080    >,
3081    pub nvmlDeviceGetEncoderStats: Result<
3082        unsafe extern "C" fn(
3083            device: nvmlDevice_t,
3084            sessionCount: *mut raw::c_uint,
3085            averageFps: *mut raw::c_uint,
3086            averageLatency: *mut raw::c_uint,
3087        ) -> nvmlReturn_t,
3088        ::libloading::Error,
3089    >,
3090    pub nvmlDeviceGetEncoderSessions: Result<
3091        unsafe extern "C" fn(
3092            device: nvmlDevice_t,
3093            sessionCount: *mut raw::c_uint,
3094            sessionInfos: *mut nvmlEncoderSessionInfo_t,
3095        ) -> nvmlReturn_t,
3096        ::libloading::Error,
3097    >,
3098    pub nvmlDeviceGetDecoderUtilization: Result<
3099        unsafe extern "C" fn(
3100            device: nvmlDevice_t,
3101            utilization: *mut raw::c_uint,
3102            samplingPeriodUs: *mut raw::c_uint,
3103        ) -> nvmlReturn_t,
3104        ::libloading::Error,
3105    >,
3106    pub nvmlDeviceGetJpgUtilization: Result<
3107        unsafe extern "C" fn(
3108            device: nvmlDevice_t,
3109            utilization: *mut raw::c_uint,
3110            samplingPeriodUs: *mut raw::c_uint,
3111        ) -> nvmlReturn_t,
3112        ::libloading::Error,
3113    >,
3114    pub nvmlDeviceGetOfaUtilization: Result<
3115        unsafe extern "C" fn(
3116            device: nvmlDevice_t,
3117            utilization: *mut raw::c_uint,
3118            samplingPeriodUs: *mut raw::c_uint,
3119        ) -> nvmlReturn_t,
3120        ::libloading::Error,
3121    >,
3122    pub nvmlDeviceGetFBCStats: Result<
3123        unsafe extern "C" fn(device: nvmlDevice_t, fbcStats: *mut nvmlFBCStats_t) -> nvmlReturn_t,
3124        ::libloading::Error,
3125    >,
3126    pub nvmlDeviceGetFBCSessions: Result<
3127        unsafe extern "C" fn(
3128            device: nvmlDevice_t,
3129            sessionCount: *mut raw::c_uint,
3130            sessionInfo: *mut nvmlFBCSessionInfo_t,
3131        ) -> nvmlReturn_t,
3132        ::libloading::Error,
3133    >,
3134    pub nvmlDeviceGetDriverModel_v2: Result<
3135        unsafe extern "C" fn(
3136            device: nvmlDevice_t,
3137            current: *mut nvmlDriverModel_t,
3138            pending: *mut nvmlDriverModel_t,
3139        ) -> nvmlReturn_t,
3140        ::libloading::Error,
3141    >,
3142    pub nvmlDeviceGetVbiosVersion: Result<
3143        unsafe extern "C" fn(
3144            device: nvmlDevice_t,
3145            version: *mut raw::c_char,
3146            length: raw::c_uint,
3147        ) -> nvmlReturn_t,
3148        ::libloading::Error,
3149    >,
3150    pub nvmlDeviceGetBridgeChipInfo: Result<
3151        unsafe extern "C" fn(
3152            device: nvmlDevice_t,
3153            bridgeHierarchy: *mut nvmlBridgeChipHierarchy_t,
3154        ) -> nvmlReturn_t,
3155        ::libloading::Error,
3156    >,
3157    pub nvmlDeviceGetComputeRunningProcesses_v3: Result<
3158        unsafe extern "C" fn(
3159            device: nvmlDevice_t,
3160            infoCount: *mut raw::c_uint,
3161            infos: *mut nvmlProcessInfo_t,
3162        ) -> nvmlReturn_t,
3163        ::libloading::Error,
3164    >,
3165    pub nvmlDeviceGetGraphicsRunningProcesses_v3: Result<
3166        unsafe extern "C" fn(
3167            device: nvmlDevice_t,
3168            infoCount: *mut raw::c_uint,
3169            infos: *mut nvmlProcessInfo_t,
3170        ) -> nvmlReturn_t,
3171        ::libloading::Error,
3172    >,
3173    pub nvmlDeviceGetMPSComputeRunningProcesses_v3: Result<
3174        unsafe extern "C" fn(
3175            device: nvmlDevice_t,
3176            infoCount: *mut raw::c_uint,
3177            infos: *mut nvmlProcessInfo_t,
3178        ) -> nvmlReturn_t,
3179        ::libloading::Error,
3180    >,
3181    pub nvmlDeviceGetRunningProcessDetailList: Result<
3182        unsafe extern "C" fn(
3183            device: nvmlDevice_t,
3184            plist: *mut nvmlProcessDetailList_t,
3185        ) -> nvmlReturn_t,
3186        ::libloading::Error,
3187    >,
3188    pub nvmlDeviceOnSameBoard: Result<
3189        unsafe extern "C" fn(
3190            device1: nvmlDevice_t,
3191            device2: nvmlDevice_t,
3192            onSameBoard: *mut raw::c_int,
3193        ) -> nvmlReturn_t,
3194        ::libloading::Error,
3195    >,
3196    pub nvmlDeviceGetAPIRestriction: Result<
3197        unsafe extern "C" fn(
3198            device: nvmlDevice_t,
3199            apiType: nvmlRestrictedAPI_t,
3200            isRestricted: *mut nvmlEnableState_t,
3201        ) -> nvmlReturn_t,
3202        ::libloading::Error,
3203    >,
3204    pub nvmlDeviceGetSamples: Result<
3205        unsafe extern "C" fn(
3206            device: nvmlDevice_t,
3207            type_: nvmlSamplingType_t,
3208            lastSeenTimeStamp: raw::c_ulonglong,
3209            sampleValType: *mut nvmlValueType_t,
3210            sampleCount: *mut raw::c_uint,
3211            samples: *mut nvmlSample_t,
3212        ) -> nvmlReturn_t,
3213        ::libloading::Error,
3214    >,
3215    pub nvmlDeviceGetBAR1MemoryInfo: Result<
3216        unsafe extern "C" fn(
3217            device: nvmlDevice_t,
3218            bar1Memory: *mut nvmlBAR1Memory_t,
3219        ) -> nvmlReturn_t,
3220        ::libloading::Error,
3221    >,
3222    pub nvmlDeviceGetViolationStatus: Result<
3223        unsafe extern "C" fn(
3224            device: nvmlDevice_t,
3225            perfPolicyType: nvmlPerfPolicyType_t,
3226            violTime: *mut nvmlViolationTime_t,
3227        ) -> nvmlReturn_t,
3228        ::libloading::Error,
3229    >,
3230    pub nvmlDeviceGetIrqNum: Result<
3231        unsafe extern "C" fn(device: nvmlDevice_t, irqNum: *mut raw::c_uint) -> nvmlReturn_t,
3232        ::libloading::Error,
3233    >,
3234    pub nvmlDeviceGetNumGpuCores: Result<
3235        unsafe extern "C" fn(device: nvmlDevice_t, numCores: *mut raw::c_uint) -> nvmlReturn_t,
3236        ::libloading::Error,
3237    >,
3238    pub nvmlDeviceGetPowerSource: Result<
3239        unsafe extern "C" fn(
3240            device: nvmlDevice_t,
3241            powerSource: *mut nvmlPowerSource_t,
3242        ) -> nvmlReturn_t,
3243        ::libloading::Error,
3244    >,
3245    pub nvmlDeviceGetMemoryBusWidth: Result<
3246        unsafe extern "C" fn(device: nvmlDevice_t, busWidth: *mut raw::c_uint) -> nvmlReturn_t,
3247        ::libloading::Error,
3248    >,
3249    pub nvmlDeviceGetPcieLinkMaxSpeed: Result<
3250        unsafe extern "C" fn(device: nvmlDevice_t, maxSpeed: *mut raw::c_uint) -> nvmlReturn_t,
3251        ::libloading::Error,
3252    >,
3253    pub nvmlDeviceGetPcieSpeed: Result<
3254        unsafe extern "C" fn(device: nvmlDevice_t, pcieSpeed: *mut raw::c_uint) -> nvmlReturn_t,
3255        ::libloading::Error,
3256    >,
3257    pub nvmlDeviceGetAdaptiveClockInfoStatus: Result<
3258        unsafe extern "C" fn(
3259            device: nvmlDevice_t,
3260            adaptiveClockStatus: *mut raw::c_uint,
3261        ) -> nvmlReturn_t,
3262        ::libloading::Error,
3263    >,
3264    pub nvmlDeviceGetBusType: Result<
3265        unsafe extern "C" fn(device: nvmlDevice_t, type_: *mut nvmlBusType_t) -> nvmlReturn_t,
3266        ::libloading::Error,
3267    >,
3268    pub nvmlDeviceGetGpuFabricInfo: Result<
3269        unsafe extern "C" fn(
3270            device: nvmlDevice_t,
3271            gpuFabricInfo: *mut nvmlGpuFabricInfo_t,
3272        ) -> nvmlReturn_t,
3273        ::libloading::Error,
3274    >,
3275    pub nvmlDeviceGetGpuFabricInfoV: Result<
3276        unsafe extern "C" fn(
3277            device: nvmlDevice_t,
3278            gpuFabricInfo: *mut nvmlGpuFabricInfoV_t,
3279        ) -> nvmlReturn_t,
3280        ::libloading::Error,
3281    >,
3282    pub nvmlSystemGetConfComputeCapabilities: Result<
3283        unsafe extern "C" fn(capabilities: *mut nvmlConfComputeSystemCaps_t) -> nvmlReturn_t,
3284        ::libloading::Error,
3285    >,
3286    pub nvmlSystemGetConfComputeState: Result<
3287        unsafe extern "C" fn(state: *mut nvmlConfComputeSystemState_t) -> nvmlReturn_t,
3288        ::libloading::Error,
3289    >,
3290    pub nvmlDeviceGetConfComputeMemSizeInfo: Result<
3291        unsafe extern "C" fn(
3292            device: nvmlDevice_t,
3293            memInfo: *mut nvmlConfComputeMemSizeInfo_t,
3294        ) -> nvmlReturn_t,
3295        ::libloading::Error,
3296    >,
3297    pub nvmlSystemGetConfComputeGpusReadyState: Result<
3298        unsafe extern "C" fn(isAcceptingWork: *mut raw::c_uint) -> nvmlReturn_t,
3299        ::libloading::Error,
3300    >,
3301    pub nvmlDeviceGetConfComputeProtectedMemoryUsage: Result<
3302        unsafe extern "C" fn(device: nvmlDevice_t, memory: *mut nvmlMemory_t) -> nvmlReturn_t,
3303        ::libloading::Error,
3304    >,
3305    pub nvmlDeviceGetConfComputeGpuCertificate: Result<
3306        unsafe extern "C" fn(
3307            device: nvmlDevice_t,
3308            gpuCert: *mut nvmlConfComputeGpuCertificate_t,
3309        ) -> nvmlReturn_t,
3310        ::libloading::Error,
3311    >,
3312    pub nvmlDeviceGetConfComputeGpuAttestationReport: Result<
3313        unsafe extern "C" fn(
3314            device: nvmlDevice_t,
3315            gpuAtstReport: *mut nvmlConfComputeGpuAttestationReport_t,
3316        ) -> nvmlReturn_t,
3317        ::libloading::Error,
3318    >,
3319    pub nvmlSystemGetConfComputeKeyRotationThresholdInfo: Result<
3320        unsafe extern "C" fn(
3321            pKeyRotationThrInfo: *mut nvmlConfComputeGetKeyRotationThresholdInfo_t,
3322        ) -> nvmlReturn_t,
3323        ::libloading::Error,
3324    >,
3325    pub nvmlDeviceSetConfComputeUnprotectedMemSize: Result<
3326        unsafe extern "C" fn(device: nvmlDevice_t, sizeKiB: raw::c_ulonglong) -> nvmlReturn_t,
3327        ::libloading::Error,
3328    >,
3329    pub nvmlSystemSetConfComputeGpusReadyState: Result<
3330        unsafe extern "C" fn(isAcceptingWork: raw::c_uint) -> nvmlReturn_t,
3331        ::libloading::Error,
3332    >,
3333    pub nvmlSystemSetConfComputeKeyRotationThresholdInfo: Result<
3334        unsafe extern "C" fn(
3335            pKeyRotationThrInfo: *mut nvmlConfComputeSetKeyRotationThresholdInfo_t,
3336        ) -> nvmlReturn_t,
3337        ::libloading::Error,
3338    >,
3339    pub nvmlSystemGetConfComputeSettings: Result<
3340        unsafe extern "C" fn(settings: *mut nvmlSystemConfComputeSettings_t) -> nvmlReturn_t,
3341        ::libloading::Error,
3342    >,
3343    pub nvmlDeviceGetGspFirmwareVersion: Result<
3344        unsafe extern "C" fn(device: nvmlDevice_t, version: *mut raw::c_char) -> nvmlReturn_t,
3345        ::libloading::Error,
3346    >,
3347    pub nvmlDeviceGetGspFirmwareMode: Result<
3348        unsafe extern "C" fn(
3349            device: nvmlDevice_t,
3350            isEnabled: *mut raw::c_uint,
3351            defaultMode: *mut raw::c_uint,
3352        ) -> nvmlReturn_t,
3353        ::libloading::Error,
3354    >,
3355    pub nvmlDeviceGetSramEccErrorStatus: Result<
3356        unsafe extern "C" fn(
3357            device: nvmlDevice_t,
3358            status: *mut nvmlEccSramErrorStatus_t,
3359        ) -> nvmlReturn_t,
3360        ::libloading::Error,
3361    >,
3362    pub nvmlDeviceGetAccountingMode: Result<
3363        unsafe extern "C" fn(device: nvmlDevice_t, mode: *mut nvmlEnableState_t) -> nvmlReturn_t,
3364        ::libloading::Error,
3365    >,
3366    pub nvmlDeviceGetAccountingStats: Result<
3367        unsafe extern "C" fn(
3368            device: nvmlDevice_t,
3369            pid: raw::c_uint,
3370            stats: *mut nvmlAccountingStats_t,
3371        ) -> nvmlReturn_t,
3372        ::libloading::Error,
3373    >,
3374    pub nvmlDeviceGetAccountingPids: Result<
3375        unsafe extern "C" fn(
3376            device: nvmlDevice_t,
3377            count: *mut raw::c_uint,
3378            pids: *mut raw::c_uint,
3379        ) -> nvmlReturn_t,
3380        ::libloading::Error,
3381    >,
3382    pub nvmlDeviceGetAccountingBufferSize: Result<
3383        unsafe extern "C" fn(device: nvmlDevice_t, bufferSize: *mut raw::c_uint) -> nvmlReturn_t,
3384        ::libloading::Error,
3385    >,
3386    pub nvmlDeviceGetRetiredPages: Result<
3387        unsafe extern "C" fn(
3388            device: nvmlDevice_t,
3389            cause: nvmlPageRetirementCause_t,
3390            pageCount: *mut raw::c_uint,
3391            addresses: *mut raw::c_ulonglong,
3392        ) -> nvmlReturn_t,
3393        ::libloading::Error,
3394    >,
3395    pub nvmlDeviceGetRetiredPages_v2: Result<
3396        unsafe extern "C" fn(
3397            device: nvmlDevice_t,
3398            cause: nvmlPageRetirementCause_t,
3399            pageCount: *mut raw::c_uint,
3400            addresses: *mut raw::c_ulonglong,
3401            timestamps: *mut raw::c_ulonglong,
3402        ) -> nvmlReturn_t,
3403        ::libloading::Error,
3404    >,
3405    pub nvmlDeviceGetRetiredPagesPendingStatus: Result<
3406        unsafe extern "C" fn(
3407            device: nvmlDevice_t,
3408            isPending: *mut nvmlEnableState_t,
3409        ) -> nvmlReturn_t,
3410        ::libloading::Error,
3411    >,
3412    pub nvmlDeviceGetRemappedRows: Result<
3413        unsafe extern "C" fn(
3414            device: nvmlDevice_t,
3415            corrRows: *mut raw::c_uint,
3416            uncRows: *mut raw::c_uint,
3417            isPending: *mut raw::c_uint,
3418            failureOccurred: *mut raw::c_uint,
3419        ) -> nvmlReturn_t,
3420        ::libloading::Error,
3421    >,
3422    pub nvmlDeviceGetRowRemapperHistogram: Result<
3423        unsafe extern "C" fn(
3424            device: nvmlDevice_t,
3425            values: *mut nvmlRowRemapperHistogramValues_t,
3426        ) -> nvmlReturn_t,
3427        ::libloading::Error,
3428    >,
3429    pub nvmlDeviceGetArchitecture: Result<
3430        unsafe extern "C" fn(
3431            device: nvmlDevice_t,
3432            arch: *mut nvmlDeviceArchitecture_t,
3433        ) -> nvmlReturn_t,
3434        ::libloading::Error,
3435    >,
3436    pub nvmlDeviceGetClkMonStatus: Result<
3437        unsafe extern "C" fn(device: nvmlDevice_t, status: *mut nvmlClkMonStatus_t) -> nvmlReturn_t,
3438        ::libloading::Error,
3439    >,
3440    pub nvmlDeviceGetProcessUtilization: Result<
3441        unsafe extern "C" fn(
3442            device: nvmlDevice_t,
3443            utilization: *mut nvmlProcessUtilizationSample_t,
3444            processSamplesCount: *mut raw::c_uint,
3445            lastSeenTimeStamp: raw::c_ulonglong,
3446        ) -> nvmlReturn_t,
3447        ::libloading::Error,
3448    >,
3449    pub nvmlDeviceGetProcessesUtilizationInfo: Result<
3450        unsafe extern "C" fn(
3451            device: nvmlDevice_t,
3452            procesesUtilInfo: *mut nvmlProcessesUtilizationInfo_t,
3453        ) -> nvmlReturn_t,
3454        ::libloading::Error,
3455    >,
3456    pub nvmlDeviceGetPlatformInfo: Result<
3457        unsafe extern "C" fn(
3458            device: nvmlDevice_t,
3459            platformInfo: *mut nvmlPlatformInfo_t,
3460        ) -> nvmlReturn_t,
3461        ::libloading::Error,
3462    >,
3463    pub nvmlUnitSetLedState: Result<
3464        unsafe extern "C" fn(unit: nvmlUnit_t, color: nvmlLedColor_t) -> nvmlReturn_t,
3465        ::libloading::Error,
3466    >,
3467    pub nvmlDeviceSetPersistenceMode: Result<
3468        unsafe extern "C" fn(device: nvmlDevice_t, mode: nvmlEnableState_t) -> nvmlReturn_t,
3469        ::libloading::Error,
3470    >,
3471    pub nvmlDeviceSetComputeMode: Result<
3472        unsafe extern "C" fn(device: nvmlDevice_t, mode: nvmlComputeMode_t) -> nvmlReturn_t,
3473        ::libloading::Error,
3474    >,
3475    pub nvmlDeviceSetEccMode: Result<
3476        unsafe extern "C" fn(device: nvmlDevice_t, ecc: nvmlEnableState_t) -> nvmlReturn_t,
3477        ::libloading::Error,
3478    >,
3479    pub nvmlDeviceClearEccErrorCounts: Result<
3480        unsafe extern "C" fn(
3481            device: nvmlDevice_t,
3482            counterType: nvmlEccCounterType_t,
3483        ) -> nvmlReturn_t,
3484        ::libloading::Error,
3485    >,
3486    pub nvmlDeviceSetDriverModel: Result<
3487        unsafe extern "C" fn(
3488            device: nvmlDevice_t,
3489            driverModel: nvmlDriverModel_t,
3490            flags: raw::c_uint,
3491        ) -> nvmlReturn_t,
3492        ::libloading::Error,
3493    >,
3494    pub nvmlDeviceSetGpuLockedClocks: Result<
3495        unsafe extern "C" fn(
3496            device: nvmlDevice_t,
3497            minGpuClockMHz: raw::c_uint,
3498            maxGpuClockMHz: raw::c_uint,
3499        ) -> nvmlReturn_t,
3500        ::libloading::Error,
3501    >,
3502    pub nvmlDeviceResetGpuLockedClocks:
3503        Result<unsafe extern "C" fn(device: nvmlDevice_t) -> nvmlReturn_t, ::libloading::Error>,
3504    pub nvmlDeviceSetMemoryLockedClocks: Result<
3505        unsafe extern "C" fn(
3506            device: nvmlDevice_t,
3507            minMemClockMHz: raw::c_uint,
3508            maxMemClockMHz: raw::c_uint,
3509        ) -> nvmlReturn_t,
3510        ::libloading::Error,
3511    >,
3512    pub nvmlDeviceResetMemoryLockedClocks:
3513        Result<unsafe extern "C" fn(device: nvmlDevice_t) -> nvmlReturn_t, ::libloading::Error>,
3514    pub nvmlDeviceSetApplicationsClocks: Result<
3515        unsafe extern "C" fn(
3516            device: nvmlDevice_t,
3517            memClockMHz: raw::c_uint,
3518            graphicsClockMHz: raw::c_uint,
3519        ) -> nvmlReturn_t,
3520        ::libloading::Error,
3521    >,
3522    pub nvmlDeviceResetApplicationsClocks:
3523        Result<unsafe extern "C" fn(device: nvmlDevice_t) -> nvmlReturn_t, ::libloading::Error>,
3524    pub nvmlDeviceSetAutoBoostedClocksEnabled: Result<
3525        unsafe extern "C" fn(device: nvmlDevice_t, enabled: nvmlEnableState_t) -> nvmlReturn_t,
3526        ::libloading::Error,
3527    >,
3528    pub nvmlDeviceSetDefaultAutoBoostedClocksEnabled: Result<
3529        unsafe extern "C" fn(
3530            device: nvmlDevice_t,
3531            enabled: nvmlEnableState_t,
3532            flags: raw::c_uint,
3533        ) -> nvmlReturn_t,
3534        ::libloading::Error,
3535    >,
3536    pub nvmlDeviceSetDefaultFanSpeed_v2: Result<
3537        unsafe extern "C" fn(device: nvmlDevice_t, fan: raw::c_uint) -> nvmlReturn_t,
3538        ::libloading::Error,
3539    >,
3540    pub nvmlDeviceSetFanControlPolicy: Result<
3541        unsafe extern "C" fn(
3542            device: nvmlDevice_t,
3543            fan: raw::c_uint,
3544            policy: nvmlFanControlPolicy_t,
3545        ) -> nvmlReturn_t,
3546        ::libloading::Error,
3547    >,
3548    pub nvmlDeviceSetTemperatureThreshold: Result<
3549        unsafe extern "C" fn(
3550            device: nvmlDevice_t,
3551            thresholdType: nvmlTemperatureThresholds_t,
3552            temp: *mut raw::c_int,
3553        ) -> nvmlReturn_t,
3554        ::libloading::Error,
3555    >,
3556    pub nvmlDeviceSetPowerManagementLimit: Result<
3557        unsafe extern "C" fn(device: nvmlDevice_t, limit: raw::c_uint) -> nvmlReturn_t,
3558        ::libloading::Error,
3559    >,
3560    pub nvmlDeviceSetGpuOperationMode: Result<
3561        unsafe extern "C" fn(device: nvmlDevice_t, mode: nvmlGpuOperationMode_t) -> nvmlReturn_t,
3562        ::libloading::Error,
3563    >,
3564    pub nvmlDeviceSetAPIRestriction: Result<
3565        unsafe extern "C" fn(
3566            device: nvmlDevice_t,
3567            apiType: nvmlRestrictedAPI_t,
3568            isRestricted: nvmlEnableState_t,
3569        ) -> nvmlReturn_t,
3570        ::libloading::Error,
3571    >,
3572    pub nvmlDeviceSetFanSpeed_v2: Result<
3573        unsafe extern "C" fn(
3574            device: nvmlDevice_t,
3575            fan: raw::c_uint,
3576            speed: raw::c_uint,
3577        ) -> nvmlReturn_t,
3578        ::libloading::Error,
3579    >,
3580    pub nvmlDeviceSetGpcClkVfOffset: Result<
3581        unsafe extern "C" fn(device: nvmlDevice_t, offset: raw::c_int) -> nvmlReturn_t,
3582        ::libloading::Error,
3583    >,
3584    pub nvmlDeviceSetMemClkVfOffset: Result<
3585        unsafe extern "C" fn(device: nvmlDevice_t, offset: raw::c_int) -> nvmlReturn_t,
3586        ::libloading::Error,
3587    >,
3588    pub nvmlDeviceSetAccountingMode: Result<
3589        unsafe extern "C" fn(device: nvmlDevice_t, mode: nvmlEnableState_t) -> nvmlReturn_t,
3590        ::libloading::Error,
3591    >,
3592    pub nvmlDeviceClearAccountingPids:
3593        Result<unsafe extern "C" fn(device: nvmlDevice_t) -> nvmlReturn_t, ::libloading::Error>,
3594    pub nvmlDeviceSetPowerManagementLimit_v2: Result<
3595        unsafe extern "C" fn(
3596            device: nvmlDevice_t,
3597            powerValue: *mut nvmlPowerValue_v2_t,
3598        ) -> nvmlReturn_t,
3599        ::libloading::Error,
3600    >,
3601    pub nvmlDeviceGetNvLinkState: Result<
3602        unsafe extern "C" fn(
3603            device: nvmlDevice_t,
3604            link: raw::c_uint,
3605            isActive: *mut nvmlEnableState_t,
3606        ) -> nvmlReturn_t,
3607        ::libloading::Error,
3608    >,
3609    pub nvmlDeviceGetNvLinkVersion: Result<
3610        unsafe extern "C" fn(
3611            device: nvmlDevice_t,
3612            link: raw::c_uint,
3613            version: *mut raw::c_uint,
3614        ) -> nvmlReturn_t,
3615        ::libloading::Error,
3616    >,
3617    pub nvmlDeviceGetNvLinkCapability: Result<
3618        unsafe extern "C" fn(
3619            device: nvmlDevice_t,
3620            link: raw::c_uint,
3621            capability: nvmlNvLinkCapability_t,
3622            capResult: *mut raw::c_uint,
3623        ) -> nvmlReturn_t,
3624        ::libloading::Error,
3625    >,
3626    pub nvmlDeviceGetNvLinkRemotePciInfo_v2: Result<
3627        unsafe extern "C" fn(
3628            device: nvmlDevice_t,
3629            link: raw::c_uint,
3630            pci: *mut nvmlPciInfo_t,
3631        ) -> nvmlReturn_t,
3632        ::libloading::Error,
3633    >,
3634    pub nvmlDeviceGetNvLinkErrorCounter: Result<
3635        unsafe extern "C" fn(
3636            device: nvmlDevice_t,
3637            link: raw::c_uint,
3638            counter: nvmlNvLinkErrorCounter_t,
3639            counterValue: *mut raw::c_ulonglong,
3640        ) -> nvmlReturn_t,
3641        ::libloading::Error,
3642    >,
3643    pub nvmlDeviceResetNvLinkErrorCounters: Result<
3644        unsafe extern "C" fn(device: nvmlDevice_t, link: raw::c_uint) -> nvmlReturn_t,
3645        ::libloading::Error,
3646    >,
3647    pub nvmlDeviceSetNvLinkUtilizationControl: Result<
3648        unsafe extern "C" fn(
3649            device: nvmlDevice_t,
3650            link: raw::c_uint,
3651            counter: raw::c_uint,
3652            control: *mut nvmlNvLinkUtilizationControl_t,
3653            reset: raw::c_uint,
3654        ) -> nvmlReturn_t,
3655        ::libloading::Error,
3656    >,
3657    pub nvmlDeviceGetNvLinkUtilizationControl: Result<
3658        unsafe extern "C" fn(
3659            device: nvmlDevice_t,
3660            link: raw::c_uint,
3661            counter: raw::c_uint,
3662            control: *mut nvmlNvLinkUtilizationControl_t,
3663        ) -> nvmlReturn_t,
3664        ::libloading::Error,
3665    >,
3666    pub nvmlDeviceGetNvLinkUtilizationCounter: Result<
3667        unsafe extern "C" fn(
3668            device: nvmlDevice_t,
3669            link: raw::c_uint,
3670            counter: raw::c_uint,
3671            rxcounter: *mut raw::c_ulonglong,
3672            txcounter: *mut raw::c_ulonglong,
3673        ) -> nvmlReturn_t,
3674        ::libloading::Error,
3675    >,
3676    pub nvmlDeviceFreezeNvLinkUtilizationCounter: Result<
3677        unsafe extern "C" fn(
3678            device: nvmlDevice_t,
3679            link: raw::c_uint,
3680            counter: raw::c_uint,
3681            freeze: nvmlEnableState_t,
3682        ) -> nvmlReturn_t,
3683        ::libloading::Error,
3684    >,
3685    pub nvmlDeviceResetNvLinkUtilizationCounter: Result<
3686        unsafe extern "C" fn(
3687            device: nvmlDevice_t,
3688            link: raw::c_uint,
3689            counter: raw::c_uint,
3690        ) -> nvmlReturn_t,
3691        ::libloading::Error,
3692    >,
3693    pub nvmlDeviceGetNvLinkRemoteDeviceType: Result<
3694        unsafe extern "C" fn(
3695            device: nvmlDevice_t,
3696            link: raw::c_uint,
3697            pNvLinkDeviceType: *mut nvmlIntNvLinkDeviceType_t,
3698        ) -> nvmlReturn_t,
3699        ::libloading::Error,
3700    >,
3701    pub nvmlDeviceSetNvLinkDeviceLowPowerThreshold: Result<
3702        unsafe extern "C" fn(
3703            device: nvmlDevice_t,
3704            info: *mut nvmlNvLinkPowerThres_t,
3705        ) -> nvmlReturn_t,
3706        ::libloading::Error,
3707    >,
3708    pub nvmlSystemSetNvlinkBwMode: Result<
3709        unsafe extern "C" fn(nvlinkBwMode: raw::c_uint) -> nvmlReturn_t,
3710        ::libloading::Error,
3711    >,
3712    pub nvmlSystemGetNvlinkBwMode: Result<
3713        unsafe extern "C" fn(nvlinkBwMode: *mut raw::c_uint) -> nvmlReturn_t,
3714        ::libloading::Error,
3715    >,
3716    pub nvmlDeviceGetNvlinkSupportedBwModes: Result<
3717        unsafe extern "C" fn(
3718            device: nvmlDevice_t,
3719            supportedBwMode: *mut nvmlNvlinkSupportedBwModes_t,
3720        ) -> nvmlReturn_t,
3721        ::libloading::Error,
3722    >,
3723    pub nvmlDeviceGetNvlinkBwMode: Result<
3724        unsafe extern "C" fn(
3725            device: nvmlDevice_t,
3726            getBwMode: *mut nvmlNvlinkGetBwMode_t,
3727        ) -> nvmlReturn_t,
3728        ::libloading::Error,
3729    >,
3730    pub nvmlDeviceSetNvlinkBwMode: Result<
3731        unsafe extern "C" fn(
3732            device: nvmlDevice_t,
3733            setBwMode: *mut nvmlNvlinkSetBwMode_t,
3734        ) -> nvmlReturn_t,
3735        ::libloading::Error,
3736    >,
3737    pub nvmlEventSetCreate:
3738        Result<unsafe extern "C" fn(set: *mut nvmlEventSet_t) -> nvmlReturn_t, ::libloading::Error>,
3739    pub nvmlDeviceRegisterEvents: Result<
3740        unsafe extern "C" fn(
3741            device: nvmlDevice_t,
3742            eventTypes: raw::c_ulonglong,
3743            set: nvmlEventSet_t,
3744        ) -> nvmlReturn_t,
3745        ::libloading::Error,
3746    >,
3747    pub nvmlDeviceGetSupportedEventTypes: Result<
3748        unsafe extern "C" fn(
3749            device: nvmlDevice_t,
3750            eventTypes: *mut raw::c_ulonglong,
3751        ) -> nvmlReturn_t,
3752        ::libloading::Error,
3753    >,
3754    pub nvmlEventSetWait_v2: Result<
3755        unsafe extern "C" fn(
3756            set: nvmlEventSet_t,
3757            data: *mut nvmlEventData_t,
3758            timeoutms: raw::c_uint,
3759        ) -> nvmlReturn_t,
3760        ::libloading::Error,
3761    >,
3762    pub nvmlEventSetFree:
3763        Result<unsafe extern "C" fn(set: nvmlEventSet_t) -> nvmlReturn_t, ::libloading::Error>,
3764    pub nvmlDeviceModifyDrainState: Result<
3765        unsafe extern "C" fn(
3766            pciInfo: *mut nvmlPciInfo_t,
3767            newState: nvmlEnableState_t,
3768        ) -> nvmlReturn_t,
3769        ::libloading::Error,
3770    >,
3771    pub nvmlDeviceQueryDrainState: Result<
3772        unsafe extern "C" fn(
3773            pciInfo: *mut nvmlPciInfo_t,
3774            currentState: *mut nvmlEnableState_t,
3775        ) -> nvmlReturn_t,
3776        ::libloading::Error,
3777    >,
3778    pub nvmlDeviceRemoveGpu_v2: Result<
3779        unsafe extern "C" fn(
3780            pciInfo: *mut nvmlPciInfo_t,
3781            gpuState: nvmlDetachGpuState_t,
3782            linkState: nvmlPcieLinkState_t,
3783        ) -> nvmlReturn_t,
3784        ::libloading::Error,
3785    >,
3786    pub nvmlDeviceDiscoverGpus: Result<
3787        unsafe extern "C" fn(pciInfo: *mut nvmlPciInfo_t) -> nvmlReturn_t,
3788        ::libloading::Error,
3789    >,
3790    pub nvmlDeviceGetFieldValues: Result<
3791        unsafe extern "C" fn(
3792            device: nvmlDevice_t,
3793            valuesCount: raw::c_int,
3794            values: *mut nvmlFieldValue_t,
3795        ) -> nvmlReturn_t,
3796        ::libloading::Error,
3797    >,
3798    pub nvmlDeviceClearFieldValues: Result<
3799        unsafe extern "C" fn(
3800            device: nvmlDevice_t,
3801            valuesCount: raw::c_int,
3802            values: *mut nvmlFieldValue_t,
3803        ) -> nvmlReturn_t,
3804        ::libloading::Error,
3805    >,
3806    pub nvmlDeviceGetVirtualizationMode: Result<
3807        unsafe extern "C" fn(
3808            device: nvmlDevice_t,
3809            pVirtualMode: *mut nvmlGpuVirtualizationMode_t,
3810        ) -> nvmlReturn_t,
3811        ::libloading::Error,
3812    >,
3813    pub nvmlDeviceGetHostVgpuMode: Result<
3814        unsafe extern "C" fn(
3815            device: nvmlDevice_t,
3816            pHostVgpuMode: *mut nvmlHostVgpuMode_t,
3817        ) -> nvmlReturn_t,
3818        ::libloading::Error,
3819    >,
3820    pub nvmlDeviceSetVirtualizationMode: Result<
3821        unsafe extern "C" fn(
3822            device: nvmlDevice_t,
3823            virtualMode: nvmlGpuVirtualizationMode_t,
3824        ) -> nvmlReturn_t,
3825        ::libloading::Error,
3826    >,
3827    pub nvmlDeviceGetVgpuHeterogeneousMode: Result<
3828        unsafe extern "C" fn(
3829            device: nvmlDevice_t,
3830            pHeterogeneousMode: *mut nvmlVgpuHeterogeneousMode_t,
3831        ) -> nvmlReturn_t,
3832        ::libloading::Error,
3833    >,
3834    pub nvmlDeviceSetVgpuHeterogeneousMode: Result<
3835        unsafe extern "C" fn(
3836            device: nvmlDevice_t,
3837            pHeterogeneousMode: *const nvmlVgpuHeterogeneousMode_t,
3838        ) -> nvmlReturn_t,
3839        ::libloading::Error,
3840    >,
3841    pub nvmlVgpuInstanceGetPlacementId: Result<
3842        unsafe extern "C" fn(
3843            vgpuInstance: nvmlVgpuInstance_t,
3844            pPlacement: *mut nvmlVgpuPlacementId_t,
3845        ) -> nvmlReturn_t,
3846        ::libloading::Error,
3847    >,
3848    pub nvmlDeviceGetVgpuTypeSupportedPlacements: Result<
3849        unsafe extern "C" fn(
3850            device: nvmlDevice_t,
3851            vgpuTypeId: nvmlVgpuTypeId_t,
3852            pPlacementList: *mut nvmlVgpuPlacementList_t,
3853        ) -> nvmlReturn_t,
3854        ::libloading::Error,
3855    >,
3856    pub nvmlDeviceGetVgpuTypeCreatablePlacements: Result<
3857        unsafe extern "C" fn(
3858            device: nvmlDevice_t,
3859            vgpuTypeId: nvmlVgpuTypeId_t,
3860            pPlacementList: *mut nvmlVgpuPlacementList_t,
3861        ) -> nvmlReturn_t,
3862        ::libloading::Error,
3863    >,
3864    pub nvmlVgpuTypeGetGspHeapSize: Result<
3865        unsafe extern "C" fn(
3866            vgpuTypeId: nvmlVgpuTypeId_t,
3867            gspHeapSize: *mut raw::c_ulonglong,
3868        ) -> nvmlReturn_t,
3869        ::libloading::Error,
3870    >,
3871    pub nvmlVgpuTypeGetFbReservation: Result<
3872        unsafe extern "C" fn(
3873            vgpuTypeId: nvmlVgpuTypeId_t,
3874            fbReservation: *mut raw::c_ulonglong,
3875        ) -> nvmlReturn_t,
3876        ::libloading::Error,
3877    >,
3878    pub nvmlVgpuInstanceGetRuntimeStateSize: Result<
3879        unsafe extern "C" fn(
3880            vgpuInstance: nvmlVgpuInstance_t,
3881            pState: *mut nvmlVgpuRuntimeState_t,
3882        ) -> nvmlReturn_t,
3883        ::libloading::Error,
3884    >,
3885    pub nvmlDeviceSetVgpuCapabilities: Result<
3886        unsafe extern "C" fn(
3887            device: nvmlDevice_t,
3888            capability: nvmlDeviceVgpuCapability_t,
3889            state: nvmlEnableState_t,
3890        ) -> nvmlReturn_t,
3891        ::libloading::Error,
3892    >,
3893    pub nvmlDeviceGetGridLicensableFeatures_v4: Result<
3894        unsafe extern "C" fn(
3895            device: nvmlDevice_t,
3896            pGridLicensableFeatures: *mut nvmlGridLicensableFeatures_t,
3897        ) -> nvmlReturn_t,
3898        ::libloading::Error,
3899    >,
3900    pub nvmlGetVgpuDriverCapabilities: Result<
3901        unsafe extern "C" fn(
3902            capability: nvmlVgpuDriverCapability_t,
3903            capResult: *mut raw::c_uint,
3904        ) -> nvmlReturn_t,
3905        ::libloading::Error,
3906    >,
3907    pub nvmlDeviceGetVgpuCapabilities: Result<
3908        unsafe extern "C" fn(
3909            device: nvmlDevice_t,
3910            capability: nvmlDeviceVgpuCapability_t,
3911            capResult: *mut raw::c_uint,
3912        ) -> nvmlReturn_t,
3913        ::libloading::Error,
3914    >,
3915    pub nvmlDeviceGetSupportedVgpus: Result<
3916        unsafe extern "C" fn(
3917            device: nvmlDevice_t,
3918            vgpuCount: *mut raw::c_uint,
3919            vgpuTypeIds: *mut nvmlVgpuTypeId_t,
3920        ) -> nvmlReturn_t,
3921        ::libloading::Error,
3922    >,
3923    pub nvmlDeviceGetCreatableVgpus: Result<
3924        unsafe extern "C" fn(
3925            device: nvmlDevice_t,
3926            vgpuCount: *mut raw::c_uint,
3927            vgpuTypeIds: *mut nvmlVgpuTypeId_t,
3928        ) -> nvmlReturn_t,
3929        ::libloading::Error,
3930    >,
3931    pub nvmlVgpuTypeGetClass: Result<
3932        unsafe extern "C" fn(
3933            vgpuTypeId: nvmlVgpuTypeId_t,
3934            vgpuTypeClass: *mut raw::c_char,
3935            size: *mut raw::c_uint,
3936        ) -> nvmlReturn_t,
3937        ::libloading::Error,
3938    >,
3939    pub nvmlVgpuTypeGetName: Result<
3940        unsafe extern "C" fn(
3941            vgpuTypeId: nvmlVgpuTypeId_t,
3942            vgpuTypeName: *mut raw::c_char,
3943            size: *mut raw::c_uint,
3944        ) -> nvmlReturn_t,
3945        ::libloading::Error,
3946    >,
3947    pub nvmlVgpuTypeGetGpuInstanceProfileId: Result<
3948        unsafe extern "C" fn(
3949            vgpuTypeId: nvmlVgpuTypeId_t,
3950            gpuInstanceProfileId: *mut raw::c_uint,
3951        ) -> nvmlReturn_t,
3952        ::libloading::Error,
3953    >,
3954    pub nvmlVgpuTypeGetDeviceID: Result<
3955        unsafe extern "C" fn(
3956            vgpuTypeId: nvmlVgpuTypeId_t,
3957            deviceID: *mut raw::c_ulonglong,
3958            subsystemID: *mut raw::c_ulonglong,
3959        ) -> nvmlReturn_t,
3960        ::libloading::Error,
3961    >,
3962    pub nvmlVgpuTypeGetFramebufferSize: Result<
3963        unsafe extern "C" fn(
3964            vgpuTypeId: nvmlVgpuTypeId_t,
3965            fbSize: *mut raw::c_ulonglong,
3966        ) -> nvmlReturn_t,
3967        ::libloading::Error,
3968    >,
3969    pub nvmlVgpuTypeGetNumDisplayHeads: Result<
3970        unsafe extern "C" fn(
3971            vgpuTypeId: nvmlVgpuTypeId_t,
3972            numDisplayHeads: *mut raw::c_uint,
3973        ) -> nvmlReturn_t,
3974        ::libloading::Error,
3975    >,
3976    pub nvmlVgpuTypeGetResolution: Result<
3977        unsafe extern "C" fn(
3978            vgpuTypeId: nvmlVgpuTypeId_t,
3979            displayIndex: raw::c_uint,
3980            xdim: *mut raw::c_uint,
3981            ydim: *mut raw::c_uint,
3982        ) -> nvmlReturn_t,
3983        ::libloading::Error,
3984    >,
3985    pub nvmlVgpuTypeGetLicense: Result<
3986        unsafe extern "C" fn(
3987            vgpuTypeId: nvmlVgpuTypeId_t,
3988            vgpuTypeLicenseString: *mut raw::c_char,
3989            size: raw::c_uint,
3990        ) -> nvmlReturn_t,
3991        ::libloading::Error,
3992    >,
3993    pub nvmlVgpuTypeGetFrameRateLimit: Result<
3994        unsafe extern "C" fn(
3995            vgpuTypeId: nvmlVgpuTypeId_t,
3996            frameRateLimit: *mut raw::c_uint,
3997        ) -> nvmlReturn_t,
3998        ::libloading::Error,
3999    >,
4000    pub nvmlVgpuTypeGetMaxInstances: Result<
4001        unsafe extern "C" fn(
4002            device: nvmlDevice_t,
4003            vgpuTypeId: nvmlVgpuTypeId_t,
4004            vgpuInstanceCount: *mut raw::c_uint,
4005        ) -> nvmlReturn_t,
4006        ::libloading::Error,
4007    >,
4008    pub nvmlVgpuTypeGetMaxInstancesPerVm: Result<
4009        unsafe extern "C" fn(
4010            vgpuTypeId: nvmlVgpuTypeId_t,
4011            vgpuInstanceCountPerVm: *mut raw::c_uint,
4012        ) -> nvmlReturn_t,
4013        ::libloading::Error,
4014    >,
4015    pub nvmlVgpuTypeGetBAR1Info: Result<
4016        unsafe extern "C" fn(
4017            vgpuTypeId: nvmlVgpuTypeId_t,
4018            bar1Info: *mut nvmlVgpuTypeBar1Info_t,
4019        ) -> nvmlReturn_t,
4020        ::libloading::Error,
4021    >,
4022    pub nvmlDeviceGetActiveVgpus: Result<
4023        unsafe extern "C" fn(
4024            device: nvmlDevice_t,
4025            vgpuCount: *mut raw::c_uint,
4026            vgpuInstances: *mut nvmlVgpuInstance_t,
4027        ) -> nvmlReturn_t,
4028        ::libloading::Error,
4029    >,
4030    pub nvmlVgpuInstanceGetVmID: Result<
4031        unsafe extern "C" fn(
4032            vgpuInstance: nvmlVgpuInstance_t,
4033            vmId: *mut raw::c_char,
4034            size: raw::c_uint,
4035            vmIdType: *mut nvmlVgpuVmIdType_t,
4036        ) -> nvmlReturn_t,
4037        ::libloading::Error,
4038    >,
4039    pub nvmlVgpuInstanceGetUUID: Result<
4040        unsafe extern "C" fn(
4041            vgpuInstance: nvmlVgpuInstance_t,
4042            uuid: *mut raw::c_char,
4043            size: raw::c_uint,
4044        ) -> nvmlReturn_t,
4045        ::libloading::Error,
4046    >,
4047    pub nvmlVgpuInstanceGetVmDriverVersion: Result<
4048        unsafe extern "C" fn(
4049            vgpuInstance: nvmlVgpuInstance_t,
4050            version: *mut raw::c_char,
4051            length: raw::c_uint,
4052        ) -> nvmlReturn_t,
4053        ::libloading::Error,
4054    >,
4055    pub nvmlVgpuInstanceGetFbUsage: Result<
4056        unsafe extern "C" fn(
4057            vgpuInstance: nvmlVgpuInstance_t,
4058            fbUsage: *mut raw::c_ulonglong,
4059        ) -> nvmlReturn_t,
4060        ::libloading::Error,
4061    >,
4062    pub nvmlVgpuInstanceGetLicenseStatus: Result<
4063        unsafe extern "C" fn(
4064            vgpuInstance: nvmlVgpuInstance_t,
4065            licensed: *mut raw::c_uint,
4066        ) -> nvmlReturn_t,
4067        ::libloading::Error,
4068    >,
4069    pub nvmlVgpuInstanceGetType: Result<
4070        unsafe extern "C" fn(
4071            vgpuInstance: nvmlVgpuInstance_t,
4072            vgpuTypeId: *mut nvmlVgpuTypeId_t,
4073        ) -> nvmlReturn_t,
4074        ::libloading::Error,
4075    >,
4076    pub nvmlVgpuInstanceGetFrameRateLimit: Result<
4077        unsafe extern "C" fn(
4078            vgpuInstance: nvmlVgpuInstance_t,
4079            frameRateLimit: *mut raw::c_uint,
4080        ) -> nvmlReturn_t,
4081        ::libloading::Error,
4082    >,
4083    pub nvmlVgpuInstanceGetEccMode: Result<
4084        unsafe extern "C" fn(
4085            vgpuInstance: nvmlVgpuInstance_t,
4086            eccMode: *mut nvmlEnableState_t,
4087        ) -> nvmlReturn_t,
4088        ::libloading::Error,
4089    >,
4090    pub nvmlVgpuInstanceGetEncoderCapacity: Result<
4091        unsafe extern "C" fn(
4092            vgpuInstance: nvmlVgpuInstance_t,
4093            encoderCapacity: *mut raw::c_uint,
4094        ) -> nvmlReturn_t,
4095        ::libloading::Error,
4096    >,
4097    pub nvmlVgpuInstanceSetEncoderCapacity: Result<
4098        unsafe extern "C" fn(
4099            vgpuInstance: nvmlVgpuInstance_t,
4100            encoderCapacity: raw::c_uint,
4101        ) -> nvmlReturn_t,
4102        ::libloading::Error,
4103    >,
4104    pub nvmlVgpuInstanceGetEncoderStats: Result<
4105        unsafe extern "C" fn(
4106            vgpuInstance: nvmlVgpuInstance_t,
4107            sessionCount: *mut raw::c_uint,
4108            averageFps: *mut raw::c_uint,
4109            averageLatency: *mut raw::c_uint,
4110        ) -> nvmlReturn_t,
4111        ::libloading::Error,
4112    >,
4113    pub nvmlVgpuInstanceGetEncoderSessions: Result<
4114        unsafe extern "C" fn(
4115            vgpuInstance: nvmlVgpuInstance_t,
4116            sessionCount: *mut raw::c_uint,
4117            sessionInfo: *mut nvmlEncoderSessionInfo_t,
4118        ) -> nvmlReturn_t,
4119        ::libloading::Error,
4120    >,
4121    pub nvmlVgpuInstanceGetFBCStats: Result<
4122        unsafe extern "C" fn(
4123            vgpuInstance: nvmlVgpuInstance_t,
4124            fbcStats: *mut nvmlFBCStats_t,
4125        ) -> nvmlReturn_t,
4126        ::libloading::Error,
4127    >,
4128    pub nvmlVgpuInstanceGetFBCSessions: Result<
4129        unsafe extern "C" fn(
4130            vgpuInstance: nvmlVgpuInstance_t,
4131            sessionCount: *mut raw::c_uint,
4132            sessionInfo: *mut nvmlFBCSessionInfo_t,
4133        ) -> nvmlReturn_t,
4134        ::libloading::Error,
4135    >,
4136    pub nvmlVgpuInstanceGetGpuInstanceId: Result<
4137        unsafe extern "C" fn(
4138            vgpuInstance: nvmlVgpuInstance_t,
4139            gpuInstanceId: *mut raw::c_uint,
4140        ) -> nvmlReturn_t,
4141        ::libloading::Error,
4142    >,
4143    pub nvmlVgpuInstanceGetGpuPciId: Result<
4144        unsafe extern "C" fn(
4145            vgpuInstance: nvmlVgpuInstance_t,
4146            vgpuPciId: *mut raw::c_char,
4147            length: *mut raw::c_uint,
4148        ) -> nvmlReturn_t,
4149        ::libloading::Error,
4150    >,
4151    pub nvmlVgpuTypeGetCapabilities: Result<
4152        unsafe extern "C" fn(
4153            vgpuTypeId: nvmlVgpuTypeId_t,
4154            capability: nvmlVgpuCapability_t,
4155            capResult: *mut raw::c_uint,
4156        ) -> nvmlReturn_t,
4157        ::libloading::Error,
4158    >,
4159    pub nvmlVgpuInstanceGetMdevUUID: Result<
4160        unsafe extern "C" fn(
4161            vgpuInstance: nvmlVgpuInstance_t,
4162            mdevUuid: *mut raw::c_char,
4163            size: raw::c_uint,
4164        ) -> nvmlReturn_t,
4165        ::libloading::Error,
4166    >,
4167    pub nvmlVgpuInstanceGetMetadata: Result<
4168        unsafe extern "C" fn(
4169            vgpuInstance: nvmlVgpuInstance_t,
4170            vgpuMetadata: *mut nvmlVgpuMetadata_t,
4171            bufferSize: *mut raw::c_uint,
4172        ) -> nvmlReturn_t,
4173        ::libloading::Error,
4174    >,
4175    pub nvmlDeviceGetVgpuMetadata: Result<
4176        unsafe extern "C" fn(
4177            device: nvmlDevice_t,
4178            pgpuMetadata: *mut nvmlVgpuPgpuMetadata_t,
4179            bufferSize: *mut raw::c_uint,
4180        ) -> nvmlReturn_t,
4181        ::libloading::Error,
4182    >,
4183    pub nvmlGetVgpuCompatibility: Result<
4184        unsafe extern "C" fn(
4185            vgpuMetadata: *mut nvmlVgpuMetadata_t,
4186            pgpuMetadata: *mut nvmlVgpuPgpuMetadata_t,
4187            compatibilityInfo: *mut nvmlVgpuPgpuCompatibility_t,
4188        ) -> nvmlReturn_t,
4189        ::libloading::Error,
4190    >,
4191    pub nvmlDeviceGetPgpuMetadataString: Result<
4192        unsafe extern "C" fn(
4193            device: nvmlDevice_t,
4194            pgpuMetadata: *mut raw::c_char,
4195            bufferSize: *mut raw::c_uint,
4196        ) -> nvmlReturn_t,
4197        ::libloading::Error,
4198    >,
4199    pub nvmlDeviceGetVgpuSchedulerLog: Result<
4200        unsafe extern "C" fn(
4201            device: nvmlDevice_t,
4202            pSchedulerLog: *mut nvmlVgpuSchedulerLog_t,
4203        ) -> nvmlReturn_t,
4204        ::libloading::Error,
4205    >,
4206    pub nvmlDeviceGetVgpuSchedulerState: Result<
4207        unsafe extern "C" fn(
4208            device: nvmlDevice_t,
4209            pSchedulerState: *mut nvmlVgpuSchedulerGetState_t,
4210        ) -> nvmlReturn_t,
4211        ::libloading::Error,
4212    >,
4213    pub nvmlDeviceGetVgpuSchedulerCapabilities: Result<
4214        unsafe extern "C" fn(
4215            device: nvmlDevice_t,
4216            pCapabilities: *mut nvmlVgpuSchedulerCapabilities_t,
4217        ) -> nvmlReturn_t,
4218        ::libloading::Error,
4219    >,
4220    pub nvmlDeviceSetVgpuSchedulerState: Result<
4221        unsafe extern "C" fn(
4222            device: nvmlDevice_t,
4223            pSchedulerState: *mut nvmlVgpuSchedulerSetState_t,
4224        ) -> nvmlReturn_t,
4225        ::libloading::Error,
4226    >,
4227    pub nvmlGetVgpuVersion: Result<
4228        unsafe extern "C" fn(
4229            supported: *mut nvmlVgpuVersion_t,
4230            current: *mut nvmlVgpuVersion_t,
4231        ) -> nvmlReturn_t,
4232        ::libloading::Error,
4233    >,
4234    pub nvmlSetVgpuVersion: Result<
4235        unsafe extern "C" fn(vgpuVersion: *mut nvmlVgpuVersion_t) -> nvmlReturn_t,
4236        ::libloading::Error,
4237    >,
4238    pub nvmlDeviceGetVgpuUtilization: Result<
4239        unsafe extern "C" fn(
4240            device: nvmlDevice_t,
4241            lastSeenTimeStamp: raw::c_ulonglong,
4242            sampleValType: *mut nvmlValueType_t,
4243            vgpuInstanceSamplesCount: *mut raw::c_uint,
4244            utilizationSamples: *mut nvmlVgpuInstanceUtilizationSample_t,
4245        ) -> nvmlReturn_t,
4246        ::libloading::Error,
4247    >,
4248    pub nvmlDeviceGetVgpuInstancesUtilizationInfo: Result<
4249        unsafe extern "C" fn(
4250            device: nvmlDevice_t,
4251            vgpuUtilInfo: *mut nvmlVgpuInstancesUtilizationInfo_t,
4252        ) -> nvmlReturn_t,
4253        ::libloading::Error,
4254    >,
4255    pub nvmlDeviceGetVgpuProcessUtilization: Result<
4256        unsafe extern "C" fn(
4257            device: nvmlDevice_t,
4258            lastSeenTimeStamp: raw::c_ulonglong,
4259            vgpuProcessSamplesCount: *mut raw::c_uint,
4260            utilizationSamples: *mut nvmlVgpuProcessUtilizationSample_t,
4261        ) -> nvmlReturn_t,
4262        ::libloading::Error,
4263    >,
4264    pub nvmlDeviceGetVgpuProcessesUtilizationInfo: Result<
4265        unsafe extern "C" fn(
4266            device: nvmlDevice_t,
4267            vgpuProcUtilInfo: *mut nvmlVgpuProcessesUtilizationInfo_t,
4268        ) -> nvmlReturn_t,
4269        ::libloading::Error,
4270    >,
4271    pub nvmlVgpuInstanceGetAccountingMode: Result<
4272        unsafe extern "C" fn(
4273            vgpuInstance: nvmlVgpuInstance_t,
4274            mode: *mut nvmlEnableState_t,
4275        ) -> nvmlReturn_t,
4276        ::libloading::Error,
4277    >,
4278    pub nvmlVgpuInstanceGetAccountingPids: Result<
4279        unsafe extern "C" fn(
4280            vgpuInstance: nvmlVgpuInstance_t,
4281            count: *mut raw::c_uint,
4282            pids: *mut raw::c_uint,
4283        ) -> nvmlReturn_t,
4284        ::libloading::Error,
4285    >,
4286    pub nvmlVgpuInstanceGetAccountingStats: Result<
4287        unsafe extern "C" fn(
4288            vgpuInstance: nvmlVgpuInstance_t,
4289            pid: raw::c_uint,
4290            stats: *mut nvmlAccountingStats_t,
4291        ) -> nvmlReturn_t,
4292        ::libloading::Error,
4293    >,
4294    pub nvmlVgpuInstanceClearAccountingPids: Result<
4295        unsafe extern "C" fn(vgpuInstance: nvmlVgpuInstance_t) -> nvmlReturn_t,
4296        ::libloading::Error,
4297    >,
4298    pub nvmlVgpuInstanceGetLicenseInfo_v2: Result<
4299        unsafe extern "C" fn(
4300            vgpuInstance: nvmlVgpuInstance_t,
4301            licenseInfo: *mut nvmlVgpuLicenseInfo_t,
4302        ) -> nvmlReturn_t,
4303        ::libloading::Error,
4304    >,
4305    pub nvmlGetExcludedDeviceCount: Result<
4306        unsafe extern "C" fn(deviceCount: *mut raw::c_uint) -> nvmlReturn_t,
4307        ::libloading::Error,
4308    >,
4309    pub nvmlGetExcludedDeviceInfoByIndex: Result<
4310        unsafe extern "C" fn(
4311            index: raw::c_uint,
4312            info: *mut nvmlExcludedDeviceInfo_t,
4313        ) -> nvmlReturn_t,
4314        ::libloading::Error,
4315    >,
4316    pub nvmlDeviceSetMigMode: Result<
4317        unsafe extern "C" fn(
4318            device: nvmlDevice_t,
4319            mode: raw::c_uint,
4320            activationStatus: *mut nvmlReturn_t,
4321        ) -> nvmlReturn_t,
4322        ::libloading::Error,
4323    >,
4324    pub nvmlDeviceGetMigMode: Result<
4325        unsafe extern "C" fn(
4326            device: nvmlDevice_t,
4327            currentMode: *mut raw::c_uint,
4328            pendingMode: *mut raw::c_uint,
4329        ) -> nvmlReturn_t,
4330        ::libloading::Error,
4331    >,
4332    pub nvmlDeviceGetGpuInstanceProfileInfo: Result<
4333        unsafe extern "C" fn(
4334            device: nvmlDevice_t,
4335            profile: raw::c_uint,
4336            info: *mut nvmlGpuInstanceProfileInfo_t,
4337        ) -> nvmlReturn_t,
4338        ::libloading::Error,
4339    >,
4340    pub nvmlDeviceGetGpuInstanceProfileInfoV: Result<
4341        unsafe extern "C" fn(
4342            device: nvmlDevice_t,
4343            profile: raw::c_uint,
4344            info: *mut nvmlGpuInstanceProfileInfo_v2_t,
4345        ) -> nvmlReturn_t,
4346        ::libloading::Error,
4347    >,
4348    pub nvmlDeviceGetGpuInstancePossiblePlacements_v2: Result<
4349        unsafe extern "C" fn(
4350            device: nvmlDevice_t,
4351            profileId: raw::c_uint,
4352            placements: *mut nvmlGpuInstancePlacement_t,
4353            count: *mut raw::c_uint,
4354        ) -> nvmlReturn_t,
4355        ::libloading::Error,
4356    >,
4357    pub nvmlDeviceGetGpuInstanceRemainingCapacity: Result<
4358        unsafe extern "C" fn(
4359            device: nvmlDevice_t,
4360            profileId: raw::c_uint,
4361            count: *mut raw::c_uint,
4362        ) -> nvmlReturn_t,
4363        ::libloading::Error,
4364    >,
4365    pub nvmlDeviceCreateGpuInstance: Result<
4366        unsafe extern "C" fn(
4367            device: nvmlDevice_t,
4368            profileId: raw::c_uint,
4369            gpuInstance: *mut nvmlGpuInstance_t,
4370        ) -> nvmlReturn_t,
4371        ::libloading::Error,
4372    >,
4373    pub nvmlDeviceCreateGpuInstanceWithPlacement: Result<
4374        unsafe extern "C" fn(
4375            device: nvmlDevice_t,
4376            profileId: raw::c_uint,
4377            placement: *const nvmlGpuInstancePlacement_t,
4378            gpuInstance: *mut nvmlGpuInstance_t,
4379        ) -> nvmlReturn_t,
4380        ::libloading::Error,
4381    >,
4382    pub nvmlGpuInstanceDestroy: Result<
4383        unsafe extern "C" fn(gpuInstance: nvmlGpuInstance_t) -> nvmlReturn_t,
4384        ::libloading::Error,
4385    >,
4386    pub nvmlDeviceGetGpuInstances: Result<
4387        unsafe extern "C" fn(
4388            device: nvmlDevice_t,
4389            profileId: raw::c_uint,
4390            gpuInstances: *mut nvmlGpuInstance_t,
4391            count: *mut raw::c_uint,
4392        ) -> nvmlReturn_t,
4393        ::libloading::Error,
4394    >,
4395    pub nvmlDeviceGetGpuInstanceById: Result<
4396        unsafe extern "C" fn(
4397            device: nvmlDevice_t,
4398            id: raw::c_uint,
4399            gpuInstance: *mut nvmlGpuInstance_t,
4400        ) -> nvmlReturn_t,
4401        ::libloading::Error,
4402    >,
4403    pub nvmlGpuInstanceGetInfo: Result<
4404        unsafe extern "C" fn(
4405            gpuInstance: nvmlGpuInstance_t,
4406            info: *mut nvmlGpuInstanceInfo_t,
4407        ) -> nvmlReturn_t,
4408        ::libloading::Error,
4409    >,
4410    pub nvmlGpuInstanceGetComputeInstanceProfileInfo: Result<
4411        unsafe extern "C" fn(
4412            gpuInstance: nvmlGpuInstance_t,
4413            profile: raw::c_uint,
4414            engProfile: raw::c_uint,
4415            info: *mut nvmlComputeInstanceProfileInfo_t,
4416        ) -> nvmlReturn_t,
4417        ::libloading::Error,
4418    >,
4419    pub nvmlGpuInstanceGetComputeInstanceProfileInfoV: Result<
4420        unsafe extern "C" fn(
4421            gpuInstance: nvmlGpuInstance_t,
4422            profile: raw::c_uint,
4423            engProfile: raw::c_uint,
4424            info: *mut nvmlComputeInstanceProfileInfo_v2_t,
4425        ) -> nvmlReturn_t,
4426        ::libloading::Error,
4427    >,
4428    pub nvmlGpuInstanceGetComputeInstanceRemainingCapacity: Result<
4429        unsafe extern "C" fn(
4430            gpuInstance: nvmlGpuInstance_t,
4431            profileId: raw::c_uint,
4432            count: *mut raw::c_uint,
4433        ) -> nvmlReturn_t,
4434        ::libloading::Error,
4435    >,
4436    pub nvmlGpuInstanceGetComputeInstancePossiblePlacements: Result<
4437        unsafe extern "C" fn(
4438            gpuInstance: nvmlGpuInstance_t,
4439            profileId: raw::c_uint,
4440            placements: *mut nvmlComputeInstancePlacement_t,
4441            count: *mut raw::c_uint,
4442        ) -> nvmlReturn_t,
4443        ::libloading::Error,
4444    >,
4445    pub nvmlGpuInstanceCreateComputeInstance: Result<
4446        unsafe extern "C" fn(
4447            gpuInstance: nvmlGpuInstance_t,
4448            profileId: raw::c_uint,
4449            computeInstance: *mut nvmlComputeInstance_t,
4450        ) -> nvmlReturn_t,
4451        ::libloading::Error,
4452    >,
4453    pub nvmlGpuInstanceCreateComputeInstanceWithPlacement: Result<
4454        unsafe extern "C" fn(
4455            gpuInstance: nvmlGpuInstance_t,
4456            profileId: raw::c_uint,
4457            placement: *const nvmlComputeInstancePlacement_t,
4458            computeInstance: *mut nvmlComputeInstance_t,
4459        ) -> nvmlReturn_t,
4460        ::libloading::Error,
4461    >,
4462    pub nvmlComputeInstanceDestroy: Result<
4463        unsafe extern "C" fn(computeInstance: nvmlComputeInstance_t) -> nvmlReturn_t,
4464        ::libloading::Error,
4465    >,
4466    pub nvmlGpuInstanceGetComputeInstances: Result<
4467        unsafe extern "C" fn(
4468            gpuInstance: nvmlGpuInstance_t,
4469            profileId: raw::c_uint,
4470            computeInstances: *mut nvmlComputeInstance_t,
4471            count: *mut raw::c_uint,
4472        ) -> nvmlReturn_t,
4473        ::libloading::Error,
4474    >,
4475    pub nvmlGpuInstanceGetComputeInstanceById: Result<
4476        unsafe extern "C" fn(
4477            gpuInstance: nvmlGpuInstance_t,
4478            id: raw::c_uint,
4479            computeInstance: *mut nvmlComputeInstance_t,
4480        ) -> nvmlReturn_t,
4481        ::libloading::Error,
4482    >,
4483    pub nvmlComputeInstanceGetInfo_v2: Result<
4484        unsafe extern "C" fn(
4485            computeInstance: nvmlComputeInstance_t,
4486            info: *mut nvmlComputeInstanceInfo_t,
4487        ) -> nvmlReturn_t,
4488        ::libloading::Error,
4489    >,
4490    pub nvmlDeviceIsMigDeviceHandle: Result<
4491        unsafe extern "C" fn(device: nvmlDevice_t, isMigDevice: *mut raw::c_uint) -> nvmlReturn_t,
4492        ::libloading::Error,
4493    >,
4494    pub nvmlDeviceGetGpuInstanceId: Result<
4495        unsafe extern "C" fn(device: nvmlDevice_t, id: *mut raw::c_uint) -> nvmlReturn_t,
4496        ::libloading::Error,
4497    >,
4498    pub nvmlDeviceGetComputeInstanceId: Result<
4499        unsafe extern "C" fn(device: nvmlDevice_t, id: *mut raw::c_uint) -> nvmlReturn_t,
4500        ::libloading::Error,
4501    >,
4502    pub nvmlDeviceGetMaxMigDeviceCount: Result<
4503        unsafe extern "C" fn(device: nvmlDevice_t, count: *mut raw::c_uint) -> nvmlReturn_t,
4504        ::libloading::Error,
4505    >,
4506    pub nvmlDeviceGetMigDeviceHandleByIndex: Result<
4507        unsafe extern "C" fn(
4508            device: nvmlDevice_t,
4509            index: raw::c_uint,
4510            migDevice: *mut nvmlDevice_t,
4511        ) -> nvmlReturn_t,
4512        ::libloading::Error,
4513    >,
4514    pub nvmlDeviceGetDeviceHandleFromMigDeviceHandle: Result<
4515        unsafe extern "C" fn(migDevice: nvmlDevice_t, device: *mut nvmlDevice_t) -> nvmlReturn_t,
4516        ::libloading::Error,
4517    >,
4518    pub nvmlGpmMetricsGet: Result<
4519        unsafe extern "C" fn(metricsGet: *mut nvmlGpmMetricsGet_t) -> nvmlReturn_t,
4520        ::libloading::Error,
4521    >,
4522    pub nvmlGpmSampleFree: Result<
4523        unsafe extern "C" fn(gpmSample: nvmlGpmSample_t) -> nvmlReturn_t,
4524        ::libloading::Error,
4525    >,
4526    pub nvmlGpmSampleAlloc: Result<
4527        unsafe extern "C" fn(gpmSample: *mut nvmlGpmSample_t) -> nvmlReturn_t,
4528        ::libloading::Error,
4529    >,
4530    pub nvmlGpmSampleGet: Result<
4531        unsafe extern "C" fn(device: nvmlDevice_t, gpmSample: nvmlGpmSample_t) -> nvmlReturn_t,
4532        ::libloading::Error,
4533    >,
4534    pub nvmlGpmMigSampleGet: Result<
4535        unsafe extern "C" fn(
4536            device: nvmlDevice_t,
4537            gpuInstanceId: raw::c_uint,
4538            gpmSample: nvmlGpmSample_t,
4539        ) -> nvmlReturn_t,
4540        ::libloading::Error,
4541    >,
4542    pub nvmlGpmQueryDeviceSupport: Result<
4543        unsafe extern "C" fn(
4544            device: nvmlDevice_t,
4545            gpmSupport: *mut nvmlGpmSupport_t,
4546        ) -> nvmlReturn_t,
4547        ::libloading::Error,
4548    >,
4549    pub nvmlGpmQueryIfStreamingEnabled: Result<
4550        unsafe extern "C" fn(device: nvmlDevice_t, state: *mut raw::c_uint) -> nvmlReturn_t,
4551        ::libloading::Error,
4552    >,
4553    pub nvmlGpmSetStreamingEnabled: Result<
4554        unsafe extern "C" fn(device: nvmlDevice_t, state: raw::c_uint) -> nvmlReturn_t,
4555        ::libloading::Error,
4556    >,
4557    pub nvmlDeviceGetCapabilities: Result<
4558        unsafe extern "C" fn(
4559            device: nvmlDevice_t,
4560            caps: *mut nvmlDeviceCapabilities_t,
4561        ) -> nvmlReturn_t,
4562        ::libloading::Error,
4563    >,
4564    pub nvmlDeviceWorkloadPowerProfileGetProfilesInfo: Result<
4565        unsafe extern "C" fn(
4566            device: nvmlDevice_t,
4567            profilesInfo: *mut nvmlWorkloadPowerProfileProfilesInfo_t,
4568        ) -> nvmlReturn_t,
4569        ::libloading::Error,
4570    >,
4571    pub nvmlDeviceWorkloadPowerProfileGetCurrentProfiles: Result<
4572        unsafe extern "C" fn(
4573            device: nvmlDevice_t,
4574            currentProfiles: *mut nvmlWorkloadPowerProfileCurrentProfiles_t,
4575        ) -> nvmlReturn_t,
4576        ::libloading::Error,
4577    >,
4578    pub nvmlDeviceWorkloadPowerProfileSetRequestedProfiles: Result<
4579        unsafe extern "C" fn(
4580            device: nvmlDevice_t,
4581            requestedProfiles: *mut nvmlWorkloadPowerProfileRequestedProfiles_t,
4582        ) -> nvmlReturn_t,
4583        ::libloading::Error,
4584    >,
4585    pub nvmlDeviceWorkloadPowerProfileClearRequestedProfiles: Result<
4586        unsafe extern "C" fn(
4587            device: nvmlDevice_t,
4588            requestedProfiles: *mut nvmlWorkloadPowerProfileRequestedProfiles_t,
4589        ) -> nvmlReturn_t,
4590        ::libloading::Error,
4591    >,
4592    pub nvmlDevicePowerSmoothingActivatePresetProfile: Result<
4593        unsafe extern "C" fn(
4594            device: nvmlDevice_t,
4595            profile: *mut nvmlPowerSmoothingProfile_t,
4596        ) -> nvmlReturn_t,
4597        ::libloading::Error,
4598    >,
4599    pub nvmlDevicePowerSmoothingUpdatePresetProfileParam: Result<
4600        unsafe extern "C" fn(
4601            device: nvmlDevice_t,
4602            profile: *mut nvmlPowerSmoothingProfile_t,
4603        ) -> nvmlReturn_t,
4604        ::libloading::Error,
4605    >,
4606    pub nvmlDevicePowerSmoothingSetState: Result<
4607        unsafe extern "C" fn(
4608            device: nvmlDevice_t,
4609            state: *mut nvmlPowerSmoothingState_t,
4610        ) -> nvmlReturn_t,
4611        ::libloading::Error,
4612    >,
4613    #[cfg(feature = "legacy-functions")]
4614    pub nvmlInit: Result<unsafe extern "C" fn() -> nvmlReturn_t, ::libloading::Error>,
4615    #[cfg(feature = "legacy-functions")]
4616    pub nvmlDeviceGetCount: Result<
4617        unsafe extern "C" fn(deviceCount: *mut raw::c_uint) -> nvmlReturn_t,
4618        ::libloading::Error,
4619    >,
4620    #[cfg(feature = "legacy-functions")]
4621    pub nvmlDeviceGetHandleByIndex: Result<
4622        unsafe extern "C" fn(index: raw::c_uint, device: *mut nvmlDevice_t) -> nvmlReturn_t,
4623        ::libloading::Error,
4624    >,
4625    #[cfg(feature = "legacy-functions")]
4626    pub nvmlDeviceGetHandleByPciBusId: Result<
4627        unsafe extern "C" fn(
4628            pciBusId: *const raw::c_char,
4629            device: *mut nvmlDevice_t,
4630        ) -> nvmlReturn_t,
4631        ::libloading::Error,
4632    >,
4633    #[cfg(feature = "legacy-functions")]
4634    pub nvmlDeviceGetPciInfo: Result<
4635        unsafe extern "C" fn(device: nvmlDevice_t, pci: *mut nvmlPciInfo_t) -> nvmlReturn_t,
4636        ::libloading::Error,
4637    >,
4638    #[cfg(feature = "legacy-functions")]
4639    pub nvmlDeviceGetPciInfo_v2: Result<
4640        unsafe extern "C" fn(device: nvmlDevice_t, pci: *mut nvmlPciInfo_t) -> nvmlReturn_t,
4641        ::libloading::Error,
4642    >,
4643    #[cfg(feature = "legacy-functions")]
4644    pub nvmlDeviceGetNvLinkRemotePciInfo: Result<
4645        unsafe extern "C" fn(
4646            device: nvmlDevice_t,
4647            link: raw::c_uint,
4648            pci: *mut nvmlPciInfo_t,
4649        ) -> nvmlReturn_t,
4650        ::libloading::Error,
4651    >,
4652    #[cfg(feature = "legacy-functions")]
4653    pub nvmlDeviceGetGridLicensableFeatures: Result<
4654        unsafe extern "C" fn(
4655            device: nvmlDevice_t,
4656            pGridLicensableFeatures: *mut nvmlGridLicensableFeatures_t,
4657        ) -> nvmlReturn_t,
4658        ::libloading::Error,
4659    >,
4660    #[cfg(feature = "legacy-functions")]
4661    pub nvmlDeviceGetGridLicensableFeatures_v2: Result<
4662        unsafe extern "C" fn(
4663            device: nvmlDevice_t,
4664            pGridLicensableFeatures: *mut nvmlGridLicensableFeatures_t,
4665        ) -> nvmlReturn_t,
4666        ::libloading::Error,
4667    >,
4668    #[cfg(feature = "legacy-functions")]
4669    pub nvmlDeviceGetGridLicensableFeatures_v3: Result<
4670        unsafe extern "C" fn(
4671            device: nvmlDevice_t,
4672            pGridLicensableFeatures: *mut nvmlGridLicensableFeatures_t,
4673        ) -> nvmlReturn_t,
4674        ::libloading::Error,
4675    >,
4676    #[cfg(feature = "legacy-functions")]
4677    pub nvmlDeviceRemoveGpu: Result<
4678        unsafe extern "C" fn(pciInfo: *mut nvmlPciInfo_t) -> nvmlReturn_t,
4679        ::libloading::Error,
4680    >,
4681    #[cfg(feature = "legacy-functions")]
4682    pub nvmlEventSetWait: Result<
4683        unsafe extern "C" fn(
4684            set: nvmlEventSet_t,
4685            data: *mut nvmlEventData_t,
4686            timeoutms: raw::c_uint,
4687        ) -> nvmlReturn_t,
4688        ::libloading::Error,
4689    >,
4690    #[cfg(feature = "legacy-functions")]
4691    pub nvmlDeviceGetAttributes: Result<
4692        unsafe extern "C" fn(
4693            device: nvmlDevice_t,
4694            attributes: *mut nvmlDeviceAttributes_t,
4695        ) -> nvmlReturn_t,
4696        ::libloading::Error,
4697    >,
4698    #[cfg(feature = "legacy-functions")]
4699    pub nvmlComputeInstanceGetInfo: Result<
4700        unsafe extern "C" fn(
4701            computeInstance: nvmlComputeInstance_t,
4702            info: *mut nvmlComputeInstanceInfo_t,
4703        ) -> nvmlReturn_t,
4704        ::libloading::Error,
4705    >,
4706    #[cfg(feature = "legacy-functions")]
4707    pub nvmlDeviceGetComputeRunningProcesses: Result<
4708        unsafe extern "C" fn(
4709            device: nvmlDevice_t,
4710            infoCount: *mut raw::c_uint,
4711            infos: *mut nvmlProcessInfo_v1_t,
4712        ) -> nvmlReturn_t,
4713        ::libloading::Error,
4714    >,
4715    #[cfg(feature = "legacy-functions")]
4716    pub nvmlDeviceGetComputeRunningProcesses_v2: Result<
4717        unsafe extern "C" fn(
4718            device: nvmlDevice_t,
4719            infoCount: *mut raw::c_uint,
4720            infos: *mut nvmlProcessInfo_v2_t,
4721        ) -> nvmlReturn_t,
4722        ::libloading::Error,
4723    >,
4724    #[cfg(feature = "legacy-functions")]
4725    pub nvmlDeviceGetGraphicsRunningProcesses: Result<
4726        unsafe extern "C" fn(
4727            device: nvmlDevice_t,
4728            infoCount: *mut raw::c_uint,
4729            infos: *mut nvmlProcessInfo_v1_t,
4730        ) -> nvmlReturn_t,
4731        ::libloading::Error,
4732    >,
4733    #[cfg(feature = "legacy-functions")]
4734    pub nvmlDeviceGetGraphicsRunningProcesses_v2: Result<
4735        unsafe extern "C" fn(
4736            device: nvmlDevice_t,
4737            infoCount: *mut raw::c_uint,
4738            infos: *mut nvmlProcessInfo_v2_t,
4739        ) -> nvmlReturn_t,
4740        ::libloading::Error,
4741    >,
4742    #[cfg(feature = "legacy-functions")]
4743    pub nvmlDeviceGetMPSComputeRunningProcesses: Result<
4744        unsafe extern "C" fn(
4745            device: nvmlDevice_t,
4746            infoCount: *mut raw::c_uint,
4747            infos: *mut nvmlProcessInfo_v1_t,
4748        ) -> nvmlReturn_t,
4749        ::libloading::Error,
4750    >,
4751    #[cfg(feature = "legacy-functions")]
4752    pub nvmlDeviceGetMPSComputeRunningProcesses_v2: Result<
4753        unsafe extern "C" fn(
4754            device: nvmlDevice_t,
4755            infoCount: *mut raw::c_uint,
4756            infos: *mut nvmlProcessInfo_v2_t,
4757        ) -> nvmlReturn_t,
4758        ::libloading::Error,
4759    >,
4760    #[cfg(feature = "legacy-functions")]
4761    pub nvmlDeviceGetGpuInstancePossiblePlacements: Result<
4762        unsafe extern "C" fn(
4763            device: nvmlDevice_t,
4764            profileId: raw::c_uint,
4765            placements: *mut nvmlGpuInstancePlacement_t,
4766            count: *mut raw::c_uint,
4767        ) -> nvmlReturn_t,
4768        ::libloading::Error,
4769    >,
4770    #[cfg(feature = "legacy-functions")]
4771    pub nvmlVgpuInstanceGetLicenseInfo: Result<
4772        unsafe extern "C" fn(
4773            vgpuInstance: nvmlVgpuInstance_t,
4774            licenseInfo: *mut nvmlVgpuLicenseInfo_t,
4775        ) -> nvmlReturn_t,
4776        ::libloading::Error,
4777    >,
4778    pub nvmlDeviceGetDriverModel: Result<
4779        unsafe extern "C" fn(
4780            device: nvmlDevice_t,
4781            current: *mut nvmlDriverModel_t,
4782            pending: *mut nvmlDriverModel_t,
4783        ) -> nvmlReturn_t,
4784        ::libloading::Error,
4785    >,
4786}
4787impl NvmlLib {
4788    pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
4789    where
4790        P: AsRef<::std::ffi::OsStr>,
4791    {
4792        let library = ::libloading::Library::new(path)?;
4793        Self::from_library(library)
4794    }
4795    pub unsafe fn from_library<L>(library: L) -> Result<Self, ::libloading::Error>
4796    where
4797        L: Into<::libloading::Library>,
4798    {
4799        let __library = library.into();
4800        let nvmlInit_v2 = __library.get(b"nvmlInit_v2\0").map(|sym| *sym);
4801        let nvmlInitWithFlags = __library.get(b"nvmlInitWithFlags\0").map(|sym| *sym);
4802        let nvmlShutdown = __library.get(b"nvmlShutdown\0").map(|sym| *sym);
4803        let nvmlErrorString = __library.get(b"nvmlErrorString\0").map(|sym| *sym);
4804        let nvmlSystemGetDriverVersion = __library
4805            .get(b"nvmlSystemGetDriverVersion\0")
4806            .map(|sym| *sym);
4807        let nvmlSystemGetNVMLVersion = __library.get(b"nvmlSystemGetNVMLVersion\0").map(|sym| *sym);
4808        let nvmlSystemGetCudaDriverVersion = __library
4809            .get(b"nvmlSystemGetCudaDriverVersion\0")
4810            .map(|sym| *sym);
4811        let nvmlSystemGetCudaDriverVersion_v2 = __library
4812            .get(b"nvmlSystemGetCudaDriverVersion_v2\0")
4813            .map(|sym| *sym);
4814        let nvmlSystemGetProcessName = __library.get(b"nvmlSystemGetProcessName\0").map(|sym| *sym);
4815        let nvmlSystemGetHicVersion = __library.get(b"nvmlSystemGetHicVersion\0").map(|sym| *sym);
4816        let nvmlSystemGetTopologyGpuSet = __library
4817            .get(b"nvmlSystemGetTopologyGpuSet\0")
4818            .map(|sym| *sym);
4819        let nvmlSystemGetDriverBranch = __library
4820            .get(b"nvmlSystemGetDriverBranch\0")
4821            .map(|sym| *sym);
4822        let nvmlUnitGetCount = __library.get(b"nvmlUnitGetCount\0").map(|sym| *sym);
4823        let nvmlUnitGetHandleByIndex = __library.get(b"nvmlUnitGetHandleByIndex\0").map(|sym| *sym);
4824        let nvmlUnitGetUnitInfo = __library.get(b"nvmlUnitGetUnitInfo\0").map(|sym| *sym);
4825        let nvmlUnitGetLedState = __library.get(b"nvmlUnitGetLedState\0").map(|sym| *sym);
4826        let nvmlUnitGetPsuInfo = __library.get(b"nvmlUnitGetPsuInfo\0").map(|sym| *sym);
4827        let nvmlUnitGetTemperature = __library.get(b"nvmlUnitGetTemperature\0").map(|sym| *sym);
4828        let nvmlUnitGetFanSpeedInfo = __library.get(b"nvmlUnitGetFanSpeedInfo\0").map(|sym| *sym);
4829        let nvmlUnitGetDevices = __library.get(b"nvmlUnitGetDevices\0").map(|sym| *sym);
4830        let nvmlDeviceGetCount_v2 = __library.get(b"nvmlDeviceGetCount_v2\0").map(|sym| *sym);
4831        let nvmlDeviceGetAttributes_v2 = __library
4832            .get(b"nvmlDeviceGetAttributes_v2\0")
4833            .map(|sym| *sym);
4834        let nvmlDeviceGetHandleByIndex_v2 = __library
4835            .get(b"nvmlDeviceGetHandleByIndex_v2\0")
4836            .map(|sym| *sym);
4837        let nvmlDeviceGetHandleBySerial = __library
4838            .get(b"nvmlDeviceGetHandleBySerial\0")
4839            .map(|sym| *sym);
4840        let nvmlDeviceGetHandleByUUID = __library
4841            .get(b"nvmlDeviceGetHandleByUUID\0")
4842            .map(|sym| *sym);
4843        let nvmlDeviceGetHandleByPciBusId_v2 = __library
4844            .get(b"nvmlDeviceGetHandleByPciBusId_v2\0")
4845            .map(|sym| *sym);
4846        let nvmlDeviceGetName = __library.get(b"nvmlDeviceGetName\0").map(|sym| *sym);
4847        let nvmlDeviceGetBrand = __library.get(b"nvmlDeviceGetBrand\0").map(|sym| *sym);
4848        let nvmlDeviceGetIndex = __library.get(b"nvmlDeviceGetIndex\0").map(|sym| *sym);
4849        let nvmlDeviceGetSerial = __library.get(b"nvmlDeviceGetSerial\0").map(|sym| *sym);
4850        let nvmlDeviceGetModuleId = __library.get(b"nvmlDeviceGetModuleId\0").map(|sym| *sym);
4851        let nvmlDeviceGetC2cModeInfoV = __library
4852            .get(b"nvmlDeviceGetC2cModeInfoV\0")
4853            .map(|sym| *sym);
4854        let nvmlDeviceGetMemoryAffinity = __library
4855            .get(b"nvmlDeviceGetMemoryAffinity\0")
4856            .map(|sym| *sym);
4857        let nvmlDeviceGetCpuAffinityWithinScope = __library
4858            .get(b"nvmlDeviceGetCpuAffinityWithinScope\0")
4859            .map(|sym| *sym);
4860        let nvmlDeviceGetCpuAffinity = __library.get(b"nvmlDeviceGetCpuAffinity\0").map(|sym| *sym);
4861        let nvmlDeviceSetCpuAffinity = __library.get(b"nvmlDeviceSetCpuAffinity\0").map(|sym| *sym);
4862        let nvmlDeviceClearCpuAffinity = __library
4863            .get(b"nvmlDeviceClearCpuAffinity\0")
4864            .map(|sym| *sym);
4865        let nvmlDeviceGetNumaNodeId = __library.get(b"nvmlDeviceGetNumaNodeId\0").map(|sym| *sym);
4866        let nvmlDeviceGetTopologyCommonAncestor = __library
4867            .get(b"nvmlDeviceGetTopologyCommonAncestor\0")
4868            .map(|sym| *sym);
4869        let nvmlDeviceGetTopologyNearestGpus = __library
4870            .get(b"nvmlDeviceGetTopologyNearestGpus\0")
4871            .map(|sym| *sym);
4872        let nvmlDeviceGetP2PStatus = __library.get(b"nvmlDeviceGetP2PStatus\0").map(|sym| *sym);
4873        let nvmlDeviceGetUUID = __library.get(b"nvmlDeviceGetUUID\0").map(|sym| *sym);
4874        let nvmlDeviceGetMinorNumber = __library.get(b"nvmlDeviceGetMinorNumber\0").map(|sym| *sym);
4875        let nvmlDeviceGetBoardPartNumber = __library
4876            .get(b"nvmlDeviceGetBoardPartNumber\0")
4877            .map(|sym| *sym);
4878        let nvmlDeviceGetInforomVersion = __library
4879            .get(b"nvmlDeviceGetInforomVersion\0")
4880            .map(|sym| *sym);
4881        let nvmlDeviceGetInforomImageVersion = __library
4882            .get(b"nvmlDeviceGetInforomImageVersion\0")
4883            .map(|sym| *sym);
4884        let nvmlDeviceGetInforomConfigurationChecksum = __library
4885            .get(b"nvmlDeviceGetInforomConfigurationChecksum\0")
4886            .map(|sym| *sym);
4887        let nvmlDeviceValidateInforom = __library
4888            .get(b"nvmlDeviceValidateInforom\0")
4889            .map(|sym| *sym);
4890        let nvmlDeviceGetLastBBXFlushTime = __library
4891            .get(b"nvmlDeviceGetLastBBXFlushTime\0")
4892            .map(|sym| *sym);
4893        let nvmlDeviceGetDisplayMode = __library.get(b"nvmlDeviceGetDisplayMode\0").map(|sym| *sym);
4894        let nvmlDeviceGetDisplayActive = __library
4895            .get(b"nvmlDeviceGetDisplayActive\0")
4896            .map(|sym| *sym);
4897        let nvmlDeviceGetPersistenceMode = __library
4898            .get(b"nvmlDeviceGetPersistenceMode\0")
4899            .map(|sym| *sym);
4900        let nvmlDeviceGetPciInfoExt = __library.get(b"nvmlDeviceGetPciInfoExt\0").map(|sym| *sym);
4901        let nvmlDeviceGetPciInfo_v3 = __library.get(b"nvmlDeviceGetPciInfo_v3\0").map(|sym| *sym);
4902        let nvmlDeviceGetMaxPcieLinkGeneration = __library
4903            .get(b"nvmlDeviceGetMaxPcieLinkGeneration\0")
4904            .map(|sym| *sym);
4905        let nvmlDeviceGetGpuMaxPcieLinkGeneration = __library
4906            .get(b"nvmlDeviceGetGpuMaxPcieLinkGeneration\0")
4907            .map(|sym| *sym);
4908        let nvmlDeviceGetMaxPcieLinkWidth = __library
4909            .get(b"nvmlDeviceGetMaxPcieLinkWidth\0")
4910            .map(|sym| *sym);
4911        let nvmlDeviceGetCurrPcieLinkGeneration = __library
4912            .get(b"nvmlDeviceGetCurrPcieLinkGeneration\0")
4913            .map(|sym| *sym);
4914        let nvmlDeviceGetCurrPcieLinkWidth = __library
4915            .get(b"nvmlDeviceGetCurrPcieLinkWidth\0")
4916            .map(|sym| *sym);
4917        let nvmlDeviceGetPcieThroughput = __library
4918            .get(b"nvmlDeviceGetPcieThroughput\0")
4919            .map(|sym| *sym);
4920        let nvmlDeviceGetPcieReplayCounter = __library
4921            .get(b"nvmlDeviceGetPcieReplayCounter\0")
4922            .map(|sym| *sym);
4923        let nvmlDeviceGetClockInfo = __library.get(b"nvmlDeviceGetClockInfo\0").map(|sym| *sym);
4924        let nvmlDeviceGetMaxClockInfo = __library
4925            .get(b"nvmlDeviceGetMaxClockInfo\0")
4926            .map(|sym| *sym);
4927        let nvmlDeviceGetGpcClkVfOffset = __library
4928            .get(b"nvmlDeviceGetGpcClkVfOffset\0")
4929            .map(|sym| *sym);
4930        let nvmlDeviceGetApplicationsClock = __library
4931            .get(b"nvmlDeviceGetApplicationsClock\0")
4932            .map(|sym| *sym);
4933        let nvmlDeviceGetDefaultApplicationsClock = __library
4934            .get(b"nvmlDeviceGetDefaultApplicationsClock\0")
4935            .map(|sym| *sym);
4936        let nvmlDeviceGetClock = __library.get(b"nvmlDeviceGetClock\0").map(|sym| *sym);
4937        let nvmlDeviceGetMaxCustomerBoostClock = __library
4938            .get(b"nvmlDeviceGetMaxCustomerBoostClock\0")
4939            .map(|sym| *sym);
4940        let nvmlDeviceGetSupportedMemoryClocks = __library
4941            .get(b"nvmlDeviceGetSupportedMemoryClocks\0")
4942            .map(|sym| *sym);
4943        let nvmlDeviceGetSupportedGraphicsClocks = __library
4944            .get(b"nvmlDeviceGetSupportedGraphicsClocks\0")
4945            .map(|sym| *sym);
4946        let nvmlDeviceGetAutoBoostedClocksEnabled = __library
4947            .get(b"nvmlDeviceGetAutoBoostedClocksEnabled\0")
4948            .map(|sym| *sym);
4949        let nvmlDeviceGetFanSpeed = __library.get(b"nvmlDeviceGetFanSpeed\0").map(|sym| *sym);
4950        let nvmlDeviceGetFanSpeed_v2 = __library.get(b"nvmlDeviceGetFanSpeed_v2\0").map(|sym| *sym);
4951        let nvmlDeviceGetFanSpeedRPM = __library.get(b"nvmlDeviceGetFanSpeedRPM\0").map(|sym| *sym);
4952        let nvmlDeviceGetTargetFanSpeed = __library
4953            .get(b"nvmlDeviceGetTargetFanSpeed\0")
4954            .map(|sym| *sym);
4955        let nvmlDeviceGetMinMaxFanSpeed = __library
4956            .get(b"nvmlDeviceGetMinMaxFanSpeed\0")
4957            .map(|sym| *sym);
4958        let nvmlDeviceGetFanControlPolicy_v2 = __library
4959            .get(b"nvmlDeviceGetFanControlPolicy_v2\0")
4960            .map(|sym| *sym);
4961        let nvmlDeviceGetNumFans = __library.get(b"nvmlDeviceGetNumFans\0").map(|sym| *sym);
4962        let nvmlDeviceGetTemperature = __library.get(b"nvmlDeviceGetTemperature\0").map(|sym| *sym);
4963        let nvmlDeviceGetCoolerInfo = __library.get(b"nvmlDeviceGetCoolerInfo\0").map(|sym| *sym);
4964        let nvmlDeviceGetTemperatureV = __library
4965            .get(b"nvmlDeviceGetTemperatureV\0")
4966            .map(|sym| *sym);
4967        let nvmlDeviceGetTemperatureThreshold = __library
4968            .get(b"nvmlDeviceGetTemperatureThreshold\0")
4969            .map(|sym| *sym);
4970        let nvmlDeviceGetMarginTemperature = __library
4971            .get(b"nvmlDeviceGetMarginTemperature\0")
4972            .map(|sym| *sym);
4973        let nvmlDeviceGetThermalSettings = __library
4974            .get(b"nvmlDeviceGetThermalSettings\0")
4975            .map(|sym| *sym);
4976        let nvmlDeviceGetPerformanceState = __library
4977            .get(b"nvmlDeviceGetPerformanceState\0")
4978            .map(|sym| *sym);
4979        let nvmlDeviceGetCurrentClocksEventReasons = __library
4980            .get(b"nvmlDeviceGetCurrentClocksEventReasons\0")
4981            .map(|sym| *sym);
4982        let nvmlDeviceGetCurrentClocksThrottleReasons = __library
4983            .get(b"nvmlDeviceGetCurrentClocksThrottleReasons\0")
4984            .map(|sym| *sym);
4985        let nvmlDeviceGetSupportedClocksEventReasons = __library
4986            .get(b"nvmlDeviceGetSupportedClocksEventReasons\0")
4987            .map(|sym| *sym);
4988        let nvmlDeviceGetSupportedClocksThrottleReasons = __library
4989            .get(b"nvmlDeviceGetSupportedClocksThrottleReasons\0")
4990            .map(|sym| *sym);
4991        let nvmlDeviceGetPowerState = __library.get(b"nvmlDeviceGetPowerState\0").map(|sym| *sym);
4992        let nvmlDeviceGetDynamicPstatesInfo = __library
4993            .get(b"nvmlDeviceGetDynamicPstatesInfo\0")
4994            .map(|sym| *sym);
4995        let nvmlDeviceGetMemClkVfOffset = __library
4996            .get(b"nvmlDeviceGetMemClkVfOffset\0")
4997            .map(|sym| *sym);
4998        let nvmlDeviceGetMinMaxClockOfPState = __library
4999            .get(b"nvmlDeviceGetMinMaxClockOfPState\0")
5000            .map(|sym| *sym);
5001        let nvmlDeviceGetSupportedPerformanceStates = __library
5002            .get(b"nvmlDeviceGetSupportedPerformanceStates\0")
5003            .map(|sym| *sym);
5004        let nvmlDeviceGetGpcClkMinMaxVfOffset = __library
5005            .get(b"nvmlDeviceGetGpcClkMinMaxVfOffset\0")
5006            .map(|sym| *sym);
5007        let nvmlDeviceGetMemClkMinMaxVfOffset = __library
5008            .get(b"nvmlDeviceGetMemClkMinMaxVfOffset\0")
5009            .map(|sym| *sym);
5010        let nvmlDeviceGetClockOffsets = __library
5011            .get(b"nvmlDeviceGetClockOffsets\0")
5012            .map(|sym| *sym);
5013        let nvmlDeviceSetClockOffsets = __library
5014            .get(b"nvmlDeviceSetClockOffsets\0")
5015            .map(|sym| *sym);
5016        let nvmlDeviceGetPerformanceModes = __library
5017            .get(b"nvmlDeviceGetPerformanceModes\0")
5018            .map(|sym| *sym);
5019        let nvmlDeviceGetCurrentClockFreqs = __library
5020            .get(b"nvmlDeviceGetCurrentClockFreqs\0")
5021            .map(|sym| *sym);
5022        let nvmlDeviceGetPowerManagementMode = __library
5023            .get(b"nvmlDeviceGetPowerManagementMode\0")
5024            .map(|sym| *sym);
5025        let nvmlDeviceGetPowerManagementLimit = __library
5026            .get(b"nvmlDeviceGetPowerManagementLimit\0")
5027            .map(|sym| *sym);
5028        let nvmlDeviceGetPowerManagementLimitConstraints = __library
5029            .get(b"nvmlDeviceGetPowerManagementLimitConstraints\0")
5030            .map(|sym| *sym);
5031        let nvmlDeviceGetPowerManagementDefaultLimit = __library
5032            .get(b"nvmlDeviceGetPowerManagementDefaultLimit\0")
5033            .map(|sym| *sym);
5034        let nvmlDeviceGetPowerUsage = __library.get(b"nvmlDeviceGetPowerUsage\0").map(|sym| *sym);
5035        let nvmlDeviceGetTotalEnergyConsumption = __library
5036            .get(b"nvmlDeviceGetTotalEnergyConsumption\0")
5037            .map(|sym| *sym);
5038        let nvmlDeviceGetEnforcedPowerLimit = __library
5039            .get(b"nvmlDeviceGetEnforcedPowerLimit\0")
5040            .map(|sym| *sym);
5041        let nvmlDeviceGetGpuOperationMode = __library
5042            .get(b"nvmlDeviceGetGpuOperationMode\0")
5043            .map(|sym| *sym);
5044        let nvmlDeviceGetMemoryInfo = __library.get(b"nvmlDeviceGetMemoryInfo\0").map(|sym| *sym);
5045        let nvmlDeviceGetMemoryInfo_v2 = __library
5046            .get(b"nvmlDeviceGetMemoryInfo_v2\0")
5047            .map(|sym| *sym);
5048        let nvmlDeviceGetComputeMode = __library.get(b"nvmlDeviceGetComputeMode\0").map(|sym| *sym);
5049        let nvmlDeviceGetCudaComputeCapability = __library
5050            .get(b"nvmlDeviceGetCudaComputeCapability\0")
5051            .map(|sym| *sym);
5052        let nvmlDeviceGetDramEncryptionMode = __library
5053            .get(b"nvmlDeviceGetDramEncryptionMode\0")
5054            .map(|sym| *sym);
5055        let nvmlDeviceSetDramEncryptionMode = __library
5056            .get(b"nvmlDeviceSetDramEncryptionMode\0")
5057            .map(|sym| *sym);
5058        let nvmlDeviceGetEccMode = __library.get(b"nvmlDeviceGetEccMode\0").map(|sym| *sym);
5059        let nvmlDeviceGetDefaultEccMode = __library
5060            .get(b"nvmlDeviceGetDefaultEccMode\0")
5061            .map(|sym| *sym);
5062        let nvmlDeviceGetBoardId = __library.get(b"nvmlDeviceGetBoardId\0").map(|sym| *sym);
5063        let nvmlDeviceGetMultiGpuBoard = __library
5064            .get(b"nvmlDeviceGetMultiGpuBoard\0")
5065            .map(|sym| *sym);
5066        let nvmlDeviceGetTotalEccErrors = __library
5067            .get(b"nvmlDeviceGetTotalEccErrors\0")
5068            .map(|sym| *sym);
5069        let nvmlDeviceGetDetailedEccErrors = __library
5070            .get(b"nvmlDeviceGetDetailedEccErrors\0")
5071            .map(|sym| *sym);
5072        let nvmlDeviceGetMemoryErrorCounter = __library
5073            .get(b"nvmlDeviceGetMemoryErrorCounter\0")
5074            .map(|sym| *sym);
5075        let nvmlDeviceGetUtilizationRates = __library
5076            .get(b"nvmlDeviceGetUtilizationRates\0")
5077            .map(|sym| *sym);
5078        let nvmlDeviceGetEncoderUtilization = __library
5079            .get(b"nvmlDeviceGetEncoderUtilization\0")
5080            .map(|sym| *sym);
5081        let nvmlDeviceGetEncoderCapacity = __library
5082            .get(b"nvmlDeviceGetEncoderCapacity\0")
5083            .map(|sym| *sym);
5084        let nvmlDeviceGetEncoderStats = __library
5085            .get(b"nvmlDeviceGetEncoderStats\0")
5086            .map(|sym| *sym);
5087        let nvmlDeviceGetEncoderSessions = __library
5088            .get(b"nvmlDeviceGetEncoderSessions\0")
5089            .map(|sym| *sym);
5090        let nvmlDeviceGetDecoderUtilization = __library
5091            .get(b"nvmlDeviceGetDecoderUtilization\0")
5092            .map(|sym| *sym);
5093        let nvmlDeviceGetJpgUtilization = __library
5094            .get(b"nvmlDeviceGetJpgUtilization\0")
5095            .map(|sym| *sym);
5096        let nvmlDeviceGetOfaUtilization = __library
5097            .get(b"nvmlDeviceGetOfaUtilization\0")
5098            .map(|sym| *sym);
5099        let nvmlDeviceGetFBCStats = __library.get(b"nvmlDeviceGetFBCStats\0").map(|sym| *sym);
5100        let nvmlDeviceGetFBCSessions = __library.get(b"nvmlDeviceGetFBCSessions\0").map(|sym| *sym);
5101        let nvmlDeviceGetDriverModel_v2 = __library
5102            .get(b"nvmlDeviceGetDriverModel_v2\0")
5103            .map(|sym| *sym);
5104        let nvmlDeviceGetVbiosVersion = __library
5105            .get(b"nvmlDeviceGetVbiosVersion\0")
5106            .map(|sym| *sym);
5107        let nvmlDeviceGetBridgeChipInfo = __library
5108            .get(b"nvmlDeviceGetBridgeChipInfo\0")
5109            .map(|sym| *sym);
5110        let nvmlDeviceGetComputeRunningProcesses_v3 = __library
5111            .get(b"nvmlDeviceGetComputeRunningProcesses_v3\0")
5112            .map(|sym| *sym);
5113        let nvmlDeviceGetGraphicsRunningProcesses_v3 = __library
5114            .get(b"nvmlDeviceGetGraphicsRunningProcesses_v3\0")
5115            .map(|sym| *sym);
5116        let nvmlDeviceGetMPSComputeRunningProcesses_v3 = __library
5117            .get(b"nvmlDeviceGetMPSComputeRunningProcesses_v3\0")
5118            .map(|sym| *sym);
5119        let nvmlDeviceGetRunningProcessDetailList = __library
5120            .get(b"nvmlDeviceGetRunningProcessDetailList\0")
5121            .map(|sym| *sym);
5122        let nvmlDeviceOnSameBoard = __library.get(b"nvmlDeviceOnSameBoard\0").map(|sym| *sym);
5123        let nvmlDeviceGetAPIRestriction = __library
5124            .get(b"nvmlDeviceGetAPIRestriction\0")
5125            .map(|sym| *sym);
5126        let nvmlDeviceGetSamples = __library.get(b"nvmlDeviceGetSamples\0").map(|sym| *sym);
5127        let nvmlDeviceGetBAR1MemoryInfo = __library
5128            .get(b"nvmlDeviceGetBAR1MemoryInfo\0")
5129            .map(|sym| *sym);
5130        let nvmlDeviceGetViolationStatus = __library
5131            .get(b"nvmlDeviceGetViolationStatus\0")
5132            .map(|sym| *sym);
5133        let nvmlDeviceGetIrqNum = __library.get(b"nvmlDeviceGetIrqNum\0").map(|sym| *sym);
5134        let nvmlDeviceGetNumGpuCores = __library.get(b"nvmlDeviceGetNumGpuCores\0").map(|sym| *sym);
5135        let nvmlDeviceGetPowerSource = __library.get(b"nvmlDeviceGetPowerSource\0").map(|sym| *sym);
5136        let nvmlDeviceGetMemoryBusWidth = __library
5137            .get(b"nvmlDeviceGetMemoryBusWidth\0")
5138            .map(|sym| *sym);
5139        let nvmlDeviceGetPcieLinkMaxSpeed = __library
5140            .get(b"nvmlDeviceGetPcieLinkMaxSpeed\0")
5141            .map(|sym| *sym);
5142        let nvmlDeviceGetPcieSpeed = __library.get(b"nvmlDeviceGetPcieSpeed\0").map(|sym| *sym);
5143        let nvmlDeviceGetAdaptiveClockInfoStatus = __library
5144            .get(b"nvmlDeviceGetAdaptiveClockInfoStatus\0")
5145            .map(|sym| *sym);
5146        let nvmlDeviceGetBusType = __library.get(b"nvmlDeviceGetBusType\0").map(|sym| *sym);
5147        let nvmlDeviceGetGpuFabricInfo = __library
5148            .get(b"nvmlDeviceGetGpuFabricInfo\0")
5149            .map(|sym| *sym);
5150        let nvmlDeviceGetGpuFabricInfoV = __library
5151            .get(b"nvmlDeviceGetGpuFabricInfoV\0")
5152            .map(|sym| *sym);
5153        let nvmlSystemGetConfComputeCapabilities = __library
5154            .get(b"nvmlSystemGetConfComputeCapabilities\0")
5155            .map(|sym| *sym);
5156        let nvmlSystemGetConfComputeState = __library
5157            .get(b"nvmlSystemGetConfComputeState\0")
5158            .map(|sym| *sym);
5159        let nvmlDeviceGetConfComputeMemSizeInfo = __library
5160            .get(b"nvmlDeviceGetConfComputeMemSizeInfo\0")
5161            .map(|sym| *sym);
5162        let nvmlSystemGetConfComputeGpusReadyState = __library
5163            .get(b"nvmlSystemGetConfComputeGpusReadyState\0")
5164            .map(|sym| *sym);
5165        let nvmlDeviceGetConfComputeProtectedMemoryUsage = __library
5166            .get(b"nvmlDeviceGetConfComputeProtectedMemoryUsage\0")
5167            .map(|sym| *sym);
5168        let nvmlDeviceGetConfComputeGpuCertificate = __library
5169            .get(b"nvmlDeviceGetConfComputeGpuCertificate\0")
5170            .map(|sym| *sym);
5171        let nvmlDeviceGetConfComputeGpuAttestationReport = __library
5172            .get(b"nvmlDeviceGetConfComputeGpuAttestationReport\0")
5173            .map(|sym| *sym);
5174        let nvmlSystemGetConfComputeKeyRotationThresholdInfo = __library
5175            .get(b"nvmlSystemGetConfComputeKeyRotationThresholdInfo\0")
5176            .map(|sym| *sym);
5177        let nvmlDeviceSetConfComputeUnprotectedMemSize = __library
5178            .get(b"nvmlDeviceSetConfComputeUnprotectedMemSize\0")
5179            .map(|sym| *sym);
5180        let nvmlSystemSetConfComputeGpusReadyState = __library
5181            .get(b"nvmlSystemSetConfComputeGpusReadyState\0")
5182            .map(|sym| *sym);
5183        let nvmlSystemSetConfComputeKeyRotationThresholdInfo = __library
5184            .get(b"nvmlSystemSetConfComputeKeyRotationThresholdInfo\0")
5185            .map(|sym| *sym);
5186        let nvmlSystemGetConfComputeSettings = __library
5187            .get(b"nvmlSystemGetConfComputeSettings\0")
5188            .map(|sym| *sym);
5189        let nvmlDeviceGetGspFirmwareVersion = __library
5190            .get(b"nvmlDeviceGetGspFirmwareVersion\0")
5191            .map(|sym| *sym);
5192        let nvmlDeviceGetGspFirmwareMode = __library
5193            .get(b"nvmlDeviceGetGspFirmwareMode\0")
5194            .map(|sym| *sym);
5195        let nvmlDeviceGetSramEccErrorStatus = __library
5196            .get(b"nvmlDeviceGetSramEccErrorStatus\0")
5197            .map(|sym| *sym);
5198        let nvmlDeviceGetAccountingMode = __library
5199            .get(b"nvmlDeviceGetAccountingMode\0")
5200            .map(|sym| *sym);
5201        let nvmlDeviceGetAccountingStats = __library
5202            .get(b"nvmlDeviceGetAccountingStats\0")
5203            .map(|sym| *sym);
5204        let nvmlDeviceGetAccountingPids = __library
5205            .get(b"nvmlDeviceGetAccountingPids\0")
5206            .map(|sym| *sym);
5207        let nvmlDeviceGetAccountingBufferSize = __library
5208            .get(b"nvmlDeviceGetAccountingBufferSize\0")
5209            .map(|sym| *sym);
5210        let nvmlDeviceGetRetiredPages = __library
5211            .get(b"nvmlDeviceGetRetiredPages\0")
5212            .map(|sym| *sym);
5213        let nvmlDeviceGetRetiredPages_v2 = __library
5214            .get(b"nvmlDeviceGetRetiredPages_v2\0")
5215            .map(|sym| *sym);
5216        let nvmlDeviceGetRetiredPagesPendingStatus = __library
5217            .get(b"nvmlDeviceGetRetiredPagesPendingStatus\0")
5218            .map(|sym| *sym);
5219        let nvmlDeviceGetRemappedRows = __library
5220            .get(b"nvmlDeviceGetRemappedRows\0")
5221            .map(|sym| *sym);
5222        let nvmlDeviceGetRowRemapperHistogram = __library
5223            .get(b"nvmlDeviceGetRowRemapperHistogram\0")
5224            .map(|sym| *sym);
5225        let nvmlDeviceGetArchitecture = __library
5226            .get(b"nvmlDeviceGetArchitecture\0")
5227            .map(|sym| *sym);
5228        let nvmlDeviceGetClkMonStatus = __library
5229            .get(b"nvmlDeviceGetClkMonStatus\0")
5230            .map(|sym| *sym);
5231        let nvmlDeviceGetProcessUtilization = __library
5232            .get(b"nvmlDeviceGetProcessUtilization\0")
5233            .map(|sym| *sym);
5234        let nvmlDeviceGetProcessesUtilizationInfo = __library
5235            .get(b"nvmlDeviceGetProcessesUtilizationInfo\0")
5236            .map(|sym| *sym);
5237        let nvmlDeviceGetPlatformInfo = __library
5238            .get(b"nvmlDeviceGetPlatformInfo\0")
5239            .map(|sym| *sym);
5240        let nvmlUnitSetLedState = __library.get(b"nvmlUnitSetLedState\0").map(|sym| *sym);
5241        let nvmlDeviceSetPersistenceMode = __library
5242            .get(b"nvmlDeviceSetPersistenceMode\0")
5243            .map(|sym| *sym);
5244        let nvmlDeviceSetComputeMode = __library.get(b"nvmlDeviceSetComputeMode\0").map(|sym| *sym);
5245        let nvmlDeviceSetEccMode = __library.get(b"nvmlDeviceSetEccMode\0").map(|sym| *sym);
5246        let nvmlDeviceClearEccErrorCounts = __library
5247            .get(b"nvmlDeviceClearEccErrorCounts\0")
5248            .map(|sym| *sym);
5249        let nvmlDeviceSetDriverModel = __library.get(b"nvmlDeviceSetDriverModel\0").map(|sym| *sym);
5250        let nvmlDeviceSetGpuLockedClocks = __library
5251            .get(b"nvmlDeviceSetGpuLockedClocks\0")
5252            .map(|sym| *sym);
5253        let nvmlDeviceResetGpuLockedClocks = __library
5254            .get(b"nvmlDeviceResetGpuLockedClocks\0")
5255            .map(|sym| *sym);
5256        let nvmlDeviceSetMemoryLockedClocks = __library
5257            .get(b"nvmlDeviceSetMemoryLockedClocks\0")
5258            .map(|sym| *sym);
5259        let nvmlDeviceResetMemoryLockedClocks = __library
5260            .get(b"nvmlDeviceResetMemoryLockedClocks\0")
5261            .map(|sym| *sym);
5262        let nvmlDeviceSetApplicationsClocks = __library
5263            .get(b"nvmlDeviceSetApplicationsClocks\0")
5264            .map(|sym| *sym);
5265        let nvmlDeviceResetApplicationsClocks = __library
5266            .get(b"nvmlDeviceResetApplicationsClocks\0")
5267            .map(|sym| *sym);
5268        let nvmlDeviceSetAutoBoostedClocksEnabled = __library
5269            .get(b"nvmlDeviceSetAutoBoostedClocksEnabled\0")
5270            .map(|sym| *sym);
5271        let nvmlDeviceSetDefaultAutoBoostedClocksEnabled = __library
5272            .get(b"nvmlDeviceSetDefaultAutoBoostedClocksEnabled\0")
5273            .map(|sym| *sym);
5274        let nvmlDeviceSetDefaultFanSpeed_v2 = __library
5275            .get(b"nvmlDeviceSetDefaultFanSpeed_v2\0")
5276            .map(|sym| *sym);
5277        let nvmlDeviceSetFanControlPolicy = __library
5278            .get(b"nvmlDeviceSetFanControlPolicy\0")
5279            .map(|sym| *sym);
5280        let nvmlDeviceSetTemperatureThreshold = __library
5281            .get(b"nvmlDeviceSetTemperatureThreshold\0")
5282            .map(|sym| *sym);
5283        let nvmlDeviceSetPowerManagementLimit = __library
5284            .get(b"nvmlDeviceSetPowerManagementLimit\0")
5285            .map(|sym| *sym);
5286        let nvmlDeviceSetGpuOperationMode = __library
5287            .get(b"nvmlDeviceSetGpuOperationMode\0")
5288            .map(|sym| *sym);
5289        let nvmlDeviceSetAPIRestriction = __library
5290            .get(b"nvmlDeviceSetAPIRestriction\0")
5291            .map(|sym| *sym);
5292        let nvmlDeviceSetFanSpeed_v2 = __library.get(b"nvmlDeviceSetFanSpeed_v2\0").map(|sym| *sym);
5293        let nvmlDeviceSetGpcClkVfOffset = __library
5294            .get(b"nvmlDeviceSetGpcClkVfOffset\0")
5295            .map(|sym| *sym);
5296        let nvmlDeviceSetMemClkVfOffset = __library
5297            .get(b"nvmlDeviceSetMemClkVfOffset\0")
5298            .map(|sym| *sym);
5299        let nvmlDeviceSetAccountingMode = __library
5300            .get(b"nvmlDeviceSetAccountingMode\0")
5301            .map(|sym| *sym);
5302        let nvmlDeviceClearAccountingPids = __library
5303            .get(b"nvmlDeviceClearAccountingPids\0")
5304            .map(|sym| *sym);
5305        let nvmlDeviceSetPowerManagementLimit_v2 = __library
5306            .get(b"nvmlDeviceSetPowerManagementLimit_v2\0")
5307            .map(|sym| *sym);
5308        let nvmlDeviceGetNvLinkState = __library.get(b"nvmlDeviceGetNvLinkState\0").map(|sym| *sym);
5309        let nvmlDeviceGetNvLinkVersion = __library
5310            .get(b"nvmlDeviceGetNvLinkVersion\0")
5311            .map(|sym| *sym);
5312        let nvmlDeviceGetNvLinkCapability = __library
5313            .get(b"nvmlDeviceGetNvLinkCapability\0")
5314            .map(|sym| *sym);
5315        let nvmlDeviceGetNvLinkRemotePciInfo_v2 = __library
5316            .get(b"nvmlDeviceGetNvLinkRemotePciInfo_v2\0")
5317            .map(|sym| *sym);
5318        let nvmlDeviceGetNvLinkErrorCounter = __library
5319            .get(b"nvmlDeviceGetNvLinkErrorCounter\0")
5320            .map(|sym| *sym);
5321        let nvmlDeviceResetNvLinkErrorCounters = __library
5322            .get(b"nvmlDeviceResetNvLinkErrorCounters\0")
5323            .map(|sym| *sym);
5324        let nvmlDeviceSetNvLinkUtilizationControl = __library
5325            .get(b"nvmlDeviceSetNvLinkUtilizationControl\0")
5326            .map(|sym| *sym);
5327        let nvmlDeviceGetNvLinkUtilizationControl = __library
5328            .get(b"nvmlDeviceGetNvLinkUtilizationControl\0")
5329            .map(|sym| *sym);
5330        let nvmlDeviceGetNvLinkUtilizationCounter = __library
5331            .get(b"nvmlDeviceGetNvLinkUtilizationCounter\0")
5332            .map(|sym| *sym);
5333        let nvmlDeviceFreezeNvLinkUtilizationCounter = __library
5334            .get(b"nvmlDeviceFreezeNvLinkUtilizationCounter\0")
5335            .map(|sym| *sym);
5336        let nvmlDeviceResetNvLinkUtilizationCounter = __library
5337            .get(b"nvmlDeviceResetNvLinkUtilizationCounter\0")
5338            .map(|sym| *sym);
5339        let nvmlDeviceGetNvLinkRemoteDeviceType = __library
5340            .get(b"nvmlDeviceGetNvLinkRemoteDeviceType\0")
5341            .map(|sym| *sym);
5342        let nvmlDeviceSetNvLinkDeviceLowPowerThreshold = __library
5343            .get(b"nvmlDeviceSetNvLinkDeviceLowPowerThreshold\0")
5344            .map(|sym| *sym);
5345        let nvmlSystemSetNvlinkBwMode = __library
5346            .get(b"nvmlSystemSetNvlinkBwMode\0")
5347            .map(|sym| *sym);
5348        let nvmlSystemGetNvlinkBwMode = __library
5349            .get(b"nvmlSystemGetNvlinkBwMode\0")
5350            .map(|sym| *sym);
5351        let nvmlDeviceGetNvlinkSupportedBwModes = __library
5352            .get(b"nvmlDeviceGetNvlinkSupportedBwModes\0")
5353            .map(|sym| *sym);
5354        let nvmlDeviceGetNvlinkBwMode = __library
5355            .get(b"nvmlDeviceGetNvlinkBwMode\0")
5356            .map(|sym| *sym);
5357        let nvmlDeviceSetNvlinkBwMode = __library
5358            .get(b"nvmlDeviceSetNvlinkBwMode\0")
5359            .map(|sym| *sym);
5360        let nvmlEventSetCreate = __library.get(b"nvmlEventSetCreate\0").map(|sym| *sym);
5361        let nvmlDeviceRegisterEvents = __library.get(b"nvmlDeviceRegisterEvents\0").map(|sym| *sym);
5362        let nvmlDeviceGetSupportedEventTypes = __library
5363            .get(b"nvmlDeviceGetSupportedEventTypes\0")
5364            .map(|sym| *sym);
5365        let nvmlEventSetWait_v2 = __library.get(b"nvmlEventSetWait_v2\0").map(|sym| *sym);
5366        let nvmlEventSetFree = __library.get(b"nvmlEventSetFree\0").map(|sym| *sym);
5367        let nvmlDeviceModifyDrainState = __library
5368            .get(b"nvmlDeviceModifyDrainState\0")
5369            .map(|sym| *sym);
5370        let nvmlDeviceQueryDrainState = __library
5371            .get(b"nvmlDeviceQueryDrainState\0")
5372            .map(|sym| *sym);
5373        let nvmlDeviceRemoveGpu_v2 = __library.get(b"nvmlDeviceRemoveGpu_v2\0").map(|sym| *sym);
5374        let nvmlDeviceDiscoverGpus = __library.get(b"nvmlDeviceDiscoverGpus\0").map(|sym| *sym);
5375        let nvmlDeviceGetFieldValues = __library.get(b"nvmlDeviceGetFieldValues\0").map(|sym| *sym);
5376        let nvmlDeviceClearFieldValues = __library
5377            .get(b"nvmlDeviceClearFieldValues\0")
5378            .map(|sym| *sym);
5379        let nvmlDeviceGetVirtualizationMode = __library
5380            .get(b"nvmlDeviceGetVirtualizationMode\0")
5381            .map(|sym| *sym);
5382        let nvmlDeviceGetHostVgpuMode = __library
5383            .get(b"nvmlDeviceGetHostVgpuMode\0")
5384            .map(|sym| *sym);
5385        let nvmlDeviceSetVirtualizationMode = __library
5386            .get(b"nvmlDeviceSetVirtualizationMode\0")
5387            .map(|sym| *sym);
5388        let nvmlDeviceGetVgpuHeterogeneousMode = __library
5389            .get(b"nvmlDeviceGetVgpuHeterogeneousMode\0")
5390            .map(|sym| *sym);
5391        let nvmlDeviceSetVgpuHeterogeneousMode = __library
5392            .get(b"nvmlDeviceSetVgpuHeterogeneousMode\0")
5393            .map(|sym| *sym);
5394        let nvmlVgpuInstanceGetPlacementId = __library
5395            .get(b"nvmlVgpuInstanceGetPlacementId\0")
5396            .map(|sym| *sym);
5397        let nvmlDeviceGetVgpuTypeSupportedPlacements = __library
5398            .get(b"nvmlDeviceGetVgpuTypeSupportedPlacements\0")
5399            .map(|sym| *sym);
5400        let nvmlDeviceGetVgpuTypeCreatablePlacements = __library
5401            .get(b"nvmlDeviceGetVgpuTypeCreatablePlacements\0")
5402            .map(|sym| *sym);
5403        let nvmlVgpuTypeGetGspHeapSize = __library
5404            .get(b"nvmlVgpuTypeGetGspHeapSize\0")
5405            .map(|sym| *sym);
5406        let nvmlVgpuTypeGetFbReservation = __library
5407            .get(b"nvmlVgpuTypeGetFbReservation\0")
5408            .map(|sym| *sym);
5409        let nvmlVgpuInstanceGetRuntimeStateSize = __library
5410            .get(b"nvmlVgpuInstanceGetRuntimeStateSize\0")
5411            .map(|sym| *sym);
5412        let nvmlDeviceSetVgpuCapabilities = __library
5413            .get(b"nvmlDeviceSetVgpuCapabilities\0")
5414            .map(|sym| *sym);
5415        let nvmlDeviceGetGridLicensableFeatures_v4 = __library
5416            .get(b"nvmlDeviceGetGridLicensableFeatures_v4\0")
5417            .map(|sym| *sym);
5418        let nvmlGetVgpuDriverCapabilities = __library
5419            .get(b"nvmlGetVgpuDriverCapabilities\0")
5420            .map(|sym| *sym);
5421        let nvmlDeviceGetVgpuCapabilities = __library
5422            .get(b"nvmlDeviceGetVgpuCapabilities\0")
5423            .map(|sym| *sym);
5424        let nvmlDeviceGetSupportedVgpus = __library
5425            .get(b"nvmlDeviceGetSupportedVgpus\0")
5426            .map(|sym| *sym);
5427        let nvmlDeviceGetCreatableVgpus = __library
5428            .get(b"nvmlDeviceGetCreatableVgpus\0")
5429            .map(|sym| *sym);
5430        let nvmlVgpuTypeGetClass = __library.get(b"nvmlVgpuTypeGetClass\0").map(|sym| *sym);
5431        let nvmlVgpuTypeGetName = __library.get(b"nvmlVgpuTypeGetName\0").map(|sym| *sym);
5432        let nvmlVgpuTypeGetGpuInstanceProfileId = __library
5433            .get(b"nvmlVgpuTypeGetGpuInstanceProfileId\0")
5434            .map(|sym| *sym);
5435        let nvmlVgpuTypeGetDeviceID = __library.get(b"nvmlVgpuTypeGetDeviceID\0").map(|sym| *sym);
5436        let nvmlVgpuTypeGetFramebufferSize = __library
5437            .get(b"nvmlVgpuTypeGetFramebufferSize\0")
5438            .map(|sym| *sym);
5439        let nvmlVgpuTypeGetNumDisplayHeads = __library
5440            .get(b"nvmlVgpuTypeGetNumDisplayHeads\0")
5441            .map(|sym| *sym);
5442        let nvmlVgpuTypeGetResolution = __library
5443            .get(b"nvmlVgpuTypeGetResolution\0")
5444            .map(|sym| *sym);
5445        let nvmlVgpuTypeGetLicense = __library.get(b"nvmlVgpuTypeGetLicense\0").map(|sym| *sym);
5446        let nvmlVgpuTypeGetFrameRateLimit = __library
5447            .get(b"nvmlVgpuTypeGetFrameRateLimit\0")
5448            .map(|sym| *sym);
5449        let nvmlVgpuTypeGetMaxInstances = __library
5450            .get(b"nvmlVgpuTypeGetMaxInstances\0")
5451            .map(|sym| *sym);
5452        let nvmlVgpuTypeGetMaxInstancesPerVm = __library
5453            .get(b"nvmlVgpuTypeGetMaxInstancesPerVm\0")
5454            .map(|sym| *sym);
5455        let nvmlVgpuTypeGetBAR1Info = __library.get(b"nvmlVgpuTypeGetBAR1Info\0").map(|sym| *sym);
5456        let nvmlDeviceGetActiveVgpus = __library.get(b"nvmlDeviceGetActiveVgpus\0").map(|sym| *sym);
5457        let nvmlVgpuInstanceGetVmID = __library.get(b"nvmlVgpuInstanceGetVmID\0").map(|sym| *sym);
5458        let nvmlVgpuInstanceGetUUID = __library.get(b"nvmlVgpuInstanceGetUUID\0").map(|sym| *sym);
5459        let nvmlVgpuInstanceGetVmDriverVersion = __library
5460            .get(b"nvmlVgpuInstanceGetVmDriverVersion\0")
5461            .map(|sym| *sym);
5462        let nvmlVgpuInstanceGetFbUsage = __library
5463            .get(b"nvmlVgpuInstanceGetFbUsage\0")
5464            .map(|sym| *sym);
5465        let nvmlVgpuInstanceGetLicenseStatus = __library
5466            .get(b"nvmlVgpuInstanceGetLicenseStatus\0")
5467            .map(|sym| *sym);
5468        let nvmlVgpuInstanceGetType = __library.get(b"nvmlVgpuInstanceGetType\0").map(|sym| *sym);
5469        let nvmlVgpuInstanceGetFrameRateLimit = __library
5470            .get(b"nvmlVgpuInstanceGetFrameRateLimit\0")
5471            .map(|sym| *sym);
5472        let nvmlVgpuInstanceGetEccMode = __library
5473            .get(b"nvmlVgpuInstanceGetEccMode\0")
5474            .map(|sym| *sym);
5475        let nvmlVgpuInstanceGetEncoderCapacity = __library
5476            .get(b"nvmlVgpuInstanceGetEncoderCapacity\0")
5477            .map(|sym| *sym);
5478        let nvmlVgpuInstanceSetEncoderCapacity = __library
5479            .get(b"nvmlVgpuInstanceSetEncoderCapacity\0")
5480            .map(|sym| *sym);
5481        let nvmlVgpuInstanceGetEncoderStats = __library
5482            .get(b"nvmlVgpuInstanceGetEncoderStats\0")
5483            .map(|sym| *sym);
5484        let nvmlVgpuInstanceGetEncoderSessions = __library
5485            .get(b"nvmlVgpuInstanceGetEncoderSessions\0")
5486            .map(|sym| *sym);
5487        let nvmlVgpuInstanceGetFBCStats = __library
5488            .get(b"nvmlVgpuInstanceGetFBCStats\0")
5489            .map(|sym| *sym);
5490        let nvmlVgpuInstanceGetFBCSessions = __library
5491            .get(b"nvmlVgpuInstanceGetFBCSessions\0")
5492            .map(|sym| *sym);
5493        let nvmlVgpuInstanceGetGpuInstanceId = __library
5494            .get(b"nvmlVgpuInstanceGetGpuInstanceId\0")
5495            .map(|sym| *sym);
5496        let nvmlVgpuInstanceGetGpuPciId = __library
5497            .get(b"nvmlVgpuInstanceGetGpuPciId\0")
5498            .map(|sym| *sym);
5499        let nvmlVgpuTypeGetCapabilities = __library
5500            .get(b"nvmlVgpuTypeGetCapabilities\0")
5501            .map(|sym| *sym);
5502        let nvmlVgpuInstanceGetMdevUUID = __library
5503            .get(b"nvmlVgpuInstanceGetMdevUUID\0")
5504            .map(|sym| *sym);
5505        let nvmlVgpuInstanceGetMetadata = __library
5506            .get(b"nvmlVgpuInstanceGetMetadata\0")
5507            .map(|sym| *sym);
5508        let nvmlDeviceGetVgpuMetadata = __library
5509            .get(b"nvmlDeviceGetVgpuMetadata\0")
5510            .map(|sym| *sym);
5511        let nvmlGetVgpuCompatibility = __library.get(b"nvmlGetVgpuCompatibility\0").map(|sym| *sym);
5512        let nvmlDeviceGetPgpuMetadataString = __library
5513            .get(b"nvmlDeviceGetPgpuMetadataString\0")
5514            .map(|sym| *sym);
5515        let nvmlDeviceGetVgpuSchedulerLog = __library
5516            .get(b"nvmlDeviceGetVgpuSchedulerLog\0")
5517            .map(|sym| *sym);
5518        let nvmlDeviceGetVgpuSchedulerState = __library
5519            .get(b"nvmlDeviceGetVgpuSchedulerState\0")
5520            .map(|sym| *sym);
5521        let nvmlDeviceGetVgpuSchedulerCapabilities = __library
5522            .get(b"nvmlDeviceGetVgpuSchedulerCapabilities\0")
5523            .map(|sym| *sym);
5524        let nvmlDeviceSetVgpuSchedulerState = __library
5525            .get(b"nvmlDeviceSetVgpuSchedulerState\0")
5526            .map(|sym| *sym);
5527        let nvmlGetVgpuVersion = __library.get(b"nvmlGetVgpuVersion\0").map(|sym| *sym);
5528        let nvmlSetVgpuVersion = __library.get(b"nvmlSetVgpuVersion\0").map(|sym| *sym);
5529        let nvmlDeviceGetVgpuUtilization = __library
5530            .get(b"nvmlDeviceGetVgpuUtilization\0")
5531            .map(|sym| *sym);
5532        let nvmlDeviceGetVgpuInstancesUtilizationInfo = __library
5533            .get(b"nvmlDeviceGetVgpuInstancesUtilizationInfo\0")
5534            .map(|sym| *sym);
5535        let nvmlDeviceGetVgpuProcessUtilization = __library
5536            .get(b"nvmlDeviceGetVgpuProcessUtilization\0")
5537            .map(|sym| *sym);
5538        let nvmlDeviceGetVgpuProcessesUtilizationInfo = __library
5539            .get(b"nvmlDeviceGetVgpuProcessesUtilizationInfo\0")
5540            .map(|sym| *sym);
5541        let nvmlVgpuInstanceGetAccountingMode = __library
5542            .get(b"nvmlVgpuInstanceGetAccountingMode\0")
5543            .map(|sym| *sym);
5544        let nvmlVgpuInstanceGetAccountingPids = __library
5545            .get(b"nvmlVgpuInstanceGetAccountingPids\0")
5546            .map(|sym| *sym);
5547        let nvmlVgpuInstanceGetAccountingStats = __library
5548            .get(b"nvmlVgpuInstanceGetAccountingStats\0")
5549            .map(|sym| *sym);
5550        let nvmlVgpuInstanceClearAccountingPids = __library
5551            .get(b"nvmlVgpuInstanceClearAccountingPids\0")
5552            .map(|sym| *sym);
5553        let nvmlVgpuInstanceGetLicenseInfo_v2 = __library
5554            .get(b"nvmlVgpuInstanceGetLicenseInfo_v2\0")
5555            .map(|sym| *sym);
5556        let nvmlGetExcludedDeviceCount = __library
5557            .get(b"nvmlGetExcludedDeviceCount\0")
5558            .map(|sym| *sym);
5559        let nvmlGetExcludedDeviceInfoByIndex = __library
5560            .get(b"nvmlGetExcludedDeviceInfoByIndex\0")
5561            .map(|sym| *sym);
5562        let nvmlDeviceSetMigMode = __library.get(b"nvmlDeviceSetMigMode\0").map(|sym| *sym);
5563        let nvmlDeviceGetMigMode = __library.get(b"nvmlDeviceGetMigMode\0").map(|sym| *sym);
5564        let nvmlDeviceGetGpuInstanceProfileInfo = __library
5565            .get(b"nvmlDeviceGetGpuInstanceProfileInfo\0")
5566            .map(|sym| *sym);
5567        let nvmlDeviceGetGpuInstanceProfileInfoV = __library
5568            .get(b"nvmlDeviceGetGpuInstanceProfileInfoV\0")
5569            .map(|sym| *sym);
5570        let nvmlDeviceGetGpuInstancePossiblePlacements_v2 = __library
5571            .get(b"nvmlDeviceGetGpuInstancePossiblePlacements_v2\0")
5572            .map(|sym| *sym);
5573        let nvmlDeviceGetGpuInstanceRemainingCapacity = __library
5574            .get(b"nvmlDeviceGetGpuInstanceRemainingCapacity\0")
5575            .map(|sym| *sym);
5576        let nvmlDeviceCreateGpuInstance = __library
5577            .get(b"nvmlDeviceCreateGpuInstance\0")
5578            .map(|sym| *sym);
5579        let nvmlDeviceCreateGpuInstanceWithPlacement = __library
5580            .get(b"nvmlDeviceCreateGpuInstanceWithPlacement\0")
5581            .map(|sym| *sym);
5582        let nvmlGpuInstanceDestroy = __library.get(b"nvmlGpuInstanceDestroy\0").map(|sym| *sym);
5583        let nvmlDeviceGetGpuInstances = __library
5584            .get(b"nvmlDeviceGetGpuInstances\0")
5585            .map(|sym| *sym);
5586        let nvmlDeviceGetGpuInstanceById = __library
5587            .get(b"nvmlDeviceGetGpuInstanceById\0")
5588            .map(|sym| *sym);
5589        let nvmlGpuInstanceGetInfo = __library.get(b"nvmlGpuInstanceGetInfo\0").map(|sym| *sym);
5590        let nvmlGpuInstanceGetComputeInstanceProfileInfo = __library
5591            .get(b"nvmlGpuInstanceGetComputeInstanceProfileInfo\0")
5592            .map(|sym| *sym);
5593        let nvmlGpuInstanceGetComputeInstanceProfileInfoV = __library
5594            .get(b"nvmlGpuInstanceGetComputeInstanceProfileInfoV\0")
5595            .map(|sym| *sym);
5596        let nvmlGpuInstanceGetComputeInstanceRemainingCapacity = __library
5597            .get(b"nvmlGpuInstanceGetComputeInstanceRemainingCapacity\0")
5598            .map(|sym| *sym);
5599        let nvmlGpuInstanceGetComputeInstancePossiblePlacements = __library
5600            .get(b"nvmlGpuInstanceGetComputeInstancePossiblePlacements\0")
5601            .map(|sym| *sym);
5602        let nvmlGpuInstanceCreateComputeInstance = __library
5603            .get(b"nvmlGpuInstanceCreateComputeInstance\0")
5604            .map(|sym| *sym);
5605        let nvmlGpuInstanceCreateComputeInstanceWithPlacement = __library
5606            .get(b"nvmlGpuInstanceCreateComputeInstanceWithPlacement\0")
5607            .map(|sym| *sym);
5608        let nvmlComputeInstanceDestroy = __library
5609            .get(b"nvmlComputeInstanceDestroy\0")
5610            .map(|sym| *sym);
5611        let nvmlGpuInstanceGetComputeInstances = __library
5612            .get(b"nvmlGpuInstanceGetComputeInstances\0")
5613            .map(|sym| *sym);
5614        let nvmlGpuInstanceGetComputeInstanceById = __library
5615            .get(b"nvmlGpuInstanceGetComputeInstanceById\0")
5616            .map(|sym| *sym);
5617        let nvmlComputeInstanceGetInfo_v2 = __library
5618            .get(b"nvmlComputeInstanceGetInfo_v2\0")
5619            .map(|sym| *sym);
5620        let nvmlDeviceIsMigDeviceHandle = __library
5621            .get(b"nvmlDeviceIsMigDeviceHandle\0")
5622            .map(|sym| *sym);
5623        let nvmlDeviceGetGpuInstanceId = __library
5624            .get(b"nvmlDeviceGetGpuInstanceId\0")
5625            .map(|sym| *sym);
5626        let nvmlDeviceGetComputeInstanceId = __library
5627            .get(b"nvmlDeviceGetComputeInstanceId\0")
5628            .map(|sym| *sym);
5629        let nvmlDeviceGetMaxMigDeviceCount = __library
5630            .get(b"nvmlDeviceGetMaxMigDeviceCount\0")
5631            .map(|sym| *sym);
5632        let nvmlDeviceGetMigDeviceHandleByIndex = __library
5633            .get(b"nvmlDeviceGetMigDeviceHandleByIndex\0")
5634            .map(|sym| *sym);
5635        let nvmlDeviceGetDeviceHandleFromMigDeviceHandle = __library
5636            .get(b"nvmlDeviceGetDeviceHandleFromMigDeviceHandle\0")
5637            .map(|sym| *sym);
5638        let nvmlGpmMetricsGet = __library.get(b"nvmlGpmMetricsGet\0").map(|sym| *sym);
5639        let nvmlGpmSampleFree = __library.get(b"nvmlGpmSampleFree\0").map(|sym| *sym);
5640        let nvmlGpmSampleAlloc = __library.get(b"nvmlGpmSampleAlloc\0").map(|sym| *sym);
5641        let nvmlGpmSampleGet = __library.get(b"nvmlGpmSampleGet\0").map(|sym| *sym);
5642        let nvmlGpmMigSampleGet = __library.get(b"nvmlGpmMigSampleGet\0").map(|sym| *sym);
5643        let nvmlGpmQueryDeviceSupport = __library
5644            .get(b"nvmlGpmQueryDeviceSupport\0")
5645            .map(|sym| *sym);
5646        let nvmlGpmQueryIfStreamingEnabled = __library
5647            .get(b"nvmlGpmQueryIfStreamingEnabled\0")
5648            .map(|sym| *sym);
5649        let nvmlGpmSetStreamingEnabled = __library
5650            .get(b"nvmlGpmSetStreamingEnabled\0")
5651            .map(|sym| *sym);
5652        let nvmlDeviceGetCapabilities = __library
5653            .get(b"nvmlDeviceGetCapabilities\0")
5654            .map(|sym| *sym);
5655        let nvmlDeviceWorkloadPowerProfileGetProfilesInfo = __library
5656            .get(b"nvmlDeviceWorkloadPowerProfileGetProfilesInfo\0")
5657            .map(|sym| *sym);
5658        let nvmlDeviceWorkloadPowerProfileGetCurrentProfiles = __library
5659            .get(b"nvmlDeviceWorkloadPowerProfileGetCurrentProfiles\0")
5660            .map(|sym| *sym);
5661        let nvmlDeviceWorkloadPowerProfileSetRequestedProfiles = __library
5662            .get(b"nvmlDeviceWorkloadPowerProfileSetRequestedProfiles\0")
5663            .map(|sym| *sym);
5664        let nvmlDeviceWorkloadPowerProfileClearRequestedProfiles = __library
5665            .get(b"nvmlDeviceWorkloadPowerProfileClearRequestedProfiles\0")
5666            .map(|sym| *sym);
5667        let nvmlDevicePowerSmoothingActivatePresetProfile = __library
5668            .get(b"nvmlDevicePowerSmoothingActivatePresetProfile\0")
5669            .map(|sym| *sym);
5670        let nvmlDevicePowerSmoothingUpdatePresetProfileParam = __library
5671            .get(b"nvmlDevicePowerSmoothingUpdatePresetProfileParam\0")
5672            .map(|sym| *sym);
5673        let nvmlDevicePowerSmoothingSetState = __library
5674            .get(b"nvmlDevicePowerSmoothingSetState\0")
5675            .map(|sym| *sym);
5676        #[cfg(feature = "legacy-functions")]
5677        let nvmlInit = __library.get(b"nvmlInit\0").map(|sym| *sym);
5678        #[cfg(feature = "legacy-functions")]
5679        let nvmlDeviceGetCount = __library.get(b"nvmlDeviceGetCount\0").map(|sym| *sym);
5680        #[cfg(feature = "legacy-functions")]
5681        let nvmlDeviceGetHandleByIndex = __library
5682            .get(b"nvmlDeviceGetHandleByIndex\0")
5683            .map(|sym| *sym);
5684        #[cfg(feature = "legacy-functions")]
5685        let nvmlDeviceGetHandleByPciBusId = __library
5686            .get(b"nvmlDeviceGetHandleByPciBusId\0")
5687            .map(|sym| *sym);
5688        #[cfg(feature = "legacy-functions")]
5689        let nvmlDeviceGetPciInfo = __library.get(b"nvmlDeviceGetPciInfo\0").map(|sym| *sym);
5690        #[cfg(feature = "legacy-functions")]
5691        let nvmlDeviceGetPciInfo_v2 = __library.get(b"nvmlDeviceGetPciInfo_v2\0").map(|sym| *sym);
5692        #[cfg(feature = "legacy-functions")]
5693        let nvmlDeviceGetNvLinkRemotePciInfo = __library
5694            .get(b"nvmlDeviceGetNvLinkRemotePciInfo\0")
5695            .map(|sym| *sym);
5696        #[cfg(feature = "legacy-functions")]
5697        let nvmlDeviceGetGridLicensableFeatures = __library
5698            .get(b"nvmlDeviceGetGridLicensableFeatures\0")
5699            .map(|sym| *sym);
5700        #[cfg(feature = "legacy-functions")]
5701        let nvmlDeviceGetGridLicensableFeatures_v2 = __library
5702            .get(b"nvmlDeviceGetGridLicensableFeatures_v2\0")
5703            .map(|sym| *sym);
5704        #[cfg(feature = "legacy-functions")]
5705        let nvmlDeviceGetGridLicensableFeatures_v3 = __library
5706            .get(b"nvmlDeviceGetGridLicensableFeatures_v3\0")
5707            .map(|sym| *sym);
5708        #[cfg(feature = "legacy-functions")]
5709        let nvmlDeviceRemoveGpu = __library.get(b"nvmlDeviceRemoveGpu\0").map(|sym| *sym);
5710        #[cfg(feature = "legacy-functions")]
5711        let nvmlEventSetWait = __library.get(b"nvmlEventSetWait\0").map(|sym| *sym);
5712        #[cfg(feature = "legacy-functions")]
5713        let nvmlDeviceGetAttributes = __library.get(b"nvmlDeviceGetAttributes\0").map(|sym| *sym);
5714        #[cfg(feature = "legacy-functions")]
5715        let nvmlComputeInstanceGetInfo = __library
5716            .get(b"nvmlComputeInstanceGetInfo\0")
5717            .map(|sym| *sym);
5718        #[cfg(feature = "legacy-functions")]
5719        let nvmlDeviceGetComputeRunningProcesses = __library
5720            .get(b"nvmlDeviceGetComputeRunningProcesses\0")
5721            .map(|sym| *sym);
5722        #[cfg(feature = "legacy-functions")]
5723        let nvmlDeviceGetComputeRunningProcesses_v2 = __library
5724            .get(b"nvmlDeviceGetComputeRunningProcesses_v2\0")
5725            .map(|sym| *sym);
5726        #[cfg(feature = "legacy-functions")]
5727        let nvmlDeviceGetGraphicsRunningProcesses = __library
5728            .get(b"nvmlDeviceGetGraphicsRunningProcesses\0")
5729            .map(|sym| *sym);
5730        #[cfg(feature = "legacy-functions")]
5731        let nvmlDeviceGetGraphicsRunningProcesses_v2 = __library
5732            .get(b"nvmlDeviceGetGraphicsRunningProcesses_v2\0")
5733            .map(|sym| *sym);
5734        #[cfg(feature = "legacy-functions")]
5735        let nvmlDeviceGetMPSComputeRunningProcesses = __library
5736            .get(b"nvmlDeviceGetMPSComputeRunningProcesses\0")
5737            .map(|sym| *sym);
5738        #[cfg(feature = "legacy-functions")]
5739        let nvmlDeviceGetMPSComputeRunningProcesses_v2 = __library
5740            .get(b"nvmlDeviceGetMPSComputeRunningProcesses_v2\0")
5741            .map(|sym| *sym);
5742        #[cfg(feature = "legacy-functions")]
5743        let nvmlDeviceGetGpuInstancePossiblePlacements = __library
5744            .get(b"nvmlDeviceGetGpuInstancePossiblePlacements\0")
5745            .map(|sym| *sym);
5746        #[cfg(feature = "legacy-functions")]
5747        let nvmlVgpuInstanceGetLicenseInfo = __library
5748            .get(b"nvmlVgpuInstanceGetLicenseInfo\0")
5749            .map(|sym| *sym);
5750        let nvmlDeviceGetDriverModel = __library.get(b"nvmlDeviceGetDriverModel\0").map(|sym| *sym);
5751        Ok(NvmlLib {
5752            __library,
5753            nvmlInit_v2,
5754            nvmlInitWithFlags,
5755            nvmlShutdown,
5756            nvmlErrorString,
5757            nvmlSystemGetDriverVersion,
5758            nvmlSystemGetNVMLVersion,
5759            nvmlSystemGetCudaDriverVersion,
5760            nvmlSystemGetCudaDriverVersion_v2,
5761            nvmlSystemGetProcessName,
5762            nvmlSystemGetHicVersion,
5763            nvmlSystemGetTopologyGpuSet,
5764            nvmlSystemGetDriverBranch,
5765            nvmlUnitGetCount,
5766            nvmlUnitGetHandleByIndex,
5767            nvmlUnitGetUnitInfo,
5768            nvmlUnitGetLedState,
5769            nvmlUnitGetPsuInfo,
5770            nvmlUnitGetTemperature,
5771            nvmlUnitGetFanSpeedInfo,
5772            nvmlUnitGetDevices,
5773            nvmlDeviceGetCount_v2,
5774            nvmlDeviceGetAttributes_v2,
5775            nvmlDeviceGetHandleByIndex_v2,
5776            nvmlDeviceGetHandleBySerial,
5777            nvmlDeviceGetHandleByUUID,
5778            nvmlDeviceGetHandleByPciBusId_v2,
5779            nvmlDeviceGetName,
5780            nvmlDeviceGetBrand,
5781            nvmlDeviceGetIndex,
5782            nvmlDeviceGetSerial,
5783            nvmlDeviceGetModuleId,
5784            nvmlDeviceGetC2cModeInfoV,
5785            nvmlDeviceGetMemoryAffinity,
5786            nvmlDeviceGetCpuAffinityWithinScope,
5787            nvmlDeviceGetCpuAffinity,
5788            nvmlDeviceSetCpuAffinity,
5789            nvmlDeviceClearCpuAffinity,
5790            nvmlDeviceGetNumaNodeId,
5791            nvmlDeviceGetTopologyCommonAncestor,
5792            nvmlDeviceGetTopologyNearestGpus,
5793            nvmlDeviceGetP2PStatus,
5794            nvmlDeviceGetUUID,
5795            nvmlDeviceGetMinorNumber,
5796            nvmlDeviceGetBoardPartNumber,
5797            nvmlDeviceGetInforomVersion,
5798            nvmlDeviceGetInforomImageVersion,
5799            nvmlDeviceGetInforomConfigurationChecksum,
5800            nvmlDeviceValidateInforom,
5801            nvmlDeviceGetLastBBXFlushTime,
5802            nvmlDeviceGetDisplayMode,
5803            nvmlDeviceGetDisplayActive,
5804            nvmlDeviceGetPersistenceMode,
5805            nvmlDeviceGetPciInfoExt,
5806            nvmlDeviceGetPciInfo_v3,
5807            nvmlDeviceGetMaxPcieLinkGeneration,
5808            nvmlDeviceGetGpuMaxPcieLinkGeneration,
5809            nvmlDeviceGetMaxPcieLinkWidth,
5810            nvmlDeviceGetCurrPcieLinkGeneration,
5811            nvmlDeviceGetCurrPcieLinkWidth,
5812            nvmlDeviceGetPcieThroughput,
5813            nvmlDeviceGetPcieReplayCounter,
5814            nvmlDeviceGetClockInfo,
5815            nvmlDeviceGetMaxClockInfo,
5816            nvmlDeviceGetGpcClkVfOffset,
5817            nvmlDeviceGetApplicationsClock,
5818            nvmlDeviceGetDefaultApplicationsClock,
5819            nvmlDeviceGetClock,
5820            nvmlDeviceGetMaxCustomerBoostClock,
5821            nvmlDeviceGetSupportedMemoryClocks,
5822            nvmlDeviceGetSupportedGraphicsClocks,
5823            nvmlDeviceGetAutoBoostedClocksEnabled,
5824            nvmlDeviceGetFanSpeed,
5825            nvmlDeviceGetFanSpeed_v2,
5826            nvmlDeviceGetFanSpeedRPM,
5827            nvmlDeviceGetTargetFanSpeed,
5828            nvmlDeviceGetMinMaxFanSpeed,
5829            nvmlDeviceGetFanControlPolicy_v2,
5830            nvmlDeviceGetNumFans,
5831            nvmlDeviceGetTemperature,
5832            nvmlDeviceGetCoolerInfo,
5833            nvmlDeviceGetTemperatureV,
5834            nvmlDeviceGetTemperatureThreshold,
5835            nvmlDeviceGetMarginTemperature,
5836            nvmlDeviceGetThermalSettings,
5837            nvmlDeviceGetPerformanceState,
5838            nvmlDeviceGetCurrentClocksEventReasons,
5839            nvmlDeviceGetCurrentClocksThrottleReasons,
5840            nvmlDeviceGetSupportedClocksEventReasons,
5841            nvmlDeviceGetSupportedClocksThrottleReasons,
5842            nvmlDeviceGetPowerState,
5843            nvmlDeviceGetDynamicPstatesInfo,
5844            nvmlDeviceGetMemClkVfOffset,
5845            nvmlDeviceGetMinMaxClockOfPState,
5846            nvmlDeviceGetSupportedPerformanceStates,
5847            nvmlDeviceGetGpcClkMinMaxVfOffset,
5848            nvmlDeviceGetMemClkMinMaxVfOffset,
5849            nvmlDeviceGetClockOffsets,
5850            nvmlDeviceSetClockOffsets,
5851            nvmlDeviceGetPerformanceModes,
5852            nvmlDeviceGetCurrentClockFreqs,
5853            nvmlDeviceGetPowerManagementMode,
5854            nvmlDeviceGetPowerManagementLimit,
5855            nvmlDeviceGetPowerManagementLimitConstraints,
5856            nvmlDeviceGetPowerManagementDefaultLimit,
5857            nvmlDeviceGetPowerUsage,
5858            nvmlDeviceGetTotalEnergyConsumption,
5859            nvmlDeviceGetEnforcedPowerLimit,
5860            nvmlDeviceGetGpuOperationMode,
5861            nvmlDeviceGetMemoryInfo,
5862            nvmlDeviceGetMemoryInfo_v2,
5863            nvmlDeviceGetComputeMode,
5864            nvmlDeviceGetCudaComputeCapability,
5865            nvmlDeviceGetDramEncryptionMode,
5866            nvmlDeviceSetDramEncryptionMode,
5867            nvmlDeviceGetEccMode,
5868            nvmlDeviceGetDefaultEccMode,
5869            nvmlDeviceGetBoardId,
5870            nvmlDeviceGetMultiGpuBoard,
5871            nvmlDeviceGetTotalEccErrors,
5872            nvmlDeviceGetDetailedEccErrors,
5873            nvmlDeviceGetMemoryErrorCounter,
5874            nvmlDeviceGetUtilizationRates,
5875            nvmlDeviceGetEncoderUtilization,
5876            nvmlDeviceGetEncoderCapacity,
5877            nvmlDeviceGetEncoderStats,
5878            nvmlDeviceGetEncoderSessions,
5879            nvmlDeviceGetDecoderUtilization,
5880            nvmlDeviceGetJpgUtilization,
5881            nvmlDeviceGetOfaUtilization,
5882            nvmlDeviceGetFBCStats,
5883            nvmlDeviceGetFBCSessions,
5884            nvmlDeviceGetDriverModel_v2,
5885            nvmlDeviceGetVbiosVersion,
5886            nvmlDeviceGetBridgeChipInfo,
5887            nvmlDeviceGetComputeRunningProcesses_v3,
5888            nvmlDeviceGetGraphicsRunningProcesses_v3,
5889            nvmlDeviceGetMPSComputeRunningProcesses_v3,
5890            nvmlDeviceGetRunningProcessDetailList,
5891            nvmlDeviceOnSameBoard,
5892            nvmlDeviceGetAPIRestriction,
5893            nvmlDeviceGetSamples,
5894            nvmlDeviceGetBAR1MemoryInfo,
5895            nvmlDeviceGetViolationStatus,
5896            nvmlDeviceGetIrqNum,
5897            nvmlDeviceGetNumGpuCores,
5898            nvmlDeviceGetPowerSource,
5899            nvmlDeviceGetMemoryBusWidth,
5900            nvmlDeviceGetPcieLinkMaxSpeed,
5901            nvmlDeviceGetPcieSpeed,
5902            nvmlDeviceGetAdaptiveClockInfoStatus,
5903            nvmlDeviceGetBusType,
5904            nvmlDeviceGetGpuFabricInfo,
5905            nvmlDeviceGetGpuFabricInfoV,
5906            nvmlSystemGetConfComputeCapabilities,
5907            nvmlSystemGetConfComputeState,
5908            nvmlDeviceGetConfComputeMemSizeInfo,
5909            nvmlSystemGetConfComputeGpusReadyState,
5910            nvmlDeviceGetConfComputeProtectedMemoryUsage,
5911            nvmlDeviceGetConfComputeGpuCertificate,
5912            nvmlDeviceGetConfComputeGpuAttestationReport,
5913            nvmlSystemGetConfComputeKeyRotationThresholdInfo,
5914            nvmlDeviceSetConfComputeUnprotectedMemSize,
5915            nvmlSystemSetConfComputeGpusReadyState,
5916            nvmlSystemSetConfComputeKeyRotationThresholdInfo,
5917            nvmlSystemGetConfComputeSettings,
5918            nvmlDeviceGetGspFirmwareVersion,
5919            nvmlDeviceGetGspFirmwareMode,
5920            nvmlDeviceGetSramEccErrorStatus,
5921            nvmlDeviceGetAccountingMode,
5922            nvmlDeviceGetAccountingStats,
5923            nvmlDeviceGetAccountingPids,
5924            nvmlDeviceGetAccountingBufferSize,
5925            nvmlDeviceGetRetiredPages,
5926            nvmlDeviceGetRetiredPages_v2,
5927            nvmlDeviceGetRetiredPagesPendingStatus,
5928            nvmlDeviceGetRemappedRows,
5929            nvmlDeviceGetRowRemapperHistogram,
5930            nvmlDeviceGetArchitecture,
5931            nvmlDeviceGetClkMonStatus,
5932            nvmlDeviceGetProcessUtilization,
5933            nvmlDeviceGetProcessesUtilizationInfo,
5934            nvmlDeviceGetPlatformInfo,
5935            nvmlUnitSetLedState,
5936            nvmlDeviceSetPersistenceMode,
5937            nvmlDeviceSetComputeMode,
5938            nvmlDeviceSetEccMode,
5939            nvmlDeviceClearEccErrorCounts,
5940            nvmlDeviceSetDriverModel,
5941            nvmlDeviceSetGpuLockedClocks,
5942            nvmlDeviceResetGpuLockedClocks,
5943            nvmlDeviceSetMemoryLockedClocks,
5944            nvmlDeviceResetMemoryLockedClocks,
5945            nvmlDeviceSetApplicationsClocks,
5946            nvmlDeviceResetApplicationsClocks,
5947            nvmlDeviceSetAutoBoostedClocksEnabled,
5948            nvmlDeviceSetDefaultAutoBoostedClocksEnabled,
5949            nvmlDeviceSetDefaultFanSpeed_v2,
5950            nvmlDeviceSetFanControlPolicy,
5951            nvmlDeviceSetTemperatureThreshold,
5952            nvmlDeviceSetPowerManagementLimit,
5953            nvmlDeviceSetGpuOperationMode,
5954            nvmlDeviceSetAPIRestriction,
5955            nvmlDeviceSetFanSpeed_v2,
5956            nvmlDeviceSetGpcClkVfOffset,
5957            nvmlDeviceSetMemClkVfOffset,
5958            nvmlDeviceSetAccountingMode,
5959            nvmlDeviceClearAccountingPids,
5960            nvmlDeviceSetPowerManagementLimit_v2,
5961            nvmlDeviceGetNvLinkState,
5962            nvmlDeviceGetNvLinkVersion,
5963            nvmlDeviceGetNvLinkCapability,
5964            nvmlDeviceGetNvLinkRemotePciInfo_v2,
5965            nvmlDeviceGetNvLinkErrorCounter,
5966            nvmlDeviceResetNvLinkErrorCounters,
5967            nvmlDeviceSetNvLinkUtilizationControl,
5968            nvmlDeviceGetNvLinkUtilizationControl,
5969            nvmlDeviceGetNvLinkUtilizationCounter,
5970            nvmlDeviceFreezeNvLinkUtilizationCounter,
5971            nvmlDeviceResetNvLinkUtilizationCounter,
5972            nvmlDeviceGetNvLinkRemoteDeviceType,
5973            nvmlDeviceSetNvLinkDeviceLowPowerThreshold,
5974            nvmlSystemSetNvlinkBwMode,
5975            nvmlSystemGetNvlinkBwMode,
5976            nvmlDeviceGetNvlinkSupportedBwModes,
5977            nvmlDeviceGetNvlinkBwMode,
5978            nvmlDeviceSetNvlinkBwMode,
5979            nvmlEventSetCreate,
5980            nvmlDeviceRegisterEvents,
5981            nvmlDeviceGetSupportedEventTypes,
5982            nvmlEventSetWait_v2,
5983            nvmlEventSetFree,
5984            nvmlDeviceModifyDrainState,
5985            nvmlDeviceQueryDrainState,
5986            nvmlDeviceRemoveGpu_v2,
5987            nvmlDeviceDiscoverGpus,
5988            nvmlDeviceGetFieldValues,
5989            nvmlDeviceClearFieldValues,
5990            nvmlDeviceGetVirtualizationMode,
5991            nvmlDeviceGetHostVgpuMode,
5992            nvmlDeviceSetVirtualizationMode,
5993            nvmlDeviceGetVgpuHeterogeneousMode,
5994            nvmlDeviceSetVgpuHeterogeneousMode,
5995            nvmlVgpuInstanceGetPlacementId,
5996            nvmlDeviceGetVgpuTypeSupportedPlacements,
5997            nvmlDeviceGetVgpuTypeCreatablePlacements,
5998            nvmlVgpuTypeGetGspHeapSize,
5999            nvmlVgpuTypeGetFbReservation,
6000            nvmlVgpuInstanceGetRuntimeStateSize,
6001            nvmlDeviceSetVgpuCapabilities,
6002            nvmlDeviceGetGridLicensableFeatures_v4,
6003            nvmlGetVgpuDriverCapabilities,
6004            nvmlDeviceGetVgpuCapabilities,
6005            nvmlDeviceGetSupportedVgpus,
6006            nvmlDeviceGetCreatableVgpus,
6007            nvmlVgpuTypeGetClass,
6008            nvmlVgpuTypeGetName,
6009            nvmlVgpuTypeGetGpuInstanceProfileId,
6010            nvmlVgpuTypeGetDeviceID,
6011            nvmlVgpuTypeGetFramebufferSize,
6012            nvmlVgpuTypeGetNumDisplayHeads,
6013            nvmlVgpuTypeGetResolution,
6014            nvmlVgpuTypeGetLicense,
6015            nvmlVgpuTypeGetFrameRateLimit,
6016            nvmlVgpuTypeGetMaxInstances,
6017            nvmlVgpuTypeGetMaxInstancesPerVm,
6018            nvmlVgpuTypeGetBAR1Info,
6019            nvmlDeviceGetActiveVgpus,
6020            nvmlVgpuInstanceGetVmID,
6021            nvmlVgpuInstanceGetUUID,
6022            nvmlVgpuInstanceGetVmDriverVersion,
6023            nvmlVgpuInstanceGetFbUsage,
6024            nvmlVgpuInstanceGetLicenseStatus,
6025            nvmlVgpuInstanceGetType,
6026            nvmlVgpuInstanceGetFrameRateLimit,
6027            nvmlVgpuInstanceGetEccMode,
6028            nvmlVgpuInstanceGetEncoderCapacity,
6029            nvmlVgpuInstanceSetEncoderCapacity,
6030            nvmlVgpuInstanceGetEncoderStats,
6031            nvmlVgpuInstanceGetEncoderSessions,
6032            nvmlVgpuInstanceGetFBCStats,
6033            nvmlVgpuInstanceGetFBCSessions,
6034            nvmlVgpuInstanceGetGpuInstanceId,
6035            nvmlVgpuInstanceGetGpuPciId,
6036            nvmlVgpuTypeGetCapabilities,
6037            nvmlVgpuInstanceGetMdevUUID,
6038            nvmlVgpuInstanceGetMetadata,
6039            nvmlDeviceGetVgpuMetadata,
6040            nvmlGetVgpuCompatibility,
6041            nvmlDeviceGetPgpuMetadataString,
6042            nvmlDeviceGetVgpuSchedulerLog,
6043            nvmlDeviceGetVgpuSchedulerState,
6044            nvmlDeviceGetVgpuSchedulerCapabilities,
6045            nvmlDeviceSetVgpuSchedulerState,
6046            nvmlGetVgpuVersion,
6047            nvmlSetVgpuVersion,
6048            nvmlDeviceGetVgpuUtilization,
6049            nvmlDeviceGetVgpuInstancesUtilizationInfo,
6050            nvmlDeviceGetVgpuProcessUtilization,
6051            nvmlDeviceGetVgpuProcessesUtilizationInfo,
6052            nvmlVgpuInstanceGetAccountingMode,
6053            nvmlVgpuInstanceGetAccountingPids,
6054            nvmlVgpuInstanceGetAccountingStats,
6055            nvmlVgpuInstanceClearAccountingPids,
6056            nvmlVgpuInstanceGetLicenseInfo_v2,
6057            nvmlGetExcludedDeviceCount,
6058            nvmlGetExcludedDeviceInfoByIndex,
6059            nvmlDeviceSetMigMode,
6060            nvmlDeviceGetMigMode,
6061            nvmlDeviceGetGpuInstanceProfileInfo,
6062            nvmlDeviceGetGpuInstanceProfileInfoV,
6063            nvmlDeviceGetGpuInstancePossiblePlacements_v2,
6064            nvmlDeviceGetGpuInstanceRemainingCapacity,
6065            nvmlDeviceCreateGpuInstance,
6066            nvmlDeviceCreateGpuInstanceWithPlacement,
6067            nvmlGpuInstanceDestroy,
6068            nvmlDeviceGetGpuInstances,
6069            nvmlDeviceGetGpuInstanceById,
6070            nvmlGpuInstanceGetInfo,
6071            nvmlGpuInstanceGetComputeInstanceProfileInfo,
6072            nvmlGpuInstanceGetComputeInstanceProfileInfoV,
6073            nvmlGpuInstanceGetComputeInstanceRemainingCapacity,
6074            nvmlGpuInstanceGetComputeInstancePossiblePlacements,
6075            nvmlGpuInstanceCreateComputeInstance,
6076            nvmlGpuInstanceCreateComputeInstanceWithPlacement,
6077            nvmlComputeInstanceDestroy,
6078            nvmlGpuInstanceGetComputeInstances,
6079            nvmlGpuInstanceGetComputeInstanceById,
6080            nvmlComputeInstanceGetInfo_v2,
6081            nvmlDeviceIsMigDeviceHandle,
6082            nvmlDeviceGetGpuInstanceId,
6083            nvmlDeviceGetComputeInstanceId,
6084            nvmlDeviceGetMaxMigDeviceCount,
6085            nvmlDeviceGetMigDeviceHandleByIndex,
6086            nvmlDeviceGetDeviceHandleFromMigDeviceHandle,
6087            nvmlGpmMetricsGet,
6088            nvmlGpmSampleFree,
6089            nvmlGpmSampleAlloc,
6090            nvmlGpmSampleGet,
6091            nvmlGpmMigSampleGet,
6092            nvmlGpmQueryDeviceSupport,
6093            nvmlGpmQueryIfStreamingEnabled,
6094            nvmlGpmSetStreamingEnabled,
6095            nvmlDeviceGetCapabilities,
6096            nvmlDeviceWorkloadPowerProfileGetProfilesInfo,
6097            nvmlDeviceWorkloadPowerProfileGetCurrentProfiles,
6098            nvmlDeviceWorkloadPowerProfileSetRequestedProfiles,
6099            nvmlDeviceWorkloadPowerProfileClearRequestedProfiles,
6100            nvmlDevicePowerSmoothingActivatePresetProfile,
6101            nvmlDevicePowerSmoothingUpdatePresetProfileParam,
6102            nvmlDevicePowerSmoothingSetState,
6103            #[cfg(feature = "legacy-functions")]
6104            nvmlInit,
6105            #[cfg(feature = "legacy-functions")]
6106            nvmlDeviceGetCount,
6107            #[cfg(feature = "legacy-functions")]
6108            nvmlDeviceGetHandleByIndex,
6109            #[cfg(feature = "legacy-functions")]
6110            nvmlDeviceGetHandleByPciBusId,
6111            #[cfg(feature = "legacy-functions")]
6112            nvmlDeviceGetPciInfo,
6113            #[cfg(feature = "legacy-functions")]
6114            nvmlDeviceGetPciInfo_v2,
6115            #[cfg(feature = "legacy-functions")]
6116            nvmlDeviceGetNvLinkRemotePciInfo,
6117            #[cfg(feature = "legacy-functions")]
6118            nvmlDeviceGetGridLicensableFeatures,
6119            #[cfg(feature = "legacy-functions")]
6120            nvmlDeviceGetGridLicensableFeatures_v2,
6121            #[cfg(feature = "legacy-functions")]
6122            nvmlDeviceGetGridLicensableFeatures_v3,
6123            #[cfg(feature = "legacy-functions")]
6124            nvmlDeviceRemoveGpu,
6125            #[cfg(feature = "legacy-functions")]
6126            nvmlEventSetWait,
6127            #[cfg(feature = "legacy-functions")]
6128            nvmlDeviceGetAttributes,
6129            #[cfg(feature = "legacy-functions")]
6130            nvmlComputeInstanceGetInfo,
6131            #[cfg(feature = "legacy-functions")]
6132            nvmlDeviceGetComputeRunningProcesses,
6133            #[cfg(feature = "legacy-functions")]
6134            nvmlDeviceGetComputeRunningProcesses_v2,
6135            #[cfg(feature = "legacy-functions")]
6136            nvmlDeviceGetGraphicsRunningProcesses,
6137            #[cfg(feature = "legacy-functions")]
6138            nvmlDeviceGetGraphicsRunningProcesses_v2,
6139            #[cfg(feature = "legacy-functions")]
6140            nvmlDeviceGetMPSComputeRunningProcesses,
6141            #[cfg(feature = "legacy-functions")]
6142            nvmlDeviceGetMPSComputeRunningProcesses_v2,
6143            #[cfg(feature = "legacy-functions")]
6144            nvmlDeviceGetGpuInstancePossiblePlacements,
6145            #[cfg(feature = "legacy-functions")]
6146            nvmlVgpuInstanceGetLicenseInfo,
6147            nvmlDeviceGetDriverModel,
6148        })
6149    }
6150    pub unsafe fn nvmlInit_v2(&self) -> nvmlReturn_t {
6151        (self
6152            .nvmlInit_v2
6153            .as_ref()
6154            .expect("Expected function, got error."))()
6155    }
6156    pub unsafe fn nvmlInitWithFlags(&self, flags: raw::c_uint) -> nvmlReturn_t {
6157        (self
6158            .nvmlInitWithFlags
6159            .as_ref()
6160            .expect("Expected function, got error."))(flags)
6161    }
6162    pub unsafe fn nvmlShutdown(&self) -> nvmlReturn_t {
6163        (self
6164            .nvmlShutdown
6165            .as_ref()
6166            .expect("Expected function, got error."))()
6167    }
6168    pub unsafe fn nvmlErrorString(&self, result: nvmlReturn_t) -> *const raw::c_char {
6169        (self
6170            .nvmlErrorString
6171            .as_ref()
6172            .expect("Expected function, got error."))(result)
6173    }
6174    pub unsafe fn nvmlSystemGetDriverVersion(
6175        &self,
6176        version: *mut raw::c_char,
6177        length: raw::c_uint,
6178    ) -> nvmlReturn_t {
6179        (self
6180            .nvmlSystemGetDriverVersion
6181            .as_ref()
6182            .expect("Expected function, got error."))(version, length)
6183    }
6184    pub unsafe fn nvmlSystemGetNVMLVersion(
6185        &self,
6186        version: *mut raw::c_char,
6187        length: raw::c_uint,
6188    ) -> nvmlReturn_t {
6189        (self
6190            .nvmlSystemGetNVMLVersion
6191            .as_ref()
6192            .expect("Expected function, got error."))(version, length)
6193    }
6194    pub unsafe fn nvmlSystemGetCudaDriverVersion(
6195        &self,
6196        cudaDriverVersion: *mut raw::c_int,
6197    ) -> nvmlReturn_t {
6198        (self
6199            .nvmlSystemGetCudaDriverVersion
6200            .as_ref()
6201            .expect("Expected function, got error."))(cudaDriverVersion)
6202    }
6203    pub unsafe fn nvmlSystemGetCudaDriverVersion_v2(
6204        &self,
6205        cudaDriverVersion: *mut raw::c_int,
6206    ) -> nvmlReturn_t {
6207        (self
6208            .nvmlSystemGetCudaDriverVersion_v2
6209            .as_ref()
6210            .expect("Expected function, got error."))(cudaDriverVersion)
6211    }
6212    pub unsafe fn nvmlSystemGetProcessName(
6213        &self,
6214        pid: raw::c_uint,
6215        name: *mut raw::c_char,
6216        length: raw::c_uint,
6217    ) -> nvmlReturn_t {
6218        (self
6219            .nvmlSystemGetProcessName
6220            .as_ref()
6221            .expect("Expected function, got error."))(pid, name, length)
6222    }
6223    pub unsafe fn nvmlSystemGetHicVersion(
6224        &self,
6225        hwbcCount: *mut raw::c_uint,
6226        hwbcEntries: *mut nvmlHwbcEntry_t,
6227    ) -> nvmlReturn_t {
6228        (self
6229            .nvmlSystemGetHicVersion
6230            .as_ref()
6231            .expect("Expected function, got error."))(hwbcCount, hwbcEntries)
6232    }
6233    pub unsafe fn nvmlSystemGetTopologyGpuSet(
6234        &self,
6235        cpuNumber: raw::c_uint,
6236        count: *mut raw::c_uint,
6237        deviceArray: *mut nvmlDevice_t,
6238    ) -> nvmlReturn_t {
6239        (self
6240            .nvmlSystemGetTopologyGpuSet
6241            .as_ref()
6242            .expect("Expected function, got error."))(cpuNumber, count, deviceArray)
6243    }
6244    pub unsafe fn nvmlSystemGetDriverBranch(
6245        &self,
6246        branchInfo: *mut nvmlSystemDriverBranchInfo_t,
6247        length: raw::c_uint,
6248    ) -> nvmlReturn_t {
6249        (self
6250            .nvmlSystemGetDriverBranch
6251            .as_ref()
6252            .expect("Expected function, got error."))(branchInfo, length)
6253    }
6254    pub unsafe fn nvmlUnitGetCount(&self, unitCount: *mut raw::c_uint) -> nvmlReturn_t {
6255        (self
6256            .nvmlUnitGetCount
6257            .as_ref()
6258            .expect("Expected function, got error."))(unitCount)
6259    }
6260    pub unsafe fn nvmlUnitGetHandleByIndex(
6261        &self,
6262        index: raw::c_uint,
6263        unit: *mut nvmlUnit_t,
6264    ) -> nvmlReturn_t {
6265        (self
6266            .nvmlUnitGetHandleByIndex
6267            .as_ref()
6268            .expect("Expected function, got error."))(index, unit)
6269    }
6270    pub unsafe fn nvmlUnitGetUnitInfo(
6271        &self,
6272        unit: nvmlUnit_t,
6273        info: *mut nvmlUnitInfo_t,
6274    ) -> nvmlReturn_t {
6275        (self
6276            .nvmlUnitGetUnitInfo
6277            .as_ref()
6278            .expect("Expected function, got error."))(unit, info)
6279    }
6280    pub unsafe fn nvmlUnitGetLedState(
6281        &self,
6282        unit: nvmlUnit_t,
6283        state: *mut nvmlLedState_t,
6284    ) -> nvmlReturn_t {
6285        (self
6286            .nvmlUnitGetLedState
6287            .as_ref()
6288            .expect("Expected function, got error."))(unit, state)
6289    }
6290    pub unsafe fn nvmlUnitGetPsuInfo(
6291        &self,
6292        unit: nvmlUnit_t,
6293        psu: *mut nvmlPSUInfo_t,
6294    ) -> nvmlReturn_t {
6295        (self
6296            .nvmlUnitGetPsuInfo
6297            .as_ref()
6298            .expect("Expected function, got error."))(unit, psu)
6299    }
6300    pub unsafe fn nvmlUnitGetTemperature(
6301        &self,
6302        unit: nvmlUnit_t,
6303        type_: raw::c_uint,
6304        temp: *mut raw::c_uint,
6305    ) -> nvmlReturn_t {
6306        (self
6307            .nvmlUnitGetTemperature
6308            .as_ref()
6309            .expect("Expected function, got error."))(unit, type_, temp)
6310    }
6311    pub unsafe fn nvmlUnitGetFanSpeedInfo(
6312        &self,
6313        unit: nvmlUnit_t,
6314        fanSpeeds: *mut nvmlUnitFanSpeeds_t,
6315    ) -> nvmlReturn_t {
6316        (self
6317            .nvmlUnitGetFanSpeedInfo
6318            .as_ref()
6319            .expect("Expected function, got error."))(unit, fanSpeeds)
6320    }
6321    pub unsafe fn nvmlUnitGetDevices(
6322        &self,
6323        unit: nvmlUnit_t,
6324        deviceCount: *mut raw::c_uint,
6325        devices: *mut nvmlDevice_t,
6326    ) -> nvmlReturn_t {
6327        (self
6328            .nvmlUnitGetDevices
6329            .as_ref()
6330            .expect("Expected function, got error."))(unit, deviceCount, devices)
6331    }
6332    pub unsafe fn nvmlDeviceGetCount_v2(&self, deviceCount: *mut raw::c_uint) -> nvmlReturn_t {
6333        (self
6334            .nvmlDeviceGetCount_v2
6335            .as_ref()
6336            .expect("Expected function, got error."))(deviceCount)
6337    }
6338    pub unsafe fn nvmlDeviceGetAttributes_v2(
6339        &self,
6340        device: nvmlDevice_t,
6341        attributes: *mut nvmlDeviceAttributes_t,
6342    ) -> nvmlReturn_t {
6343        (self
6344            .nvmlDeviceGetAttributes_v2
6345            .as_ref()
6346            .expect("Expected function, got error."))(device, attributes)
6347    }
6348    pub unsafe fn nvmlDeviceGetHandleByIndex_v2(
6349        &self,
6350        index: raw::c_uint,
6351        device: *mut nvmlDevice_t,
6352    ) -> nvmlReturn_t {
6353        (self
6354            .nvmlDeviceGetHandleByIndex_v2
6355            .as_ref()
6356            .expect("Expected function, got error."))(index, device)
6357    }
6358    pub unsafe fn nvmlDeviceGetHandleBySerial(
6359        &self,
6360        serial: *const raw::c_char,
6361        device: *mut nvmlDevice_t,
6362    ) -> nvmlReturn_t {
6363        (self
6364            .nvmlDeviceGetHandleBySerial
6365            .as_ref()
6366            .expect("Expected function, got error."))(serial, device)
6367    }
6368    pub unsafe fn nvmlDeviceGetHandleByUUID(
6369        &self,
6370        uuid: *const raw::c_char,
6371        device: *mut nvmlDevice_t,
6372    ) -> nvmlReturn_t {
6373        (self
6374            .nvmlDeviceGetHandleByUUID
6375            .as_ref()
6376            .expect("Expected function, got error."))(uuid, device)
6377    }
6378    pub unsafe fn nvmlDeviceGetHandleByPciBusId_v2(
6379        &self,
6380        pciBusId: *const raw::c_char,
6381        device: *mut nvmlDevice_t,
6382    ) -> nvmlReturn_t {
6383        (self
6384            .nvmlDeviceGetHandleByPciBusId_v2
6385            .as_ref()
6386            .expect("Expected function, got error."))(pciBusId, device)
6387    }
6388    pub unsafe fn nvmlDeviceGetName(
6389        &self,
6390        device: nvmlDevice_t,
6391        name: *mut raw::c_char,
6392        length: raw::c_uint,
6393    ) -> nvmlReturn_t {
6394        (self
6395            .nvmlDeviceGetName
6396            .as_ref()
6397            .expect("Expected function, got error."))(device, name, length)
6398    }
6399    pub unsafe fn nvmlDeviceGetBrand(
6400        &self,
6401        device: nvmlDevice_t,
6402        type_: *mut nvmlBrandType_t,
6403    ) -> nvmlReturn_t {
6404        (self
6405            .nvmlDeviceGetBrand
6406            .as_ref()
6407            .expect("Expected function, got error."))(device, type_)
6408    }
6409    pub unsafe fn nvmlDeviceGetIndex(
6410        &self,
6411        device: nvmlDevice_t,
6412        index: *mut raw::c_uint,
6413    ) -> nvmlReturn_t {
6414        (self
6415            .nvmlDeviceGetIndex
6416            .as_ref()
6417            .expect("Expected function, got error."))(device, index)
6418    }
6419    pub unsafe fn nvmlDeviceGetSerial(
6420        &self,
6421        device: nvmlDevice_t,
6422        serial: *mut raw::c_char,
6423        length: raw::c_uint,
6424    ) -> nvmlReturn_t {
6425        (self
6426            .nvmlDeviceGetSerial
6427            .as_ref()
6428            .expect("Expected function, got error."))(device, serial, length)
6429    }
6430    pub unsafe fn nvmlDeviceGetModuleId(
6431        &self,
6432        device: nvmlDevice_t,
6433        moduleId: *mut raw::c_uint,
6434    ) -> nvmlReturn_t {
6435        (self
6436            .nvmlDeviceGetModuleId
6437            .as_ref()
6438            .expect("Expected function, got error."))(device, moduleId)
6439    }
6440    pub unsafe fn nvmlDeviceGetC2cModeInfoV(
6441        &self,
6442        device: nvmlDevice_t,
6443        c2cModeInfo: *mut nvmlC2cModeInfo_v1_t,
6444    ) -> nvmlReturn_t {
6445        (self
6446            .nvmlDeviceGetC2cModeInfoV
6447            .as_ref()
6448            .expect("Expected function, got error."))(device, c2cModeInfo)
6449    }
6450    pub unsafe fn nvmlDeviceGetMemoryAffinity(
6451        &self,
6452        device: nvmlDevice_t,
6453        nodeSetSize: raw::c_uint,
6454        nodeSet: *mut raw::c_ulong,
6455        scope: nvmlAffinityScope_t,
6456    ) -> nvmlReturn_t {
6457        (self
6458            .nvmlDeviceGetMemoryAffinity
6459            .as_ref()
6460            .expect("Expected function, got error."))(device, nodeSetSize, nodeSet, scope)
6461    }
6462    pub unsafe fn nvmlDeviceGetCpuAffinityWithinScope(
6463        &self,
6464        device: nvmlDevice_t,
6465        cpuSetSize: raw::c_uint,
6466        cpuSet: *mut raw::c_ulong,
6467        scope: nvmlAffinityScope_t,
6468    ) -> nvmlReturn_t {
6469        (self
6470            .nvmlDeviceGetCpuAffinityWithinScope
6471            .as_ref()
6472            .expect("Expected function, got error."))(device, cpuSetSize, cpuSet, scope)
6473    }
6474    pub unsafe fn nvmlDeviceGetCpuAffinity(
6475        &self,
6476        device: nvmlDevice_t,
6477        cpuSetSize: raw::c_uint,
6478        cpuSet: *mut raw::c_ulong,
6479    ) -> nvmlReturn_t {
6480        (self
6481            .nvmlDeviceGetCpuAffinity
6482            .as_ref()
6483            .expect("Expected function, got error."))(device, cpuSetSize, cpuSet)
6484    }
6485    pub unsafe fn nvmlDeviceSetCpuAffinity(&self, device: nvmlDevice_t) -> nvmlReturn_t {
6486        (self
6487            .nvmlDeviceSetCpuAffinity
6488            .as_ref()
6489            .expect("Expected function, got error."))(device)
6490    }
6491    pub unsafe fn nvmlDeviceClearCpuAffinity(&self, device: nvmlDevice_t) -> nvmlReturn_t {
6492        (self
6493            .nvmlDeviceClearCpuAffinity
6494            .as_ref()
6495            .expect("Expected function, got error."))(device)
6496    }
6497    pub unsafe fn nvmlDeviceGetNumaNodeId(
6498        &self,
6499        device: nvmlDevice_t,
6500        node: *mut raw::c_uint,
6501    ) -> nvmlReturn_t {
6502        (self
6503            .nvmlDeviceGetNumaNodeId
6504            .as_ref()
6505            .expect("Expected function, got error."))(device, node)
6506    }
6507    pub unsafe fn nvmlDeviceGetTopologyCommonAncestor(
6508        &self,
6509        device1: nvmlDevice_t,
6510        device2: nvmlDevice_t,
6511        pathInfo: *mut nvmlGpuTopologyLevel_t,
6512    ) -> nvmlReturn_t {
6513        (self
6514            .nvmlDeviceGetTopologyCommonAncestor
6515            .as_ref()
6516            .expect("Expected function, got error."))(device1, device2, pathInfo)
6517    }
6518    pub unsafe fn nvmlDeviceGetTopologyNearestGpus(
6519        &self,
6520        device: nvmlDevice_t,
6521        level: nvmlGpuTopologyLevel_t,
6522        count: *mut raw::c_uint,
6523        deviceArray: *mut nvmlDevice_t,
6524    ) -> nvmlReturn_t {
6525        (self
6526            .nvmlDeviceGetTopologyNearestGpus
6527            .as_ref()
6528            .expect("Expected function, got error."))(device, level, count, deviceArray)
6529    }
6530    pub unsafe fn nvmlDeviceGetP2PStatus(
6531        &self,
6532        device1: nvmlDevice_t,
6533        device2: nvmlDevice_t,
6534        p2pIndex: nvmlGpuP2PCapsIndex_t,
6535        p2pStatus: *mut nvmlGpuP2PStatus_t,
6536    ) -> nvmlReturn_t {
6537        (self
6538            .nvmlDeviceGetP2PStatus
6539            .as_ref()
6540            .expect("Expected function, got error."))(device1, device2, p2pIndex, p2pStatus)
6541    }
6542    pub unsafe fn nvmlDeviceGetUUID(
6543        &self,
6544        device: nvmlDevice_t,
6545        uuid: *mut raw::c_char,
6546        length: raw::c_uint,
6547    ) -> nvmlReturn_t {
6548        (self
6549            .nvmlDeviceGetUUID
6550            .as_ref()
6551            .expect("Expected function, got error."))(device, uuid, length)
6552    }
6553    pub unsafe fn nvmlDeviceGetMinorNumber(
6554        &self,
6555        device: nvmlDevice_t,
6556        minorNumber: *mut raw::c_uint,
6557    ) -> nvmlReturn_t {
6558        (self
6559            .nvmlDeviceGetMinorNumber
6560            .as_ref()
6561            .expect("Expected function, got error."))(device, minorNumber)
6562    }
6563    pub unsafe fn nvmlDeviceGetBoardPartNumber(
6564        &self,
6565        device: nvmlDevice_t,
6566        partNumber: *mut raw::c_char,
6567        length: raw::c_uint,
6568    ) -> nvmlReturn_t {
6569        (self
6570            .nvmlDeviceGetBoardPartNumber
6571            .as_ref()
6572            .expect("Expected function, got error."))(device, partNumber, length)
6573    }
6574    pub unsafe fn nvmlDeviceGetInforomVersion(
6575        &self,
6576        device: nvmlDevice_t,
6577        object: nvmlInforomObject_t,
6578        version: *mut raw::c_char,
6579        length: raw::c_uint,
6580    ) -> nvmlReturn_t {
6581        (self
6582            .nvmlDeviceGetInforomVersion
6583            .as_ref()
6584            .expect("Expected function, got error."))(device, object, version, length)
6585    }
6586    pub unsafe fn nvmlDeviceGetInforomImageVersion(
6587        &self,
6588        device: nvmlDevice_t,
6589        version: *mut raw::c_char,
6590        length: raw::c_uint,
6591    ) -> nvmlReturn_t {
6592        (self
6593            .nvmlDeviceGetInforomImageVersion
6594            .as_ref()
6595            .expect("Expected function, got error."))(device, version, length)
6596    }
6597    pub unsafe fn nvmlDeviceGetInforomConfigurationChecksum(
6598        &self,
6599        device: nvmlDevice_t,
6600        checksum: *mut raw::c_uint,
6601    ) -> nvmlReturn_t {
6602        (self
6603            .nvmlDeviceGetInforomConfigurationChecksum
6604            .as_ref()
6605            .expect("Expected function, got error."))(device, checksum)
6606    }
6607    pub unsafe fn nvmlDeviceValidateInforom(&self, device: nvmlDevice_t) -> nvmlReturn_t {
6608        (self
6609            .nvmlDeviceValidateInforom
6610            .as_ref()
6611            .expect("Expected function, got error."))(device)
6612    }
6613    pub unsafe fn nvmlDeviceGetLastBBXFlushTime(
6614        &self,
6615        device: nvmlDevice_t,
6616        timestamp: *mut raw::c_ulonglong,
6617        durationUs: *mut raw::c_ulong,
6618    ) -> nvmlReturn_t {
6619        (self
6620            .nvmlDeviceGetLastBBXFlushTime
6621            .as_ref()
6622            .expect("Expected function, got error."))(device, timestamp, durationUs)
6623    }
6624    pub unsafe fn nvmlDeviceGetDisplayMode(
6625        &self,
6626        device: nvmlDevice_t,
6627        display: *mut nvmlEnableState_t,
6628    ) -> nvmlReturn_t {
6629        (self
6630            .nvmlDeviceGetDisplayMode
6631            .as_ref()
6632            .expect("Expected function, got error."))(device, display)
6633    }
6634    pub unsafe fn nvmlDeviceGetDisplayActive(
6635        &self,
6636        device: nvmlDevice_t,
6637        isActive: *mut nvmlEnableState_t,
6638    ) -> nvmlReturn_t {
6639        (self
6640            .nvmlDeviceGetDisplayActive
6641            .as_ref()
6642            .expect("Expected function, got error."))(device, isActive)
6643    }
6644    pub unsafe fn nvmlDeviceGetPersistenceMode(
6645        &self,
6646        device: nvmlDevice_t,
6647        mode: *mut nvmlEnableState_t,
6648    ) -> nvmlReturn_t {
6649        (self
6650            .nvmlDeviceGetPersistenceMode
6651            .as_ref()
6652            .expect("Expected function, got error."))(device, mode)
6653    }
6654    pub unsafe fn nvmlDeviceGetPciInfoExt(
6655        &self,
6656        device: nvmlDevice_t,
6657        pci: *mut nvmlPciInfoExt_t,
6658    ) -> nvmlReturn_t {
6659        (self
6660            .nvmlDeviceGetPciInfoExt
6661            .as_ref()
6662            .expect("Expected function, got error."))(device, pci)
6663    }
6664    pub unsafe fn nvmlDeviceGetPciInfo_v3(
6665        &self,
6666        device: nvmlDevice_t,
6667        pci: *mut nvmlPciInfo_t,
6668    ) -> nvmlReturn_t {
6669        (self
6670            .nvmlDeviceGetPciInfo_v3
6671            .as_ref()
6672            .expect("Expected function, got error."))(device, pci)
6673    }
6674    pub unsafe fn nvmlDeviceGetMaxPcieLinkGeneration(
6675        &self,
6676        device: nvmlDevice_t,
6677        maxLinkGen: *mut raw::c_uint,
6678    ) -> nvmlReturn_t {
6679        (self
6680            .nvmlDeviceGetMaxPcieLinkGeneration
6681            .as_ref()
6682            .expect("Expected function, got error."))(device, maxLinkGen)
6683    }
6684    pub unsafe fn nvmlDeviceGetGpuMaxPcieLinkGeneration(
6685        &self,
6686        device: nvmlDevice_t,
6687        maxLinkGenDevice: *mut raw::c_uint,
6688    ) -> nvmlReturn_t {
6689        (self
6690            .nvmlDeviceGetGpuMaxPcieLinkGeneration
6691            .as_ref()
6692            .expect("Expected function, got error."))(device, maxLinkGenDevice)
6693    }
6694    pub unsafe fn nvmlDeviceGetMaxPcieLinkWidth(
6695        &self,
6696        device: nvmlDevice_t,
6697        maxLinkWidth: *mut raw::c_uint,
6698    ) -> nvmlReturn_t {
6699        (self
6700            .nvmlDeviceGetMaxPcieLinkWidth
6701            .as_ref()
6702            .expect("Expected function, got error."))(device, maxLinkWidth)
6703    }
6704    pub unsafe fn nvmlDeviceGetCurrPcieLinkGeneration(
6705        &self,
6706        device: nvmlDevice_t,
6707        currLinkGen: *mut raw::c_uint,
6708    ) -> nvmlReturn_t {
6709        (self
6710            .nvmlDeviceGetCurrPcieLinkGeneration
6711            .as_ref()
6712            .expect("Expected function, got error."))(device, currLinkGen)
6713    }
6714    pub unsafe fn nvmlDeviceGetCurrPcieLinkWidth(
6715        &self,
6716        device: nvmlDevice_t,
6717        currLinkWidth: *mut raw::c_uint,
6718    ) -> nvmlReturn_t {
6719        (self
6720            .nvmlDeviceGetCurrPcieLinkWidth
6721            .as_ref()
6722            .expect("Expected function, got error."))(device, currLinkWidth)
6723    }
6724    pub unsafe fn nvmlDeviceGetPcieThroughput(
6725        &self,
6726        device: nvmlDevice_t,
6727        counter: nvmlPcieUtilCounter_t,
6728        value: *mut raw::c_uint,
6729    ) -> nvmlReturn_t {
6730        (self
6731            .nvmlDeviceGetPcieThroughput
6732            .as_ref()
6733            .expect("Expected function, got error."))(device, counter, value)
6734    }
6735    pub unsafe fn nvmlDeviceGetPcieReplayCounter(
6736        &self,
6737        device: nvmlDevice_t,
6738        value: *mut raw::c_uint,
6739    ) -> nvmlReturn_t {
6740        (self
6741            .nvmlDeviceGetPcieReplayCounter
6742            .as_ref()
6743            .expect("Expected function, got error."))(device, value)
6744    }
6745    pub unsafe fn nvmlDeviceGetClockInfo(
6746        &self,
6747        device: nvmlDevice_t,
6748        type_: nvmlClockType_t,
6749        clock: *mut raw::c_uint,
6750    ) -> nvmlReturn_t {
6751        (self
6752            .nvmlDeviceGetClockInfo
6753            .as_ref()
6754            .expect("Expected function, got error."))(device, type_, clock)
6755    }
6756    pub unsafe fn nvmlDeviceGetMaxClockInfo(
6757        &self,
6758        device: nvmlDevice_t,
6759        type_: nvmlClockType_t,
6760        clock: *mut raw::c_uint,
6761    ) -> nvmlReturn_t {
6762        (self
6763            .nvmlDeviceGetMaxClockInfo
6764            .as_ref()
6765            .expect("Expected function, got error."))(device, type_, clock)
6766    }
6767    pub unsafe fn nvmlDeviceGetGpcClkVfOffset(
6768        &self,
6769        device: nvmlDevice_t,
6770        offset: *mut raw::c_int,
6771    ) -> nvmlReturn_t {
6772        (self
6773            .nvmlDeviceGetGpcClkVfOffset
6774            .as_ref()
6775            .expect("Expected function, got error."))(device, offset)
6776    }
6777    pub unsafe fn nvmlDeviceGetApplicationsClock(
6778        &self,
6779        device: nvmlDevice_t,
6780        clockType: nvmlClockType_t,
6781        clockMHz: *mut raw::c_uint,
6782    ) -> nvmlReturn_t {
6783        (self
6784            .nvmlDeviceGetApplicationsClock
6785            .as_ref()
6786            .expect("Expected function, got error."))(device, clockType, clockMHz)
6787    }
6788    pub unsafe fn nvmlDeviceGetDefaultApplicationsClock(
6789        &self,
6790        device: nvmlDevice_t,
6791        clockType: nvmlClockType_t,
6792        clockMHz: *mut raw::c_uint,
6793    ) -> nvmlReturn_t {
6794        (self
6795            .nvmlDeviceGetDefaultApplicationsClock
6796            .as_ref()
6797            .expect("Expected function, got error."))(device, clockType, clockMHz)
6798    }
6799    pub unsafe fn nvmlDeviceGetClock(
6800        &self,
6801        device: nvmlDevice_t,
6802        clockType: nvmlClockType_t,
6803        clockId: nvmlClockId_t,
6804        clockMHz: *mut raw::c_uint,
6805    ) -> nvmlReturn_t {
6806        (self
6807            .nvmlDeviceGetClock
6808            .as_ref()
6809            .expect("Expected function, got error."))(device, clockType, clockId, clockMHz)
6810    }
6811    pub unsafe fn nvmlDeviceGetMaxCustomerBoostClock(
6812        &self,
6813        device: nvmlDevice_t,
6814        clockType: nvmlClockType_t,
6815        clockMHz: *mut raw::c_uint,
6816    ) -> nvmlReturn_t {
6817        (self
6818            .nvmlDeviceGetMaxCustomerBoostClock
6819            .as_ref()
6820            .expect("Expected function, got error."))(device, clockType, clockMHz)
6821    }
6822    pub unsafe fn nvmlDeviceGetSupportedMemoryClocks(
6823        &self,
6824        device: nvmlDevice_t,
6825        count: *mut raw::c_uint,
6826        clocksMHz: *mut raw::c_uint,
6827    ) -> nvmlReturn_t {
6828        (self
6829            .nvmlDeviceGetSupportedMemoryClocks
6830            .as_ref()
6831            .expect("Expected function, got error."))(device, count, clocksMHz)
6832    }
6833    pub unsafe fn nvmlDeviceGetSupportedGraphicsClocks(
6834        &self,
6835        device: nvmlDevice_t,
6836        memoryClockMHz: raw::c_uint,
6837        count: *mut raw::c_uint,
6838        clocksMHz: *mut raw::c_uint,
6839    ) -> nvmlReturn_t {
6840        (self
6841            .nvmlDeviceGetSupportedGraphicsClocks
6842            .as_ref()
6843            .expect("Expected function, got error."))(
6844            device, memoryClockMHz, count, clocksMHz
6845        )
6846    }
6847    pub unsafe fn nvmlDeviceGetAutoBoostedClocksEnabled(
6848        &self,
6849        device: nvmlDevice_t,
6850        isEnabled: *mut nvmlEnableState_t,
6851        defaultIsEnabled: *mut nvmlEnableState_t,
6852    ) -> nvmlReturn_t {
6853        (self
6854            .nvmlDeviceGetAutoBoostedClocksEnabled
6855            .as_ref()
6856            .expect("Expected function, got error."))(device, isEnabled, defaultIsEnabled)
6857    }
6858    pub unsafe fn nvmlDeviceGetFanSpeed(
6859        &self,
6860        device: nvmlDevice_t,
6861        speed: *mut raw::c_uint,
6862    ) -> nvmlReturn_t {
6863        (self
6864            .nvmlDeviceGetFanSpeed
6865            .as_ref()
6866            .expect("Expected function, got error."))(device, speed)
6867    }
6868    pub unsafe fn nvmlDeviceGetFanSpeed_v2(
6869        &self,
6870        device: nvmlDevice_t,
6871        fan: raw::c_uint,
6872        speed: *mut raw::c_uint,
6873    ) -> nvmlReturn_t {
6874        (self
6875            .nvmlDeviceGetFanSpeed_v2
6876            .as_ref()
6877            .expect("Expected function, got error."))(device, fan, speed)
6878    }
6879    pub unsafe fn nvmlDeviceGetFanSpeedRPM(
6880        &self,
6881        device: nvmlDevice_t,
6882        fanSpeed: *mut nvmlFanSpeedInfo_t,
6883    ) -> nvmlReturn_t {
6884        (self
6885            .nvmlDeviceGetFanSpeedRPM
6886            .as_ref()
6887            .expect("Expected function, got error."))(device, fanSpeed)
6888    }
6889    pub unsafe fn nvmlDeviceGetTargetFanSpeed(
6890        &self,
6891        device: nvmlDevice_t,
6892        fan: raw::c_uint,
6893        targetSpeed: *mut raw::c_uint,
6894    ) -> nvmlReturn_t {
6895        (self
6896            .nvmlDeviceGetTargetFanSpeed
6897            .as_ref()
6898            .expect("Expected function, got error."))(device, fan, targetSpeed)
6899    }
6900    pub unsafe fn nvmlDeviceGetMinMaxFanSpeed(
6901        &self,
6902        device: nvmlDevice_t,
6903        minSpeed: *mut raw::c_uint,
6904        maxSpeed: *mut raw::c_uint,
6905    ) -> nvmlReturn_t {
6906        (self
6907            .nvmlDeviceGetMinMaxFanSpeed
6908            .as_ref()
6909            .expect("Expected function, got error."))(device, minSpeed, maxSpeed)
6910    }
6911    pub unsafe fn nvmlDeviceGetFanControlPolicy_v2(
6912        &self,
6913        device: nvmlDevice_t,
6914        fan: raw::c_uint,
6915        policy: *mut nvmlFanControlPolicy_t,
6916    ) -> nvmlReturn_t {
6917        (self
6918            .nvmlDeviceGetFanControlPolicy_v2
6919            .as_ref()
6920            .expect("Expected function, got error."))(device, fan, policy)
6921    }
6922    pub unsafe fn nvmlDeviceGetNumFans(
6923        &self,
6924        device: nvmlDevice_t,
6925        numFans: *mut raw::c_uint,
6926    ) -> nvmlReturn_t {
6927        (self
6928            .nvmlDeviceGetNumFans
6929            .as_ref()
6930            .expect("Expected function, got error."))(device, numFans)
6931    }
6932    pub unsafe fn nvmlDeviceGetTemperature(
6933        &self,
6934        device: nvmlDevice_t,
6935        sensorType: nvmlTemperatureSensors_t,
6936        temp: *mut raw::c_uint,
6937    ) -> nvmlReturn_t {
6938        (self
6939            .nvmlDeviceGetTemperature
6940            .as_ref()
6941            .expect("Expected function, got error."))(device, sensorType, temp)
6942    }
6943    pub unsafe fn nvmlDeviceGetCoolerInfo(
6944        &self,
6945        device: nvmlDevice_t,
6946        coolerInfo: *mut nvmlCoolerInfo_t,
6947    ) -> nvmlReturn_t {
6948        (self
6949            .nvmlDeviceGetCoolerInfo
6950            .as_ref()
6951            .expect("Expected function, got error."))(device, coolerInfo)
6952    }
6953    pub unsafe fn nvmlDeviceGetTemperatureV(
6954        &self,
6955        device: nvmlDevice_t,
6956        temperature: *mut nvmlTemperature_t,
6957    ) -> nvmlReturn_t {
6958        (self
6959            .nvmlDeviceGetTemperatureV
6960            .as_ref()
6961            .expect("Expected function, got error."))(device, temperature)
6962    }
6963    pub unsafe fn nvmlDeviceGetTemperatureThreshold(
6964        &self,
6965        device: nvmlDevice_t,
6966        thresholdType: nvmlTemperatureThresholds_t,
6967        temp: *mut raw::c_uint,
6968    ) -> nvmlReturn_t {
6969        (self
6970            .nvmlDeviceGetTemperatureThreshold
6971            .as_ref()
6972            .expect("Expected function, got error."))(device, thresholdType, temp)
6973    }
6974    pub unsafe fn nvmlDeviceGetMarginTemperature(
6975        &self,
6976        device: nvmlDevice_t,
6977        marginTempInfo: *mut nvmlMarginTemperature_t,
6978    ) -> nvmlReturn_t {
6979        (self
6980            .nvmlDeviceGetMarginTemperature
6981            .as_ref()
6982            .expect("Expected function, got error."))(device, marginTempInfo)
6983    }
6984    pub unsafe fn nvmlDeviceGetThermalSettings(
6985        &self,
6986        device: nvmlDevice_t,
6987        sensorIndex: raw::c_uint,
6988        pThermalSettings: *mut nvmlGpuThermalSettings_t,
6989    ) -> nvmlReturn_t {
6990        (self
6991            .nvmlDeviceGetThermalSettings
6992            .as_ref()
6993            .expect("Expected function, got error."))(device, sensorIndex, pThermalSettings)
6994    }
6995    pub unsafe fn nvmlDeviceGetPerformanceState(
6996        &self,
6997        device: nvmlDevice_t,
6998        pState: *mut nvmlPstates_t,
6999    ) -> nvmlReturn_t {
7000        (self
7001            .nvmlDeviceGetPerformanceState
7002            .as_ref()
7003            .expect("Expected function, got error."))(device, pState)
7004    }
7005    pub unsafe fn nvmlDeviceGetCurrentClocksEventReasons(
7006        &self,
7007        device: nvmlDevice_t,
7008        clocksEventReasons: *mut raw::c_ulonglong,
7009    ) -> nvmlReturn_t {
7010        (self
7011            .nvmlDeviceGetCurrentClocksEventReasons
7012            .as_ref()
7013            .expect("Expected function, got error."))(device, clocksEventReasons)
7014    }
7015    pub unsafe fn nvmlDeviceGetCurrentClocksThrottleReasons(
7016        &self,
7017        device: nvmlDevice_t,
7018        clocksThrottleReasons: *mut raw::c_ulonglong,
7019    ) -> nvmlReturn_t {
7020        (self
7021            .nvmlDeviceGetCurrentClocksThrottleReasons
7022            .as_ref()
7023            .expect("Expected function, got error."))(device, clocksThrottleReasons)
7024    }
7025    pub unsafe fn nvmlDeviceGetSupportedClocksEventReasons(
7026        &self,
7027        device: nvmlDevice_t,
7028        supportedClocksEventReasons: *mut raw::c_ulonglong,
7029    ) -> nvmlReturn_t {
7030        (self
7031            .nvmlDeviceGetSupportedClocksEventReasons
7032            .as_ref()
7033            .expect("Expected function, got error."))(device, supportedClocksEventReasons)
7034    }
7035    pub unsafe fn nvmlDeviceGetSupportedClocksThrottleReasons(
7036        &self,
7037        device: nvmlDevice_t,
7038        supportedClocksThrottleReasons: *mut raw::c_ulonglong,
7039    ) -> nvmlReturn_t {
7040        (self
7041            .nvmlDeviceGetSupportedClocksThrottleReasons
7042            .as_ref()
7043            .expect("Expected function, got error."))(device, supportedClocksThrottleReasons)
7044    }
7045    pub unsafe fn nvmlDeviceGetPowerState(
7046        &self,
7047        device: nvmlDevice_t,
7048        pState: *mut nvmlPstates_t,
7049    ) -> nvmlReturn_t {
7050        (self
7051            .nvmlDeviceGetPowerState
7052            .as_ref()
7053            .expect("Expected function, got error."))(device, pState)
7054    }
7055    pub unsafe fn nvmlDeviceGetDynamicPstatesInfo(
7056        &self,
7057        device: nvmlDevice_t,
7058        pDynamicPstatesInfo: *mut nvmlGpuDynamicPstatesInfo_t,
7059    ) -> nvmlReturn_t {
7060        (self
7061            .nvmlDeviceGetDynamicPstatesInfo
7062            .as_ref()
7063            .expect("Expected function, got error."))(device, pDynamicPstatesInfo)
7064    }
7065    pub unsafe fn nvmlDeviceGetMemClkVfOffset(
7066        &self,
7067        device: nvmlDevice_t,
7068        offset: *mut raw::c_int,
7069    ) -> nvmlReturn_t {
7070        (self
7071            .nvmlDeviceGetMemClkVfOffset
7072            .as_ref()
7073            .expect("Expected function, got error."))(device, offset)
7074    }
7075    pub unsafe fn nvmlDeviceGetMinMaxClockOfPState(
7076        &self,
7077        device: nvmlDevice_t,
7078        type_: nvmlClockType_t,
7079        pstate: nvmlPstates_t,
7080        minClockMHz: *mut raw::c_uint,
7081        maxClockMHz: *mut raw::c_uint,
7082    ) -> nvmlReturn_t {
7083        (self
7084            .nvmlDeviceGetMinMaxClockOfPState
7085            .as_ref()
7086            .expect("Expected function, got error."))(
7087            device,
7088            type_,
7089            pstate,
7090            minClockMHz,
7091            maxClockMHz,
7092        )
7093    }
7094    pub unsafe fn nvmlDeviceGetSupportedPerformanceStates(
7095        &self,
7096        device: nvmlDevice_t,
7097        pstates: *mut nvmlPstates_t,
7098        size: raw::c_uint,
7099    ) -> nvmlReturn_t {
7100        (self
7101            .nvmlDeviceGetSupportedPerformanceStates
7102            .as_ref()
7103            .expect("Expected function, got error."))(device, pstates, size)
7104    }
7105    pub unsafe fn nvmlDeviceGetGpcClkMinMaxVfOffset(
7106        &self,
7107        device: nvmlDevice_t,
7108        minOffset: *mut raw::c_int,
7109        maxOffset: *mut raw::c_int,
7110    ) -> nvmlReturn_t {
7111        (self
7112            .nvmlDeviceGetGpcClkMinMaxVfOffset
7113            .as_ref()
7114            .expect("Expected function, got error."))(device, minOffset, maxOffset)
7115    }
7116    pub unsafe fn nvmlDeviceGetMemClkMinMaxVfOffset(
7117        &self,
7118        device: nvmlDevice_t,
7119        minOffset: *mut raw::c_int,
7120        maxOffset: *mut raw::c_int,
7121    ) -> nvmlReturn_t {
7122        (self
7123            .nvmlDeviceGetMemClkMinMaxVfOffset
7124            .as_ref()
7125            .expect("Expected function, got error."))(device, minOffset, maxOffset)
7126    }
7127    pub unsafe fn nvmlDeviceGetClockOffsets(
7128        &self,
7129        device: nvmlDevice_t,
7130        info: *mut nvmlClockOffset_t,
7131    ) -> nvmlReturn_t {
7132        (self
7133            .nvmlDeviceGetClockOffsets
7134            .as_ref()
7135            .expect("Expected function, got error."))(device, info)
7136    }
7137    pub unsafe fn nvmlDeviceSetClockOffsets(
7138        &self,
7139        device: nvmlDevice_t,
7140        info: *mut nvmlClockOffset_t,
7141    ) -> nvmlReturn_t {
7142        (self
7143            .nvmlDeviceSetClockOffsets
7144            .as_ref()
7145            .expect("Expected function, got error."))(device, info)
7146    }
7147    pub unsafe fn nvmlDeviceGetPerformanceModes(
7148        &self,
7149        device: nvmlDevice_t,
7150        perfModes: *mut nvmlDevicePerfModes_t,
7151    ) -> nvmlReturn_t {
7152        (self
7153            .nvmlDeviceGetPerformanceModes
7154            .as_ref()
7155            .expect("Expected function, got error."))(device, perfModes)
7156    }
7157    pub unsafe fn nvmlDeviceGetCurrentClockFreqs(
7158        &self,
7159        device: nvmlDevice_t,
7160        currentClockFreqs: *mut nvmlDeviceCurrentClockFreqs_t,
7161    ) -> nvmlReturn_t {
7162        (self
7163            .nvmlDeviceGetCurrentClockFreqs
7164            .as_ref()
7165            .expect("Expected function, got error."))(device, currentClockFreqs)
7166    }
7167    pub unsafe fn nvmlDeviceGetPowerManagementMode(
7168        &self,
7169        device: nvmlDevice_t,
7170        mode: *mut nvmlEnableState_t,
7171    ) -> nvmlReturn_t {
7172        (self
7173            .nvmlDeviceGetPowerManagementMode
7174            .as_ref()
7175            .expect("Expected function, got error."))(device, mode)
7176    }
7177    pub unsafe fn nvmlDeviceGetPowerManagementLimit(
7178        &self,
7179        device: nvmlDevice_t,
7180        limit: *mut raw::c_uint,
7181    ) -> nvmlReturn_t {
7182        (self
7183            .nvmlDeviceGetPowerManagementLimit
7184            .as_ref()
7185            .expect("Expected function, got error."))(device, limit)
7186    }
7187    pub unsafe fn nvmlDeviceGetPowerManagementLimitConstraints(
7188        &self,
7189        device: nvmlDevice_t,
7190        minLimit: *mut raw::c_uint,
7191        maxLimit: *mut raw::c_uint,
7192    ) -> nvmlReturn_t {
7193        (self
7194            .nvmlDeviceGetPowerManagementLimitConstraints
7195            .as_ref()
7196            .expect("Expected function, got error."))(device, minLimit, maxLimit)
7197    }
7198    pub unsafe fn nvmlDeviceGetPowerManagementDefaultLimit(
7199        &self,
7200        device: nvmlDevice_t,
7201        defaultLimit: *mut raw::c_uint,
7202    ) -> nvmlReturn_t {
7203        (self
7204            .nvmlDeviceGetPowerManagementDefaultLimit
7205            .as_ref()
7206            .expect("Expected function, got error."))(device, defaultLimit)
7207    }
7208    pub unsafe fn nvmlDeviceGetPowerUsage(
7209        &self,
7210        device: nvmlDevice_t,
7211        power: *mut raw::c_uint,
7212    ) -> nvmlReturn_t {
7213        (self
7214            .nvmlDeviceGetPowerUsage
7215            .as_ref()
7216            .expect("Expected function, got error."))(device, power)
7217    }
7218    pub unsafe fn nvmlDeviceGetTotalEnergyConsumption(
7219        &self,
7220        device: nvmlDevice_t,
7221        energy: *mut raw::c_ulonglong,
7222    ) -> nvmlReturn_t {
7223        (self
7224            .nvmlDeviceGetTotalEnergyConsumption
7225            .as_ref()
7226            .expect("Expected function, got error."))(device, energy)
7227    }
7228    pub unsafe fn nvmlDeviceGetEnforcedPowerLimit(
7229        &self,
7230        device: nvmlDevice_t,
7231        limit: *mut raw::c_uint,
7232    ) -> nvmlReturn_t {
7233        (self
7234            .nvmlDeviceGetEnforcedPowerLimit
7235            .as_ref()
7236            .expect("Expected function, got error."))(device, limit)
7237    }
7238    pub unsafe fn nvmlDeviceGetGpuOperationMode(
7239        &self,
7240        device: nvmlDevice_t,
7241        current: *mut nvmlGpuOperationMode_t,
7242        pending: *mut nvmlGpuOperationMode_t,
7243    ) -> nvmlReturn_t {
7244        (self
7245            .nvmlDeviceGetGpuOperationMode
7246            .as_ref()
7247            .expect("Expected function, got error."))(device, current, pending)
7248    }
7249    pub unsafe fn nvmlDeviceGetMemoryInfo(
7250        &self,
7251        device: nvmlDevice_t,
7252        memory: *mut nvmlMemory_t,
7253    ) -> nvmlReturn_t {
7254        (self
7255            .nvmlDeviceGetMemoryInfo
7256            .as_ref()
7257            .expect("Expected function, got error."))(device, memory)
7258    }
7259    pub unsafe fn nvmlDeviceGetMemoryInfo_v2(
7260        &self,
7261        device: nvmlDevice_t,
7262        memory: *mut nvmlMemory_v2_t,
7263    ) -> nvmlReturn_t {
7264        (self
7265            .nvmlDeviceGetMemoryInfo_v2
7266            .as_ref()
7267            .expect("Expected function, got error."))(device, memory)
7268    }
7269    pub unsafe fn nvmlDeviceGetComputeMode(
7270        &self,
7271        device: nvmlDevice_t,
7272        mode: *mut nvmlComputeMode_t,
7273    ) -> nvmlReturn_t {
7274        (self
7275            .nvmlDeviceGetComputeMode
7276            .as_ref()
7277            .expect("Expected function, got error."))(device, mode)
7278    }
7279    pub unsafe fn nvmlDeviceGetCudaComputeCapability(
7280        &self,
7281        device: nvmlDevice_t,
7282        major: *mut raw::c_int,
7283        minor: *mut raw::c_int,
7284    ) -> nvmlReturn_t {
7285        (self
7286            .nvmlDeviceGetCudaComputeCapability
7287            .as_ref()
7288            .expect("Expected function, got error."))(device, major, minor)
7289    }
7290    pub unsafe fn nvmlDeviceGetDramEncryptionMode(
7291        &self,
7292        device: nvmlDevice_t,
7293        current: *mut nvmlDramEncryptionInfo_t,
7294        pending: *mut nvmlDramEncryptionInfo_t,
7295    ) -> nvmlReturn_t {
7296        (self
7297            .nvmlDeviceGetDramEncryptionMode
7298            .as_ref()
7299            .expect("Expected function, got error."))(device, current, pending)
7300    }
7301    pub unsafe fn nvmlDeviceSetDramEncryptionMode(
7302        &self,
7303        device: nvmlDevice_t,
7304        dramEncryption: *const nvmlDramEncryptionInfo_t,
7305    ) -> nvmlReturn_t {
7306        (self
7307            .nvmlDeviceSetDramEncryptionMode
7308            .as_ref()
7309            .expect("Expected function, got error."))(device, dramEncryption)
7310    }
7311    pub unsafe fn nvmlDeviceGetEccMode(
7312        &self,
7313        device: nvmlDevice_t,
7314        current: *mut nvmlEnableState_t,
7315        pending: *mut nvmlEnableState_t,
7316    ) -> nvmlReturn_t {
7317        (self
7318            .nvmlDeviceGetEccMode
7319            .as_ref()
7320            .expect("Expected function, got error."))(device, current, pending)
7321    }
7322    pub unsafe fn nvmlDeviceGetDefaultEccMode(
7323        &self,
7324        device: nvmlDevice_t,
7325        defaultMode: *mut nvmlEnableState_t,
7326    ) -> nvmlReturn_t {
7327        (self
7328            .nvmlDeviceGetDefaultEccMode
7329            .as_ref()
7330            .expect("Expected function, got error."))(device, defaultMode)
7331    }
7332    pub unsafe fn nvmlDeviceGetBoardId(
7333        &self,
7334        device: nvmlDevice_t,
7335        boardId: *mut raw::c_uint,
7336    ) -> nvmlReturn_t {
7337        (self
7338            .nvmlDeviceGetBoardId
7339            .as_ref()
7340            .expect("Expected function, got error."))(device, boardId)
7341    }
7342    pub unsafe fn nvmlDeviceGetMultiGpuBoard(
7343        &self,
7344        device: nvmlDevice_t,
7345        multiGpuBool: *mut raw::c_uint,
7346    ) -> nvmlReturn_t {
7347        (self
7348            .nvmlDeviceGetMultiGpuBoard
7349            .as_ref()
7350            .expect("Expected function, got error."))(device, multiGpuBool)
7351    }
7352    pub unsafe fn nvmlDeviceGetTotalEccErrors(
7353        &self,
7354        device: nvmlDevice_t,
7355        errorType: nvmlMemoryErrorType_t,
7356        counterType: nvmlEccCounterType_t,
7357        eccCounts: *mut raw::c_ulonglong,
7358    ) -> nvmlReturn_t {
7359        (self
7360            .nvmlDeviceGetTotalEccErrors
7361            .as_ref()
7362            .expect("Expected function, got error."))(
7363            device, errorType, counterType, eccCounts
7364        )
7365    }
7366    pub unsafe fn nvmlDeviceGetDetailedEccErrors(
7367        &self,
7368        device: nvmlDevice_t,
7369        errorType: nvmlMemoryErrorType_t,
7370        counterType: nvmlEccCounterType_t,
7371        eccCounts: *mut nvmlEccErrorCounts_t,
7372    ) -> nvmlReturn_t {
7373        (self
7374            .nvmlDeviceGetDetailedEccErrors
7375            .as_ref()
7376            .expect("Expected function, got error."))(
7377            device, errorType, counterType, eccCounts
7378        )
7379    }
7380    pub unsafe fn nvmlDeviceGetMemoryErrorCounter(
7381        &self,
7382        device: nvmlDevice_t,
7383        errorType: nvmlMemoryErrorType_t,
7384        counterType: nvmlEccCounterType_t,
7385        locationType: nvmlMemoryLocation_t,
7386        count: *mut raw::c_ulonglong,
7387    ) -> nvmlReturn_t {
7388        (self
7389            .nvmlDeviceGetMemoryErrorCounter
7390            .as_ref()
7391            .expect("Expected function, got error."))(
7392            device,
7393            errorType,
7394            counterType,
7395            locationType,
7396            count,
7397        )
7398    }
7399    pub unsafe fn nvmlDeviceGetUtilizationRates(
7400        &self,
7401        device: nvmlDevice_t,
7402        utilization: *mut nvmlUtilization_t,
7403    ) -> nvmlReturn_t {
7404        (self
7405            .nvmlDeviceGetUtilizationRates
7406            .as_ref()
7407            .expect("Expected function, got error."))(device, utilization)
7408    }
7409    pub unsafe fn nvmlDeviceGetEncoderUtilization(
7410        &self,
7411        device: nvmlDevice_t,
7412        utilization: *mut raw::c_uint,
7413        samplingPeriodUs: *mut raw::c_uint,
7414    ) -> nvmlReturn_t {
7415        (self
7416            .nvmlDeviceGetEncoderUtilization
7417            .as_ref()
7418            .expect("Expected function, got error."))(device, utilization, samplingPeriodUs)
7419    }
7420    pub unsafe fn nvmlDeviceGetEncoderCapacity(
7421        &self,
7422        device: nvmlDevice_t,
7423        encoderQueryType: nvmlEncoderType_t,
7424        encoderCapacity: *mut raw::c_uint,
7425    ) -> nvmlReturn_t {
7426        (self
7427            .nvmlDeviceGetEncoderCapacity
7428            .as_ref()
7429            .expect("Expected function, got error."))(
7430            device, encoderQueryType, encoderCapacity
7431        )
7432    }
7433    pub unsafe fn nvmlDeviceGetEncoderStats(
7434        &self,
7435        device: nvmlDevice_t,
7436        sessionCount: *mut raw::c_uint,
7437        averageFps: *mut raw::c_uint,
7438        averageLatency: *mut raw::c_uint,
7439    ) -> nvmlReturn_t {
7440        (self
7441            .nvmlDeviceGetEncoderStats
7442            .as_ref()
7443            .expect("Expected function, got error."))(
7444            device,
7445            sessionCount,
7446            averageFps,
7447            averageLatency,
7448        )
7449    }
7450    pub unsafe fn nvmlDeviceGetEncoderSessions(
7451        &self,
7452        device: nvmlDevice_t,
7453        sessionCount: *mut raw::c_uint,
7454        sessionInfos: *mut nvmlEncoderSessionInfo_t,
7455    ) -> nvmlReturn_t {
7456        (self
7457            .nvmlDeviceGetEncoderSessions
7458            .as_ref()
7459            .expect("Expected function, got error."))(device, sessionCount, sessionInfos)
7460    }
7461    pub unsafe fn nvmlDeviceGetDecoderUtilization(
7462        &self,
7463        device: nvmlDevice_t,
7464        utilization: *mut raw::c_uint,
7465        samplingPeriodUs: *mut raw::c_uint,
7466    ) -> nvmlReturn_t {
7467        (self
7468            .nvmlDeviceGetDecoderUtilization
7469            .as_ref()
7470            .expect("Expected function, got error."))(device, utilization, samplingPeriodUs)
7471    }
7472    pub unsafe fn nvmlDeviceGetJpgUtilization(
7473        &self,
7474        device: nvmlDevice_t,
7475        utilization: *mut raw::c_uint,
7476        samplingPeriodUs: *mut raw::c_uint,
7477    ) -> nvmlReturn_t {
7478        (self
7479            .nvmlDeviceGetJpgUtilization
7480            .as_ref()
7481            .expect("Expected function, got error."))(device, utilization, samplingPeriodUs)
7482    }
7483    pub unsafe fn nvmlDeviceGetOfaUtilization(
7484        &self,
7485        device: nvmlDevice_t,
7486        utilization: *mut raw::c_uint,
7487        samplingPeriodUs: *mut raw::c_uint,
7488    ) -> nvmlReturn_t {
7489        (self
7490            .nvmlDeviceGetOfaUtilization
7491            .as_ref()
7492            .expect("Expected function, got error."))(device, utilization, samplingPeriodUs)
7493    }
7494    pub unsafe fn nvmlDeviceGetFBCStats(
7495        &self,
7496        device: nvmlDevice_t,
7497        fbcStats: *mut nvmlFBCStats_t,
7498    ) -> nvmlReturn_t {
7499        (self
7500            .nvmlDeviceGetFBCStats
7501            .as_ref()
7502            .expect("Expected function, got error."))(device, fbcStats)
7503    }
7504    pub unsafe fn nvmlDeviceGetFBCSessions(
7505        &self,
7506        device: nvmlDevice_t,
7507        sessionCount: *mut raw::c_uint,
7508        sessionInfo: *mut nvmlFBCSessionInfo_t,
7509    ) -> nvmlReturn_t {
7510        (self
7511            .nvmlDeviceGetFBCSessions
7512            .as_ref()
7513            .expect("Expected function, got error."))(device, sessionCount, sessionInfo)
7514    }
7515    pub unsafe fn nvmlDeviceGetDriverModel_v2(
7516        &self,
7517        device: nvmlDevice_t,
7518        current: *mut nvmlDriverModel_t,
7519        pending: *mut nvmlDriverModel_t,
7520    ) -> nvmlReturn_t {
7521        (self
7522            .nvmlDeviceGetDriverModel_v2
7523            .as_ref()
7524            .expect("Expected function, got error."))(device, current, pending)
7525    }
7526    pub unsafe fn nvmlDeviceGetVbiosVersion(
7527        &self,
7528        device: nvmlDevice_t,
7529        version: *mut raw::c_char,
7530        length: raw::c_uint,
7531    ) -> nvmlReturn_t {
7532        (self
7533            .nvmlDeviceGetVbiosVersion
7534            .as_ref()
7535            .expect("Expected function, got error."))(device, version, length)
7536    }
7537    pub unsafe fn nvmlDeviceGetBridgeChipInfo(
7538        &self,
7539        device: nvmlDevice_t,
7540        bridgeHierarchy: *mut nvmlBridgeChipHierarchy_t,
7541    ) -> nvmlReturn_t {
7542        (self
7543            .nvmlDeviceGetBridgeChipInfo
7544            .as_ref()
7545            .expect("Expected function, got error."))(device, bridgeHierarchy)
7546    }
7547    pub unsafe fn nvmlDeviceGetComputeRunningProcesses_v3(
7548        &self,
7549        device: nvmlDevice_t,
7550        infoCount: *mut raw::c_uint,
7551        infos: *mut nvmlProcessInfo_t,
7552    ) -> nvmlReturn_t {
7553        (self
7554            .nvmlDeviceGetComputeRunningProcesses_v3
7555            .as_ref()
7556            .expect("Expected function, got error."))(device, infoCount, infos)
7557    }
7558    pub unsafe fn nvmlDeviceGetGraphicsRunningProcesses_v3(
7559        &self,
7560        device: nvmlDevice_t,
7561        infoCount: *mut raw::c_uint,
7562        infos: *mut nvmlProcessInfo_t,
7563    ) -> nvmlReturn_t {
7564        (self
7565            .nvmlDeviceGetGraphicsRunningProcesses_v3
7566            .as_ref()
7567            .expect("Expected function, got error."))(device, infoCount, infos)
7568    }
7569    pub unsafe fn nvmlDeviceGetMPSComputeRunningProcesses_v3(
7570        &self,
7571        device: nvmlDevice_t,
7572        infoCount: *mut raw::c_uint,
7573        infos: *mut nvmlProcessInfo_t,
7574    ) -> nvmlReturn_t {
7575        (self
7576            .nvmlDeviceGetMPSComputeRunningProcesses_v3
7577            .as_ref()
7578            .expect("Expected function, got error."))(device, infoCount, infos)
7579    }
7580    pub unsafe fn nvmlDeviceGetRunningProcessDetailList(
7581        &self,
7582        device: nvmlDevice_t,
7583        plist: *mut nvmlProcessDetailList_t,
7584    ) -> nvmlReturn_t {
7585        (self
7586            .nvmlDeviceGetRunningProcessDetailList
7587            .as_ref()
7588            .expect("Expected function, got error."))(device, plist)
7589    }
7590    pub unsafe fn nvmlDeviceOnSameBoard(
7591        &self,
7592        device1: nvmlDevice_t,
7593        device2: nvmlDevice_t,
7594        onSameBoard: *mut raw::c_int,
7595    ) -> nvmlReturn_t {
7596        (self
7597            .nvmlDeviceOnSameBoard
7598            .as_ref()
7599            .expect("Expected function, got error."))(device1, device2, onSameBoard)
7600    }
7601    pub unsafe fn nvmlDeviceGetAPIRestriction(
7602        &self,
7603        device: nvmlDevice_t,
7604        apiType: nvmlRestrictedAPI_t,
7605        isRestricted: *mut nvmlEnableState_t,
7606    ) -> nvmlReturn_t {
7607        (self
7608            .nvmlDeviceGetAPIRestriction
7609            .as_ref()
7610            .expect("Expected function, got error."))(device, apiType, isRestricted)
7611    }
7612    pub unsafe fn nvmlDeviceGetSamples(
7613        &self,
7614        device: nvmlDevice_t,
7615        type_: nvmlSamplingType_t,
7616        lastSeenTimeStamp: raw::c_ulonglong,
7617        sampleValType: *mut nvmlValueType_t,
7618        sampleCount: *mut raw::c_uint,
7619        samples: *mut nvmlSample_t,
7620    ) -> nvmlReturn_t {
7621        (self
7622            .nvmlDeviceGetSamples
7623            .as_ref()
7624            .expect("Expected function, got error."))(
7625            device,
7626            type_,
7627            lastSeenTimeStamp,
7628            sampleValType,
7629            sampleCount,
7630            samples,
7631        )
7632    }
7633    pub unsafe fn nvmlDeviceGetBAR1MemoryInfo(
7634        &self,
7635        device: nvmlDevice_t,
7636        bar1Memory: *mut nvmlBAR1Memory_t,
7637    ) -> nvmlReturn_t {
7638        (self
7639            .nvmlDeviceGetBAR1MemoryInfo
7640            .as_ref()
7641            .expect("Expected function, got error."))(device, bar1Memory)
7642    }
7643    pub unsafe fn nvmlDeviceGetViolationStatus(
7644        &self,
7645        device: nvmlDevice_t,
7646        perfPolicyType: nvmlPerfPolicyType_t,
7647        violTime: *mut nvmlViolationTime_t,
7648    ) -> nvmlReturn_t {
7649        (self
7650            .nvmlDeviceGetViolationStatus
7651            .as_ref()
7652            .expect("Expected function, got error."))(device, perfPolicyType, violTime)
7653    }
7654    pub unsafe fn nvmlDeviceGetIrqNum(
7655        &self,
7656        device: nvmlDevice_t,
7657        irqNum: *mut raw::c_uint,
7658    ) -> nvmlReturn_t {
7659        (self
7660            .nvmlDeviceGetIrqNum
7661            .as_ref()
7662            .expect("Expected function, got error."))(device, irqNum)
7663    }
7664    pub unsafe fn nvmlDeviceGetNumGpuCores(
7665        &self,
7666        device: nvmlDevice_t,
7667        numCores: *mut raw::c_uint,
7668    ) -> nvmlReturn_t {
7669        (self
7670            .nvmlDeviceGetNumGpuCores
7671            .as_ref()
7672            .expect("Expected function, got error."))(device, numCores)
7673    }
7674    pub unsafe fn nvmlDeviceGetPowerSource(
7675        &self,
7676        device: nvmlDevice_t,
7677        powerSource: *mut nvmlPowerSource_t,
7678    ) -> nvmlReturn_t {
7679        (self
7680            .nvmlDeviceGetPowerSource
7681            .as_ref()
7682            .expect("Expected function, got error."))(device, powerSource)
7683    }
7684    pub unsafe fn nvmlDeviceGetMemoryBusWidth(
7685        &self,
7686        device: nvmlDevice_t,
7687        busWidth: *mut raw::c_uint,
7688    ) -> nvmlReturn_t {
7689        (self
7690            .nvmlDeviceGetMemoryBusWidth
7691            .as_ref()
7692            .expect("Expected function, got error."))(device, busWidth)
7693    }
7694    pub unsafe fn nvmlDeviceGetPcieLinkMaxSpeed(
7695        &self,
7696        device: nvmlDevice_t,
7697        maxSpeed: *mut raw::c_uint,
7698    ) -> nvmlReturn_t {
7699        (self
7700            .nvmlDeviceGetPcieLinkMaxSpeed
7701            .as_ref()
7702            .expect("Expected function, got error."))(device, maxSpeed)
7703    }
7704    pub unsafe fn nvmlDeviceGetPcieSpeed(
7705        &self,
7706        device: nvmlDevice_t,
7707        pcieSpeed: *mut raw::c_uint,
7708    ) -> nvmlReturn_t {
7709        (self
7710            .nvmlDeviceGetPcieSpeed
7711            .as_ref()
7712            .expect("Expected function, got error."))(device, pcieSpeed)
7713    }
7714    pub unsafe fn nvmlDeviceGetAdaptiveClockInfoStatus(
7715        &self,
7716        device: nvmlDevice_t,
7717        adaptiveClockStatus: *mut raw::c_uint,
7718    ) -> nvmlReturn_t {
7719        (self
7720            .nvmlDeviceGetAdaptiveClockInfoStatus
7721            .as_ref()
7722            .expect("Expected function, got error."))(device, adaptiveClockStatus)
7723    }
7724    pub unsafe fn nvmlDeviceGetBusType(
7725        &self,
7726        device: nvmlDevice_t,
7727        type_: *mut nvmlBusType_t,
7728    ) -> nvmlReturn_t {
7729        (self
7730            .nvmlDeviceGetBusType
7731            .as_ref()
7732            .expect("Expected function, got error."))(device, type_)
7733    }
7734    pub unsafe fn nvmlDeviceGetGpuFabricInfo(
7735        &self,
7736        device: nvmlDevice_t,
7737        gpuFabricInfo: *mut nvmlGpuFabricInfo_t,
7738    ) -> nvmlReturn_t {
7739        (self
7740            .nvmlDeviceGetGpuFabricInfo
7741            .as_ref()
7742            .expect("Expected function, got error."))(device, gpuFabricInfo)
7743    }
7744    pub unsafe fn nvmlDeviceGetGpuFabricInfoV(
7745        &self,
7746        device: nvmlDevice_t,
7747        gpuFabricInfo: *mut nvmlGpuFabricInfoV_t,
7748    ) -> nvmlReturn_t {
7749        (self
7750            .nvmlDeviceGetGpuFabricInfoV
7751            .as_ref()
7752            .expect("Expected function, got error."))(device, gpuFabricInfo)
7753    }
7754    pub unsafe fn nvmlSystemGetConfComputeCapabilities(
7755        &self,
7756        capabilities: *mut nvmlConfComputeSystemCaps_t,
7757    ) -> nvmlReturn_t {
7758        (self
7759            .nvmlSystemGetConfComputeCapabilities
7760            .as_ref()
7761            .expect("Expected function, got error."))(capabilities)
7762    }
7763    pub unsafe fn nvmlSystemGetConfComputeState(
7764        &self,
7765        state: *mut nvmlConfComputeSystemState_t,
7766    ) -> nvmlReturn_t {
7767        (self
7768            .nvmlSystemGetConfComputeState
7769            .as_ref()
7770            .expect("Expected function, got error."))(state)
7771    }
7772    pub unsafe fn nvmlDeviceGetConfComputeMemSizeInfo(
7773        &self,
7774        device: nvmlDevice_t,
7775        memInfo: *mut nvmlConfComputeMemSizeInfo_t,
7776    ) -> nvmlReturn_t {
7777        (self
7778            .nvmlDeviceGetConfComputeMemSizeInfo
7779            .as_ref()
7780            .expect("Expected function, got error."))(device, memInfo)
7781    }
7782    pub unsafe fn nvmlSystemGetConfComputeGpusReadyState(
7783        &self,
7784        isAcceptingWork: *mut raw::c_uint,
7785    ) -> nvmlReturn_t {
7786        (self
7787            .nvmlSystemGetConfComputeGpusReadyState
7788            .as_ref()
7789            .expect("Expected function, got error."))(isAcceptingWork)
7790    }
7791    pub unsafe fn nvmlDeviceGetConfComputeProtectedMemoryUsage(
7792        &self,
7793        device: nvmlDevice_t,
7794        memory: *mut nvmlMemory_t,
7795    ) -> nvmlReturn_t {
7796        (self
7797            .nvmlDeviceGetConfComputeProtectedMemoryUsage
7798            .as_ref()
7799            .expect("Expected function, got error."))(device, memory)
7800    }
7801    pub unsafe fn nvmlDeviceGetConfComputeGpuCertificate(
7802        &self,
7803        device: nvmlDevice_t,
7804        gpuCert: *mut nvmlConfComputeGpuCertificate_t,
7805    ) -> nvmlReturn_t {
7806        (self
7807            .nvmlDeviceGetConfComputeGpuCertificate
7808            .as_ref()
7809            .expect("Expected function, got error."))(device, gpuCert)
7810    }
7811    pub unsafe fn nvmlDeviceGetConfComputeGpuAttestationReport(
7812        &self,
7813        device: nvmlDevice_t,
7814        gpuAtstReport: *mut nvmlConfComputeGpuAttestationReport_t,
7815    ) -> nvmlReturn_t {
7816        (self
7817            .nvmlDeviceGetConfComputeGpuAttestationReport
7818            .as_ref()
7819            .expect("Expected function, got error."))(device, gpuAtstReport)
7820    }
7821    pub unsafe fn nvmlSystemGetConfComputeKeyRotationThresholdInfo(
7822        &self,
7823        pKeyRotationThrInfo: *mut nvmlConfComputeGetKeyRotationThresholdInfo_t,
7824    ) -> nvmlReturn_t {
7825        (self
7826            .nvmlSystemGetConfComputeKeyRotationThresholdInfo
7827            .as_ref()
7828            .expect("Expected function, got error."))(pKeyRotationThrInfo)
7829    }
7830    pub unsafe fn nvmlDeviceSetConfComputeUnprotectedMemSize(
7831        &self,
7832        device: nvmlDevice_t,
7833        sizeKiB: raw::c_ulonglong,
7834    ) -> nvmlReturn_t {
7835        (self
7836            .nvmlDeviceSetConfComputeUnprotectedMemSize
7837            .as_ref()
7838            .expect("Expected function, got error."))(device, sizeKiB)
7839    }
7840    pub unsafe fn nvmlSystemSetConfComputeGpusReadyState(
7841        &self,
7842        isAcceptingWork: raw::c_uint,
7843    ) -> nvmlReturn_t {
7844        (self
7845            .nvmlSystemSetConfComputeGpusReadyState
7846            .as_ref()
7847            .expect("Expected function, got error."))(isAcceptingWork)
7848    }
7849    pub unsafe fn nvmlSystemSetConfComputeKeyRotationThresholdInfo(
7850        &self,
7851        pKeyRotationThrInfo: *mut nvmlConfComputeSetKeyRotationThresholdInfo_t,
7852    ) -> nvmlReturn_t {
7853        (self
7854            .nvmlSystemSetConfComputeKeyRotationThresholdInfo
7855            .as_ref()
7856            .expect("Expected function, got error."))(pKeyRotationThrInfo)
7857    }
7858    pub unsafe fn nvmlSystemGetConfComputeSettings(
7859        &self,
7860        settings: *mut nvmlSystemConfComputeSettings_t,
7861    ) -> nvmlReturn_t {
7862        (self
7863            .nvmlSystemGetConfComputeSettings
7864            .as_ref()
7865            .expect("Expected function, got error."))(settings)
7866    }
7867    pub unsafe fn nvmlDeviceGetGspFirmwareVersion(
7868        &self,
7869        device: nvmlDevice_t,
7870        version: *mut raw::c_char,
7871    ) -> nvmlReturn_t {
7872        (self
7873            .nvmlDeviceGetGspFirmwareVersion
7874            .as_ref()
7875            .expect("Expected function, got error."))(device, version)
7876    }
7877    pub unsafe fn nvmlDeviceGetGspFirmwareMode(
7878        &self,
7879        device: nvmlDevice_t,
7880        isEnabled: *mut raw::c_uint,
7881        defaultMode: *mut raw::c_uint,
7882    ) -> nvmlReturn_t {
7883        (self
7884            .nvmlDeviceGetGspFirmwareMode
7885            .as_ref()
7886            .expect("Expected function, got error."))(device, isEnabled, defaultMode)
7887    }
7888    pub unsafe fn nvmlDeviceGetSramEccErrorStatus(
7889        &self,
7890        device: nvmlDevice_t,
7891        status: *mut nvmlEccSramErrorStatus_t,
7892    ) -> nvmlReturn_t {
7893        (self
7894            .nvmlDeviceGetSramEccErrorStatus
7895            .as_ref()
7896            .expect("Expected function, got error."))(device, status)
7897    }
7898    pub unsafe fn nvmlDeviceGetAccountingMode(
7899        &self,
7900        device: nvmlDevice_t,
7901        mode: *mut nvmlEnableState_t,
7902    ) -> nvmlReturn_t {
7903        (self
7904            .nvmlDeviceGetAccountingMode
7905            .as_ref()
7906            .expect("Expected function, got error."))(device, mode)
7907    }
7908    pub unsafe fn nvmlDeviceGetAccountingStats(
7909        &self,
7910        device: nvmlDevice_t,
7911        pid: raw::c_uint,
7912        stats: *mut nvmlAccountingStats_t,
7913    ) -> nvmlReturn_t {
7914        (self
7915            .nvmlDeviceGetAccountingStats
7916            .as_ref()
7917            .expect("Expected function, got error."))(device, pid, stats)
7918    }
7919    pub unsafe fn nvmlDeviceGetAccountingPids(
7920        &self,
7921        device: nvmlDevice_t,
7922        count: *mut raw::c_uint,
7923        pids: *mut raw::c_uint,
7924    ) -> nvmlReturn_t {
7925        (self
7926            .nvmlDeviceGetAccountingPids
7927            .as_ref()
7928            .expect("Expected function, got error."))(device, count, pids)
7929    }
7930    pub unsafe fn nvmlDeviceGetAccountingBufferSize(
7931        &self,
7932        device: nvmlDevice_t,
7933        bufferSize: *mut raw::c_uint,
7934    ) -> nvmlReturn_t {
7935        (self
7936            .nvmlDeviceGetAccountingBufferSize
7937            .as_ref()
7938            .expect("Expected function, got error."))(device, bufferSize)
7939    }
7940    pub unsafe fn nvmlDeviceGetRetiredPages(
7941        &self,
7942        device: nvmlDevice_t,
7943        cause: nvmlPageRetirementCause_t,
7944        pageCount: *mut raw::c_uint,
7945        addresses: *mut raw::c_ulonglong,
7946    ) -> nvmlReturn_t {
7947        (self
7948            .nvmlDeviceGetRetiredPages
7949            .as_ref()
7950            .expect("Expected function, got error."))(device, cause, pageCount, addresses)
7951    }
7952    pub unsafe fn nvmlDeviceGetRetiredPages_v2(
7953        &self,
7954        device: nvmlDevice_t,
7955        cause: nvmlPageRetirementCause_t,
7956        pageCount: *mut raw::c_uint,
7957        addresses: *mut raw::c_ulonglong,
7958        timestamps: *mut raw::c_ulonglong,
7959    ) -> nvmlReturn_t {
7960        (self
7961            .nvmlDeviceGetRetiredPages_v2
7962            .as_ref()
7963            .expect("Expected function, got error."))(
7964            device, cause, pageCount, addresses, timestamps,
7965        )
7966    }
7967    pub unsafe fn nvmlDeviceGetRetiredPagesPendingStatus(
7968        &self,
7969        device: nvmlDevice_t,
7970        isPending: *mut nvmlEnableState_t,
7971    ) -> nvmlReturn_t {
7972        (self
7973            .nvmlDeviceGetRetiredPagesPendingStatus
7974            .as_ref()
7975            .expect("Expected function, got error."))(device, isPending)
7976    }
7977    pub unsafe fn nvmlDeviceGetRemappedRows(
7978        &self,
7979        device: nvmlDevice_t,
7980        corrRows: *mut raw::c_uint,
7981        uncRows: *mut raw::c_uint,
7982        isPending: *mut raw::c_uint,
7983        failureOccurred: *mut raw::c_uint,
7984    ) -> nvmlReturn_t {
7985        (self
7986            .nvmlDeviceGetRemappedRows
7987            .as_ref()
7988            .expect("Expected function, got error."))(
7989            device,
7990            corrRows,
7991            uncRows,
7992            isPending,
7993            failureOccurred,
7994        )
7995    }
7996    pub unsafe fn nvmlDeviceGetRowRemapperHistogram(
7997        &self,
7998        device: nvmlDevice_t,
7999        values: *mut nvmlRowRemapperHistogramValues_t,
8000    ) -> nvmlReturn_t {
8001        (self
8002            .nvmlDeviceGetRowRemapperHistogram
8003            .as_ref()
8004            .expect("Expected function, got error."))(device, values)
8005    }
8006    pub unsafe fn nvmlDeviceGetArchitecture(
8007        &self,
8008        device: nvmlDevice_t,
8009        arch: *mut nvmlDeviceArchitecture_t,
8010    ) -> nvmlReturn_t {
8011        (self
8012            .nvmlDeviceGetArchitecture
8013            .as_ref()
8014            .expect("Expected function, got error."))(device, arch)
8015    }
8016    pub unsafe fn nvmlDeviceGetClkMonStatus(
8017        &self,
8018        device: nvmlDevice_t,
8019        status: *mut nvmlClkMonStatus_t,
8020    ) -> nvmlReturn_t {
8021        (self
8022            .nvmlDeviceGetClkMonStatus
8023            .as_ref()
8024            .expect("Expected function, got error."))(device, status)
8025    }
8026    pub unsafe fn nvmlDeviceGetProcessUtilization(
8027        &self,
8028        device: nvmlDevice_t,
8029        utilization: *mut nvmlProcessUtilizationSample_t,
8030        processSamplesCount: *mut raw::c_uint,
8031        lastSeenTimeStamp: raw::c_ulonglong,
8032    ) -> nvmlReturn_t {
8033        (self
8034            .nvmlDeviceGetProcessUtilization
8035            .as_ref()
8036            .expect("Expected function, got error."))(
8037            device,
8038            utilization,
8039            processSamplesCount,
8040            lastSeenTimeStamp,
8041        )
8042    }
8043    pub unsafe fn nvmlDeviceGetProcessesUtilizationInfo(
8044        &self,
8045        device: nvmlDevice_t,
8046        procesesUtilInfo: *mut nvmlProcessesUtilizationInfo_t,
8047    ) -> nvmlReturn_t {
8048        (self
8049            .nvmlDeviceGetProcessesUtilizationInfo
8050            .as_ref()
8051            .expect("Expected function, got error."))(device, procesesUtilInfo)
8052    }
8053    pub unsafe fn nvmlDeviceGetPlatformInfo(
8054        &self,
8055        device: nvmlDevice_t,
8056        platformInfo: *mut nvmlPlatformInfo_t,
8057    ) -> nvmlReturn_t {
8058        (self
8059            .nvmlDeviceGetPlatformInfo
8060            .as_ref()
8061            .expect("Expected function, got error."))(device, platformInfo)
8062    }
8063    pub unsafe fn nvmlUnitSetLedState(
8064        &self,
8065        unit: nvmlUnit_t,
8066        color: nvmlLedColor_t,
8067    ) -> nvmlReturn_t {
8068        (self
8069            .nvmlUnitSetLedState
8070            .as_ref()
8071            .expect("Expected function, got error."))(unit, color)
8072    }
8073    pub unsafe fn nvmlDeviceSetPersistenceMode(
8074        &self,
8075        device: nvmlDevice_t,
8076        mode: nvmlEnableState_t,
8077    ) -> nvmlReturn_t {
8078        (self
8079            .nvmlDeviceSetPersistenceMode
8080            .as_ref()
8081            .expect("Expected function, got error."))(device, mode)
8082    }
8083    pub unsafe fn nvmlDeviceSetComputeMode(
8084        &self,
8085        device: nvmlDevice_t,
8086        mode: nvmlComputeMode_t,
8087    ) -> nvmlReturn_t {
8088        (self
8089            .nvmlDeviceSetComputeMode
8090            .as_ref()
8091            .expect("Expected function, got error."))(device, mode)
8092    }
8093    pub unsafe fn nvmlDeviceSetEccMode(
8094        &self,
8095        device: nvmlDevice_t,
8096        ecc: nvmlEnableState_t,
8097    ) -> nvmlReturn_t {
8098        (self
8099            .nvmlDeviceSetEccMode
8100            .as_ref()
8101            .expect("Expected function, got error."))(device, ecc)
8102    }
8103    pub unsafe fn nvmlDeviceClearEccErrorCounts(
8104        &self,
8105        device: nvmlDevice_t,
8106        counterType: nvmlEccCounterType_t,
8107    ) -> nvmlReturn_t {
8108        (self
8109            .nvmlDeviceClearEccErrorCounts
8110            .as_ref()
8111            .expect("Expected function, got error."))(device, counterType)
8112    }
8113    pub unsafe fn nvmlDeviceSetDriverModel(
8114        &self,
8115        device: nvmlDevice_t,
8116        driverModel: nvmlDriverModel_t,
8117        flags: raw::c_uint,
8118    ) -> nvmlReturn_t {
8119        (self
8120            .nvmlDeviceSetDriverModel
8121            .as_ref()
8122            .expect("Expected function, got error."))(device, driverModel, flags)
8123    }
8124    pub unsafe fn nvmlDeviceSetGpuLockedClocks(
8125        &self,
8126        device: nvmlDevice_t,
8127        minGpuClockMHz: raw::c_uint,
8128        maxGpuClockMHz: raw::c_uint,
8129    ) -> nvmlReturn_t {
8130        (self
8131            .nvmlDeviceSetGpuLockedClocks
8132            .as_ref()
8133            .expect("Expected function, got error."))(device, minGpuClockMHz, maxGpuClockMHz)
8134    }
8135    pub unsafe fn nvmlDeviceResetGpuLockedClocks(&self, device: nvmlDevice_t) -> nvmlReturn_t {
8136        (self
8137            .nvmlDeviceResetGpuLockedClocks
8138            .as_ref()
8139            .expect("Expected function, got error."))(device)
8140    }
8141    pub unsafe fn nvmlDeviceSetMemoryLockedClocks(
8142        &self,
8143        device: nvmlDevice_t,
8144        minMemClockMHz: raw::c_uint,
8145        maxMemClockMHz: raw::c_uint,
8146    ) -> nvmlReturn_t {
8147        (self
8148            .nvmlDeviceSetMemoryLockedClocks
8149            .as_ref()
8150            .expect("Expected function, got error."))(device, minMemClockMHz, maxMemClockMHz)
8151    }
8152    pub unsafe fn nvmlDeviceResetMemoryLockedClocks(&self, device: nvmlDevice_t) -> nvmlReturn_t {
8153        (self
8154            .nvmlDeviceResetMemoryLockedClocks
8155            .as_ref()
8156            .expect("Expected function, got error."))(device)
8157    }
8158    pub unsafe fn nvmlDeviceSetApplicationsClocks(
8159        &self,
8160        device: nvmlDevice_t,
8161        memClockMHz: raw::c_uint,
8162        graphicsClockMHz: raw::c_uint,
8163    ) -> nvmlReturn_t {
8164        (self
8165            .nvmlDeviceSetApplicationsClocks
8166            .as_ref()
8167            .expect("Expected function, got error."))(device, memClockMHz, graphicsClockMHz)
8168    }
8169    pub unsafe fn nvmlDeviceResetApplicationsClocks(&self, device: nvmlDevice_t) -> nvmlReturn_t {
8170        (self
8171            .nvmlDeviceResetApplicationsClocks
8172            .as_ref()
8173            .expect("Expected function, got error."))(device)
8174    }
8175    pub unsafe fn nvmlDeviceSetAutoBoostedClocksEnabled(
8176        &self,
8177        device: nvmlDevice_t,
8178        enabled: nvmlEnableState_t,
8179    ) -> nvmlReturn_t {
8180        (self
8181            .nvmlDeviceSetAutoBoostedClocksEnabled
8182            .as_ref()
8183            .expect("Expected function, got error."))(device, enabled)
8184    }
8185    pub unsafe fn nvmlDeviceSetDefaultAutoBoostedClocksEnabled(
8186        &self,
8187        device: nvmlDevice_t,
8188        enabled: nvmlEnableState_t,
8189        flags: raw::c_uint,
8190    ) -> nvmlReturn_t {
8191        (self
8192            .nvmlDeviceSetDefaultAutoBoostedClocksEnabled
8193            .as_ref()
8194            .expect("Expected function, got error."))(device, enabled, flags)
8195    }
8196    pub unsafe fn nvmlDeviceSetDefaultFanSpeed_v2(
8197        &self,
8198        device: nvmlDevice_t,
8199        fan: raw::c_uint,
8200    ) -> nvmlReturn_t {
8201        (self
8202            .nvmlDeviceSetDefaultFanSpeed_v2
8203            .as_ref()
8204            .expect("Expected function, got error."))(device, fan)
8205    }
8206    pub unsafe fn nvmlDeviceSetFanControlPolicy(
8207        &self,
8208        device: nvmlDevice_t,
8209        fan: raw::c_uint,
8210        policy: nvmlFanControlPolicy_t,
8211    ) -> nvmlReturn_t {
8212        (self
8213            .nvmlDeviceSetFanControlPolicy
8214            .as_ref()
8215            .expect("Expected function, got error."))(device, fan, policy)
8216    }
8217    pub unsafe fn nvmlDeviceSetTemperatureThreshold(
8218        &self,
8219        device: nvmlDevice_t,
8220        thresholdType: nvmlTemperatureThresholds_t,
8221        temp: *mut raw::c_int,
8222    ) -> nvmlReturn_t {
8223        (self
8224            .nvmlDeviceSetTemperatureThreshold
8225            .as_ref()
8226            .expect("Expected function, got error."))(device, thresholdType, temp)
8227    }
8228    pub unsafe fn nvmlDeviceSetPowerManagementLimit(
8229        &self,
8230        device: nvmlDevice_t,
8231        limit: raw::c_uint,
8232    ) -> nvmlReturn_t {
8233        (self
8234            .nvmlDeviceSetPowerManagementLimit
8235            .as_ref()
8236            .expect("Expected function, got error."))(device, limit)
8237    }
8238    pub unsafe fn nvmlDeviceSetGpuOperationMode(
8239        &self,
8240        device: nvmlDevice_t,
8241        mode: nvmlGpuOperationMode_t,
8242    ) -> nvmlReturn_t {
8243        (self
8244            .nvmlDeviceSetGpuOperationMode
8245            .as_ref()
8246            .expect("Expected function, got error."))(device, mode)
8247    }
8248    pub unsafe fn nvmlDeviceSetAPIRestriction(
8249        &self,
8250        device: nvmlDevice_t,
8251        apiType: nvmlRestrictedAPI_t,
8252        isRestricted: nvmlEnableState_t,
8253    ) -> nvmlReturn_t {
8254        (self
8255            .nvmlDeviceSetAPIRestriction
8256            .as_ref()
8257            .expect("Expected function, got error."))(device, apiType, isRestricted)
8258    }
8259    pub unsafe fn nvmlDeviceSetFanSpeed_v2(
8260        &self,
8261        device: nvmlDevice_t,
8262        fan: raw::c_uint,
8263        speed: raw::c_uint,
8264    ) -> nvmlReturn_t {
8265        (self
8266            .nvmlDeviceSetFanSpeed_v2
8267            .as_ref()
8268            .expect("Expected function, got error."))(device, fan, speed)
8269    }
8270    pub unsafe fn nvmlDeviceSetGpcClkVfOffset(
8271        &self,
8272        device: nvmlDevice_t,
8273        offset: raw::c_int,
8274    ) -> nvmlReturn_t {
8275        (self
8276            .nvmlDeviceSetGpcClkVfOffset
8277            .as_ref()
8278            .expect("Expected function, got error."))(device, offset)
8279    }
8280    pub unsafe fn nvmlDeviceSetMemClkVfOffset(
8281        &self,
8282        device: nvmlDevice_t,
8283        offset: raw::c_int,
8284    ) -> nvmlReturn_t {
8285        (self
8286            .nvmlDeviceSetMemClkVfOffset
8287            .as_ref()
8288            .expect("Expected function, got error."))(device, offset)
8289    }
8290    pub unsafe fn nvmlDeviceSetAccountingMode(
8291        &self,
8292        device: nvmlDevice_t,
8293        mode: nvmlEnableState_t,
8294    ) -> nvmlReturn_t {
8295        (self
8296            .nvmlDeviceSetAccountingMode
8297            .as_ref()
8298            .expect("Expected function, got error."))(device, mode)
8299    }
8300    pub unsafe fn nvmlDeviceClearAccountingPids(&self, device: nvmlDevice_t) -> nvmlReturn_t {
8301        (self
8302            .nvmlDeviceClearAccountingPids
8303            .as_ref()
8304            .expect("Expected function, got error."))(device)
8305    }
8306    pub unsafe fn nvmlDeviceSetPowerManagementLimit_v2(
8307        &self,
8308        device: nvmlDevice_t,
8309        powerValue: *mut nvmlPowerValue_v2_t,
8310    ) -> nvmlReturn_t {
8311        (self
8312            .nvmlDeviceSetPowerManagementLimit_v2
8313            .as_ref()
8314            .expect("Expected function, got error."))(device, powerValue)
8315    }
8316    pub unsafe fn nvmlDeviceGetNvLinkState(
8317        &self,
8318        device: nvmlDevice_t,
8319        link: raw::c_uint,
8320        isActive: *mut nvmlEnableState_t,
8321    ) -> nvmlReturn_t {
8322        (self
8323            .nvmlDeviceGetNvLinkState
8324            .as_ref()
8325            .expect("Expected function, got error."))(device, link, isActive)
8326    }
8327    pub unsafe fn nvmlDeviceGetNvLinkVersion(
8328        &self,
8329        device: nvmlDevice_t,
8330        link: raw::c_uint,
8331        version: *mut raw::c_uint,
8332    ) -> nvmlReturn_t {
8333        (self
8334            .nvmlDeviceGetNvLinkVersion
8335            .as_ref()
8336            .expect("Expected function, got error."))(device, link, version)
8337    }
8338    pub unsafe fn nvmlDeviceGetNvLinkCapability(
8339        &self,
8340        device: nvmlDevice_t,
8341        link: raw::c_uint,
8342        capability: nvmlNvLinkCapability_t,
8343        capResult: *mut raw::c_uint,
8344    ) -> nvmlReturn_t {
8345        (self
8346            .nvmlDeviceGetNvLinkCapability
8347            .as_ref()
8348            .expect("Expected function, got error."))(device, link, capability, capResult)
8349    }
8350    pub unsafe fn nvmlDeviceGetNvLinkRemotePciInfo_v2(
8351        &self,
8352        device: nvmlDevice_t,
8353        link: raw::c_uint,
8354        pci: *mut nvmlPciInfo_t,
8355    ) -> nvmlReturn_t {
8356        (self
8357            .nvmlDeviceGetNvLinkRemotePciInfo_v2
8358            .as_ref()
8359            .expect("Expected function, got error."))(device, link, pci)
8360    }
8361    pub unsafe fn nvmlDeviceGetNvLinkErrorCounter(
8362        &self,
8363        device: nvmlDevice_t,
8364        link: raw::c_uint,
8365        counter: nvmlNvLinkErrorCounter_t,
8366        counterValue: *mut raw::c_ulonglong,
8367    ) -> nvmlReturn_t {
8368        (self
8369            .nvmlDeviceGetNvLinkErrorCounter
8370            .as_ref()
8371            .expect("Expected function, got error."))(device, link, counter, counterValue)
8372    }
8373    pub unsafe fn nvmlDeviceResetNvLinkErrorCounters(
8374        &self,
8375        device: nvmlDevice_t,
8376        link: raw::c_uint,
8377    ) -> nvmlReturn_t {
8378        (self
8379            .nvmlDeviceResetNvLinkErrorCounters
8380            .as_ref()
8381            .expect("Expected function, got error."))(device, link)
8382    }
8383    pub unsafe fn nvmlDeviceSetNvLinkUtilizationControl(
8384        &self,
8385        device: nvmlDevice_t,
8386        link: raw::c_uint,
8387        counter: raw::c_uint,
8388        control: *mut nvmlNvLinkUtilizationControl_t,
8389        reset: raw::c_uint,
8390    ) -> nvmlReturn_t {
8391        (self
8392            .nvmlDeviceSetNvLinkUtilizationControl
8393            .as_ref()
8394            .expect("Expected function, got error."))(device, link, counter, control, reset)
8395    }
8396    pub unsafe fn nvmlDeviceGetNvLinkUtilizationControl(
8397        &self,
8398        device: nvmlDevice_t,
8399        link: raw::c_uint,
8400        counter: raw::c_uint,
8401        control: *mut nvmlNvLinkUtilizationControl_t,
8402    ) -> nvmlReturn_t {
8403        (self
8404            .nvmlDeviceGetNvLinkUtilizationControl
8405            .as_ref()
8406            .expect("Expected function, got error."))(device, link, counter, control)
8407    }
8408    pub unsafe fn nvmlDeviceGetNvLinkUtilizationCounter(
8409        &self,
8410        device: nvmlDevice_t,
8411        link: raw::c_uint,
8412        counter: raw::c_uint,
8413        rxcounter: *mut raw::c_ulonglong,
8414        txcounter: *mut raw::c_ulonglong,
8415    ) -> nvmlReturn_t {
8416        (self
8417            .nvmlDeviceGetNvLinkUtilizationCounter
8418            .as_ref()
8419            .expect("Expected function, got error."))(
8420            device, link, counter, rxcounter, txcounter
8421        )
8422    }
8423    pub unsafe fn nvmlDeviceFreezeNvLinkUtilizationCounter(
8424        &self,
8425        device: nvmlDevice_t,
8426        link: raw::c_uint,
8427        counter: raw::c_uint,
8428        freeze: nvmlEnableState_t,
8429    ) -> nvmlReturn_t {
8430        (self
8431            .nvmlDeviceFreezeNvLinkUtilizationCounter
8432            .as_ref()
8433            .expect("Expected function, got error."))(device, link, counter, freeze)
8434    }
8435    pub unsafe fn nvmlDeviceResetNvLinkUtilizationCounter(
8436        &self,
8437        device: nvmlDevice_t,
8438        link: raw::c_uint,
8439        counter: raw::c_uint,
8440    ) -> nvmlReturn_t {
8441        (self
8442            .nvmlDeviceResetNvLinkUtilizationCounter
8443            .as_ref()
8444            .expect("Expected function, got error."))(device, link, counter)
8445    }
8446    pub unsafe fn nvmlDeviceGetNvLinkRemoteDeviceType(
8447        &self,
8448        device: nvmlDevice_t,
8449        link: raw::c_uint,
8450        pNvLinkDeviceType: *mut nvmlIntNvLinkDeviceType_t,
8451    ) -> nvmlReturn_t {
8452        (self
8453            .nvmlDeviceGetNvLinkRemoteDeviceType
8454            .as_ref()
8455            .expect("Expected function, got error."))(device, link, pNvLinkDeviceType)
8456    }
8457    pub unsafe fn nvmlDeviceSetNvLinkDeviceLowPowerThreshold(
8458        &self,
8459        device: nvmlDevice_t,
8460        info: *mut nvmlNvLinkPowerThres_t,
8461    ) -> nvmlReturn_t {
8462        (self
8463            .nvmlDeviceSetNvLinkDeviceLowPowerThreshold
8464            .as_ref()
8465            .expect("Expected function, got error."))(device, info)
8466    }
8467    pub unsafe fn nvmlSystemSetNvlinkBwMode(&self, nvlinkBwMode: raw::c_uint) -> nvmlReturn_t {
8468        (self
8469            .nvmlSystemSetNvlinkBwMode
8470            .as_ref()
8471            .expect("Expected function, got error."))(nvlinkBwMode)
8472    }
8473    pub unsafe fn nvmlSystemGetNvlinkBwMode(&self, nvlinkBwMode: *mut raw::c_uint) -> nvmlReturn_t {
8474        (self
8475            .nvmlSystemGetNvlinkBwMode
8476            .as_ref()
8477            .expect("Expected function, got error."))(nvlinkBwMode)
8478    }
8479    pub unsafe fn nvmlDeviceGetNvlinkSupportedBwModes(
8480        &self,
8481        device: nvmlDevice_t,
8482        supportedBwMode: *mut nvmlNvlinkSupportedBwModes_t,
8483    ) -> nvmlReturn_t {
8484        (self
8485            .nvmlDeviceGetNvlinkSupportedBwModes
8486            .as_ref()
8487            .expect("Expected function, got error."))(device, supportedBwMode)
8488    }
8489    pub unsafe fn nvmlDeviceGetNvlinkBwMode(
8490        &self,
8491        device: nvmlDevice_t,
8492        getBwMode: *mut nvmlNvlinkGetBwMode_t,
8493    ) -> nvmlReturn_t {
8494        (self
8495            .nvmlDeviceGetNvlinkBwMode
8496            .as_ref()
8497            .expect("Expected function, got error."))(device, getBwMode)
8498    }
8499    pub unsafe fn nvmlDeviceSetNvlinkBwMode(
8500        &self,
8501        device: nvmlDevice_t,
8502        setBwMode: *mut nvmlNvlinkSetBwMode_t,
8503    ) -> nvmlReturn_t {
8504        (self
8505            .nvmlDeviceSetNvlinkBwMode
8506            .as_ref()
8507            .expect("Expected function, got error."))(device, setBwMode)
8508    }
8509    pub unsafe fn nvmlEventSetCreate(&self, set: *mut nvmlEventSet_t) -> nvmlReturn_t {
8510        (self
8511            .nvmlEventSetCreate
8512            .as_ref()
8513            .expect("Expected function, got error."))(set)
8514    }
8515    pub unsafe fn nvmlDeviceRegisterEvents(
8516        &self,
8517        device: nvmlDevice_t,
8518        eventTypes: raw::c_ulonglong,
8519        set: nvmlEventSet_t,
8520    ) -> nvmlReturn_t {
8521        (self
8522            .nvmlDeviceRegisterEvents
8523            .as_ref()
8524            .expect("Expected function, got error."))(device, eventTypes, set)
8525    }
8526    pub unsafe fn nvmlDeviceGetSupportedEventTypes(
8527        &self,
8528        device: nvmlDevice_t,
8529        eventTypes: *mut raw::c_ulonglong,
8530    ) -> nvmlReturn_t {
8531        (self
8532            .nvmlDeviceGetSupportedEventTypes
8533            .as_ref()
8534            .expect("Expected function, got error."))(device, eventTypes)
8535    }
8536    pub unsafe fn nvmlEventSetWait_v2(
8537        &self,
8538        set: nvmlEventSet_t,
8539        data: *mut nvmlEventData_t,
8540        timeoutms: raw::c_uint,
8541    ) -> nvmlReturn_t {
8542        (self
8543            .nvmlEventSetWait_v2
8544            .as_ref()
8545            .expect("Expected function, got error."))(set, data, timeoutms)
8546    }
8547    pub unsafe fn nvmlEventSetFree(&self, set: nvmlEventSet_t) -> nvmlReturn_t {
8548        (self
8549            .nvmlEventSetFree
8550            .as_ref()
8551            .expect("Expected function, got error."))(set)
8552    }
8553    pub unsafe fn nvmlDeviceModifyDrainState(
8554        &self,
8555        pciInfo: *mut nvmlPciInfo_t,
8556        newState: nvmlEnableState_t,
8557    ) -> nvmlReturn_t {
8558        (self
8559            .nvmlDeviceModifyDrainState
8560            .as_ref()
8561            .expect("Expected function, got error."))(pciInfo, newState)
8562    }
8563    pub unsafe fn nvmlDeviceQueryDrainState(
8564        &self,
8565        pciInfo: *mut nvmlPciInfo_t,
8566        currentState: *mut nvmlEnableState_t,
8567    ) -> nvmlReturn_t {
8568        (self
8569            .nvmlDeviceQueryDrainState
8570            .as_ref()
8571            .expect("Expected function, got error."))(pciInfo, currentState)
8572    }
8573    pub unsafe fn nvmlDeviceRemoveGpu_v2(
8574        &self,
8575        pciInfo: *mut nvmlPciInfo_t,
8576        gpuState: nvmlDetachGpuState_t,
8577        linkState: nvmlPcieLinkState_t,
8578    ) -> nvmlReturn_t {
8579        (self
8580            .nvmlDeviceRemoveGpu_v2
8581            .as_ref()
8582            .expect("Expected function, got error."))(pciInfo, gpuState, linkState)
8583    }
8584    pub unsafe fn nvmlDeviceDiscoverGpus(&self, pciInfo: *mut nvmlPciInfo_t) -> nvmlReturn_t {
8585        (self
8586            .nvmlDeviceDiscoverGpus
8587            .as_ref()
8588            .expect("Expected function, got error."))(pciInfo)
8589    }
8590    pub unsafe fn nvmlDeviceGetFieldValues(
8591        &self,
8592        device: nvmlDevice_t,
8593        valuesCount: raw::c_int,
8594        values: *mut nvmlFieldValue_t,
8595    ) -> nvmlReturn_t {
8596        (self
8597            .nvmlDeviceGetFieldValues
8598            .as_ref()
8599            .expect("Expected function, got error."))(device, valuesCount, values)
8600    }
8601    pub unsafe fn nvmlDeviceClearFieldValues(
8602        &self,
8603        device: nvmlDevice_t,
8604        valuesCount: raw::c_int,
8605        values: *mut nvmlFieldValue_t,
8606    ) -> nvmlReturn_t {
8607        (self
8608            .nvmlDeviceClearFieldValues
8609            .as_ref()
8610            .expect("Expected function, got error."))(device, valuesCount, values)
8611    }
8612    pub unsafe fn nvmlDeviceGetVirtualizationMode(
8613        &self,
8614        device: nvmlDevice_t,
8615        pVirtualMode: *mut nvmlGpuVirtualizationMode_t,
8616    ) -> nvmlReturn_t {
8617        (self
8618            .nvmlDeviceGetVirtualizationMode
8619            .as_ref()
8620            .expect("Expected function, got error."))(device, pVirtualMode)
8621    }
8622    pub unsafe fn nvmlDeviceGetHostVgpuMode(
8623        &self,
8624        device: nvmlDevice_t,
8625        pHostVgpuMode: *mut nvmlHostVgpuMode_t,
8626    ) -> nvmlReturn_t {
8627        (self
8628            .nvmlDeviceGetHostVgpuMode
8629            .as_ref()
8630            .expect("Expected function, got error."))(device, pHostVgpuMode)
8631    }
8632    pub unsafe fn nvmlDeviceSetVirtualizationMode(
8633        &self,
8634        device: nvmlDevice_t,
8635        virtualMode: nvmlGpuVirtualizationMode_t,
8636    ) -> nvmlReturn_t {
8637        (self
8638            .nvmlDeviceSetVirtualizationMode
8639            .as_ref()
8640            .expect("Expected function, got error."))(device, virtualMode)
8641    }
8642    pub unsafe fn nvmlDeviceGetVgpuHeterogeneousMode(
8643        &self,
8644        device: nvmlDevice_t,
8645        pHeterogeneousMode: *mut nvmlVgpuHeterogeneousMode_t,
8646    ) -> nvmlReturn_t {
8647        (self
8648            .nvmlDeviceGetVgpuHeterogeneousMode
8649            .as_ref()
8650            .expect("Expected function, got error."))(device, pHeterogeneousMode)
8651    }
8652    pub unsafe fn nvmlDeviceSetVgpuHeterogeneousMode(
8653        &self,
8654        device: nvmlDevice_t,
8655        pHeterogeneousMode: *const nvmlVgpuHeterogeneousMode_t,
8656    ) -> nvmlReturn_t {
8657        (self
8658            .nvmlDeviceSetVgpuHeterogeneousMode
8659            .as_ref()
8660            .expect("Expected function, got error."))(device, pHeterogeneousMode)
8661    }
8662    pub unsafe fn nvmlVgpuInstanceGetPlacementId(
8663        &self,
8664        vgpuInstance: nvmlVgpuInstance_t,
8665        pPlacement: *mut nvmlVgpuPlacementId_t,
8666    ) -> nvmlReturn_t {
8667        (self
8668            .nvmlVgpuInstanceGetPlacementId
8669            .as_ref()
8670            .expect("Expected function, got error."))(vgpuInstance, pPlacement)
8671    }
8672    pub unsafe fn nvmlDeviceGetVgpuTypeSupportedPlacements(
8673        &self,
8674        device: nvmlDevice_t,
8675        vgpuTypeId: nvmlVgpuTypeId_t,
8676        pPlacementList: *mut nvmlVgpuPlacementList_t,
8677    ) -> nvmlReturn_t {
8678        (self
8679            .nvmlDeviceGetVgpuTypeSupportedPlacements
8680            .as_ref()
8681            .expect("Expected function, got error."))(device, vgpuTypeId, pPlacementList)
8682    }
8683    pub unsafe fn nvmlDeviceGetVgpuTypeCreatablePlacements(
8684        &self,
8685        device: nvmlDevice_t,
8686        vgpuTypeId: nvmlVgpuTypeId_t,
8687        pPlacementList: *mut nvmlVgpuPlacementList_t,
8688    ) -> nvmlReturn_t {
8689        (self
8690            .nvmlDeviceGetVgpuTypeCreatablePlacements
8691            .as_ref()
8692            .expect("Expected function, got error."))(device, vgpuTypeId, pPlacementList)
8693    }
8694    pub unsafe fn nvmlVgpuTypeGetGspHeapSize(
8695        &self,
8696        vgpuTypeId: nvmlVgpuTypeId_t,
8697        gspHeapSize: *mut raw::c_ulonglong,
8698    ) -> nvmlReturn_t {
8699        (self
8700            .nvmlVgpuTypeGetGspHeapSize
8701            .as_ref()
8702            .expect("Expected function, got error."))(vgpuTypeId, gspHeapSize)
8703    }
8704    pub unsafe fn nvmlVgpuTypeGetFbReservation(
8705        &self,
8706        vgpuTypeId: nvmlVgpuTypeId_t,
8707        fbReservation: *mut raw::c_ulonglong,
8708    ) -> nvmlReturn_t {
8709        (self
8710            .nvmlVgpuTypeGetFbReservation
8711            .as_ref()
8712            .expect("Expected function, got error."))(vgpuTypeId, fbReservation)
8713    }
8714    pub unsafe fn nvmlVgpuInstanceGetRuntimeStateSize(
8715        &self,
8716        vgpuInstance: nvmlVgpuInstance_t,
8717        pState: *mut nvmlVgpuRuntimeState_t,
8718    ) -> nvmlReturn_t {
8719        (self
8720            .nvmlVgpuInstanceGetRuntimeStateSize
8721            .as_ref()
8722            .expect("Expected function, got error."))(vgpuInstance, pState)
8723    }
8724    pub unsafe fn nvmlDeviceSetVgpuCapabilities(
8725        &self,
8726        device: nvmlDevice_t,
8727        capability: nvmlDeviceVgpuCapability_t,
8728        state: nvmlEnableState_t,
8729    ) -> nvmlReturn_t {
8730        (self
8731            .nvmlDeviceSetVgpuCapabilities
8732            .as_ref()
8733            .expect("Expected function, got error."))(device, capability, state)
8734    }
8735    pub unsafe fn nvmlDeviceGetGridLicensableFeatures_v4(
8736        &self,
8737        device: nvmlDevice_t,
8738        pGridLicensableFeatures: *mut nvmlGridLicensableFeatures_t,
8739    ) -> nvmlReturn_t {
8740        (self
8741            .nvmlDeviceGetGridLicensableFeatures_v4
8742            .as_ref()
8743            .expect("Expected function, got error."))(device, pGridLicensableFeatures)
8744    }
8745    pub unsafe fn nvmlGetVgpuDriverCapabilities(
8746        &self,
8747        capability: nvmlVgpuDriverCapability_t,
8748        capResult: *mut raw::c_uint,
8749    ) -> nvmlReturn_t {
8750        (self
8751            .nvmlGetVgpuDriverCapabilities
8752            .as_ref()
8753            .expect("Expected function, got error."))(capability, capResult)
8754    }
8755    pub unsafe fn nvmlDeviceGetVgpuCapabilities(
8756        &self,
8757        device: nvmlDevice_t,
8758        capability: nvmlDeviceVgpuCapability_t,
8759        capResult: *mut raw::c_uint,
8760    ) -> nvmlReturn_t {
8761        (self
8762            .nvmlDeviceGetVgpuCapabilities
8763            .as_ref()
8764            .expect("Expected function, got error."))(device, capability, capResult)
8765    }
8766    pub unsafe fn nvmlDeviceGetSupportedVgpus(
8767        &self,
8768        device: nvmlDevice_t,
8769        vgpuCount: *mut raw::c_uint,
8770        vgpuTypeIds: *mut nvmlVgpuTypeId_t,
8771    ) -> nvmlReturn_t {
8772        (self
8773            .nvmlDeviceGetSupportedVgpus
8774            .as_ref()
8775            .expect("Expected function, got error."))(device, vgpuCount, vgpuTypeIds)
8776    }
8777    pub unsafe fn nvmlDeviceGetCreatableVgpus(
8778        &self,
8779        device: nvmlDevice_t,
8780        vgpuCount: *mut raw::c_uint,
8781        vgpuTypeIds: *mut nvmlVgpuTypeId_t,
8782    ) -> nvmlReturn_t {
8783        (self
8784            .nvmlDeviceGetCreatableVgpus
8785            .as_ref()
8786            .expect("Expected function, got error."))(device, vgpuCount, vgpuTypeIds)
8787    }
8788    pub unsafe fn nvmlVgpuTypeGetClass(
8789        &self,
8790        vgpuTypeId: nvmlVgpuTypeId_t,
8791        vgpuTypeClass: *mut raw::c_char,
8792        size: *mut raw::c_uint,
8793    ) -> nvmlReturn_t {
8794        (self
8795            .nvmlVgpuTypeGetClass
8796            .as_ref()
8797            .expect("Expected function, got error."))(vgpuTypeId, vgpuTypeClass, size)
8798    }
8799    pub unsafe fn nvmlVgpuTypeGetName(
8800        &self,
8801        vgpuTypeId: nvmlVgpuTypeId_t,
8802        vgpuTypeName: *mut raw::c_char,
8803        size: *mut raw::c_uint,
8804    ) -> nvmlReturn_t {
8805        (self
8806            .nvmlVgpuTypeGetName
8807            .as_ref()
8808            .expect("Expected function, got error."))(vgpuTypeId, vgpuTypeName, size)
8809    }
8810    pub unsafe fn nvmlVgpuTypeGetGpuInstanceProfileId(
8811        &self,
8812        vgpuTypeId: nvmlVgpuTypeId_t,
8813        gpuInstanceProfileId: *mut raw::c_uint,
8814    ) -> nvmlReturn_t {
8815        (self
8816            .nvmlVgpuTypeGetGpuInstanceProfileId
8817            .as_ref()
8818            .expect("Expected function, got error."))(vgpuTypeId, gpuInstanceProfileId)
8819    }
8820    pub unsafe fn nvmlVgpuTypeGetDeviceID(
8821        &self,
8822        vgpuTypeId: nvmlVgpuTypeId_t,
8823        deviceID: *mut raw::c_ulonglong,
8824        subsystemID: *mut raw::c_ulonglong,
8825    ) -> nvmlReturn_t {
8826        (self
8827            .nvmlVgpuTypeGetDeviceID
8828            .as_ref()
8829            .expect("Expected function, got error."))(vgpuTypeId, deviceID, subsystemID)
8830    }
8831    pub unsafe fn nvmlVgpuTypeGetFramebufferSize(
8832        &self,
8833        vgpuTypeId: nvmlVgpuTypeId_t,
8834        fbSize: *mut raw::c_ulonglong,
8835    ) -> nvmlReturn_t {
8836        (self
8837            .nvmlVgpuTypeGetFramebufferSize
8838            .as_ref()
8839            .expect("Expected function, got error."))(vgpuTypeId, fbSize)
8840    }
8841    pub unsafe fn nvmlVgpuTypeGetNumDisplayHeads(
8842        &self,
8843        vgpuTypeId: nvmlVgpuTypeId_t,
8844        numDisplayHeads: *mut raw::c_uint,
8845    ) -> nvmlReturn_t {
8846        (self
8847            .nvmlVgpuTypeGetNumDisplayHeads
8848            .as_ref()
8849            .expect("Expected function, got error."))(vgpuTypeId, numDisplayHeads)
8850    }
8851    pub unsafe fn nvmlVgpuTypeGetResolution(
8852        &self,
8853        vgpuTypeId: nvmlVgpuTypeId_t,
8854        displayIndex: raw::c_uint,
8855        xdim: *mut raw::c_uint,
8856        ydim: *mut raw::c_uint,
8857    ) -> nvmlReturn_t {
8858        (self
8859            .nvmlVgpuTypeGetResolution
8860            .as_ref()
8861            .expect("Expected function, got error."))(vgpuTypeId, displayIndex, xdim, ydim)
8862    }
8863    pub unsafe fn nvmlVgpuTypeGetLicense(
8864        &self,
8865        vgpuTypeId: nvmlVgpuTypeId_t,
8866        vgpuTypeLicenseString: *mut raw::c_char,
8867        size: raw::c_uint,
8868    ) -> nvmlReturn_t {
8869        (self
8870            .nvmlVgpuTypeGetLicense
8871            .as_ref()
8872            .expect("Expected function, got error."))(
8873            vgpuTypeId, vgpuTypeLicenseString, size
8874        )
8875    }
8876    pub unsafe fn nvmlVgpuTypeGetFrameRateLimit(
8877        &self,
8878        vgpuTypeId: nvmlVgpuTypeId_t,
8879        frameRateLimit: *mut raw::c_uint,
8880    ) -> nvmlReturn_t {
8881        (self
8882            .nvmlVgpuTypeGetFrameRateLimit
8883            .as_ref()
8884            .expect("Expected function, got error."))(vgpuTypeId, frameRateLimit)
8885    }
8886    pub unsafe fn nvmlVgpuTypeGetMaxInstances(
8887        &self,
8888        device: nvmlDevice_t,
8889        vgpuTypeId: nvmlVgpuTypeId_t,
8890        vgpuInstanceCount: *mut raw::c_uint,
8891    ) -> nvmlReturn_t {
8892        (self
8893            .nvmlVgpuTypeGetMaxInstances
8894            .as_ref()
8895            .expect("Expected function, got error."))(device, vgpuTypeId, vgpuInstanceCount)
8896    }
8897    pub unsafe fn nvmlVgpuTypeGetMaxInstancesPerVm(
8898        &self,
8899        vgpuTypeId: nvmlVgpuTypeId_t,
8900        vgpuInstanceCountPerVm: *mut raw::c_uint,
8901    ) -> nvmlReturn_t {
8902        (self
8903            .nvmlVgpuTypeGetMaxInstancesPerVm
8904            .as_ref()
8905            .expect("Expected function, got error."))(vgpuTypeId, vgpuInstanceCountPerVm)
8906    }
8907    pub unsafe fn nvmlVgpuTypeGetBAR1Info(
8908        &self,
8909        vgpuTypeId: nvmlVgpuTypeId_t,
8910        bar1Info: *mut nvmlVgpuTypeBar1Info_t,
8911    ) -> nvmlReturn_t {
8912        (self
8913            .nvmlVgpuTypeGetBAR1Info
8914            .as_ref()
8915            .expect("Expected function, got error."))(vgpuTypeId, bar1Info)
8916    }
8917    pub unsafe fn nvmlDeviceGetActiveVgpus(
8918        &self,
8919        device: nvmlDevice_t,
8920        vgpuCount: *mut raw::c_uint,
8921        vgpuInstances: *mut nvmlVgpuInstance_t,
8922    ) -> nvmlReturn_t {
8923        (self
8924            .nvmlDeviceGetActiveVgpus
8925            .as_ref()
8926            .expect("Expected function, got error."))(device, vgpuCount, vgpuInstances)
8927    }
8928    pub unsafe fn nvmlVgpuInstanceGetVmID(
8929        &self,
8930        vgpuInstance: nvmlVgpuInstance_t,
8931        vmId: *mut raw::c_char,
8932        size: raw::c_uint,
8933        vmIdType: *mut nvmlVgpuVmIdType_t,
8934    ) -> nvmlReturn_t {
8935        (self
8936            .nvmlVgpuInstanceGetVmID
8937            .as_ref()
8938            .expect("Expected function, got error."))(vgpuInstance, vmId, size, vmIdType)
8939    }
8940    pub unsafe fn nvmlVgpuInstanceGetUUID(
8941        &self,
8942        vgpuInstance: nvmlVgpuInstance_t,
8943        uuid: *mut raw::c_char,
8944        size: raw::c_uint,
8945    ) -> nvmlReturn_t {
8946        (self
8947            .nvmlVgpuInstanceGetUUID
8948            .as_ref()
8949            .expect("Expected function, got error."))(vgpuInstance, uuid, size)
8950    }
8951    pub unsafe fn nvmlVgpuInstanceGetVmDriverVersion(
8952        &self,
8953        vgpuInstance: nvmlVgpuInstance_t,
8954        version: *mut raw::c_char,
8955        length: raw::c_uint,
8956    ) -> nvmlReturn_t {
8957        (self
8958            .nvmlVgpuInstanceGetVmDriverVersion
8959            .as_ref()
8960            .expect("Expected function, got error."))(vgpuInstance, version, length)
8961    }
8962    pub unsafe fn nvmlVgpuInstanceGetFbUsage(
8963        &self,
8964        vgpuInstance: nvmlVgpuInstance_t,
8965        fbUsage: *mut raw::c_ulonglong,
8966    ) -> nvmlReturn_t {
8967        (self
8968            .nvmlVgpuInstanceGetFbUsage
8969            .as_ref()
8970            .expect("Expected function, got error."))(vgpuInstance, fbUsage)
8971    }
8972    pub unsafe fn nvmlVgpuInstanceGetLicenseStatus(
8973        &self,
8974        vgpuInstance: nvmlVgpuInstance_t,
8975        licensed: *mut raw::c_uint,
8976    ) -> nvmlReturn_t {
8977        (self
8978            .nvmlVgpuInstanceGetLicenseStatus
8979            .as_ref()
8980            .expect("Expected function, got error."))(vgpuInstance, licensed)
8981    }
8982    pub unsafe fn nvmlVgpuInstanceGetType(
8983        &self,
8984        vgpuInstance: nvmlVgpuInstance_t,
8985        vgpuTypeId: *mut nvmlVgpuTypeId_t,
8986    ) -> nvmlReturn_t {
8987        (self
8988            .nvmlVgpuInstanceGetType
8989            .as_ref()
8990            .expect("Expected function, got error."))(vgpuInstance, vgpuTypeId)
8991    }
8992    pub unsafe fn nvmlVgpuInstanceGetFrameRateLimit(
8993        &self,
8994        vgpuInstance: nvmlVgpuInstance_t,
8995        frameRateLimit: *mut raw::c_uint,
8996    ) -> nvmlReturn_t {
8997        (self
8998            .nvmlVgpuInstanceGetFrameRateLimit
8999            .as_ref()
9000            .expect("Expected function, got error."))(vgpuInstance, frameRateLimit)
9001    }
9002    pub unsafe fn nvmlVgpuInstanceGetEccMode(
9003        &self,
9004        vgpuInstance: nvmlVgpuInstance_t,
9005        eccMode: *mut nvmlEnableState_t,
9006    ) -> nvmlReturn_t {
9007        (self
9008            .nvmlVgpuInstanceGetEccMode
9009            .as_ref()
9010            .expect("Expected function, got error."))(vgpuInstance, eccMode)
9011    }
9012    pub unsafe fn nvmlVgpuInstanceGetEncoderCapacity(
9013        &self,
9014        vgpuInstance: nvmlVgpuInstance_t,
9015        encoderCapacity: *mut raw::c_uint,
9016    ) -> nvmlReturn_t {
9017        (self
9018            .nvmlVgpuInstanceGetEncoderCapacity
9019            .as_ref()
9020            .expect("Expected function, got error."))(vgpuInstance, encoderCapacity)
9021    }
9022    pub unsafe fn nvmlVgpuInstanceSetEncoderCapacity(
9023        &self,
9024        vgpuInstance: nvmlVgpuInstance_t,
9025        encoderCapacity: raw::c_uint,
9026    ) -> nvmlReturn_t {
9027        (self
9028            .nvmlVgpuInstanceSetEncoderCapacity
9029            .as_ref()
9030            .expect("Expected function, got error."))(vgpuInstance, encoderCapacity)
9031    }
9032    pub unsafe fn nvmlVgpuInstanceGetEncoderStats(
9033        &self,
9034        vgpuInstance: nvmlVgpuInstance_t,
9035        sessionCount: *mut raw::c_uint,
9036        averageFps: *mut raw::c_uint,
9037        averageLatency: *mut raw::c_uint,
9038    ) -> nvmlReturn_t {
9039        (self
9040            .nvmlVgpuInstanceGetEncoderStats
9041            .as_ref()
9042            .expect("Expected function, got error."))(
9043            vgpuInstance,
9044            sessionCount,
9045            averageFps,
9046            averageLatency,
9047        )
9048    }
9049    pub unsafe fn nvmlVgpuInstanceGetEncoderSessions(
9050        &self,
9051        vgpuInstance: nvmlVgpuInstance_t,
9052        sessionCount: *mut raw::c_uint,
9053        sessionInfo: *mut nvmlEncoderSessionInfo_t,
9054    ) -> nvmlReturn_t {
9055        (self
9056            .nvmlVgpuInstanceGetEncoderSessions
9057            .as_ref()
9058            .expect("Expected function, got error."))(
9059            vgpuInstance, sessionCount, sessionInfo
9060        )
9061    }
9062    pub unsafe fn nvmlVgpuInstanceGetFBCStats(
9063        &self,
9064        vgpuInstance: nvmlVgpuInstance_t,
9065        fbcStats: *mut nvmlFBCStats_t,
9066    ) -> nvmlReturn_t {
9067        (self
9068            .nvmlVgpuInstanceGetFBCStats
9069            .as_ref()
9070            .expect("Expected function, got error."))(vgpuInstance, fbcStats)
9071    }
9072    pub unsafe fn nvmlVgpuInstanceGetFBCSessions(
9073        &self,
9074        vgpuInstance: nvmlVgpuInstance_t,
9075        sessionCount: *mut raw::c_uint,
9076        sessionInfo: *mut nvmlFBCSessionInfo_t,
9077    ) -> nvmlReturn_t {
9078        (self
9079            .nvmlVgpuInstanceGetFBCSessions
9080            .as_ref()
9081            .expect("Expected function, got error."))(
9082            vgpuInstance, sessionCount, sessionInfo
9083        )
9084    }
9085    pub unsafe fn nvmlVgpuInstanceGetGpuInstanceId(
9086        &self,
9087        vgpuInstance: nvmlVgpuInstance_t,
9088        gpuInstanceId: *mut raw::c_uint,
9089    ) -> nvmlReturn_t {
9090        (self
9091            .nvmlVgpuInstanceGetGpuInstanceId
9092            .as_ref()
9093            .expect("Expected function, got error."))(vgpuInstance, gpuInstanceId)
9094    }
9095    pub unsafe fn nvmlVgpuInstanceGetGpuPciId(
9096        &self,
9097        vgpuInstance: nvmlVgpuInstance_t,
9098        vgpuPciId: *mut raw::c_char,
9099        length: *mut raw::c_uint,
9100    ) -> nvmlReturn_t {
9101        (self
9102            .nvmlVgpuInstanceGetGpuPciId
9103            .as_ref()
9104            .expect("Expected function, got error."))(vgpuInstance, vgpuPciId, length)
9105    }
9106    pub unsafe fn nvmlVgpuTypeGetCapabilities(
9107        &self,
9108        vgpuTypeId: nvmlVgpuTypeId_t,
9109        capability: nvmlVgpuCapability_t,
9110        capResult: *mut raw::c_uint,
9111    ) -> nvmlReturn_t {
9112        (self
9113            .nvmlVgpuTypeGetCapabilities
9114            .as_ref()
9115            .expect("Expected function, got error."))(vgpuTypeId, capability, capResult)
9116    }
9117    pub unsafe fn nvmlVgpuInstanceGetMdevUUID(
9118        &self,
9119        vgpuInstance: nvmlVgpuInstance_t,
9120        mdevUuid: *mut raw::c_char,
9121        size: raw::c_uint,
9122    ) -> nvmlReturn_t {
9123        (self
9124            .nvmlVgpuInstanceGetMdevUUID
9125            .as_ref()
9126            .expect("Expected function, got error."))(vgpuInstance, mdevUuid, size)
9127    }
9128    pub unsafe fn nvmlVgpuInstanceGetMetadata(
9129        &self,
9130        vgpuInstance: nvmlVgpuInstance_t,
9131        vgpuMetadata: *mut nvmlVgpuMetadata_t,
9132        bufferSize: *mut raw::c_uint,
9133    ) -> nvmlReturn_t {
9134        (self
9135            .nvmlVgpuInstanceGetMetadata
9136            .as_ref()
9137            .expect("Expected function, got error."))(vgpuInstance, vgpuMetadata, bufferSize)
9138    }
9139    pub unsafe fn nvmlDeviceGetVgpuMetadata(
9140        &self,
9141        device: nvmlDevice_t,
9142        pgpuMetadata: *mut nvmlVgpuPgpuMetadata_t,
9143        bufferSize: *mut raw::c_uint,
9144    ) -> nvmlReturn_t {
9145        (self
9146            .nvmlDeviceGetVgpuMetadata
9147            .as_ref()
9148            .expect("Expected function, got error."))(device, pgpuMetadata, bufferSize)
9149    }
9150    pub unsafe fn nvmlGetVgpuCompatibility(
9151        &self,
9152        vgpuMetadata: *mut nvmlVgpuMetadata_t,
9153        pgpuMetadata: *mut nvmlVgpuPgpuMetadata_t,
9154        compatibilityInfo: *mut nvmlVgpuPgpuCompatibility_t,
9155    ) -> nvmlReturn_t {
9156        (self
9157            .nvmlGetVgpuCompatibility
9158            .as_ref()
9159            .expect("Expected function, got error."))(
9160            vgpuMetadata, pgpuMetadata, compatibilityInfo
9161        )
9162    }
9163    pub unsafe fn nvmlDeviceGetPgpuMetadataString(
9164        &self,
9165        device: nvmlDevice_t,
9166        pgpuMetadata: *mut raw::c_char,
9167        bufferSize: *mut raw::c_uint,
9168    ) -> nvmlReturn_t {
9169        (self
9170            .nvmlDeviceGetPgpuMetadataString
9171            .as_ref()
9172            .expect("Expected function, got error."))(device, pgpuMetadata, bufferSize)
9173    }
9174    pub unsafe fn nvmlDeviceGetVgpuSchedulerLog(
9175        &self,
9176        device: nvmlDevice_t,
9177        pSchedulerLog: *mut nvmlVgpuSchedulerLog_t,
9178    ) -> nvmlReturn_t {
9179        (self
9180            .nvmlDeviceGetVgpuSchedulerLog
9181            .as_ref()
9182            .expect("Expected function, got error."))(device, pSchedulerLog)
9183    }
9184    pub unsafe fn nvmlDeviceGetVgpuSchedulerState(
9185        &self,
9186        device: nvmlDevice_t,
9187        pSchedulerState: *mut nvmlVgpuSchedulerGetState_t,
9188    ) -> nvmlReturn_t {
9189        (self
9190            .nvmlDeviceGetVgpuSchedulerState
9191            .as_ref()
9192            .expect("Expected function, got error."))(device, pSchedulerState)
9193    }
9194    pub unsafe fn nvmlDeviceGetVgpuSchedulerCapabilities(
9195        &self,
9196        device: nvmlDevice_t,
9197        pCapabilities: *mut nvmlVgpuSchedulerCapabilities_t,
9198    ) -> nvmlReturn_t {
9199        (self
9200            .nvmlDeviceGetVgpuSchedulerCapabilities
9201            .as_ref()
9202            .expect("Expected function, got error."))(device, pCapabilities)
9203    }
9204    pub unsafe fn nvmlDeviceSetVgpuSchedulerState(
9205        &self,
9206        device: nvmlDevice_t,
9207        pSchedulerState: *mut nvmlVgpuSchedulerSetState_t,
9208    ) -> nvmlReturn_t {
9209        (self
9210            .nvmlDeviceSetVgpuSchedulerState
9211            .as_ref()
9212            .expect("Expected function, got error."))(device, pSchedulerState)
9213    }
9214    pub unsafe fn nvmlGetVgpuVersion(
9215        &self,
9216        supported: *mut nvmlVgpuVersion_t,
9217        current: *mut nvmlVgpuVersion_t,
9218    ) -> nvmlReturn_t {
9219        (self
9220            .nvmlGetVgpuVersion
9221            .as_ref()
9222            .expect("Expected function, got error."))(supported, current)
9223    }
9224    pub unsafe fn nvmlSetVgpuVersion(&self, vgpuVersion: *mut nvmlVgpuVersion_t) -> nvmlReturn_t {
9225        (self
9226            .nvmlSetVgpuVersion
9227            .as_ref()
9228            .expect("Expected function, got error."))(vgpuVersion)
9229    }
9230    pub unsafe fn nvmlDeviceGetVgpuUtilization(
9231        &self,
9232        device: nvmlDevice_t,
9233        lastSeenTimeStamp: raw::c_ulonglong,
9234        sampleValType: *mut nvmlValueType_t,
9235        vgpuInstanceSamplesCount: *mut raw::c_uint,
9236        utilizationSamples: *mut nvmlVgpuInstanceUtilizationSample_t,
9237    ) -> nvmlReturn_t {
9238        (self
9239            .nvmlDeviceGetVgpuUtilization
9240            .as_ref()
9241            .expect("Expected function, got error."))(
9242            device,
9243            lastSeenTimeStamp,
9244            sampleValType,
9245            vgpuInstanceSamplesCount,
9246            utilizationSamples,
9247        )
9248    }
9249    pub unsafe fn nvmlDeviceGetVgpuInstancesUtilizationInfo(
9250        &self,
9251        device: nvmlDevice_t,
9252        vgpuUtilInfo: *mut nvmlVgpuInstancesUtilizationInfo_t,
9253    ) -> nvmlReturn_t {
9254        (self
9255            .nvmlDeviceGetVgpuInstancesUtilizationInfo
9256            .as_ref()
9257            .expect("Expected function, got error."))(device, vgpuUtilInfo)
9258    }
9259    pub unsafe fn nvmlDeviceGetVgpuProcessUtilization(
9260        &self,
9261        device: nvmlDevice_t,
9262        lastSeenTimeStamp: raw::c_ulonglong,
9263        vgpuProcessSamplesCount: *mut raw::c_uint,
9264        utilizationSamples: *mut nvmlVgpuProcessUtilizationSample_t,
9265    ) -> nvmlReturn_t {
9266        (self
9267            .nvmlDeviceGetVgpuProcessUtilization
9268            .as_ref()
9269            .expect("Expected function, got error."))(
9270            device,
9271            lastSeenTimeStamp,
9272            vgpuProcessSamplesCount,
9273            utilizationSamples,
9274        )
9275    }
9276    pub unsafe fn nvmlDeviceGetVgpuProcessesUtilizationInfo(
9277        &self,
9278        device: nvmlDevice_t,
9279        vgpuProcUtilInfo: *mut nvmlVgpuProcessesUtilizationInfo_t,
9280    ) -> nvmlReturn_t {
9281        (self
9282            .nvmlDeviceGetVgpuProcessesUtilizationInfo
9283            .as_ref()
9284            .expect("Expected function, got error."))(device, vgpuProcUtilInfo)
9285    }
9286    pub unsafe fn nvmlVgpuInstanceGetAccountingMode(
9287        &self,
9288        vgpuInstance: nvmlVgpuInstance_t,
9289        mode: *mut nvmlEnableState_t,
9290    ) -> nvmlReturn_t {
9291        (self
9292            .nvmlVgpuInstanceGetAccountingMode
9293            .as_ref()
9294            .expect("Expected function, got error."))(vgpuInstance, mode)
9295    }
9296    pub unsafe fn nvmlVgpuInstanceGetAccountingPids(
9297        &self,
9298        vgpuInstance: nvmlVgpuInstance_t,
9299        count: *mut raw::c_uint,
9300        pids: *mut raw::c_uint,
9301    ) -> nvmlReturn_t {
9302        (self
9303            .nvmlVgpuInstanceGetAccountingPids
9304            .as_ref()
9305            .expect("Expected function, got error."))(vgpuInstance, count, pids)
9306    }
9307    pub unsafe fn nvmlVgpuInstanceGetAccountingStats(
9308        &self,
9309        vgpuInstance: nvmlVgpuInstance_t,
9310        pid: raw::c_uint,
9311        stats: *mut nvmlAccountingStats_t,
9312    ) -> nvmlReturn_t {
9313        (self
9314            .nvmlVgpuInstanceGetAccountingStats
9315            .as_ref()
9316            .expect("Expected function, got error."))(vgpuInstance, pid, stats)
9317    }
9318    pub unsafe fn nvmlVgpuInstanceClearAccountingPids(
9319        &self,
9320        vgpuInstance: nvmlVgpuInstance_t,
9321    ) -> nvmlReturn_t {
9322        (self
9323            .nvmlVgpuInstanceClearAccountingPids
9324            .as_ref()
9325            .expect("Expected function, got error."))(vgpuInstance)
9326    }
9327    pub unsafe fn nvmlVgpuInstanceGetLicenseInfo_v2(
9328        &self,
9329        vgpuInstance: nvmlVgpuInstance_t,
9330        licenseInfo: *mut nvmlVgpuLicenseInfo_t,
9331    ) -> nvmlReturn_t {
9332        (self
9333            .nvmlVgpuInstanceGetLicenseInfo_v2
9334            .as_ref()
9335            .expect("Expected function, got error."))(vgpuInstance, licenseInfo)
9336    }
9337    pub unsafe fn nvmlGetExcludedDeviceCount(&self, deviceCount: *mut raw::c_uint) -> nvmlReturn_t {
9338        (self
9339            .nvmlGetExcludedDeviceCount
9340            .as_ref()
9341            .expect("Expected function, got error."))(deviceCount)
9342    }
9343    pub unsafe fn nvmlGetExcludedDeviceInfoByIndex(
9344        &self,
9345        index: raw::c_uint,
9346        info: *mut nvmlExcludedDeviceInfo_t,
9347    ) -> nvmlReturn_t {
9348        (self
9349            .nvmlGetExcludedDeviceInfoByIndex
9350            .as_ref()
9351            .expect("Expected function, got error."))(index, info)
9352    }
9353    pub unsafe fn nvmlDeviceSetMigMode(
9354        &self,
9355        device: nvmlDevice_t,
9356        mode: raw::c_uint,
9357        activationStatus: *mut nvmlReturn_t,
9358    ) -> nvmlReturn_t {
9359        (self
9360            .nvmlDeviceSetMigMode
9361            .as_ref()
9362            .expect("Expected function, got error."))(device, mode, activationStatus)
9363    }
9364    pub unsafe fn nvmlDeviceGetMigMode(
9365        &self,
9366        device: nvmlDevice_t,
9367        currentMode: *mut raw::c_uint,
9368        pendingMode: *mut raw::c_uint,
9369    ) -> nvmlReturn_t {
9370        (self
9371            .nvmlDeviceGetMigMode
9372            .as_ref()
9373            .expect("Expected function, got error."))(device, currentMode, pendingMode)
9374    }
9375    pub unsafe fn nvmlDeviceGetGpuInstanceProfileInfo(
9376        &self,
9377        device: nvmlDevice_t,
9378        profile: raw::c_uint,
9379        info: *mut nvmlGpuInstanceProfileInfo_t,
9380    ) -> nvmlReturn_t {
9381        (self
9382            .nvmlDeviceGetGpuInstanceProfileInfo
9383            .as_ref()
9384            .expect("Expected function, got error."))(device, profile, info)
9385    }
9386    pub unsafe fn nvmlDeviceGetGpuInstanceProfileInfoV(
9387        &self,
9388        device: nvmlDevice_t,
9389        profile: raw::c_uint,
9390        info: *mut nvmlGpuInstanceProfileInfo_v2_t,
9391    ) -> nvmlReturn_t {
9392        (self
9393            .nvmlDeviceGetGpuInstanceProfileInfoV
9394            .as_ref()
9395            .expect("Expected function, got error."))(device, profile, info)
9396    }
9397    pub unsafe fn nvmlDeviceGetGpuInstancePossiblePlacements_v2(
9398        &self,
9399        device: nvmlDevice_t,
9400        profileId: raw::c_uint,
9401        placements: *mut nvmlGpuInstancePlacement_t,
9402        count: *mut raw::c_uint,
9403    ) -> nvmlReturn_t {
9404        (self
9405            .nvmlDeviceGetGpuInstancePossiblePlacements_v2
9406            .as_ref()
9407            .expect("Expected function, got error."))(device, profileId, placements, count)
9408    }
9409    pub unsafe fn nvmlDeviceGetGpuInstanceRemainingCapacity(
9410        &self,
9411        device: nvmlDevice_t,
9412        profileId: raw::c_uint,
9413        count: *mut raw::c_uint,
9414    ) -> nvmlReturn_t {
9415        (self
9416            .nvmlDeviceGetGpuInstanceRemainingCapacity
9417            .as_ref()
9418            .expect("Expected function, got error."))(device, profileId, count)
9419    }
9420    pub unsafe fn nvmlDeviceCreateGpuInstance(
9421        &self,
9422        device: nvmlDevice_t,
9423        profileId: raw::c_uint,
9424        gpuInstance: *mut nvmlGpuInstance_t,
9425    ) -> nvmlReturn_t {
9426        (self
9427            .nvmlDeviceCreateGpuInstance
9428            .as_ref()
9429            .expect("Expected function, got error."))(device, profileId, gpuInstance)
9430    }
9431    pub unsafe fn nvmlDeviceCreateGpuInstanceWithPlacement(
9432        &self,
9433        device: nvmlDevice_t,
9434        profileId: raw::c_uint,
9435        placement: *const nvmlGpuInstancePlacement_t,
9436        gpuInstance: *mut nvmlGpuInstance_t,
9437    ) -> nvmlReturn_t {
9438        (self
9439            .nvmlDeviceCreateGpuInstanceWithPlacement
9440            .as_ref()
9441            .expect("Expected function, got error."))(
9442            device, profileId, placement, gpuInstance
9443        )
9444    }
9445    pub unsafe fn nvmlGpuInstanceDestroy(&self, gpuInstance: nvmlGpuInstance_t) -> nvmlReturn_t {
9446        (self
9447            .nvmlGpuInstanceDestroy
9448            .as_ref()
9449            .expect("Expected function, got error."))(gpuInstance)
9450    }
9451    pub unsafe fn nvmlDeviceGetGpuInstances(
9452        &self,
9453        device: nvmlDevice_t,
9454        profileId: raw::c_uint,
9455        gpuInstances: *mut nvmlGpuInstance_t,
9456        count: *mut raw::c_uint,
9457    ) -> nvmlReturn_t {
9458        (self
9459            .nvmlDeviceGetGpuInstances
9460            .as_ref()
9461            .expect("Expected function, got error."))(device, profileId, gpuInstances, count)
9462    }
9463    pub unsafe fn nvmlDeviceGetGpuInstanceById(
9464        &self,
9465        device: nvmlDevice_t,
9466        id: raw::c_uint,
9467        gpuInstance: *mut nvmlGpuInstance_t,
9468    ) -> nvmlReturn_t {
9469        (self
9470            .nvmlDeviceGetGpuInstanceById
9471            .as_ref()
9472            .expect("Expected function, got error."))(device, id, gpuInstance)
9473    }
9474    pub unsafe fn nvmlGpuInstanceGetInfo(
9475        &self,
9476        gpuInstance: nvmlGpuInstance_t,
9477        info: *mut nvmlGpuInstanceInfo_t,
9478    ) -> nvmlReturn_t {
9479        (self
9480            .nvmlGpuInstanceGetInfo
9481            .as_ref()
9482            .expect("Expected function, got error."))(gpuInstance, info)
9483    }
9484    pub unsafe fn nvmlGpuInstanceGetComputeInstanceProfileInfo(
9485        &self,
9486        gpuInstance: nvmlGpuInstance_t,
9487        profile: raw::c_uint,
9488        engProfile: raw::c_uint,
9489        info: *mut nvmlComputeInstanceProfileInfo_t,
9490    ) -> nvmlReturn_t {
9491        (self
9492            .nvmlGpuInstanceGetComputeInstanceProfileInfo
9493            .as_ref()
9494            .expect("Expected function, got error."))(gpuInstance, profile, engProfile, info)
9495    }
9496    pub unsafe fn nvmlGpuInstanceGetComputeInstanceProfileInfoV(
9497        &self,
9498        gpuInstance: nvmlGpuInstance_t,
9499        profile: raw::c_uint,
9500        engProfile: raw::c_uint,
9501        info: *mut nvmlComputeInstanceProfileInfo_v2_t,
9502    ) -> nvmlReturn_t {
9503        (self
9504            .nvmlGpuInstanceGetComputeInstanceProfileInfoV
9505            .as_ref()
9506            .expect("Expected function, got error."))(gpuInstance, profile, engProfile, info)
9507    }
9508    pub unsafe fn nvmlGpuInstanceGetComputeInstanceRemainingCapacity(
9509        &self,
9510        gpuInstance: nvmlGpuInstance_t,
9511        profileId: raw::c_uint,
9512        count: *mut raw::c_uint,
9513    ) -> nvmlReturn_t {
9514        (self
9515            .nvmlGpuInstanceGetComputeInstanceRemainingCapacity
9516            .as_ref()
9517            .expect("Expected function, got error."))(gpuInstance, profileId, count)
9518    }
9519    pub unsafe fn nvmlGpuInstanceGetComputeInstancePossiblePlacements(
9520        &self,
9521        gpuInstance: nvmlGpuInstance_t,
9522        profileId: raw::c_uint,
9523        placements: *mut nvmlComputeInstancePlacement_t,
9524        count: *mut raw::c_uint,
9525    ) -> nvmlReturn_t {
9526        (self
9527            .nvmlGpuInstanceGetComputeInstancePossiblePlacements
9528            .as_ref()
9529            .expect("Expected function, got error."))(
9530            gpuInstance, profileId, placements, count
9531        )
9532    }
9533    pub unsafe fn nvmlGpuInstanceCreateComputeInstance(
9534        &self,
9535        gpuInstance: nvmlGpuInstance_t,
9536        profileId: raw::c_uint,
9537        computeInstance: *mut nvmlComputeInstance_t,
9538    ) -> nvmlReturn_t {
9539        (self
9540            .nvmlGpuInstanceCreateComputeInstance
9541            .as_ref()
9542            .expect("Expected function, got error."))(
9543            gpuInstance, profileId, computeInstance
9544        )
9545    }
9546    pub unsafe fn nvmlGpuInstanceCreateComputeInstanceWithPlacement(
9547        &self,
9548        gpuInstance: nvmlGpuInstance_t,
9549        profileId: raw::c_uint,
9550        placement: *const nvmlComputeInstancePlacement_t,
9551        computeInstance: *mut nvmlComputeInstance_t,
9552    ) -> nvmlReturn_t {
9553        (self
9554            .nvmlGpuInstanceCreateComputeInstanceWithPlacement
9555            .as_ref()
9556            .expect("Expected function, got error."))(
9557            gpuInstance,
9558            profileId,
9559            placement,
9560            computeInstance,
9561        )
9562    }
9563    pub unsafe fn nvmlComputeInstanceDestroy(
9564        &self,
9565        computeInstance: nvmlComputeInstance_t,
9566    ) -> nvmlReturn_t {
9567        (self
9568            .nvmlComputeInstanceDestroy
9569            .as_ref()
9570            .expect("Expected function, got error."))(computeInstance)
9571    }
9572    pub unsafe fn nvmlGpuInstanceGetComputeInstances(
9573        &self,
9574        gpuInstance: nvmlGpuInstance_t,
9575        profileId: raw::c_uint,
9576        computeInstances: *mut nvmlComputeInstance_t,
9577        count: *mut raw::c_uint,
9578    ) -> nvmlReturn_t {
9579        (self
9580            .nvmlGpuInstanceGetComputeInstances
9581            .as_ref()
9582            .expect("Expected function, got error."))(
9583            gpuInstance,
9584            profileId,
9585            computeInstances,
9586            count,
9587        )
9588    }
9589    pub unsafe fn nvmlGpuInstanceGetComputeInstanceById(
9590        &self,
9591        gpuInstance: nvmlGpuInstance_t,
9592        id: raw::c_uint,
9593        computeInstance: *mut nvmlComputeInstance_t,
9594    ) -> nvmlReturn_t {
9595        (self
9596            .nvmlGpuInstanceGetComputeInstanceById
9597            .as_ref()
9598            .expect("Expected function, got error."))(gpuInstance, id, computeInstance)
9599    }
9600    pub unsafe fn nvmlComputeInstanceGetInfo_v2(
9601        &self,
9602        computeInstance: nvmlComputeInstance_t,
9603        info: *mut nvmlComputeInstanceInfo_t,
9604    ) -> nvmlReturn_t {
9605        (self
9606            .nvmlComputeInstanceGetInfo_v2
9607            .as_ref()
9608            .expect("Expected function, got error."))(computeInstance, info)
9609    }
9610    pub unsafe fn nvmlDeviceIsMigDeviceHandle(
9611        &self,
9612        device: nvmlDevice_t,
9613        isMigDevice: *mut raw::c_uint,
9614    ) -> nvmlReturn_t {
9615        (self
9616            .nvmlDeviceIsMigDeviceHandle
9617            .as_ref()
9618            .expect("Expected function, got error."))(device, isMigDevice)
9619    }
9620    pub unsafe fn nvmlDeviceGetGpuInstanceId(
9621        &self,
9622        device: nvmlDevice_t,
9623        id: *mut raw::c_uint,
9624    ) -> nvmlReturn_t {
9625        (self
9626            .nvmlDeviceGetGpuInstanceId
9627            .as_ref()
9628            .expect("Expected function, got error."))(device, id)
9629    }
9630    pub unsafe fn nvmlDeviceGetComputeInstanceId(
9631        &self,
9632        device: nvmlDevice_t,
9633        id: *mut raw::c_uint,
9634    ) -> nvmlReturn_t {
9635        (self
9636            .nvmlDeviceGetComputeInstanceId
9637            .as_ref()
9638            .expect("Expected function, got error."))(device, id)
9639    }
9640    pub unsafe fn nvmlDeviceGetMaxMigDeviceCount(
9641        &self,
9642        device: nvmlDevice_t,
9643        count: *mut raw::c_uint,
9644    ) -> nvmlReturn_t {
9645        (self
9646            .nvmlDeviceGetMaxMigDeviceCount
9647            .as_ref()
9648            .expect("Expected function, got error."))(device, count)
9649    }
9650    pub unsafe fn nvmlDeviceGetMigDeviceHandleByIndex(
9651        &self,
9652        device: nvmlDevice_t,
9653        index: raw::c_uint,
9654        migDevice: *mut nvmlDevice_t,
9655    ) -> nvmlReturn_t {
9656        (self
9657            .nvmlDeviceGetMigDeviceHandleByIndex
9658            .as_ref()
9659            .expect("Expected function, got error."))(device, index, migDevice)
9660    }
9661    pub unsafe fn nvmlDeviceGetDeviceHandleFromMigDeviceHandle(
9662        &self,
9663        migDevice: nvmlDevice_t,
9664        device: *mut nvmlDevice_t,
9665    ) -> nvmlReturn_t {
9666        (self
9667            .nvmlDeviceGetDeviceHandleFromMigDeviceHandle
9668            .as_ref()
9669            .expect("Expected function, got error."))(migDevice, device)
9670    }
9671    pub unsafe fn nvmlGpmMetricsGet(&self, metricsGet: *mut nvmlGpmMetricsGet_t) -> nvmlReturn_t {
9672        (self
9673            .nvmlGpmMetricsGet
9674            .as_ref()
9675            .expect("Expected function, got error."))(metricsGet)
9676    }
9677    pub unsafe fn nvmlGpmSampleFree(&self, gpmSample: nvmlGpmSample_t) -> nvmlReturn_t {
9678        (self
9679            .nvmlGpmSampleFree
9680            .as_ref()
9681            .expect("Expected function, got error."))(gpmSample)
9682    }
9683    pub unsafe fn nvmlGpmSampleAlloc(&self, gpmSample: *mut nvmlGpmSample_t) -> nvmlReturn_t {
9684        (self
9685            .nvmlGpmSampleAlloc
9686            .as_ref()
9687            .expect("Expected function, got error."))(gpmSample)
9688    }
9689    pub unsafe fn nvmlGpmSampleGet(
9690        &self,
9691        device: nvmlDevice_t,
9692        gpmSample: nvmlGpmSample_t,
9693    ) -> nvmlReturn_t {
9694        (self
9695            .nvmlGpmSampleGet
9696            .as_ref()
9697            .expect("Expected function, got error."))(device, gpmSample)
9698    }
9699    pub unsafe fn nvmlGpmMigSampleGet(
9700        &self,
9701        device: nvmlDevice_t,
9702        gpuInstanceId: raw::c_uint,
9703        gpmSample: nvmlGpmSample_t,
9704    ) -> nvmlReturn_t {
9705        (self
9706            .nvmlGpmMigSampleGet
9707            .as_ref()
9708            .expect("Expected function, got error."))(device, gpuInstanceId, gpmSample)
9709    }
9710    pub unsafe fn nvmlGpmQueryDeviceSupport(
9711        &self,
9712        device: nvmlDevice_t,
9713        gpmSupport: *mut nvmlGpmSupport_t,
9714    ) -> nvmlReturn_t {
9715        (self
9716            .nvmlGpmQueryDeviceSupport
9717            .as_ref()
9718            .expect("Expected function, got error."))(device, gpmSupport)
9719    }
9720    pub unsafe fn nvmlGpmQueryIfStreamingEnabled(
9721        &self,
9722        device: nvmlDevice_t,
9723        state: *mut raw::c_uint,
9724    ) -> nvmlReturn_t {
9725        (self
9726            .nvmlGpmQueryIfStreamingEnabled
9727            .as_ref()
9728            .expect("Expected function, got error."))(device, state)
9729    }
9730    pub unsafe fn nvmlGpmSetStreamingEnabled(
9731        &self,
9732        device: nvmlDevice_t,
9733        state: raw::c_uint,
9734    ) -> nvmlReturn_t {
9735        (self
9736            .nvmlGpmSetStreamingEnabled
9737            .as_ref()
9738            .expect("Expected function, got error."))(device, state)
9739    }
9740    pub unsafe fn nvmlDeviceGetCapabilities(
9741        &self,
9742        device: nvmlDevice_t,
9743        caps: *mut nvmlDeviceCapabilities_t,
9744    ) -> nvmlReturn_t {
9745        (self
9746            .nvmlDeviceGetCapabilities
9747            .as_ref()
9748            .expect("Expected function, got error."))(device, caps)
9749    }
9750    pub unsafe fn nvmlDeviceWorkloadPowerProfileGetProfilesInfo(
9751        &self,
9752        device: nvmlDevice_t,
9753        profilesInfo: *mut nvmlWorkloadPowerProfileProfilesInfo_t,
9754    ) -> nvmlReturn_t {
9755        (self
9756            .nvmlDeviceWorkloadPowerProfileGetProfilesInfo
9757            .as_ref()
9758            .expect("Expected function, got error."))(device, profilesInfo)
9759    }
9760    pub unsafe fn nvmlDeviceWorkloadPowerProfileGetCurrentProfiles(
9761        &self,
9762        device: nvmlDevice_t,
9763        currentProfiles: *mut nvmlWorkloadPowerProfileCurrentProfiles_t,
9764    ) -> nvmlReturn_t {
9765        (self
9766            .nvmlDeviceWorkloadPowerProfileGetCurrentProfiles
9767            .as_ref()
9768            .expect("Expected function, got error."))(device, currentProfiles)
9769    }
9770    pub unsafe fn nvmlDeviceWorkloadPowerProfileSetRequestedProfiles(
9771        &self,
9772        device: nvmlDevice_t,
9773        requestedProfiles: *mut nvmlWorkloadPowerProfileRequestedProfiles_t,
9774    ) -> nvmlReturn_t {
9775        (self
9776            .nvmlDeviceWorkloadPowerProfileSetRequestedProfiles
9777            .as_ref()
9778            .expect("Expected function, got error."))(device, requestedProfiles)
9779    }
9780    pub unsafe fn nvmlDeviceWorkloadPowerProfileClearRequestedProfiles(
9781        &self,
9782        device: nvmlDevice_t,
9783        requestedProfiles: *mut nvmlWorkloadPowerProfileRequestedProfiles_t,
9784    ) -> nvmlReturn_t {
9785        (self
9786            .nvmlDeviceWorkloadPowerProfileClearRequestedProfiles
9787            .as_ref()
9788            .expect("Expected function, got error."))(device, requestedProfiles)
9789    }
9790    pub unsafe fn nvmlDevicePowerSmoothingActivatePresetProfile(
9791        &self,
9792        device: nvmlDevice_t,
9793        profile: *mut nvmlPowerSmoothingProfile_t,
9794    ) -> nvmlReturn_t {
9795        (self
9796            .nvmlDevicePowerSmoothingActivatePresetProfile
9797            .as_ref()
9798            .expect("Expected function, got error."))(device, profile)
9799    }
9800    pub unsafe fn nvmlDevicePowerSmoothingUpdatePresetProfileParam(
9801        &self,
9802        device: nvmlDevice_t,
9803        profile: *mut nvmlPowerSmoothingProfile_t,
9804    ) -> nvmlReturn_t {
9805        (self
9806            .nvmlDevicePowerSmoothingUpdatePresetProfileParam
9807            .as_ref()
9808            .expect("Expected function, got error."))(device, profile)
9809    }
9810    pub unsafe fn nvmlDevicePowerSmoothingSetState(
9811        &self,
9812        device: nvmlDevice_t,
9813        state: *mut nvmlPowerSmoothingState_t,
9814    ) -> nvmlReturn_t {
9815        (self
9816            .nvmlDevicePowerSmoothingSetState
9817            .as_ref()
9818            .expect("Expected function, got error."))(device, state)
9819    }
9820    #[cfg(feature = "legacy-functions")]
9821    pub unsafe fn nvmlInit(&self) -> nvmlReturn_t {
9822        (self
9823            .nvmlInit
9824            .as_ref()
9825            .expect("Expected function, got error."))()
9826    }
9827    #[cfg(feature = "legacy-functions")]
9828    pub unsafe fn nvmlDeviceGetCount(&self, deviceCount: *mut raw::c_uint) -> nvmlReturn_t {
9829        (self
9830            .nvmlDeviceGetCount
9831            .as_ref()
9832            .expect("Expected function, got error."))(deviceCount)
9833    }
9834    #[cfg(feature = "legacy-functions")]
9835    pub unsafe fn nvmlDeviceGetHandleByIndex(
9836        &self,
9837        index: raw::c_uint,
9838        device: *mut nvmlDevice_t,
9839    ) -> nvmlReturn_t {
9840        (self
9841            .nvmlDeviceGetHandleByIndex
9842            .as_ref()
9843            .expect("Expected function, got error."))(index, device)
9844    }
9845    #[cfg(feature = "legacy-functions")]
9846    pub unsafe fn nvmlDeviceGetHandleByPciBusId(
9847        &self,
9848        pciBusId: *const raw::c_char,
9849        device: *mut nvmlDevice_t,
9850    ) -> nvmlReturn_t {
9851        (self
9852            .nvmlDeviceGetHandleByPciBusId
9853            .as_ref()
9854            .expect("Expected function, got error."))(pciBusId, device)
9855    }
9856    #[cfg(feature = "legacy-functions")]
9857    pub unsafe fn nvmlDeviceGetPciInfo(
9858        &self,
9859        device: nvmlDevice_t,
9860        pci: *mut nvmlPciInfo_t,
9861    ) -> nvmlReturn_t {
9862        (self
9863            .nvmlDeviceGetPciInfo
9864            .as_ref()
9865            .expect("Expected function, got error."))(device, pci)
9866    }
9867    #[cfg(feature = "legacy-functions")]
9868    pub unsafe fn nvmlDeviceGetPciInfo_v2(
9869        &self,
9870        device: nvmlDevice_t,
9871        pci: *mut nvmlPciInfo_t,
9872    ) -> nvmlReturn_t {
9873        (self
9874            .nvmlDeviceGetPciInfo_v2
9875            .as_ref()
9876            .expect("Expected function, got error."))(device, pci)
9877    }
9878    #[cfg(feature = "legacy-functions")]
9879    pub unsafe fn nvmlDeviceGetNvLinkRemotePciInfo(
9880        &self,
9881        device: nvmlDevice_t,
9882        link: raw::c_uint,
9883        pci: *mut nvmlPciInfo_t,
9884    ) -> nvmlReturn_t {
9885        (self
9886            .nvmlDeviceGetNvLinkRemotePciInfo
9887            .as_ref()
9888            .expect("Expected function, got error."))(device, link, pci)
9889    }
9890    #[cfg(feature = "legacy-functions")]
9891    pub unsafe fn nvmlDeviceGetGridLicensableFeatures(
9892        &self,
9893        device: nvmlDevice_t,
9894        pGridLicensableFeatures: *mut nvmlGridLicensableFeatures_t,
9895    ) -> nvmlReturn_t {
9896        (self
9897            .nvmlDeviceGetGridLicensableFeatures
9898            .as_ref()
9899            .expect("Expected function, got error."))(device, pGridLicensableFeatures)
9900    }
9901    #[cfg(feature = "legacy-functions")]
9902    pub unsafe fn nvmlDeviceGetGridLicensableFeatures_v2(
9903        &self,
9904        device: nvmlDevice_t,
9905        pGridLicensableFeatures: *mut nvmlGridLicensableFeatures_t,
9906    ) -> nvmlReturn_t {
9907        (self
9908            .nvmlDeviceGetGridLicensableFeatures_v2
9909            .as_ref()
9910            .expect("Expected function, got error."))(device, pGridLicensableFeatures)
9911    }
9912    #[cfg(feature = "legacy-functions")]
9913    pub unsafe fn nvmlDeviceGetGridLicensableFeatures_v3(
9914        &self,
9915        device: nvmlDevice_t,
9916        pGridLicensableFeatures: *mut nvmlGridLicensableFeatures_t,
9917    ) -> nvmlReturn_t {
9918        (self
9919            .nvmlDeviceGetGridLicensableFeatures_v3
9920            .as_ref()
9921            .expect("Expected function, got error."))(device, pGridLicensableFeatures)
9922    }
9923    #[cfg(feature = "legacy-functions")]
9924    pub unsafe fn nvmlDeviceRemoveGpu(&self, pciInfo: *mut nvmlPciInfo_t) -> nvmlReturn_t {
9925        (self
9926            .nvmlDeviceRemoveGpu
9927            .as_ref()
9928            .expect("Expected function, got error."))(pciInfo)
9929    }
9930    #[cfg(feature = "legacy-functions")]
9931    pub unsafe fn nvmlEventSetWait(
9932        &self,
9933        set: nvmlEventSet_t,
9934        data: *mut nvmlEventData_t,
9935        timeoutms: raw::c_uint,
9936    ) -> nvmlReturn_t {
9937        (self
9938            .nvmlEventSetWait
9939            .as_ref()
9940            .expect("Expected function, got error."))(set, data, timeoutms)
9941    }
9942    #[cfg(feature = "legacy-functions")]
9943    pub unsafe fn nvmlDeviceGetAttributes(
9944        &self,
9945        device: nvmlDevice_t,
9946        attributes: *mut nvmlDeviceAttributes_t,
9947    ) -> nvmlReturn_t {
9948        (self
9949            .nvmlDeviceGetAttributes
9950            .as_ref()
9951            .expect("Expected function, got error."))(device, attributes)
9952    }
9953    #[cfg(feature = "legacy-functions")]
9954    pub unsafe fn nvmlComputeInstanceGetInfo(
9955        &self,
9956        computeInstance: nvmlComputeInstance_t,
9957        info: *mut nvmlComputeInstanceInfo_t,
9958    ) -> nvmlReturn_t {
9959        (self
9960            .nvmlComputeInstanceGetInfo
9961            .as_ref()
9962            .expect("Expected function, got error."))(computeInstance, info)
9963    }
9964    #[cfg(feature = "legacy-functions")]
9965    pub unsafe fn nvmlDeviceGetComputeRunningProcesses(
9966        &self,
9967        device: nvmlDevice_t,
9968        infoCount: *mut raw::c_uint,
9969        infos: *mut nvmlProcessInfo_v1_t,
9970    ) -> nvmlReturn_t {
9971        (self
9972            .nvmlDeviceGetComputeRunningProcesses
9973            .as_ref()
9974            .expect("Expected function, got error."))(device, infoCount, infos)
9975    }
9976    #[cfg(feature = "legacy-functions")]
9977    pub unsafe fn nvmlDeviceGetComputeRunningProcesses_v2(
9978        &self,
9979        device: nvmlDevice_t,
9980        infoCount: *mut raw::c_uint,
9981        infos: *mut nvmlProcessInfo_v2_t,
9982    ) -> nvmlReturn_t {
9983        (self
9984            .nvmlDeviceGetComputeRunningProcesses_v2
9985            .as_ref()
9986            .expect("Expected function, got error."))(device, infoCount, infos)
9987    }
9988    #[cfg(feature = "legacy-functions")]
9989    pub unsafe fn nvmlDeviceGetGraphicsRunningProcesses(
9990        &self,
9991        device: nvmlDevice_t,
9992        infoCount: *mut raw::c_uint,
9993        infos: *mut nvmlProcessInfo_v1_t,
9994    ) -> nvmlReturn_t {
9995        (self
9996            .nvmlDeviceGetGraphicsRunningProcesses
9997            .as_ref()
9998            .expect("Expected function, got error."))(device, infoCount, infos)
9999    }
10000    #[cfg(feature = "legacy-functions")]
10001    pub unsafe fn nvmlDeviceGetGraphicsRunningProcesses_v2(
10002        &self,
10003        device: nvmlDevice_t,
10004        infoCount: *mut raw::c_uint,
10005        infos: *mut nvmlProcessInfo_v2_t,
10006    ) -> nvmlReturn_t {
10007        (self
10008            .nvmlDeviceGetGraphicsRunningProcesses_v2
10009            .as_ref()
10010            .expect("Expected function, got error."))(device, infoCount, infos)
10011    }
10012    #[cfg(feature = "legacy-functions")]
10013    pub unsafe fn nvmlDeviceGetMPSComputeRunningProcesses(
10014        &self,
10015        device: nvmlDevice_t,
10016        infoCount: *mut raw::c_uint,
10017        infos: *mut nvmlProcessInfo_v1_t,
10018    ) -> nvmlReturn_t {
10019        (self
10020            .nvmlDeviceGetMPSComputeRunningProcesses
10021            .as_ref()
10022            .expect("Expected function, got error."))(device, infoCount, infos)
10023    }
10024    #[cfg(feature = "legacy-functions")]
10025    pub unsafe fn nvmlDeviceGetMPSComputeRunningProcesses_v2(
10026        &self,
10027        device: nvmlDevice_t,
10028        infoCount: *mut raw::c_uint,
10029        infos: *mut nvmlProcessInfo_v2_t,
10030    ) -> nvmlReturn_t {
10031        (self
10032            .nvmlDeviceGetMPSComputeRunningProcesses_v2
10033            .as_ref()
10034            .expect("Expected function, got error."))(device, infoCount, infos)
10035    }
10036    #[cfg(feature = "legacy-functions")]
10037    pub unsafe fn nvmlDeviceGetGpuInstancePossiblePlacements(
10038        &self,
10039        device: nvmlDevice_t,
10040        profileId: raw::c_uint,
10041        placements: *mut nvmlGpuInstancePlacement_t,
10042        count: *mut raw::c_uint,
10043    ) -> nvmlReturn_t {
10044        (self
10045            .nvmlDeviceGetGpuInstancePossiblePlacements
10046            .as_ref()
10047            .expect("Expected function, got error."))(device, profileId, placements, count)
10048    }
10049    #[cfg(feature = "legacy-functions")]
10050    pub unsafe fn nvmlVgpuInstanceGetLicenseInfo(
10051        &self,
10052        vgpuInstance: nvmlVgpuInstance_t,
10053        licenseInfo: *mut nvmlVgpuLicenseInfo_t,
10054    ) -> nvmlReturn_t {
10055        (self
10056            .nvmlVgpuInstanceGetLicenseInfo
10057            .as_ref()
10058            .expect("Expected function, got error."))(vgpuInstance, licenseInfo)
10059    }
10060    pub unsafe fn nvmlDeviceGetDriverModel(
10061        &self,
10062        device: nvmlDevice_t,
10063        current: *mut nvmlDriverModel_t,
10064        pending: *mut nvmlDriverModel_t,
10065    ) -> nvmlReturn_t {
10066        (self
10067            .nvmlDeviceGetDriverModel
10068            .as_ref()
10069            .expect("Expected function, got error."))(device, current, pending)
10070    }
10071}