nvml_wrapper_sys/
bindings.rs

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