Skip to main content

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