simt_hip_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.65.1 */
2
3#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage> {
6    storage: Storage,
7}
8impl<Storage> __BindgenBitfieldUnit<Storage> {
9    #[inline]
10    pub const fn new(storage: Storage) -> Self {
11        Self { storage }
12    }
13}
14impl<Storage> __BindgenBitfieldUnit<Storage>
15where
16    Storage: AsRef<[u8]> + AsMut<[u8]>,
17{
18    #[inline]
19    pub fn get_bit(&self, index: usize) -> bool {
20        debug_assert!(index / 8 < self.storage.as_ref().len());
21        let byte_index = index / 8;
22        let byte = self.storage.as_ref()[byte_index];
23        let bit_index = if cfg!(target_endian = "big") {
24            7 - (index % 8)
25        } else {
26            index % 8
27        };
28        let mask = 1 << bit_index;
29        byte & mask == mask
30    }
31    #[inline]
32    pub fn set_bit(&mut self, index: usize, val: bool) {
33        debug_assert!(index / 8 < self.storage.as_ref().len());
34        let byte_index = index / 8;
35        let byte = &mut self.storage.as_mut()[byte_index];
36        let bit_index = if cfg!(target_endian = "big") {
37            7 - (index % 8)
38        } else {
39            index % 8
40        };
41        let mask = 1 << bit_index;
42        if val {
43            *byte |= mask;
44        } else {
45            *byte &= !mask;
46        }
47    }
48    #[inline]
49    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
50        debug_assert!(bit_width <= 64);
51        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
52        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
53        let mut val = 0;
54        for i in 0..(bit_width as usize) {
55            if self.get_bit(i + bit_offset) {
56                let index = if cfg!(target_endian = "big") {
57                    bit_width as usize - 1 - i
58                } else {
59                    i
60                };
61                val |= 1 << index;
62            }
63        }
64        val
65    }
66    #[inline]
67    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
68        debug_assert!(bit_width <= 64);
69        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
70        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
71        for i in 0..(bit_width as usize) {
72            let mask = 1 << i;
73            let val_bit_is_set = val & mask == mask;
74            let index = if cfg!(target_endian = "big") {
75                bit_width as usize - 1 - i
76            } else {
77                i
78            };
79            self.set_bit(index + bit_offset, val_bit_is_set);
80        }
81    }
82}
83#[repr(C)]
84#[repr(align(4))]
85#[derive(Debug, Copy, Clone)]
86pub struct hipDeviceArch_t {
87    pub _bitfield_align_1: [u8; 0],
88    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>,
89    pub __bindgen_padding_0: u8,
90}
91impl hipDeviceArch_t {
92    #[inline]
93    pub fn hasGlobalInt32Atomics(&self) -> ::std::os::raw::c_uint {
94        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
95    }
96    #[inline]
97    pub fn set_hasGlobalInt32Atomics(&mut self, val: ::std::os::raw::c_uint) {
98        unsafe {
99            let val: u32 = ::std::mem::transmute(val);
100            self._bitfield_1.set(0usize, 1u8, val as u64)
101        }
102    }
103    #[inline]
104    pub fn hasGlobalFloatAtomicExch(&self) -> ::std::os::raw::c_uint {
105        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
106    }
107    #[inline]
108    pub fn set_hasGlobalFloatAtomicExch(&mut self, val: ::std::os::raw::c_uint) {
109        unsafe {
110            let val: u32 = ::std::mem::transmute(val);
111            self._bitfield_1.set(1usize, 1u8, val as u64)
112        }
113    }
114    #[inline]
115    pub fn hasSharedInt32Atomics(&self) -> ::std::os::raw::c_uint {
116        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
117    }
118    #[inline]
119    pub fn set_hasSharedInt32Atomics(&mut self, val: ::std::os::raw::c_uint) {
120        unsafe {
121            let val: u32 = ::std::mem::transmute(val);
122            self._bitfield_1.set(2usize, 1u8, val as u64)
123        }
124    }
125    #[inline]
126    pub fn hasSharedFloatAtomicExch(&self) -> ::std::os::raw::c_uint {
127        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
128    }
129    #[inline]
130    pub fn set_hasSharedFloatAtomicExch(&mut self, val: ::std::os::raw::c_uint) {
131        unsafe {
132            let val: u32 = ::std::mem::transmute(val);
133            self._bitfield_1.set(3usize, 1u8, val as u64)
134        }
135    }
136    #[inline]
137    pub fn hasFloatAtomicAdd(&self) -> ::std::os::raw::c_uint {
138        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
139    }
140    #[inline]
141    pub fn set_hasFloatAtomicAdd(&mut self, val: ::std::os::raw::c_uint) {
142        unsafe {
143            let val: u32 = ::std::mem::transmute(val);
144            self._bitfield_1.set(4usize, 1u8, val as u64)
145        }
146    }
147    #[inline]
148    pub fn hasGlobalInt64Atomics(&self) -> ::std::os::raw::c_uint {
149        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
150    }
151    #[inline]
152    pub fn set_hasGlobalInt64Atomics(&mut self, val: ::std::os::raw::c_uint) {
153        unsafe {
154            let val: u32 = ::std::mem::transmute(val);
155            self._bitfield_1.set(5usize, 1u8, val as u64)
156        }
157    }
158    #[inline]
159    pub fn hasSharedInt64Atomics(&self) -> ::std::os::raw::c_uint {
160        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
161    }
162    #[inline]
163    pub fn set_hasSharedInt64Atomics(&mut self, val: ::std::os::raw::c_uint) {
164        unsafe {
165            let val: u32 = ::std::mem::transmute(val);
166            self._bitfield_1.set(6usize, 1u8, val as u64)
167        }
168    }
169    #[inline]
170    pub fn hasDoubles(&self) -> ::std::os::raw::c_uint {
171        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
172    }
173    #[inline]
174    pub fn set_hasDoubles(&mut self, val: ::std::os::raw::c_uint) {
175        unsafe {
176            let val: u32 = ::std::mem::transmute(val);
177            self._bitfield_1.set(7usize, 1u8, val as u64)
178        }
179    }
180    #[inline]
181    pub fn hasWarpVote(&self) -> ::std::os::raw::c_uint {
182        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
183    }
184    #[inline]
185    pub fn set_hasWarpVote(&mut self, val: ::std::os::raw::c_uint) {
186        unsafe {
187            let val: u32 = ::std::mem::transmute(val);
188            self._bitfield_1.set(8usize, 1u8, val as u64)
189        }
190    }
191    #[inline]
192    pub fn hasWarpBallot(&self) -> ::std::os::raw::c_uint {
193        unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
194    }
195    #[inline]
196    pub fn set_hasWarpBallot(&mut self, val: ::std::os::raw::c_uint) {
197        unsafe {
198            let val: u32 = ::std::mem::transmute(val);
199            self._bitfield_1.set(9usize, 1u8, val as u64)
200        }
201    }
202    #[inline]
203    pub fn hasWarpShuffle(&self) -> ::std::os::raw::c_uint {
204        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
205    }
206    #[inline]
207    pub fn set_hasWarpShuffle(&mut self, val: ::std::os::raw::c_uint) {
208        unsafe {
209            let val: u32 = ::std::mem::transmute(val);
210            self._bitfield_1.set(10usize, 1u8, val as u64)
211        }
212    }
213    #[inline]
214    pub fn hasFunnelShift(&self) -> ::std::os::raw::c_uint {
215        unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
216    }
217    #[inline]
218    pub fn set_hasFunnelShift(&mut self, val: ::std::os::raw::c_uint) {
219        unsafe {
220            let val: u32 = ::std::mem::transmute(val);
221            self._bitfield_1.set(11usize, 1u8, val as u64)
222        }
223    }
224    #[inline]
225    pub fn hasThreadFenceSystem(&self) -> ::std::os::raw::c_uint {
226        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
227    }
228    #[inline]
229    pub fn set_hasThreadFenceSystem(&mut self, val: ::std::os::raw::c_uint) {
230        unsafe {
231            let val: u32 = ::std::mem::transmute(val);
232            self._bitfield_1.set(12usize, 1u8, val as u64)
233        }
234    }
235    #[inline]
236    pub fn hasSyncThreadsExt(&self) -> ::std::os::raw::c_uint {
237        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
238    }
239    #[inline]
240    pub fn set_hasSyncThreadsExt(&mut self, val: ::std::os::raw::c_uint) {
241        unsafe {
242            let val: u32 = ::std::mem::transmute(val);
243            self._bitfield_1.set(13usize, 1u8, val as u64)
244        }
245    }
246    #[inline]
247    pub fn hasSurfaceFuncs(&self) -> ::std::os::raw::c_uint {
248        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) }
249    }
250    #[inline]
251    pub fn set_hasSurfaceFuncs(&mut self, val: ::std::os::raw::c_uint) {
252        unsafe {
253            let val: u32 = ::std::mem::transmute(val);
254            self._bitfield_1.set(14usize, 1u8, val as u64)
255        }
256    }
257    #[inline]
258    pub fn has3dGrid(&self) -> ::std::os::raw::c_uint {
259        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
260    }
261    #[inline]
262    pub fn set_has3dGrid(&mut self, val: ::std::os::raw::c_uint) {
263        unsafe {
264            let val: u32 = ::std::mem::transmute(val);
265            self._bitfield_1.set(15usize, 1u8, val as u64)
266        }
267    }
268    #[inline]
269    pub fn hasDynamicParallelism(&self) -> ::std::os::raw::c_uint {
270        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) }
271    }
272    #[inline]
273    pub fn set_hasDynamicParallelism(&mut self, val: ::std::os::raw::c_uint) {
274        unsafe {
275            let val: u32 = ::std::mem::transmute(val);
276            self._bitfield_1.set(16usize, 1u8, val as u64)
277        }
278    }
279    #[inline]
280    pub fn new_bitfield_1(
281        hasGlobalInt32Atomics: ::std::os::raw::c_uint,
282        hasGlobalFloatAtomicExch: ::std::os::raw::c_uint,
283        hasSharedInt32Atomics: ::std::os::raw::c_uint,
284        hasSharedFloatAtomicExch: ::std::os::raw::c_uint,
285        hasFloatAtomicAdd: ::std::os::raw::c_uint,
286        hasGlobalInt64Atomics: ::std::os::raw::c_uint,
287        hasSharedInt64Atomics: ::std::os::raw::c_uint,
288        hasDoubles: ::std::os::raw::c_uint,
289        hasWarpVote: ::std::os::raw::c_uint,
290        hasWarpBallot: ::std::os::raw::c_uint,
291        hasWarpShuffle: ::std::os::raw::c_uint,
292        hasFunnelShift: ::std::os::raw::c_uint,
293        hasThreadFenceSystem: ::std::os::raw::c_uint,
294        hasSyncThreadsExt: ::std::os::raw::c_uint,
295        hasSurfaceFuncs: ::std::os::raw::c_uint,
296        has3dGrid: ::std::os::raw::c_uint,
297        hasDynamicParallelism: ::std::os::raw::c_uint,
298    ) -> __BindgenBitfieldUnit<[u8; 3usize]> {
299        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default();
300        __bindgen_bitfield_unit.set(0usize, 1u8, {
301            let hasGlobalInt32Atomics: u32 =
302                unsafe { ::std::mem::transmute(hasGlobalInt32Atomics) };
303            hasGlobalInt32Atomics as u64
304        });
305        __bindgen_bitfield_unit.set(1usize, 1u8, {
306            let hasGlobalFloatAtomicExch: u32 =
307                unsafe { ::std::mem::transmute(hasGlobalFloatAtomicExch) };
308            hasGlobalFloatAtomicExch as u64
309        });
310        __bindgen_bitfield_unit.set(2usize, 1u8, {
311            let hasSharedInt32Atomics: u32 =
312                unsafe { ::std::mem::transmute(hasSharedInt32Atomics) };
313            hasSharedInt32Atomics as u64
314        });
315        __bindgen_bitfield_unit.set(3usize, 1u8, {
316            let hasSharedFloatAtomicExch: u32 =
317                unsafe { ::std::mem::transmute(hasSharedFloatAtomicExch) };
318            hasSharedFloatAtomicExch as u64
319        });
320        __bindgen_bitfield_unit.set(4usize, 1u8, {
321            let hasFloatAtomicAdd: u32 = unsafe { ::std::mem::transmute(hasFloatAtomicAdd) };
322            hasFloatAtomicAdd as u64
323        });
324        __bindgen_bitfield_unit.set(5usize, 1u8, {
325            let hasGlobalInt64Atomics: u32 =
326                unsafe { ::std::mem::transmute(hasGlobalInt64Atomics) };
327            hasGlobalInt64Atomics as u64
328        });
329        __bindgen_bitfield_unit.set(6usize, 1u8, {
330            let hasSharedInt64Atomics: u32 =
331                unsafe { ::std::mem::transmute(hasSharedInt64Atomics) };
332            hasSharedInt64Atomics as u64
333        });
334        __bindgen_bitfield_unit.set(7usize, 1u8, {
335            let hasDoubles: u32 = unsafe { ::std::mem::transmute(hasDoubles) };
336            hasDoubles as u64
337        });
338        __bindgen_bitfield_unit.set(8usize, 1u8, {
339            let hasWarpVote: u32 = unsafe { ::std::mem::transmute(hasWarpVote) };
340            hasWarpVote as u64
341        });
342        __bindgen_bitfield_unit.set(9usize, 1u8, {
343            let hasWarpBallot: u32 = unsafe { ::std::mem::transmute(hasWarpBallot) };
344            hasWarpBallot as u64
345        });
346        __bindgen_bitfield_unit.set(10usize, 1u8, {
347            let hasWarpShuffle: u32 = unsafe { ::std::mem::transmute(hasWarpShuffle) };
348            hasWarpShuffle as u64
349        });
350        __bindgen_bitfield_unit.set(11usize, 1u8, {
351            let hasFunnelShift: u32 = unsafe { ::std::mem::transmute(hasFunnelShift) };
352            hasFunnelShift as u64
353        });
354        __bindgen_bitfield_unit.set(12usize, 1u8, {
355            let hasThreadFenceSystem: u32 = unsafe { ::std::mem::transmute(hasThreadFenceSystem) };
356            hasThreadFenceSystem as u64
357        });
358        __bindgen_bitfield_unit.set(13usize, 1u8, {
359            let hasSyncThreadsExt: u32 = unsafe { ::std::mem::transmute(hasSyncThreadsExt) };
360            hasSyncThreadsExt as u64
361        });
362        __bindgen_bitfield_unit.set(14usize, 1u8, {
363            let hasSurfaceFuncs: u32 = unsafe { ::std::mem::transmute(hasSurfaceFuncs) };
364            hasSurfaceFuncs as u64
365        });
366        __bindgen_bitfield_unit.set(15usize, 1u8, {
367            let has3dGrid: u32 = unsafe { ::std::mem::transmute(has3dGrid) };
368            has3dGrid as u64
369        });
370        __bindgen_bitfield_unit.set(16usize, 1u8, {
371            let hasDynamicParallelism: u32 =
372                unsafe { ::std::mem::transmute(hasDynamicParallelism) };
373            hasDynamicParallelism as u64
374        });
375        __bindgen_bitfield_unit
376    }
377}
378#[repr(C)]
379#[derive(Debug, Copy, Clone)]
380pub struct hipUUID_t {
381    pub bytes: [::std::os::raw::c_char; 16usize],
382}
383pub type hipUUID = hipUUID_t;
384#[doc = " hipDeviceProp\n"]
385#[repr(C)]
386#[derive(Debug, Copy, Clone)]
387pub struct hipDeviceProp_t {
388    #[doc = "< Device name."]
389    pub name: [::std::os::raw::c_char; 256usize],
390    #[doc = "< Size of global memory region (in bytes)."]
391    pub totalGlobalMem: usize,
392    #[doc = "< Size of shared memory region (in bytes)."]
393    pub sharedMemPerBlock: usize,
394    #[doc = "< Registers per block."]
395    pub regsPerBlock: ::std::os::raw::c_int,
396    #[doc = "< Warp size."]
397    pub warpSize: ::std::os::raw::c_int,
398    #[doc = "< Max work items per work group or workgroup max size."]
399    pub maxThreadsPerBlock: ::std::os::raw::c_int,
400    #[doc = "< Max number of threads in each dimension (XYZ) of a block."]
401    pub maxThreadsDim: [::std::os::raw::c_int; 3usize],
402    #[doc = "< Max grid dimensions (XYZ)."]
403    pub maxGridSize: [::std::os::raw::c_int; 3usize],
404    #[doc = "< Max clock frequency of the multiProcessors in khz."]
405    pub clockRate: ::std::os::raw::c_int,
406    #[doc = "< Max global memory clock frequency in khz."]
407    pub memoryClockRate: ::std::os::raw::c_int,
408    #[doc = "< Global memory bus width in bits."]
409    pub memoryBusWidth: ::std::os::raw::c_int,
410    #[doc = "< Size of shared memory region (in bytes)."]
411    pub totalConstMem: usize,
412    #[doc = "< Major compute capability.  On HCC, this is an approximation and features may\n< differ from CUDA CC.  See the arch feature flags for portable ways to query\n< feature caps."]
413    pub major: ::std::os::raw::c_int,
414    #[doc = "< Minor compute capability.  On HCC, this is an approximation and features may\n< differ from CUDA CC.  See the arch feature flags for portable ways to query\n< feature caps."]
415    pub minor: ::std::os::raw::c_int,
416    #[doc = "< Number of multi-processors (compute units)."]
417    pub multiProcessorCount: ::std::os::raw::c_int,
418    #[doc = "< L2 cache size."]
419    pub l2CacheSize: ::std::os::raw::c_int,
420    #[doc = "< Maximum resident threads per multi-processor."]
421    pub maxThreadsPerMultiProcessor: ::std::os::raw::c_int,
422    #[doc = "< Compute mode."]
423    pub computeMode: ::std::os::raw::c_int,
424    #[doc = "< Frequency in khz of the timer used by the device-side \"clock*\"\n< instructions.  New for HIP."]
425    pub clockInstructionRate: ::std::os::raw::c_int,
426    #[doc = "< Architectural feature flags.  New for HIP."]
427    pub arch: hipDeviceArch_t,
428    #[doc = "< Device can possibly execute multiple kernels concurrently."]
429    pub concurrentKernels: ::std::os::raw::c_int,
430    #[doc = "< PCI Domain ID"]
431    pub pciDomainID: ::std::os::raw::c_int,
432    #[doc = "< PCI Bus ID."]
433    pub pciBusID: ::std::os::raw::c_int,
434    #[doc = "< PCI Device ID."]
435    pub pciDeviceID: ::std::os::raw::c_int,
436    #[doc = "< Maximum Shared Memory Per Multiprocessor."]
437    pub maxSharedMemoryPerMultiProcessor: usize,
438    #[doc = "< 1 if device is on a multi-GPU board, 0 if not."]
439    pub isMultiGpuBoard: ::std::os::raw::c_int,
440    #[doc = "< Check whether HIP can map host memory"]
441    pub canMapHostMemory: ::std::os::raw::c_int,
442    #[doc = "< DEPRECATED: use gcnArchName instead"]
443    pub gcnArch: ::std::os::raw::c_int,
444    #[doc = "< AMD GCN Arch Name."]
445    pub gcnArchName: [::std::os::raw::c_char; 256usize],
446    #[doc = "< APU vs dGPU"]
447    pub integrated: ::std::os::raw::c_int,
448    #[doc = "< HIP device supports cooperative launch"]
449    pub cooperativeLaunch: ::std::os::raw::c_int,
450    #[doc = "< HIP device supports cooperative launch on multiple devices"]
451    pub cooperativeMultiDeviceLaunch: ::std::os::raw::c_int,
452    #[doc = "< Maximum size for 1D textures bound to linear memory"]
453    pub maxTexture1DLinear: ::std::os::raw::c_int,
454    #[doc = "< Maximum number of elements in 1D images"]
455    pub maxTexture1D: ::std::os::raw::c_int,
456    #[doc = "< Maximum dimensions (width, height) of 2D images, in image elements"]
457    pub maxTexture2D: [::std::os::raw::c_int; 2usize],
458    #[doc = "< Maximum dimensions (width, height, depth) of 3D images, in image elements"]
459    pub maxTexture3D: [::std::os::raw::c_int; 3usize],
460    #[doc = "< Addres of HDP_MEM_COHERENCY_FLUSH_CNTL register"]
461    pub hdpMemFlushCntl: *mut ::std::os::raw::c_uint,
462    #[doc = "< Addres of HDP_REG_COHERENCY_FLUSH_CNTL register"]
463    pub hdpRegFlushCntl: *mut ::std::os::raw::c_uint,
464    #[doc = "<Maximum pitch in bytes allowed by memory copies"]
465    pub memPitch: usize,
466    #[doc = "<Alignment requirement for textures"]
467    pub textureAlignment: usize,
468    #[doc = "<Pitch alignment requirement for texture references bound to pitched memory"]
469    pub texturePitchAlignment: usize,
470    #[doc = "<Run time limit for kernels executed on the device"]
471    pub kernelExecTimeoutEnabled: ::std::os::raw::c_int,
472    #[doc = "<Device has ECC support enabled"]
473    pub ECCEnabled: ::std::os::raw::c_int,
474    #[doc = "< 1:If device is Tesla device using TCC driver, else 0"]
475    pub tccDriver: ::std::os::raw::c_int,
476    #[doc = "< HIP device supports cooperative launch on multiple"]
477    pub cooperativeMultiDeviceUnmatchedFunc: ::std::os::raw::c_int,
478    #[doc = "< HIP device supports cooperative launch on multiple"]
479    pub cooperativeMultiDeviceUnmatchedGridDim: ::std::os::raw::c_int,
480    #[doc = "< HIP device supports cooperative launch on multiple"]
481    pub cooperativeMultiDeviceUnmatchedBlockDim: ::std::os::raw::c_int,
482    #[doc = "< HIP device supports cooperative launch on multiple"]
483    pub cooperativeMultiDeviceUnmatchedSharedMem: ::std::os::raw::c_int,
484    #[doc = "< 1: if it is a large PCI bar device, else 0"]
485    pub isLargeBar: ::std::os::raw::c_int,
486    #[doc = "< Revision of the GPU in this device"]
487    pub asicRevision: ::std::os::raw::c_int,
488    #[doc = "< Device supports allocating managed memory on this system"]
489    pub managedMemory: ::std::os::raw::c_int,
490    #[doc = "< Host can directly access managed memory on the device without migration"]
491    pub directManagedMemAccessFromHost: ::std::os::raw::c_int,
492    #[doc = "< Device can coherently access managed memory concurrently with the CPU"]
493    pub concurrentManagedAccess: ::std::os::raw::c_int,
494    #[doc = "< Device supports coherently accessing pageable memory\n< without calling hipHostRegister on it"]
495    pub pageableMemoryAccess: ::std::os::raw::c_int,
496    #[doc = "< Device accesses pageable memory via the host's page tables"]
497    pub pageableMemoryAccessUsesHostPageTables: ::std::os::raw::c_int,
498}
499#[repr(u32)]
500#[doc = " Memory type (for pointer attributes)"]
501#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
502pub enum hipMemoryType {
503    #[doc = "< Memory is physically located on host"]
504    hipMemoryTypeHost = 0,
505    #[doc = "< Memory is physically located on device. (see deviceId for specific\n< device)"]
506    hipMemoryTypeDevice = 1,
507    #[doc = "< Array memory, physically located on device. (see deviceId for specific\n< device)"]
508    hipMemoryTypeArray = 2,
509    #[doc = "< Not used currently"]
510    hipMemoryTypeUnified = 3,
511    #[doc = "< Managed memory, automaticallly managed by the unified memory system"]
512    hipMemoryTypeManaged = 4,
513}
514#[doc = " Pointer attributes"]
515#[repr(C)]
516#[derive(Debug, Copy, Clone)]
517pub struct hipPointerAttribute_t {
518    pub memoryType: hipMemoryType,
519    pub device: ::std::os::raw::c_int,
520    pub devicePointer: *mut ::std::os::raw::c_void,
521    pub hostPointer: *mut ::std::os::raw::c_void,
522    pub isManaged: ::std::os::raw::c_int,
523    pub allocationFlags: ::std::os::raw::c_uint,
524}
525impl hipError_t {
526    pub const hipErrorMemoryAllocation: hipError_t = hipError_t::hipErrorOutOfMemory;
527}
528impl hipError_t {
529    pub const hipErrorInitializationError: hipError_t = hipError_t::hipErrorNotInitialized;
530}
531impl hipError_t {
532    pub const hipErrorMapBufferObjectFailed: hipError_t = hipError_t::hipErrorMapFailed;
533}
534impl hipError_t {
535    pub const hipErrorInvalidResourceHandle: hipError_t = hipError_t::hipErrorInvalidHandle;
536}
537#[repr(u32)]
538#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
539pub enum hipError_t {
540    #[doc = "< Successful completion."]
541    hipSuccess = 0,
542    #[doc = "< One or more of the parameters passed to the API call is NULL\n< or not in an acceptable range."]
543    hipErrorInvalidValue = 1,
544    hipErrorOutOfMemory = 2,
545    hipErrorNotInitialized = 3,
546    hipErrorDeinitialized = 4,
547    hipErrorProfilerDisabled = 5,
548    hipErrorProfilerNotInitialized = 6,
549    hipErrorProfilerAlreadyStarted = 7,
550    hipErrorProfilerAlreadyStopped = 8,
551    hipErrorInvalidConfiguration = 9,
552    hipErrorInvalidPitchValue = 12,
553    hipErrorInvalidSymbol = 13,
554    #[doc = "< Invalid Device Pointer"]
555    hipErrorInvalidDevicePointer = 17,
556    #[doc = "< Invalid memory copy direction"]
557    hipErrorInvalidMemcpyDirection = 21,
558    hipErrorInsufficientDriver = 35,
559    hipErrorMissingConfiguration = 52,
560    hipErrorPriorLaunchFailure = 53,
561    hipErrorInvalidDeviceFunction = 98,
562    #[doc = "< Call to hipGetDeviceCount returned 0 devices"]
563    hipErrorNoDevice = 100,
564    #[doc = "< DeviceID must be in range 0...#compute-devices."]
565    hipErrorInvalidDevice = 101,
566    hipErrorInvalidImage = 200,
567    #[doc = "< Produced when input context is invalid."]
568    hipErrorInvalidContext = 201,
569    hipErrorContextAlreadyCurrent = 202,
570    hipErrorMapFailed = 205,
571    hipErrorUnmapFailed = 206,
572    hipErrorArrayIsMapped = 207,
573    hipErrorAlreadyMapped = 208,
574    hipErrorNoBinaryForGpu = 209,
575    hipErrorAlreadyAcquired = 210,
576    hipErrorNotMapped = 211,
577    hipErrorNotMappedAsArray = 212,
578    hipErrorNotMappedAsPointer = 213,
579    hipErrorECCNotCorrectable = 214,
580    hipErrorUnsupportedLimit = 215,
581    hipErrorContextAlreadyInUse = 216,
582    hipErrorPeerAccessUnsupported = 217,
583    #[doc = "< In CUDA DRV, it is CUDA_ERROR_INVALID_PTX"]
584    hipErrorInvalidKernelFile = 218,
585    hipErrorInvalidGraphicsContext = 219,
586    hipErrorInvalidSource = 300,
587    hipErrorFileNotFound = 301,
588    hipErrorSharedObjectSymbolNotFound = 302,
589    hipErrorSharedObjectInitFailed = 303,
590    hipErrorOperatingSystem = 304,
591    hipErrorInvalidHandle = 400,
592    #[doc = "< Resource required is not in a valid state to perform operation."]
593    hipErrorIllegalState = 401,
594    hipErrorNotFound = 500,
595    #[doc = "< Indicates that asynchronous operations enqueued earlier are not\n< ready.  This is not actually an error, but is used to distinguish\n< from hipSuccess (which indicates completion).  APIs that return\n< this error include hipEventQuery and hipStreamQuery."]
596    hipErrorNotReady = 600,
597    hipErrorIllegalAddress = 700,
598    #[doc = "< Out of resources error."]
599    hipErrorLaunchOutOfResources = 701,
600    hipErrorLaunchTimeOut = 702,
601    hipErrorPeerAccessAlreadyEnabled = 704,
602    hipErrorPeerAccessNotEnabled = 705,
603    hipErrorSetOnActiveProcess = 708,
604    hipErrorContextIsDestroyed = 709,
605    #[doc = "< Produced when the kernel calls assert."]
606    hipErrorAssert = 710,
607    hipErrorHostMemoryAlreadyRegistered = 712,
608    hipErrorHostMemoryNotRegistered = 713,
609    hipErrorLaunchFailure = 719,
610    hipErrorCooperativeLaunchTooLarge = 720,
611    #[doc = "< Produced when the hip API is not supported/implemented"]
612    hipErrorNotSupported = 801,
613    #[doc = "< The operation is not permitted when the stream\n< is capturing."]
614    hipErrorStreamCaptureUnsupported = 900,
615    #[doc = "< The current capture sequence on the stream\n< has been invalidated due to a previous error."]
616    hipErrorStreamCaptureInvalidated = 901,
617    #[doc = "< The operation would have resulted in a merge of\n< two independent capture sequences."]
618    hipErrorStreamCaptureMerge = 902,
619    #[doc = "< The capture was not initiated in this stream."]
620    hipErrorStreamCaptureUnmatched = 903,
621    #[doc = "< The capture sequence contains a fork that was not\n< joined to the primary stream."]
622    hipErrorStreamCaptureUnjoined = 904,
623    #[doc = "< A dependency would have been created which crosses\n< the capture sequence boundary. Only implicit\n< in-stream ordering dependencies  are allowed\n< to cross the boundary"]
624    hipErrorStreamCaptureIsolation = 905,
625    #[doc = "< The operation would have resulted in a disallowed\n< implicit dependency on a current capture sequence\n< from hipStreamLegacy."]
626    hipErrorStreamCaptureImplicit = 906,
627    #[doc = "< The operation is not permitted on an event which was last\n< recorded in a capturing stream."]
628    hipErrorCapturedEvent = 907,
629    #[doc = "< A stream capture sequence not initiated with\n< the hipStreamCaptureModeRelaxed argument to\n< hipStreamBeginCapture was passed to\n< hipStreamEndCapture in a different thread."]
630    hipErrorStreamCaptureWrongThread = 908,
631    #[doc = "< This error indicates that the graph update\n< not performed because it included changes which\n< violated constraintsspecific to instantiated graph\n< update."]
632    hipErrorGraphExecUpdateFailure = 910,
633    hipErrorUnknown = 999,
634    #[doc = "< HSA runtime memory call returned error.  Typically not seen\n< in production systems."]
635    hipErrorRuntimeMemory = 1052,
636    #[doc = "< HSA runtime call other than memory returned error.  Typically\n< not seen in production systems."]
637    hipErrorRuntimeOther = 1053,
638    #[doc = "< Marker that more error codes are needed."]
639    hipErrorTbd = 1054,
640}
641impl hipDeviceAttribute_t {
642    pub const hipDeviceAttributeEccEnabled: hipDeviceAttribute_t =
643        hipDeviceAttribute_t::hipDeviceAttributeCudaCompatibleBegin;
644}
645impl hipDeviceAttribute_t {
646    pub const hipDeviceAttributeClockInstructionRate: hipDeviceAttribute_t =
647        hipDeviceAttribute_t::hipDeviceAttributeAmdSpecificBegin;
648}
649#[repr(u32)]
650#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
651pub enum hipDeviceAttribute_t {
652    hipDeviceAttributeCudaCompatibleBegin = 0,
653    #[doc = "< Cuda only. The maximum size of the window policy in bytes."]
654    hipDeviceAttributeAccessPolicyMaxWindowSize = 1,
655    #[doc = "< Cuda only. Asynchronous engines number."]
656    hipDeviceAttributeAsyncEngineCount = 2,
657    #[doc = "< Whether host memory can be mapped into device address space"]
658    hipDeviceAttributeCanMapHostMemory = 3,
659    #[doc = "< Cuda only. Device can access host registered memory\n< at the same virtual address as the CPU"]
660    hipDeviceAttributeCanUseHostPointerForRegisteredMem = 4,
661    #[doc = "< Peak clock frequency in kilohertz."]
662    hipDeviceAttributeClockRate = 5,
663    #[doc = "< Compute mode that device is currently in."]
664    hipDeviceAttributeComputeMode = 6,
665    #[doc = "< Cuda only. Device supports Compute Preemption."]
666    hipDeviceAttributeComputePreemptionSupported = 7,
667    #[doc = "< Device can possibly execute multiple kernels concurrently."]
668    hipDeviceAttributeConcurrentKernels = 8,
669    #[doc = "< Device can coherently access managed memory concurrently with the CPU"]
670    hipDeviceAttributeConcurrentManagedAccess = 9,
671    #[doc = "< Support cooperative launch"]
672    hipDeviceAttributeCooperativeLaunch = 10,
673    #[doc = "< Support cooperative launch on multiple devices"]
674    hipDeviceAttributeCooperativeMultiDeviceLaunch = 11,
675    #[doc = "< Cuda only. Device can concurrently copy memory and execute a kernel.\n< Deprecated. Use instead asyncEngineCount."]
676    hipDeviceAttributeDeviceOverlap = 12,
677    #[doc = "< Host can directly access managed memory on\n< the device without migration"]
678    hipDeviceAttributeDirectManagedMemAccessFromHost = 13,
679    #[doc = "< Cuda only. Device supports caching globals in L1"]
680    hipDeviceAttributeGlobalL1CacheSupported = 14,
681    #[doc = "< Cuda only. Link between the device and the host supports native atomic operations"]
682    hipDeviceAttributeHostNativeAtomicSupported = 15,
683    #[doc = "< Device is integrated GPU"]
684    hipDeviceAttributeIntegrated = 16,
685    #[doc = "< Multiple GPU devices."]
686    hipDeviceAttributeIsMultiGpuBoard = 17,
687    #[doc = "< Run time limit for kernels executed on the device"]
688    hipDeviceAttributeKernelExecTimeout = 18,
689    #[doc = "< Size of L2 cache in bytes. 0 if the device doesn't have L2 cache."]
690    hipDeviceAttributeL2CacheSize = 19,
691    #[doc = "< caching locals in L1 is supported"]
692    hipDeviceAttributeLocalL1CacheSupported = 20,
693    #[doc = "< Cuda only. 8-byte locally unique identifier in 8 bytes. Undefined on TCC and non-Windows platforms"]
694    hipDeviceAttributeLuid = 21,
695    #[doc = "< Cuda only. Luid device node mask. Undefined on TCC and non-Windows platforms"]
696    hipDeviceAttributeLuidDeviceNodeMask = 22,
697    #[doc = "< Major compute capability version number."]
698    hipDeviceAttributeComputeCapabilityMajor = 23,
699    #[doc = "< Device supports allocating managed memory on this system"]
700    hipDeviceAttributeManagedMemory = 24,
701    #[doc = "< Cuda only. Max block size per multiprocessor"]
702    hipDeviceAttributeMaxBlocksPerMultiProcessor = 25,
703    #[doc = "< Max block size in width."]
704    hipDeviceAttributeMaxBlockDimX = 26,
705    #[doc = "< Max block size in height."]
706    hipDeviceAttributeMaxBlockDimY = 27,
707    #[doc = "< Max block size in depth."]
708    hipDeviceAttributeMaxBlockDimZ = 28,
709    #[doc = "< Max grid size  in width."]
710    hipDeviceAttributeMaxGridDimX = 29,
711    #[doc = "< Max grid size  in height."]
712    hipDeviceAttributeMaxGridDimY = 30,
713    #[doc = "< Max grid size  in depth."]
714    hipDeviceAttributeMaxGridDimZ = 31,
715    #[doc = "< Maximum size of 1D surface."]
716    hipDeviceAttributeMaxSurface1D = 32,
717    #[doc = "< Cuda only. Maximum dimensions of 1D layered surface."]
718    hipDeviceAttributeMaxSurface1DLayered = 33,
719    #[doc = "< Maximum dimension (width, height) of 2D surface."]
720    hipDeviceAttributeMaxSurface2D = 34,
721    #[doc = "< Cuda only. Maximum dimensions of 2D layered surface."]
722    hipDeviceAttributeMaxSurface2DLayered = 35,
723    #[doc = "< Maximum dimension (width, height, depth) of 3D surface."]
724    hipDeviceAttributeMaxSurface3D = 36,
725    #[doc = "< Cuda only. Maximum dimensions of Cubemap surface."]
726    hipDeviceAttributeMaxSurfaceCubemap = 37,
727    #[doc = "< Cuda only. Maximum dimension of Cubemap layered surface."]
728    hipDeviceAttributeMaxSurfaceCubemapLayered = 38,
729    #[doc = "< Maximum size of 1D texture."]
730    hipDeviceAttributeMaxTexture1DWidth = 39,
731    #[doc = "< Cuda only. Maximum dimensions of 1D layered texture."]
732    hipDeviceAttributeMaxTexture1DLayered = 40,
733    #[doc = "< Maximum number of elements allocatable in a 1D linear texture.\n< Use cudaDeviceGetTexture1DLinearMaxWidth() instead on Cuda."]
734    hipDeviceAttributeMaxTexture1DLinear = 41,
735    #[doc = "< Cuda only. Maximum size of 1D mipmapped texture."]
736    hipDeviceAttributeMaxTexture1DMipmap = 42,
737    #[doc = "< Maximum dimension width of 2D texture."]
738    hipDeviceAttributeMaxTexture2DWidth = 43,
739    #[doc = "< Maximum dimension hight of 2D texture."]
740    hipDeviceAttributeMaxTexture2DHeight = 44,
741    #[doc = "< Cuda only. Maximum dimensions of 2D texture if gather operations  performed."]
742    hipDeviceAttributeMaxTexture2DGather = 45,
743    #[doc = "< Cuda only. Maximum dimensions of 2D layered texture."]
744    hipDeviceAttributeMaxTexture2DLayered = 46,
745    #[doc = "< Cuda only. Maximum dimensions (width, height, pitch) of 2D textures bound to pitched memory."]
746    hipDeviceAttributeMaxTexture2DLinear = 47,
747    #[doc = "< Cuda only. Maximum dimensions of 2D mipmapped texture."]
748    hipDeviceAttributeMaxTexture2DMipmap = 48,
749    #[doc = "< Maximum dimension width of 3D texture."]
750    hipDeviceAttributeMaxTexture3DWidth = 49,
751    #[doc = "< Maximum dimension height of 3D texture."]
752    hipDeviceAttributeMaxTexture3DHeight = 50,
753    #[doc = "< Maximum dimension depth of 3D texture."]
754    hipDeviceAttributeMaxTexture3DDepth = 51,
755    #[doc = "< Cuda only. Maximum dimensions of alternate 3D texture."]
756    hipDeviceAttributeMaxTexture3DAlt = 52,
757    #[doc = "< Cuda only. Maximum dimensions of Cubemap texture"]
758    hipDeviceAttributeMaxTextureCubemap = 53,
759    #[doc = "< Cuda only. Maximum dimensions of Cubemap layered texture."]
760    hipDeviceAttributeMaxTextureCubemapLayered = 54,
761    #[doc = "< Maximum dimension of a block"]
762    hipDeviceAttributeMaxThreadsDim = 55,
763    #[doc = "< Maximum number of threads per block."]
764    hipDeviceAttributeMaxThreadsPerBlock = 56,
765    #[doc = "< Maximum resident threads per multiprocessor."]
766    hipDeviceAttributeMaxThreadsPerMultiProcessor = 57,
767    #[doc = "< Maximum pitch in bytes allowed by memory copies"]
768    hipDeviceAttributeMaxPitch = 58,
769    #[doc = "< Global memory bus width in bits."]
770    hipDeviceAttributeMemoryBusWidth = 59,
771    #[doc = "< Peak memory clock frequency in kilohertz."]
772    hipDeviceAttributeMemoryClockRate = 60,
773    #[doc = "< Minor compute capability version number."]
774    hipDeviceAttributeComputeCapabilityMinor = 61,
775    #[doc = "< Cuda only. Unique ID of device group on the same multi-GPU board"]
776    hipDeviceAttributeMultiGpuBoardGroupID = 62,
777    #[doc = "< Number of multiprocessors on the device."]
778    hipDeviceAttributeMultiprocessorCount = 63,
779    #[doc = "< Device name."]
780    hipDeviceAttributeName = 64,
781    #[doc = "< Device supports coherently accessing pageable memory\n< without calling hipHostRegister on it"]
782    hipDeviceAttributePageableMemoryAccess = 65,
783    #[doc = "< Device accesses pageable memory via the host's page tables"]
784    hipDeviceAttributePageableMemoryAccessUsesHostPageTables = 66,
785    #[doc = "< PCI Bus ID."]
786    hipDeviceAttributePciBusId = 67,
787    #[doc = "< PCI Device ID."]
788    hipDeviceAttributePciDeviceId = 68,
789    #[doc = "< PCI Domain ID."]
790    hipDeviceAttributePciDomainID = 69,
791    #[doc = "< Cuda11 only. Maximum l2 persisting lines capacity in bytes"]
792    hipDeviceAttributePersistingL2CacheMaxSize = 70,
793    #[doc = "< 32-bit registers available to a thread block. This number is shared\n< by all thread blocks simultaneously resident on a multiprocessor."]
794    hipDeviceAttributeMaxRegistersPerBlock = 71,
795    #[doc = "< 32-bit registers available per block."]
796    hipDeviceAttributeMaxRegistersPerMultiprocessor = 72,
797    #[doc = "< Cuda11 only. Shared memory reserved by CUDA driver per block."]
798    hipDeviceAttributeReservedSharedMemPerBlock = 73,
799    #[doc = "< Maximum shared memory available per block in bytes."]
800    hipDeviceAttributeMaxSharedMemoryPerBlock = 74,
801    #[doc = "< Cuda only. Maximum shared memory per block usable by special opt in."]
802    hipDeviceAttributeSharedMemPerBlockOptin = 75,
803    #[doc = "< Cuda only. Shared memory available per multiprocessor."]
804    hipDeviceAttributeSharedMemPerMultiprocessor = 76,
805    #[doc = "< Cuda only. Performance ratio of single precision to double precision."]
806    hipDeviceAttributeSingleToDoublePrecisionPerfRatio = 77,
807    #[doc = "< Cuda only. Whether to support stream priorities."]
808    hipDeviceAttributeStreamPrioritiesSupported = 78,
809    #[doc = "< Cuda only. Alignment requirement for surfaces"]
810    hipDeviceAttributeSurfaceAlignment = 79,
811    #[doc = "< Cuda only. Whether device is a Tesla device using TCC driver"]
812    hipDeviceAttributeTccDriver = 80,
813    #[doc = "< Alignment requirement for textures"]
814    hipDeviceAttributeTextureAlignment = 81,
815    #[doc = "< Pitch alignment requirement for 2D texture references bound to pitched memory;"]
816    hipDeviceAttributeTexturePitchAlignment = 82,
817    #[doc = "< Constant memory size in bytes."]
818    hipDeviceAttributeTotalConstantMemory = 83,
819    #[doc = "< Global memory available on devicice."]
820    hipDeviceAttributeTotalGlobalMem = 84,
821    #[doc = "< Cuda only. An unified address space shared with the host."]
822    hipDeviceAttributeUnifiedAddressing = 85,
823    #[doc = "< Cuda only. Unique ID in 16 byte."]
824    hipDeviceAttributeUuid = 86,
825    #[doc = "< Warp size in threads."]
826    hipDeviceAttributeWarpSize = 87,
827    #[doc = "< Device supports HIP Stream Ordered Memory Allocator"]
828    hipDeviceAttributeMemoryPoolsSupported = 88,
829    #[doc = "< Device supports HIP virtual memory management"]
830    hipDeviceAttributeVirtualMemoryManagementSupported = 89,
831    hipDeviceAttributeCudaCompatibleEnd = 9999,
832    hipDeviceAttributeAmdSpecificBegin = 10000,
833    #[doc = "< Device architecture"]
834    hipDeviceAttributeArch = 10001,
835    #[doc = "< Maximum Shared Memory PerMultiprocessor."]
836    hipDeviceAttributeMaxSharedMemoryPerMultiprocessor = 10002,
837    #[doc = "< Device gcn architecture"]
838    hipDeviceAttributeGcnArch = 10003,
839    #[doc = "< Device gcnArch name in 256 bytes"]
840    hipDeviceAttributeGcnArchName = 10004,
841    #[doc = "< Address of the HDP_MEM_COHERENCY_FLUSH_CNTL register"]
842    hipDeviceAttributeHdpMemFlushCntl = 10005,
843    #[doc = "< Address of the HDP_REG_COHERENCY_FLUSH_CNTL register"]
844    hipDeviceAttributeHdpRegFlushCntl = 10006,
845    #[doc = "< Supports cooperative launch on multiple\n< devices with unmatched functions"]
846    hipDeviceAttributeCooperativeMultiDeviceUnmatchedFunc = 10007,
847    #[doc = "< Supports cooperative launch on multiple\n< devices with unmatched grid dimensions"]
848    hipDeviceAttributeCooperativeMultiDeviceUnmatchedGridDim = 10008,
849    #[doc = "< Supports cooperative launch on multiple\n< devices with unmatched block dimensions"]
850    hipDeviceAttributeCooperativeMultiDeviceUnmatchedBlockDim = 10009,
851    #[doc = "< Supports cooperative launch on multiple\n< devices with unmatched shared memories"]
852    hipDeviceAttributeCooperativeMultiDeviceUnmatchedSharedMem = 10010,
853    #[doc = "< Whether it is LargeBar"]
854    hipDeviceAttributeIsLargeBar = 10011,
855    #[doc = "< Revision of the GPU in this device"]
856    hipDeviceAttributeAsicRevision = 10012,
857    #[doc = "< '1' if Device supports hipStreamWaitValue32() and\n< hipStreamWaitValue64(), '0' otherwise."]
858    hipDeviceAttributeCanUseStreamWaitValue = 10013,
859    #[doc = "< '1' if Device supports image, '0' otherwise."]
860    hipDeviceAttributeImageSupport = 10014,
861    #[doc = "< All available physical compute\n< units for the device"]
862    hipDeviceAttributePhysicalMultiProcessorCount = 10015,
863    #[doc = "< '1' if Device supports fine grain, '0' otherwise"]
864    hipDeviceAttributeFineGrainSupport = 10016,
865    #[doc = "< Constant frequency of wall clock in kilohertz."]
866    hipDeviceAttributeWallClockRate = 10017,
867    hipDeviceAttributeAmdSpecificEnd = 19999,
868    hipDeviceAttributeVendorSpecificBegin = 20000,
869}
870pub type hipDeviceptr_t = *mut ::std::os::raw::c_void;
871#[repr(u32)]
872#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
873pub enum hipChannelFormatKind {
874    hipChannelFormatKindSigned = 0,
875    hipChannelFormatKindUnsigned = 1,
876    hipChannelFormatKindFloat = 2,
877    hipChannelFormatKindNone = 3,
878}
879#[repr(C)]
880#[derive(Debug, Copy, Clone)]
881pub struct hipChannelFormatDesc {
882    pub x: ::std::os::raw::c_int,
883    pub y: ::std::os::raw::c_int,
884    pub z: ::std::os::raw::c_int,
885    pub w: ::std::os::raw::c_int,
886    pub f: hipChannelFormatKind,
887}
888#[repr(u32)]
889#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
890pub enum hipArray_Format {
891    HIP_AD_FORMAT_UNSIGNED_INT8 = 1,
892    HIP_AD_FORMAT_UNSIGNED_INT16 = 2,
893    HIP_AD_FORMAT_UNSIGNED_INT32 = 3,
894    HIP_AD_FORMAT_SIGNED_INT8 = 8,
895    HIP_AD_FORMAT_SIGNED_INT16 = 9,
896    HIP_AD_FORMAT_SIGNED_INT32 = 10,
897    HIP_AD_FORMAT_HALF = 16,
898    HIP_AD_FORMAT_FLOAT = 32,
899}
900#[repr(C)]
901#[derive(Debug, Copy, Clone)]
902pub struct HIP_ARRAY_DESCRIPTOR {
903    pub Width: usize,
904    pub Height: usize,
905    pub Format: hipArray_Format,
906    pub NumChannels: ::std::os::raw::c_uint,
907}
908#[repr(C)]
909#[derive(Debug, Copy, Clone)]
910pub struct HIP_ARRAY3D_DESCRIPTOR {
911    pub Width: usize,
912    pub Height: usize,
913    pub Depth: usize,
914    pub Format: hipArray_Format,
915    pub NumChannels: ::std::os::raw::c_uint,
916    pub Flags: ::std::os::raw::c_uint,
917}
918#[repr(C)]
919#[derive(Debug, Copy, Clone)]
920pub struct hipArray {
921    pub data: *mut ::std::os::raw::c_void,
922    pub desc: hipChannelFormatDesc,
923    pub type_: ::std::os::raw::c_uint,
924    pub width: ::std::os::raw::c_uint,
925    pub height: ::std::os::raw::c_uint,
926    pub depth: ::std::os::raw::c_uint,
927    pub Format: hipArray_Format,
928    pub NumChannels: ::std::os::raw::c_uint,
929    pub isDrv: bool,
930    pub textureType: ::std::os::raw::c_uint,
931}
932#[repr(C)]
933#[derive(Debug, Copy, Clone)]
934pub struct hip_Memcpy2D {
935    pub srcXInBytes: usize,
936    pub srcY: usize,
937    pub srcMemoryType: hipMemoryType,
938    pub srcHost: *const ::std::os::raw::c_void,
939    pub srcDevice: hipDeviceptr_t,
940    pub srcArray: *mut hipArray,
941    pub srcPitch: usize,
942    pub dstXInBytes: usize,
943    pub dstY: usize,
944    pub dstMemoryType: hipMemoryType,
945    pub dstHost: *mut ::std::os::raw::c_void,
946    pub dstDevice: hipDeviceptr_t,
947    pub dstArray: *mut hipArray,
948    pub dstPitch: usize,
949    pub WidthInBytes: usize,
950    pub Height: usize,
951}
952pub type hipArray_t = *mut hipArray;
953pub type hipArray_const_t = *const hipArray;
954#[repr(C)]
955#[derive(Debug, Copy, Clone)]
956pub struct hipMipmappedArray {
957    pub data: *mut ::std::os::raw::c_void,
958    pub desc: hipChannelFormatDesc,
959    pub type_: ::std::os::raw::c_uint,
960    pub width: ::std::os::raw::c_uint,
961    pub height: ::std::os::raw::c_uint,
962    pub depth: ::std::os::raw::c_uint,
963    pub min_mipmap_level: ::std::os::raw::c_uint,
964    pub max_mipmap_level: ::std::os::raw::c_uint,
965    pub flags: ::std::os::raw::c_uint,
966    pub format: hipArray_Format,
967}
968pub type hipMipmappedArray_t = *mut hipMipmappedArray;
969pub type hipMipmappedArray_const_t = *const hipMipmappedArray;
970#[repr(u32)]
971#[doc = " hip resource types"]
972#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
973pub enum hipResourceType {
974    hipResourceTypeArray = 0,
975    hipResourceTypeMipmappedArray = 1,
976    hipResourceTypeLinear = 2,
977    hipResourceTypePitch2D = 3,
978}
979#[repr(u32)]
980#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
981pub enum HIPresourcetype_enum {
982    #[doc = "< Array resoure"]
983    HIP_RESOURCE_TYPE_ARRAY = 0,
984    #[doc = "< Mipmapped array resource"]
985    HIP_RESOURCE_TYPE_MIPMAPPED_ARRAY = 1,
986    #[doc = "< Linear resource"]
987    HIP_RESOURCE_TYPE_LINEAR = 2,
988    #[doc = "< Pitch 2D resource"]
989    HIP_RESOURCE_TYPE_PITCH2D = 3,
990}
991pub use self::HIPresourcetype_enum as HIPresourcetype;
992#[repr(u32)]
993#[doc = " hip address modes"]
994#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
995pub enum HIPaddress_mode_enum {
996    HIP_TR_ADDRESS_MODE_WRAP = 0,
997    HIP_TR_ADDRESS_MODE_CLAMP = 1,
998    HIP_TR_ADDRESS_MODE_MIRROR = 2,
999    HIP_TR_ADDRESS_MODE_BORDER = 3,
1000}
1001#[doc = " hip address modes"]
1002pub use self::HIPaddress_mode_enum as HIPaddress_mode;
1003#[repr(u32)]
1004#[doc = " hip filter modes"]
1005#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1006pub enum HIPfilter_mode_enum {
1007    HIP_TR_FILTER_MODE_POINT = 0,
1008    HIP_TR_FILTER_MODE_LINEAR = 1,
1009}
1010#[doc = " hip filter modes"]
1011pub use self::HIPfilter_mode_enum as HIPfilter_mode;
1012#[doc = " Texture descriptor"]
1013#[repr(C)]
1014#[derive(Debug, Copy, Clone)]
1015pub struct HIP_TEXTURE_DESC_st {
1016    #[doc = "< Address modes"]
1017    pub addressMode: [HIPaddress_mode; 3usize],
1018    #[doc = "< Filter mode"]
1019    pub filterMode: HIPfilter_mode,
1020    #[doc = "< Flags"]
1021    pub flags: ::std::os::raw::c_uint,
1022    #[doc = "< Maximum anisotropy ratio"]
1023    pub maxAnisotropy: ::std::os::raw::c_uint,
1024    #[doc = "< Mipmap filter mode"]
1025    pub mipmapFilterMode: HIPfilter_mode,
1026    #[doc = "< Mipmap level bias"]
1027    pub mipmapLevelBias: f32,
1028    #[doc = "< Mipmap minimum level clamp"]
1029    pub minMipmapLevelClamp: f32,
1030    #[doc = "< Mipmap maximum level clamp"]
1031    pub maxMipmapLevelClamp: f32,
1032    #[doc = "< Border Color"]
1033    pub borderColor: [f32; 4usize],
1034    pub reserved: [::std::os::raw::c_int; 12usize],
1035}
1036#[doc = " Texture descriptor"]
1037pub type HIP_TEXTURE_DESC = HIP_TEXTURE_DESC_st;
1038#[repr(u32)]
1039#[doc = " hip texture resource view formats"]
1040#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1041pub enum hipResourceViewFormat {
1042    hipResViewFormatNone = 0,
1043    hipResViewFormatUnsignedChar1 = 1,
1044    hipResViewFormatUnsignedChar2 = 2,
1045    hipResViewFormatUnsignedChar4 = 3,
1046    hipResViewFormatSignedChar1 = 4,
1047    hipResViewFormatSignedChar2 = 5,
1048    hipResViewFormatSignedChar4 = 6,
1049    hipResViewFormatUnsignedShort1 = 7,
1050    hipResViewFormatUnsignedShort2 = 8,
1051    hipResViewFormatUnsignedShort4 = 9,
1052    hipResViewFormatSignedShort1 = 10,
1053    hipResViewFormatSignedShort2 = 11,
1054    hipResViewFormatSignedShort4 = 12,
1055    hipResViewFormatUnsignedInt1 = 13,
1056    hipResViewFormatUnsignedInt2 = 14,
1057    hipResViewFormatUnsignedInt4 = 15,
1058    hipResViewFormatSignedInt1 = 16,
1059    hipResViewFormatSignedInt2 = 17,
1060    hipResViewFormatSignedInt4 = 18,
1061    hipResViewFormatHalf1 = 19,
1062    hipResViewFormatHalf2 = 20,
1063    hipResViewFormatHalf4 = 21,
1064    hipResViewFormatFloat1 = 22,
1065    hipResViewFormatFloat2 = 23,
1066    hipResViewFormatFloat4 = 24,
1067    hipResViewFormatUnsignedBlockCompressed1 = 25,
1068    hipResViewFormatUnsignedBlockCompressed2 = 26,
1069    hipResViewFormatUnsignedBlockCompressed3 = 27,
1070    hipResViewFormatUnsignedBlockCompressed4 = 28,
1071    hipResViewFormatSignedBlockCompressed4 = 29,
1072    hipResViewFormatUnsignedBlockCompressed5 = 30,
1073    hipResViewFormatSignedBlockCompressed5 = 31,
1074    hipResViewFormatUnsignedBlockCompressed6H = 32,
1075    hipResViewFormatSignedBlockCompressed6H = 33,
1076    hipResViewFormatUnsignedBlockCompressed7 = 34,
1077}
1078#[repr(u32)]
1079#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1080pub enum HIPresourceViewFormat_enum {
1081    #[doc = "< No resource view format (use underlying resource format)"]
1082    HIP_RES_VIEW_FORMAT_NONE = 0,
1083    #[doc = "< 1 channel unsigned 8-bit integers"]
1084    HIP_RES_VIEW_FORMAT_UINT_1X8 = 1,
1085    #[doc = "< 2 channel unsigned 8-bit integers"]
1086    HIP_RES_VIEW_FORMAT_UINT_2X8 = 2,
1087    #[doc = "< 4 channel unsigned 8-bit integers"]
1088    HIP_RES_VIEW_FORMAT_UINT_4X8 = 3,
1089    #[doc = "< 1 channel signed 8-bit integers"]
1090    HIP_RES_VIEW_FORMAT_SINT_1X8 = 4,
1091    #[doc = "< 2 channel signed 8-bit integers"]
1092    HIP_RES_VIEW_FORMAT_SINT_2X8 = 5,
1093    #[doc = "< 4 channel signed 8-bit integers"]
1094    HIP_RES_VIEW_FORMAT_SINT_4X8 = 6,
1095    #[doc = "< 1 channel unsigned 16-bit integers"]
1096    HIP_RES_VIEW_FORMAT_UINT_1X16 = 7,
1097    #[doc = "< 2 channel unsigned 16-bit integers"]
1098    HIP_RES_VIEW_FORMAT_UINT_2X16 = 8,
1099    #[doc = "< 4 channel unsigned 16-bit integers"]
1100    HIP_RES_VIEW_FORMAT_UINT_4X16 = 9,
1101    #[doc = "< 1 channel signed 16-bit integers"]
1102    HIP_RES_VIEW_FORMAT_SINT_1X16 = 10,
1103    #[doc = "< 2 channel signed 16-bit integers"]
1104    HIP_RES_VIEW_FORMAT_SINT_2X16 = 11,
1105    #[doc = "< 4 channel signed 16-bit integers"]
1106    HIP_RES_VIEW_FORMAT_SINT_4X16 = 12,
1107    #[doc = "< 1 channel unsigned 32-bit integers"]
1108    HIP_RES_VIEW_FORMAT_UINT_1X32 = 13,
1109    #[doc = "< 2 channel unsigned 32-bit integers"]
1110    HIP_RES_VIEW_FORMAT_UINT_2X32 = 14,
1111    #[doc = "< 4 channel unsigned 32-bit integers"]
1112    HIP_RES_VIEW_FORMAT_UINT_4X32 = 15,
1113    #[doc = "< 1 channel signed 32-bit integers"]
1114    HIP_RES_VIEW_FORMAT_SINT_1X32 = 16,
1115    #[doc = "< 2 channel signed 32-bit integers"]
1116    HIP_RES_VIEW_FORMAT_SINT_2X32 = 17,
1117    #[doc = "< 4 channel signed 32-bit integers"]
1118    HIP_RES_VIEW_FORMAT_SINT_4X32 = 18,
1119    #[doc = "< 1 channel 16-bit floating point"]
1120    HIP_RES_VIEW_FORMAT_FLOAT_1X16 = 19,
1121    #[doc = "< 2 channel 16-bit floating point"]
1122    HIP_RES_VIEW_FORMAT_FLOAT_2X16 = 20,
1123    #[doc = "< 4 channel 16-bit floating point"]
1124    HIP_RES_VIEW_FORMAT_FLOAT_4X16 = 21,
1125    #[doc = "< 1 channel 32-bit floating point"]
1126    HIP_RES_VIEW_FORMAT_FLOAT_1X32 = 22,
1127    #[doc = "< 2 channel 32-bit floating point"]
1128    HIP_RES_VIEW_FORMAT_FLOAT_2X32 = 23,
1129    #[doc = "< 4 channel 32-bit floating point"]
1130    HIP_RES_VIEW_FORMAT_FLOAT_4X32 = 24,
1131    #[doc = "< Block compressed 1"]
1132    HIP_RES_VIEW_FORMAT_UNSIGNED_BC1 = 25,
1133    #[doc = "< Block compressed 2"]
1134    HIP_RES_VIEW_FORMAT_UNSIGNED_BC2 = 26,
1135    #[doc = "< Block compressed 3"]
1136    HIP_RES_VIEW_FORMAT_UNSIGNED_BC3 = 27,
1137    #[doc = "< Block compressed 4 unsigned"]
1138    HIP_RES_VIEW_FORMAT_UNSIGNED_BC4 = 28,
1139    #[doc = "< Block compressed 4 signed"]
1140    HIP_RES_VIEW_FORMAT_SIGNED_BC4 = 29,
1141    #[doc = "< Block compressed 5 unsigned"]
1142    HIP_RES_VIEW_FORMAT_UNSIGNED_BC5 = 30,
1143    #[doc = "< Block compressed 5 signed"]
1144    HIP_RES_VIEW_FORMAT_SIGNED_BC5 = 31,
1145    #[doc = "< Block compressed 6 unsigned half-float"]
1146    HIP_RES_VIEW_FORMAT_UNSIGNED_BC6H = 32,
1147    #[doc = "< Block compressed 6 signed half-float"]
1148    HIP_RES_VIEW_FORMAT_SIGNED_BC6H = 33,
1149    #[doc = "< Block compressed 7"]
1150    HIP_RES_VIEW_FORMAT_UNSIGNED_BC7 = 34,
1151}
1152pub use self::HIPresourceViewFormat_enum as HIPresourceViewFormat;
1153#[doc = " HIP resource descriptor"]
1154#[repr(C)]
1155#[derive(Copy, Clone)]
1156pub struct hipResourceDesc {
1157    pub resType: hipResourceType,
1158    pub res: hipResourceDesc__bindgen_ty_1,
1159}
1160#[repr(C)]
1161#[derive(Copy, Clone)]
1162pub union hipResourceDesc__bindgen_ty_1 {
1163    pub array: hipResourceDesc__bindgen_ty_1__bindgen_ty_1,
1164    pub mipmap: hipResourceDesc__bindgen_ty_1__bindgen_ty_2,
1165    pub linear: hipResourceDesc__bindgen_ty_1__bindgen_ty_3,
1166    pub pitch2D: hipResourceDesc__bindgen_ty_1__bindgen_ty_4,
1167}
1168#[repr(C)]
1169#[derive(Debug, Copy, Clone)]
1170pub struct hipResourceDesc__bindgen_ty_1__bindgen_ty_1 {
1171    pub array: hipArray_t,
1172}
1173#[repr(C)]
1174#[derive(Debug, Copy, Clone)]
1175pub struct hipResourceDesc__bindgen_ty_1__bindgen_ty_2 {
1176    pub mipmap: hipMipmappedArray_t,
1177}
1178#[repr(C)]
1179#[derive(Debug, Copy, Clone)]
1180pub struct hipResourceDesc__bindgen_ty_1__bindgen_ty_3 {
1181    pub devPtr: *mut ::std::os::raw::c_void,
1182    pub desc: hipChannelFormatDesc,
1183    pub sizeInBytes: usize,
1184}
1185#[repr(C)]
1186#[derive(Debug, Copy, Clone)]
1187pub struct hipResourceDesc__bindgen_ty_1__bindgen_ty_4 {
1188    pub devPtr: *mut ::std::os::raw::c_void,
1189    pub desc: hipChannelFormatDesc,
1190    pub width: usize,
1191    pub height: usize,
1192    pub pitchInBytes: usize,
1193}
1194#[repr(C)]
1195#[derive(Copy, Clone)]
1196pub struct HIP_RESOURCE_DESC_st {
1197    #[doc = "< Resource type"]
1198    pub resType: HIPresourcetype,
1199    pub res: HIP_RESOURCE_DESC_st__bindgen_ty_1,
1200    #[doc = "< Flags (must be zero)"]
1201    pub flags: ::std::os::raw::c_uint,
1202}
1203#[repr(C)]
1204#[derive(Copy, Clone)]
1205pub union HIP_RESOURCE_DESC_st__bindgen_ty_1 {
1206    pub array: HIP_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_1,
1207    pub mipmap: HIP_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_2,
1208    pub linear: HIP_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3,
1209    pub pitch2D: HIP_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4,
1210    pub reserved: HIP_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_5,
1211}
1212#[repr(C)]
1213#[derive(Debug, Copy, Clone)]
1214pub struct HIP_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_1 {
1215    #[doc = "< HIP array"]
1216    pub hArray: hipArray_t,
1217}
1218#[repr(C)]
1219#[derive(Debug, Copy, Clone)]
1220pub struct HIP_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_2 {
1221    #[doc = "< HIP mipmapped array"]
1222    pub hMipmappedArray: hipMipmappedArray_t,
1223}
1224#[repr(C)]
1225#[derive(Debug, Copy, Clone)]
1226pub struct HIP_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_3 {
1227    #[doc = "< Device pointer"]
1228    pub devPtr: hipDeviceptr_t,
1229    #[doc = "< Array format"]
1230    pub format: hipArray_Format,
1231    #[doc = "< Channels per array element"]
1232    pub numChannels: ::std::os::raw::c_uint,
1233    #[doc = "< Size in bytes"]
1234    pub sizeInBytes: usize,
1235}
1236#[repr(C)]
1237#[derive(Debug, Copy, Clone)]
1238pub struct HIP_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_4 {
1239    #[doc = "< Device pointer"]
1240    pub devPtr: hipDeviceptr_t,
1241    #[doc = "< Array format"]
1242    pub format: hipArray_Format,
1243    #[doc = "< Channels per array element"]
1244    pub numChannels: ::std::os::raw::c_uint,
1245    #[doc = "< Width of the array in elements"]
1246    pub width: usize,
1247    #[doc = "< Height of the array in elements"]
1248    pub height: usize,
1249    #[doc = "< Pitch between two rows in bytes"]
1250    pub pitchInBytes: usize,
1251}
1252#[repr(C)]
1253#[derive(Debug, Copy, Clone)]
1254pub struct HIP_RESOURCE_DESC_st__bindgen_ty_1__bindgen_ty_5 {
1255    pub reserved: [::std::os::raw::c_int; 32usize],
1256}
1257pub type HIP_RESOURCE_DESC = HIP_RESOURCE_DESC_st;
1258#[doc = " hip resource view descriptor"]
1259#[repr(C)]
1260#[derive(Debug, Copy, Clone)]
1261pub struct hipResourceViewDesc {
1262    pub format: hipResourceViewFormat,
1263    pub width: usize,
1264    pub height: usize,
1265    pub depth: usize,
1266    pub firstMipmapLevel: ::std::os::raw::c_uint,
1267    pub lastMipmapLevel: ::std::os::raw::c_uint,
1268    pub firstLayer: ::std::os::raw::c_uint,
1269    pub lastLayer: ::std::os::raw::c_uint,
1270}
1271#[doc = " Resource view descriptor"]
1272#[repr(C)]
1273#[derive(Debug, Copy, Clone)]
1274pub struct HIP_RESOURCE_VIEW_DESC_st {
1275    #[doc = "< Resource view format"]
1276    pub format: HIPresourceViewFormat,
1277    #[doc = "< Width of the resource view"]
1278    pub width: usize,
1279    #[doc = "< Height of the resource view"]
1280    pub height: usize,
1281    #[doc = "< Depth of the resource view"]
1282    pub depth: usize,
1283    #[doc = "< First defined mipmap level"]
1284    pub firstMipmapLevel: ::std::os::raw::c_uint,
1285    #[doc = "< Last defined mipmap level"]
1286    pub lastMipmapLevel: ::std::os::raw::c_uint,
1287    #[doc = "< First layer index"]
1288    pub firstLayer: ::std::os::raw::c_uint,
1289    #[doc = "< Last layer index"]
1290    pub lastLayer: ::std::os::raw::c_uint,
1291    pub reserved: [::std::os::raw::c_uint; 16usize],
1292}
1293#[doc = " Resource view descriptor"]
1294pub type HIP_RESOURCE_VIEW_DESC = HIP_RESOURCE_VIEW_DESC_st;
1295#[repr(u32)]
1296#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1297pub enum hipMemcpyKind {
1298    #[doc = "< Host-to-Host Copy"]
1299    hipMemcpyHostToHost = 0,
1300    #[doc = "< Host-to-Device Copy"]
1301    hipMemcpyHostToDevice = 1,
1302    #[doc = "< Device-to-Host Copy"]
1303    hipMemcpyDeviceToHost = 2,
1304    #[doc = "< Device-to-Device Copy"]
1305    hipMemcpyDeviceToDevice = 3,
1306    hipMemcpyDefault = 4,
1307}
1308#[repr(C)]
1309#[derive(Debug, Copy, Clone)]
1310pub struct hipPitchedPtr {
1311    pub ptr: *mut ::std::os::raw::c_void,
1312    pub pitch: usize,
1313    pub xsize: usize,
1314    pub ysize: usize,
1315}
1316#[repr(C)]
1317#[derive(Debug, Copy, Clone)]
1318pub struct hipExtent {
1319    pub width: usize,
1320    pub height: usize,
1321    pub depth: usize,
1322}
1323#[repr(C)]
1324#[derive(Debug, Copy, Clone)]
1325pub struct hipPos {
1326    pub x: usize,
1327    pub y: usize,
1328    pub z: usize,
1329}
1330#[repr(C)]
1331#[derive(Debug, Copy, Clone)]
1332pub struct hipMemcpy3DParms {
1333    pub srcArray: hipArray_t,
1334    pub srcPos: hipPos,
1335    pub srcPtr: hipPitchedPtr,
1336    pub dstArray: hipArray_t,
1337    pub dstPos: hipPos,
1338    pub dstPtr: hipPitchedPtr,
1339    pub extent: hipExtent,
1340    pub kind: hipMemcpyKind,
1341}
1342#[repr(C)]
1343#[derive(Debug, Copy, Clone)]
1344pub struct HIP_MEMCPY3D {
1345    pub srcXInBytes: ::std::os::raw::c_uint,
1346    pub srcY: ::std::os::raw::c_uint,
1347    pub srcZ: ::std::os::raw::c_uint,
1348    pub srcLOD: ::std::os::raw::c_uint,
1349    pub srcMemoryType: hipMemoryType,
1350    pub srcHost: *const ::std::os::raw::c_void,
1351    pub srcDevice: hipDeviceptr_t,
1352    pub srcArray: hipArray_t,
1353    pub srcPitch: ::std::os::raw::c_uint,
1354    pub srcHeight: ::std::os::raw::c_uint,
1355    pub dstXInBytes: ::std::os::raw::c_uint,
1356    pub dstY: ::std::os::raw::c_uint,
1357    pub dstZ: ::std::os::raw::c_uint,
1358    pub dstLOD: ::std::os::raw::c_uint,
1359    pub dstMemoryType: hipMemoryType,
1360    pub dstHost: *mut ::std::os::raw::c_void,
1361    pub dstDevice: hipDeviceptr_t,
1362    pub dstArray: hipArray_t,
1363    pub dstPitch: ::std::os::raw::c_uint,
1364    pub dstHeight: ::std::os::raw::c_uint,
1365    pub WidthInBytes: ::std::os::raw::c_uint,
1366    pub Height: ::std::os::raw::c_uint,
1367    pub Depth: ::std::os::raw::c_uint,
1368}
1369#[repr(u32)]
1370#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1371pub enum hipFunction_attribute {
1372    HIP_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK = 0,
1373    HIP_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES = 1,
1374    HIP_FUNC_ATTRIBUTE_CONST_SIZE_BYTES = 2,
1375    HIP_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES = 3,
1376    HIP_FUNC_ATTRIBUTE_NUM_REGS = 4,
1377    HIP_FUNC_ATTRIBUTE_PTX_VERSION = 5,
1378    HIP_FUNC_ATTRIBUTE_BINARY_VERSION = 6,
1379    HIP_FUNC_ATTRIBUTE_CACHE_MODE_CA = 7,
1380    HIP_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES = 8,
1381    HIP_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT = 9,
1382    HIP_FUNC_ATTRIBUTE_MAX = 10,
1383}
1384#[repr(u32)]
1385#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1386pub enum hipPointer_attribute {
1387    #[doc = "< The context on which a pointer was allocated\n< @warning - not supported in HIP"]
1388    HIP_POINTER_ATTRIBUTE_CONTEXT = 1,
1389    #[doc = "< memory type describing location of a pointer"]
1390    HIP_POINTER_ATTRIBUTE_MEMORY_TYPE = 2,
1391    #[doc = "< address at which the pointer is allocated on device"]
1392    HIP_POINTER_ATTRIBUTE_DEVICE_POINTER = 3,
1393    #[doc = "< address at which the pointer is allocated on host"]
1394    HIP_POINTER_ATTRIBUTE_HOST_POINTER = 4,
1395    #[doc = "< A pair of tokens for use with linux kernel interface\n< @warning - not supported in HIP"]
1396    HIP_POINTER_ATTRIBUTE_P2P_TOKENS = 5,
1397    #[doc = "< Synchronize every synchronous memory operation\n< initiated on this region"]
1398    HIP_POINTER_ATTRIBUTE_SYNC_MEMOPS = 6,
1399    #[doc = "< Unique ID for an allocated memory region"]
1400    HIP_POINTER_ATTRIBUTE_BUFFER_ID = 7,
1401    #[doc = "< Indicates if the pointer points to managed memory"]
1402    HIP_POINTER_ATTRIBUTE_IS_MANAGED = 8,
1403    #[doc = "< device ordinal of a device on which a pointer\n< was allocated or registered"]
1404    HIP_POINTER_ATTRIBUTE_DEVICE_ORDINAL = 9,
1405    #[doc = "< if this pointer maps to an allocation\n< that is suitable for hipIpcGetMemHandle\n< @warning - not supported in HIP"]
1406    HIP_POINTER_ATTRIBUTE_IS_LEGACY_HIP_IPC_CAPABLE = 10,
1407    #[doc = "< Starting address for this requested pointer"]
1408    HIP_POINTER_ATTRIBUTE_RANGE_START_ADDR = 11,
1409    #[doc = "< Size of the address range for this requested pointer"]
1410    HIP_POINTER_ATTRIBUTE_RANGE_SIZE = 12,
1411    #[doc = "< tells if this pointer is in a valid address range\n< that is mapped to a backing allocation"]
1412    HIP_POINTER_ATTRIBUTE_MAPPED = 13,
1413    #[doc = "< Bitmask of allowed hipmemAllocationHandleType\n< for this allocation @warning - not supported in HIP"]
1414    HIP_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES = 14,
1415    #[doc = "< returns if the memory referenced by\n< this pointer can be used with the GPUDirect RDMA API\n< @warning - not supported in HIP"]
1416    HIP_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE = 15,
1417    #[doc = "< Returns the access flags the device associated with\n< for the corresponding memory referenced by the ptr"]
1418    HIP_POINTER_ATTRIBUTE_ACCESS_FLAGS = 16,
1419    #[doc = "< Returns the mempool handle for the allocation if\n< it was allocated from a mempool\n< @warning - not supported in HIP"]
1420    HIP_POINTER_ATTRIBUTE_MEMPOOL_HANDLE = 17,
1421}
1422#[doc = " An opaque value that represents a hip texture object"]
1423#[repr(C)]
1424#[derive(Debug, Copy, Clone)]
1425pub struct __hip_texture {
1426    _unused: [u8; 0],
1427}
1428pub type hipTextureObject_t = *mut __hip_texture;
1429#[repr(u32)]
1430#[doc = " hip texture address modes"]
1431#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1432pub enum hipTextureAddressMode {
1433    hipAddressModeWrap = 0,
1434    hipAddressModeClamp = 1,
1435    hipAddressModeMirror = 2,
1436    hipAddressModeBorder = 3,
1437}
1438#[repr(u32)]
1439#[doc = " hip texture filter modes"]
1440#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1441pub enum hipTextureFilterMode {
1442    hipFilterModePoint = 0,
1443    hipFilterModeLinear = 1,
1444}
1445#[repr(u32)]
1446#[doc = " hip texture read modes"]
1447#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1448pub enum hipTextureReadMode {
1449    hipReadModeElementType = 0,
1450    hipReadModeNormalizedFloat = 1,
1451}
1452#[doc = " hip texture reference"]
1453#[repr(C)]
1454#[derive(Debug, Copy, Clone)]
1455pub struct textureReference {
1456    pub normalized: ::std::os::raw::c_int,
1457    pub readMode: hipTextureReadMode,
1458    pub filterMode: hipTextureFilterMode,
1459    pub addressMode: [hipTextureAddressMode; 3usize],
1460    pub channelDesc: hipChannelFormatDesc,
1461    pub sRGB: ::std::os::raw::c_int,
1462    pub maxAnisotropy: ::std::os::raw::c_uint,
1463    pub mipmapFilterMode: hipTextureFilterMode,
1464    pub mipmapLevelBias: f32,
1465    pub minMipmapLevelClamp: f32,
1466    pub maxMipmapLevelClamp: f32,
1467    pub textureObject: hipTextureObject_t,
1468    pub numChannels: ::std::os::raw::c_int,
1469    pub format: hipArray_Format,
1470}
1471#[doc = " hip texture descriptor"]
1472#[repr(C)]
1473#[derive(Debug, Copy, Clone)]
1474pub struct hipTextureDesc {
1475    pub addressMode: [hipTextureAddressMode; 3usize],
1476    pub filterMode: hipTextureFilterMode,
1477    pub readMode: hipTextureReadMode,
1478    pub sRGB: ::std::os::raw::c_int,
1479    pub borderColor: [f32; 4usize],
1480    pub normalizedCoords: ::std::os::raw::c_int,
1481    pub maxAnisotropy: ::std::os::raw::c_uint,
1482    pub mipmapFilterMode: hipTextureFilterMode,
1483    pub mipmapLevelBias: f32,
1484    pub minMipmapLevelClamp: f32,
1485    pub maxMipmapLevelClamp: f32,
1486}
1487#[repr(C)]
1488#[derive(Debug, Copy, Clone)]
1489pub struct ihipCtx_t {
1490    _unused: [u8; 0],
1491}
1492pub type hipCtx_t = *mut ihipCtx_t;
1493pub type hipDevice_t = ::std::os::raw::c_int;
1494#[repr(u32)]
1495#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1496pub enum hipDeviceP2PAttr {
1497    hipDevP2PAttrPerformanceRank = 0,
1498    hipDevP2PAttrAccessSupported = 1,
1499    hipDevP2PAttrNativeAtomicSupported = 2,
1500    hipDevP2PAttrHipArrayAccessSupported = 3,
1501}
1502#[repr(C)]
1503#[derive(Debug, Copy, Clone)]
1504pub struct ihipStream_t {
1505    _unused: [u8; 0],
1506}
1507pub type hipStream_t = *mut ihipStream_t;
1508#[repr(C)]
1509#[derive(Debug, Copy, Clone)]
1510pub struct hipIpcMemHandle_st {
1511    pub reserved: [::std::os::raw::c_char; 64usize],
1512}
1513pub type hipIpcMemHandle_t = hipIpcMemHandle_st;
1514#[repr(C)]
1515#[derive(Debug, Copy, Clone)]
1516pub struct hipIpcEventHandle_st {
1517    pub reserved: [::std::os::raw::c_char; 64usize],
1518}
1519pub type hipIpcEventHandle_t = hipIpcEventHandle_st;
1520#[repr(C)]
1521#[derive(Debug, Copy, Clone)]
1522pub struct ihipModule_t {
1523    _unused: [u8; 0],
1524}
1525pub type hipModule_t = *mut ihipModule_t;
1526#[repr(C)]
1527#[derive(Debug, Copy, Clone)]
1528pub struct ihipModuleSymbol_t {
1529    _unused: [u8; 0],
1530}
1531pub type hipFunction_t = *mut ihipModuleSymbol_t;
1532#[repr(C)]
1533#[derive(Debug, Copy, Clone)]
1534pub struct ihipMemPoolHandle_t {
1535    _unused: [u8; 0],
1536}
1537#[doc = " HIP memory pool"]
1538pub type hipMemPool_t = *mut ihipMemPoolHandle_t;
1539#[repr(C)]
1540#[derive(Debug, Copy, Clone)]
1541pub struct hipFuncAttributes {
1542    pub binaryVersion: ::std::os::raw::c_int,
1543    pub cacheModeCA: ::std::os::raw::c_int,
1544    pub constSizeBytes: usize,
1545    pub localSizeBytes: usize,
1546    pub maxDynamicSharedSizeBytes: ::std::os::raw::c_int,
1547    pub maxThreadsPerBlock: ::std::os::raw::c_int,
1548    pub numRegs: ::std::os::raw::c_int,
1549    pub preferredShmemCarveout: ::std::os::raw::c_int,
1550    pub ptxVersion: ::std::os::raw::c_int,
1551    pub sharedSizeBytes: usize,
1552}
1553#[repr(C)]
1554#[derive(Debug, Copy, Clone)]
1555pub struct ihipEvent_t {
1556    _unused: [u8; 0],
1557}
1558pub type hipEvent_t = *mut ihipEvent_t;
1559#[repr(u32)]
1560#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1561pub enum hipLimit_t {
1562    hipLimitStackSize = 0,
1563    hipLimitPrintfFifoSize = 1,
1564    hipLimitMallocHeapSize = 2,
1565    hipLimitRange = 3,
1566}
1567#[repr(u32)]
1568#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1569pub enum hipMemoryAdvise {
1570    #[doc = "< Data will mostly be read and only occassionally\n< be written to"]
1571    hipMemAdviseSetReadMostly = 1,
1572    #[doc = "< Undo the effect of hipMemAdviseSetReadMostly"]
1573    hipMemAdviseUnsetReadMostly = 2,
1574    #[doc = "< Set the preferred location for the data as\n< the specified device"]
1575    hipMemAdviseSetPreferredLocation = 3,
1576    #[doc = "< Clear the preferred location for the data"]
1577    hipMemAdviseUnsetPreferredLocation = 4,
1578    #[doc = "< Data will be accessed by the specified device,\n< so prevent page faults as much as possible"]
1579    hipMemAdviseSetAccessedBy = 5,
1580    #[doc = "< Let HIP to decide on the page faulting policy\n< for the specified device"]
1581    hipMemAdviseUnsetAccessedBy = 6,
1582    #[doc = "< The default memory model is fine-grain. That allows\n< coherent operations between host and device, while\n< executing kernels. The coarse-grain can be used\n< for data that only needs to be coherent at dispatch\n< boundaries for better performance"]
1583    hipMemAdviseSetCoarseGrain = 100,
1584    #[doc = "< Restores cache coherency policy back to fine-grain"]
1585    hipMemAdviseUnsetCoarseGrain = 101,
1586}
1587#[repr(u32)]
1588#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1589pub enum hipMemRangeAttribute {
1590    #[doc = "< Whether the range will mostly be read and\n< only occassionally be written to"]
1591    hipMemRangeAttributeReadMostly = 1,
1592    #[doc = "< The preferred location of the range"]
1593    hipMemRangeAttributePreferredLocation = 2,
1594    #[doc = "< Memory range has hipMemAdviseSetAccessedBy\n< set for the specified device"]
1595    hipMemRangeAttributeAccessedBy = 3,
1596    #[doc = "< The last location to where the range was\n< prefetched"]
1597    hipMemRangeAttributeLastPrefetchLocation = 4,
1598    #[doc = "< Returns coherency mode\n< @ref hipMemRangeCoherencyMode for the range"]
1599    hipMemRangeAttributeCoherencyMode = 100,
1600}
1601#[repr(u32)]
1602#[doc = " @brief HIP memory pool attributes\n @enum\n @ingroup Enumerations"]
1603#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1604pub enum hipMemPoolAttr {
1605    #[doc = " (value type = int)\n Allow @p hipMemAllocAsync to use memory asynchronously freed\n in another streams as long as a stream ordering dependency\n of the allocating stream on the free action exists.\n hip events and null stream interactions can create the required\n stream ordered dependencies. (default enabled)"]
1606    hipMemPoolReuseFollowEventDependencies = 1,
1607    #[doc = " (value type = int)\n Allow reuse of already completed frees when there is no dependency\n between the free and allocation. (default enabled)"]
1608    hipMemPoolReuseAllowOpportunistic = 2,
1609    #[doc = " (value type = int)\n Allow @p hipMemAllocAsync to insert new stream dependencies\n in order to establish the stream ordering required to reuse\n a piece of memory released by cuFreeAsync (default enabled)."]
1610    hipMemPoolReuseAllowInternalDependencies = 3,
1611    #[doc = " (value type = uint64_t)\n Amount of reserved memory in bytes to hold onto before trying\n to release memory back to the OS. When more than the release\n threshold bytes of memory are held by the memory pool, the\n allocator will try to release memory back to the OS on the\n next call to stream, event or context synchronize. (default 0)"]
1612    hipMemPoolAttrReleaseThreshold = 4,
1613    #[doc = " (value type = uint64_t)\n Amount of backing memory currently allocated for the mempool."]
1614    hipMemPoolAttrReservedMemCurrent = 5,
1615    #[doc = " (value type = uint64_t)\n High watermark of backing memory allocated for the mempool since the\n last time it was reset. High watermark can only be reset to zero."]
1616    hipMemPoolAttrReservedMemHigh = 6,
1617    #[doc = " (value type = uint64_t)\n Amount of memory from the pool that is currently in use by the application."]
1618    hipMemPoolAttrUsedMemCurrent = 7,
1619    #[doc = " (value type = uint64_t)\n High watermark of the amount of memory from the pool that was in use by the application since\n the last time it was reset. High watermark can only be reset to zero."]
1620    hipMemPoolAttrUsedMemHigh = 8,
1621}
1622#[repr(u32)]
1623#[doc = " @brief Specifies the type of location\n @enum\n @ingroup Enumerations"]
1624#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1625pub enum hipMemLocationType {
1626    hipMemLocationTypeInvalid = 0,
1627    #[doc = "< Device location, thus it's HIP device ID"]
1628    hipMemLocationTypeDevice = 1,
1629}
1630#[doc = " Specifies a memory location.\n\n To specify a gpu, set type = @p hipMemLocationTypeDevice and set id = the gpu's device ID"]
1631#[repr(C)]
1632#[derive(Debug, Copy, Clone)]
1633pub struct hipMemLocation {
1634    #[doc = "< Specifies the location type, which describes the meaning of id"]
1635    pub type_: hipMemLocationType,
1636    #[doc = "< Identifier for the provided location type @p hipMemLocationType"]
1637    pub id: ::std::os::raw::c_int,
1638}
1639#[repr(u32)]
1640#[doc = " @brief Specifies the memory protection flags for mapping\n @enum\n @ingroup Enumerations"]
1641#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1642pub enum hipMemAccessFlags {
1643    #[doc = "< Default, make the address range not accessible"]
1644    hipMemAccessFlagsProtNone = 0,
1645    #[doc = "< Set the address range read accessible"]
1646    hipMemAccessFlagsProtRead = 1,
1647    #[doc = "< Set the address range read-write accessible"]
1648    hipMemAccessFlagsProtReadWrite = 3,
1649}
1650#[doc = " Memory access descriptor"]
1651#[repr(C)]
1652#[derive(Debug, Copy, Clone)]
1653pub struct hipMemAccessDesc {
1654    #[doc = "< Location on which the accessibility has to change"]
1655    pub location: hipMemLocation,
1656    #[doc = "< Accessibility flags to set"]
1657    pub flags: hipMemAccessFlags,
1658}
1659#[repr(u32)]
1660#[doc = " @brief Defines the allocation types\n @enum\n @ingroup Enumerations"]
1661#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1662pub enum hipMemAllocationType {
1663    hipMemAllocationTypeInvalid = 0,
1664    #[doc = " This allocation type is 'pinned', i.e. cannot migrate from its current\n location while the application is actively using it"]
1665    hipMemAllocationTypePinned = 1,
1666    #[doc = " This allocation type is 'pinned', i.e. cannot migrate from its current\n location while the application is actively using it"]
1667    hipMemAllocationTypeMax = 2147483647,
1668}
1669#[repr(u32)]
1670#[doc = " @brief Flags for specifying handle types for memory pool allocations\n @enum\n @ingroup Enumerations"]
1671#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1672pub enum hipMemAllocationHandleType {
1673    #[doc = "< Does not allow any export mechanism"]
1674    hipMemHandleTypeNone = 0,
1675    #[doc = "< Allows a file descriptor for exporting. Permitted only on POSIX systems"]
1676    hipMemHandleTypePosixFileDescriptor = 1,
1677    #[doc = "< Allows a Win32 NT handle for exporting. (HANDLE)"]
1678    hipMemHandleTypeWin32 = 2,
1679    #[doc = "< Allows a Win32 KMT handle for exporting. (D3DKMT_HANDLE)"]
1680    hipMemHandleTypeWin32Kmt = 4,
1681}
1682#[doc = " Specifies the properties of allocations made from the pool."]
1683#[repr(C)]
1684#[derive(Debug, Copy, Clone)]
1685pub struct hipMemPoolProps {
1686    #[doc = "< Allocation type. Currently must be specified as @p hipMemAllocationTypePinned"]
1687    pub allocType: hipMemAllocationType,
1688    #[doc = "< Handle types that will be supported by allocations from the pool"]
1689    pub handleTypes: hipMemAllocationHandleType,
1690    #[doc = "< Location where allocations should reside"]
1691    pub location: hipMemLocation,
1692    #[doc = " Windows-specific LPSECURITYATTRIBUTES required when @p hipMemHandleTypeWin32 is specified"]
1693    pub win32SecurityAttributes: *mut ::std::os::raw::c_void,
1694    #[doc = "< Reserved for future use, must be 0"]
1695    pub reserved: [::std::os::raw::c_uchar; 64usize],
1696}
1697#[doc = " Opaque data structure for exporting a pool allocation"]
1698#[repr(C)]
1699#[derive(Debug, Copy, Clone)]
1700pub struct hipMemPoolPtrExportData {
1701    pub reserved: [::std::os::raw::c_uchar; 64usize],
1702}
1703#[repr(u32)]
1704#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1705pub enum hipJitOption {
1706    hipJitOptionMaxRegisters = 0,
1707    hipJitOptionThreadsPerBlock = 1,
1708    hipJitOptionWallTime = 2,
1709    hipJitOptionInfoLogBuffer = 3,
1710    hipJitOptionInfoLogBufferSizeBytes = 4,
1711    hipJitOptionErrorLogBuffer = 5,
1712    hipJitOptionErrorLogBufferSizeBytes = 6,
1713    hipJitOptionOptimizationLevel = 7,
1714    hipJitOptionTargetFromContext = 8,
1715    hipJitOptionTarget = 9,
1716    hipJitOptionFallbackStrategy = 10,
1717    hipJitOptionGenerateDebugInfo = 11,
1718    hipJitOptionLogVerbose = 12,
1719    hipJitOptionGenerateLineInfo = 13,
1720    hipJitOptionCacheMode = 14,
1721    hipJitOptionSm3xOpt = 15,
1722    hipJitOptionFastCompile = 16,
1723    hipJitOptionNumOptions = 17,
1724}
1725#[repr(u32)]
1726#[doc = " @warning On AMD devices and some Nvidia devices, these hints and controls are ignored."]
1727#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1728pub enum hipFuncAttribute {
1729    hipFuncAttributeMaxDynamicSharedMemorySize = 8,
1730    hipFuncAttributePreferredSharedMemoryCarveout = 9,
1731    hipFuncAttributeMax = 10,
1732}
1733#[repr(u32)]
1734#[doc = " @warning On AMD devices and some Nvidia devices, these hints and controls are ignored."]
1735#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1736pub enum hipFuncCache_t {
1737    #[doc = "< no preference for shared memory or L1 (default)"]
1738    hipFuncCachePreferNone = 0,
1739    #[doc = "< prefer larger shared memory and smaller L1 cache"]
1740    hipFuncCachePreferShared = 1,
1741    #[doc = "< prefer larger L1 cache and smaller shared memory"]
1742    hipFuncCachePreferL1 = 2,
1743    #[doc = "< prefer equal size L1 cache and shared memory"]
1744    hipFuncCachePreferEqual = 3,
1745}
1746#[repr(u32)]
1747#[doc = " @warning On AMD devices and some Nvidia devices, these hints and controls are ignored."]
1748#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1749pub enum hipSharedMemConfig {
1750    #[doc = "< The compiler selects a device-specific value for the banking."]
1751    hipSharedMemBankSizeDefault = 0,
1752    #[doc = "< Shared mem is banked at 4-bytes intervals and performs best\n< when adjacent threads access data 4 bytes apart."]
1753    hipSharedMemBankSizeFourByte = 1,
1754    #[doc = "< Shared mem is banked at 8-byte intervals and performs best\n< when adjacent threads access data 4 bytes apart."]
1755    hipSharedMemBankSizeEightByte = 2,
1756}
1757#[doc = " Struct for data in 3D\n"]
1758#[repr(C)]
1759#[derive(Debug, Copy, Clone)]
1760pub struct dim3 {
1761    #[doc = "< x"]
1762    pub x: u32,
1763    #[doc = "< y"]
1764    pub y: u32,
1765    #[doc = "< z"]
1766    pub z: u32,
1767}
1768#[repr(C)]
1769#[derive(Debug, Copy, Clone)]
1770pub struct hipLaunchParams_t {
1771    #[doc = "< Device function symbol"]
1772    pub func: *mut ::std::os::raw::c_void,
1773    #[doc = "< Grid dimentions"]
1774    pub gridDim: dim3,
1775    #[doc = "< Block dimentions"]
1776    pub blockDim: dim3,
1777    #[doc = "< Arguments"]
1778    pub args: *mut *mut ::std::os::raw::c_void,
1779    #[doc = "< Shared memory"]
1780    pub sharedMem: usize,
1781    #[doc = "< Stream identifier"]
1782    pub stream: hipStream_t,
1783}
1784pub type hipLaunchParams = hipLaunchParams_t;
1785#[repr(u32)]
1786#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1787pub enum hipExternalMemoryHandleType_enum {
1788    hipExternalMemoryHandleTypeOpaqueFd = 1,
1789    hipExternalMemoryHandleTypeOpaqueWin32 = 2,
1790    hipExternalMemoryHandleTypeOpaqueWin32Kmt = 3,
1791    hipExternalMemoryHandleTypeD3D12Heap = 4,
1792    hipExternalMemoryHandleTypeD3D12Resource = 5,
1793    hipExternalMemoryHandleTypeD3D11Resource = 6,
1794    hipExternalMemoryHandleTypeD3D11ResourceKmt = 7,
1795}
1796pub use self::hipExternalMemoryHandleType_enum as hipExternalMemoryHandleType;
1797#[repr(C)]
1798#[derive(Copy, Clone)]
1799pub struct hipExternalMemoryHandleDesc_st {
1800    pub type_: hipExternalMemoryHandleType,
1801    pub handle: hipExternalMemoryHandleDesc_st__bindgen_ty_1,
1802    pub size: ::std::os::raw::c_ulonglong,
1803    pub flags: ::std::os::raw::c_uint,
1804}
1805#[repr(C)]
1806#[derive(Copy, Clone)]
1807pub union hipExternalMemoryHandleDesc_st__bindgen_ty_1 {
1808    pub fd: ::std::os::raw::c_int,
1809    pub win32: hipExternalMemoryHandleDesc_st__bindgen_ty_1__bindgen_ty_1,
1810}
1811#[repr(C)]
1812#[derive(Debug, Copy, Clone)]
1813pub struct hipExternalMemoryHandleDesc_st__bindgen_ty_1__bindgen_ty_1 {
1814    pub handle: *mut ::std::os::raw::c_void,
1815    pub name: *const ::std::os::raw::c_void,
1816}
1817pub type hipExternalMemoryHandleDesc = hipExternalMemoryHandleDesc_st;
1818#[repr(C)]
1819#[derive(Debug, Copy, Clone)]
1820pub struct hipExternalMemoryBufferDesc_st {
1821    pub offset: ::std::os::raw::c_ulonglong,
1822    pub size: ::std::os::raw::c_ulonglong,
1823    pub flags: ::std::os::raw::c_uint,
1824}
1825pub type hipExternalMemoryBufferDesc = hipExternalMemoryBufferDesc_st;
1826pub type hipExternalMemory_t = *mut ::std::os::raw::c_void;
1827#[repr(u32)]
1828#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1829pub enum hipExternalSemaphoreHandleType_enum {
1830    hipExternalSemaphoreHandleTypeOpaqueFd = 1,
1831    hipExternalSemaphoreHandleTypeOpaqueWin32 = 2,
1832    hipExternalSemaphoreHandleTypeOpaqueWin32Kmt = 3,
1833    hipExternalSemaphoreHandleTypeD3D12Fence = 4,
1834}
1835pub use self::hipExternalSemaphoreHandleType_enum as hipExternalSemaphoreHandleType;
1836#[repr(C)]
1837#[derive(Copy, Clone)]
1838pub struct hipExternalSemaphoreHandleDesc_st {
1839    pub type_: hipExternalSemaphoreHandleType,
1840    pub handle: hipExternalSemaphoreHandleDesc_st__bindgen_ty_1,
1841    pub flags: ::std::os::raw::c_uint,
1842}
1843#[repr(C)]
1844#[derive(Copy, Clone)]
1845pub union hipExternalSemaphoreHandleDesc_st__bindgen_ty_1 {
1846    pub fd: ::std::os::raw::c_int,
1847    pub win32: hipExternalSemaphoreHandleDesc_st__bindgen_ty_1__bindgen_ty_1,
1848}
1849#[repr(C)]
1850#[derive(Debug, Copy, Clone)]
1851pub struct hipExternalSemaphoreHandleDesc_st__bindgen_ty_1__bindgen_ty_1 {
1852    pub handle: *mut ::std::os::raw::c_void,
1853    pub name: *const ::std::os::raw::c_void,
1854}
1855pub type hipExternalSemaphoreHandleDesc = hipExternalSemaphoreHandleDesc_st;
1856pub type hipExternalSemaphore_t = *mut ::std::os::raw::c_void;
1857#[repr(C)]
1858#[derive(Debug, Copy, Clone)]
1859pub struct hipExternalSemaphoreSignalParams_st {
1860    pub params: hipExternalSemaphoreSignalParams_st__bindgen_ty_1,
1861    pub flags: ::std::os::raw::c_uint,
1862    pub reserved: [::std::os::raw::c_uint; 16usize],
1863}
1864#[repr(C)]
1865#[derive(Debug, Copy, Clone)]
1866pub struct hipExternalSemaphoreSignalParams_st__bindgen_ty_1 {
1867    pub fence: hipExternalSemaphoreSignalParams_st__bindgen_ty_1__bindgen_ty_1,
1868    pub keyedMutex: hipExternalSemaphoreSignalParams_st__bindgen_ty_1__bindgen_ty_2,
1869    pub reserved: [::std::os::raw::c_uint; 12usize],
1870}
1871#[repr(C)]
1872#[derive(Debug, Copy, Clone)]
1873pub struct hipExternalSemaphoreSignalParams_st__bindgen_ty_1__bindgen_ty_1 {
1874    pub value: ::std::os::raw::c_ulonglong,
1875}
1876#[repr(C)]
1877#[derive(Debug, Copy, Clone)]
1878pub struct hipExternalSemaphoreSignalParams_st__bindgen_ty_1__bindgen_ty_2 {
1879    pub key: ::std::os::raw::c_ulonglong,
1880}
1881pub type hipExternalSemaphoreSignalParams = hipExternalSemaphoreSignalParams_st;
1882#[doc = " External semaphore wait parameters, compatible with driver type"]
1883#[repr(C)]
1884#[derive(Debug, Copy, Clone)]
1885pub struct hipExternalSemaphoreWaitParams_st {
1886    pub params: hipExternalSemaphoreWaitParams_st__bindgen_ty_1,
1887    pub flags: ::std::os::raw::c_uint,
1888    pub reserved: [::std::os::raw::c_uint; 16usize],
1889}
1890#[repr(C)]
1891#[derive(Debug, Copy, Clone)]
1892pub struct hipExternalSemaphoreWaitParams_st__bindgen_ty_1 {
1893    pub fence: hipExternalSemaphoreWaitParams_st__bindgen_ty_1__bindgen_ty_1,
1894    pub keyedMutex: hipExternalSemaphoreWaitParams_st__bindgen_ty_1__bindgen_ty_2,
1895    pub reserved: [::std::os::raw::c_uint; 10usize],
1896}
1897#[repr(C)]
1898#[derive(Debug, Copy, Clone)]
1899pub struct hipExternalSemaphoreWaitParams_st__bindgen_ty_1__bindgen_ty_1 {
1900    pub value: ::std::os::raw::c_ulonglong,
1901}
1902#[repr(C)]
1903#[derive(Debug, Copy, Clone)]
1904pub struct hipExternalSemaphoreWaitParams_st__bindgen_ty_1__bindgen_ty_2 {
1905    pub key: ::std::os::raw::c_ulonglong,
1906    pub timeoutMs: ::std::os::raw::c_uint,
1907}
1908#[doc = " External semaphore wait parameters, compatible with driver type"]
1909pub type hipExternalSemaphoreWaitParams = hipExternalSemaphoreWaitParams_st;
1910#[repr(u32)]
1911#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1912pub enum hipGLDeviceList {
1913    #[doc = "< All hip devices used by current OpenGL context."]
1914    hipGLDeviceListAll = 1,
1915    #[doc = "< Hip devices used by current OpenGL context in current\n< frame"]
1916    hipGLDeviceListCurrentFrame = 2,
1917    #[doc = "< Hip devices used by current OpenGL context in next\n< frame."]
1918    hipGLDeviceListNextFrame = 3,
1919}
1920#[repr(C)]
1921#[derive(Debug, Copy, Clone)]
1922pub struct _hipGraphicsResource {
1923    _unused: [u8; 0],
1924}
1925pub type hipGraphicsResource = _hipGraphicsResource;
1926pub type hipGraphicsResource_t = *mut hipGraphicsResource;
1927#[repr(C)]
1928#[derive(Debug, Copy, Clone)]
1929pub struct ihipGraph {
1930    _unused: [u8; 0],
1931}
1932#[doc = " An opaque value that represents a hip graph"]
1933pub type hipGraph_t = *mut ihipGraph;
1934#[repr(C)]
1935#[derive(Debug, Copy, Clone)]
1936pub struct hipGraphNode {
1937    _unused: [u8; 0],
1938}
1939#[doc = " An opaque value that represents a hip graph node"]
1940pub type hipGraphNode_t = *mut hipGraphNode;
1941#[repr(C)]
1942#[derive(Debug, Copy, Clone)]
1943pub struct hipGraphExec {
1944    _unused: [u8; 0],
1945}
1946#[doc = " An opaque value that represents a hip graph Exec"]
1947pub type hipGraphExec_t = *mut hipGraphExec;
1948#[repr(C)]
1949#[derive(Debug, Copy, Clone)]
1950pub struct hipUserObject {
1951    _unused: [u8; 0],
1952}
1953#[doc = " An opaque value that represents a user obj"]
1954pub type hipUserObject_t = *mut hipUserObject;
1955#[repr(u32)]
1956#[doc = " @brief hipGraphNodeType\n @enum\n"]
1957#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1958pub enum hipGraphNodeType {
1959    #[doc = "< GPU kernel node"]
1960    hipGraphNodeTypeKernel = 0,
1961    #[doc = "< Memcpy node"]
1962    hipGraphNodeTypeMemcpy = 1,
1963    #[doc = "< Memset node"]
1964    hipGraphNodeTypeMemset = 2,
1965    #[doc = "< Host (executable) node"]
1966    hipGraphNodeTypeHost = 3,
1967    #[doc = "< Node which executes an embedded graph"]
1968    hipGraphNodeTypeGraph = 4,
1969    #[doc = "< Empty (no-op) node"]
1970    hipGraphNodeTypeEmpty = 5,
1971    #[doc = "< External event wait node"]
1972    hipGraphNodeTypeWaitEvent = 6,
1973    #[doc = "< External event record node"]
1974    hipGraphNodeTypeEventRecord = 7,
1975    #[doc = "< External Semaphore signal node"]
1976    hipGraphNodeTypeExtSemaphoreSignal = 8,
1977    #[doc = "< External Semaphore wait node"]
1978    hipGraphNodeTypeExtSemaphoreWait = 9,
1979    #[doc = "< MemcpyFromSymbol node"]
1980    hipGraphNodeTypeMemcpyFromSymbol = 10,
1981    #[doc = "< MemcpyToSymbol node"]
1982    hipGraphNodeTypeMemcpyToSymbol = 11,
1983    hipGraphNodeTypeCount = 12,
1984}
1985pub type hipHostFn_t =
1986    ::std::option::Option<unsafe extern "C" fn(userData: *mut ::std::os::raw::c_void)>;
1987#[repr(C)]
1988#[derive(Debug, Copy, Clone)]
1989pub struct hipHostNodeParams {
1990    pub fn_: hipHostFn_t,
1991    pub userData: *mut ::std::os::raw::c_void,
1992}
1993#[repr(C)]
1994#[derive(Debug, Copy, Clone)]
1995pub struct hipKernelNodeParams {
1996    pub blockDim: dim3,
1997    pub extra: *mut *mut ::std::os::raw::c_void,
1998    pub func: *mut ::std::os::raw::c_void,
1999    pub gridDim: dim3,
2000    pub kernelParams: *mut *mut ::std::os::raw::c_void,
2001    pub sharedMemBytes: ::std::os::raw::c_uint,
2002}
2003#[repr(C)]
2004#[derive(Debug, Copy, Clone)]
2005pub struct hipMemsetParams {
2006    pub dst: *mut ::std::os::raw::c_void,
2007    pub elementSize: ::std::os::raw::c_uint,
2008    pub height: usize,
2009    pub pitch: usize,
2010    pub value: ::std::os::raw::c_uint,
2011    pub width: usize,
2012}
2013#[repr(u32)]
2014#[doc = " @brief hipKernelNodeAttrID\n @enum\n"]
2015#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2016pub enum hipKernelNodeAttrID {
2017    hipKernelNodeAttributeAccessPolicyWindow = 1,
2018    hipKernelNodeAttributeCooperative = 2,
2019}
2020#[repr(u32)]
2021#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2022pub enum hipAccessProperty {
2023    hipAccessPropertyNormal = 0,
2024    hipAccessPropertyStreaming = 1,
2025    hipAccessPropertyPersisting = 2,
2026}
2027#[repr(C)]
2028#[derive(Debug, Copy, Clone)]
2029pub struct hipAccessPolicyWindow {
2030    pub base_ptr: *mut ::std::os::raw::c_void,
2031    pub hitProp: hipAccessProperty,
2032    pub hitRatio: f32,
2033    pub missProp: hipAccessProperty,
2034    pub num_bytes: usize,
2035}
2036#[repr(C)]
2037#[derive(Copy, Clone)]
2038pub union hipKernelNodeAttrValue {
2039    pub accessPolicyWindow: hipAccessPolicyWindow,
2040    pub cooperative: ::std::os::raw::c_int,
2041}
2042#[repr(u32)]
2043#[doc = " @brief hipGraphExecUpdateResult\n @enum\n"]
2044#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2045pub enum hipGraphExecUpdateResult {
2046    #[doc = "< The update succeeded"]
2047    hipGraphExecUpdateSuccess = 0,
2048    #[doc = "< The update failed for an unexpected reason which is described\n< in the return value of the function"]
2049    hipGraphExecUpdateError = 1,
2050    #[doc = "< The update failed because the topology changed"]
2051    hipGraphExecUpdateErrorTopologyChanged = 2,
2052    #[doc = "< The update failed because a node type changed"]
2053    hipGraphExecUpdateErrorNodeTypeChanged = 3,
2054    hipGraphExecUpdateErrorFunctionChanged = 4,
2055    hipGraphExecUpdateErrorParametersChanged = 5,
2056    hipGraphExecUpdateErrorNotSupported = 6,
2057    hipGraphExecUpdateErrorUnsupportedFunctionChange = 7,
2058}
2059#[repr(u32)]
2060#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2061pub enum hipStreamCaptureMode {
2062    hipStreamCaptureModeGlobal = 0,
2063    hipStreamCaptureModeThreadLocal = 1,
2064    hipStreamCaptureModeRelaxed = 2,
2065}
2066#[repr(u32)]
2067#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2068pub enum hipStreamCaptureStatus {
2069    #[doc = "< Stream is not capturing"]
2070    hipStreamCaptureStatusNone = 0,
2071    #[doc = "< Stream is actively capturing"]
2072    hipStreamCaptureStatusActive = 1,
2073    #[doc = "< Stream is part of a capture sequence that has been\n< invalidated, but not terminated"]
2074    hipStreamCaptureStatusInvalidated = 2,
2075}
2076#[repr(u32)]
2077#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2078pub enum hipGraphMemAttributeType {
2079    #[doc = "< Amount of memory, in bytes, currently associated with graphs"]
2080    hipGraphMemAttrUsedMemCurrent = 0,
2081    #[doc = "< High watermark of memory, in bytes, associated with graphs since the last time."]
2082    hipGraphMemAttrUsedMemHigh = 1,
2083    #[doc = "< Amount of memory, in bytes, currently allocated for graphs."]
2084    hipGraphMemAttrReservedMemCurrent = 2,
2085    #[doc = "< High watermark of memory, in bytes, currently allocated for graphs"]
2086    hipGraphMemAttrReservedMemHigh = 3,
2087}
2088#[doc = " Memory allocation properties"]
2089#[repr(C)]
2090#[derive(Debug, Copy, Clone)]
2091pub struct hipMemAllocationProp {
2092    #[doc = "< Memory allocation type"]
2093    pub type_: hipMemAllocationType,
2094    #[doc = "< Requested handle type"]
2095    pub requestedHandleType: hipMemAllocationHandleType,
2096    #[doc = "< Memory location"]
2097    pub location: hipMemLocation,
2098    #[doc = "< Metadata for Win32 handles"]
2099    pub win32HandleMetaData: *mut ::std::os::raw::c_void,
2100    pub allocFlags: hipMemAllocationProp__bindgen_ty_1,
2101}
2102#[repr(C)]
2103#[derive(Debug, Copy, Clone)]
2104pub struct hipMemAllocationProp__bindgen_ty_1 {
2105    #[doc = "< Compression type"]
2106    pub compressionType: ::std::os::raw::c_uchar,
2107    #[doc = "< RDMA capable"]
2108    pub gpuDirectRDMACapable: ::std::os::raw::c_uchar,
2109    #[doc = "< Usage"]
2110    pub usage: ::std::os::raw::c_ushort,
2111}
2112#[repr(C)]
2113#[derive(Debug, Copy, Clone)]
2114pub struct ihipMemGenericAllocationHandle {
2115    _unused: [u8; 0],
2116}
2117#[doc = " Generic handle for memory allocation"]
2118pub type hipMemGenericAllocationHandle_t = *mut ihipMemGenericAllocationHandle;
2119#[repr(u32)]
2120#[doc = " @brief Flags for granularity\n @enum\n @ingroup Enumerations"]
2121#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2122pub enum hipMemAllocationGranularity_flags {
2123    #[doc = "< Minimum granularity"]
2124    hipMemAllocationGranularityMinimum = 0,
2125    #[doc = "< Recommended granularity for performance"]
2126    hipMemAllocationGranularityRecommended = 1,
2127}
2128#[repr(u32)]
2129#[doc = " @brief Memory handle type\n @enum\n @ingroup Enumerations"]
2130#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2131pub enum hipMemHandleType {
2132    #[doc = "< Generic handle type"]
2133    hipMemHandleTypeGeneric = 0,
2134}
2135#[repr(u32)]
2136#[doc = " @brief Memory operation types\n @enum\n @ingroup Enumerations"]
2137#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2138pub enum hipMemOperationType {
2139    #[doc = "< Map operation"]
2140    hipMemOperationTypeMap = 1,
2141    #[doc = "< Unmap operation"]
2142    hipMemOperationTypeUnmap = 2,
2143}
2144#[repr(u32)]
2145#[doc = " @brief Subresource types for sparse arrays\n @enum\n @ingroup Enumerations"]
2146#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2147pub enum hipArraySparseSubresourceType {
2148    #[doc = "< Sparse level"]
2149    hipArraySparseSubresourceTypeSparseLevel = 0,
2150    #[doc = "< Miptail"]
2151    hipArraySparseSubresourceTypeMiptail = 1,
2152}
2153#[doc = " Map info for arrays"]
2154#[repr(C)]
2155#[derive(Copy, Clone)]
2156pub struct hipArrayMapInfo {
2157    #[doc = "< Resource type"]
2158    pub resourceType: hipResourceType,
2159    pub resource: hipArrayMapInfo__bindgen_ty_1,
2160    #[doc = "< Sparse subresource type"]
2161    pub subresourceType: hipArraySparseSubresourceType,
2162    pub subresource: hipArrayMapInfo__bindgen_ty_2,
2163    #[doc = "< Memory operation type"]
2164    pub memOperationType: hipMemOperationType,
2165    #[doc = "< Memory handle type"]
2166    pub memHandleType: hipMemHandleType,
2167    pub memHandle: hipArrayMapInfo__bindgen_ty_3,
2168    #[doc = "< Offset within the memory"]
2169    pub offset: ::std::os::raw::c_ulonglong,
2170    #[doc = "< Device ordinal bit mask"]
2171    pub deviceBitMask: ::std::os::raw::c_uint,
2172    #[doc = "< flags for future use, must be zero now."]
2173    pub flags: ::std::os::raw::c_uint,
2174    #[doc = "< Reserved for future use, must be zero now."]
2175    pub reserved: [::std::os::raw::c_uint; 2usize],
2176}
2177#[repr(C)]
2178#[derive(Copy, Clone)]
2179pub union hipArrayMapInfo__bindgen_ty_1 {
2180    pub mipmap: hipMipmappedArray,
2181    pub array: hipArray_t,
2182}
2183#[repr(C)]
2184#[derive(Copy, Clone)]
2185pub union hipArrayMapInfo__bindgen_ty_2 {
2186    pub sparseLevel: hipArrayMapInfo__bindgen_ty_2__bindgen_ty_1,
2187    pub miptail: hipArrayMapInfo__bindgen_ty_2__bindgen_ty_2,
2188}
2189#[repr(C)]
2190#[derive(Debug, Copy, Clone)]
2191pub struct hipArrayMapInfo__bindgen_ty_2__bindgen_ty_1 {
2192    #[doc = "< For mipmapped arrays must be a valid mipmap level. For arrays must be zero"]
2193    pub level: ::std::os::raw::c_uint,
2194    #[doc = "< For layered arrays must be a valid layer index. Otherwise, must be zero"]
2195    pub layer: ::std::os::raw::c_uint,
2196    #[doc = "< X offset in elements"]
2197    pub offsetX: ::std::os::raw::c_uint,
2198    #[doc = "< Y offset in elements"]
2199    pub offsetY: ::std::os::raw::c_uint,
2200    #[doc = "< Z offset in elements"]
2201    pub offsetZ: ::std::os::raw::c_uint,
2202    #[doc = "< Width in elements"]
2203    pub extentWidth: ::std::os::raw::c_uint,
2204    #[doc = "< Height in elements"]
2205    pub extentHeight: ::std::os::raw::c_uint,
2206    #[doc = "< Depth in elements"]
2207    pub extentDepth: ::std::os::raw::c_uint,
2208}
2209#[repr(C)]
2210#[derive(Debug, Copy, Clone)]
2211pub struct hipArrayMapInfo__bindgen_ty_2__bindgen_ty_2 {
2212    #[doc = "< For layered arrays must be a valid layer index. Otherwise, must be zero"]
2213    pub layer: ::std::os::raw::c_uint,
2214    #[doc = "< Offset within mip tail"]
2215    pub offset: ::std::os::raw::c_ulonglong,
2216    #[doc = "< Extent in bytes"]
2217    pub size: ::std::os::raw::c_ulonglong,
2218}
2219#[repr(C)]
2220#[derive(Copy, Clone)]
2221pub union hipArrayMapInfo__bindgen_ty_3 {
2222    pub memHandle: hipMemGenericAllocationHandle_t,
2223}
2224#[doc = " Stream CallBack struct"]
2225pub type hipStreamCallback_t = ::std::option::Option<
2226    unsafe extern "C" fn(
2227        stream: hipStream_t,
2228        status: hipError_t,
2229        userData: *mut ::std::os::raw::c_void,
2230    ),
2231>;
2232#[doc = "-------------------------------------------------------------------------------------------------\n-------------------------------------------------------------------------------------------------\n  @defgroup GL Interop\n  @{\n  This section describes Stream Memory Wait and Write functions of HIP runtime API."]
2233pub type GLuint = ::std::os::raw::c_uint;
2234pub type GLenum = ::std::os::raw::c_uint;
2235extern crate libloading;
2236pub struct hip {
2237    __library: ::libloading::Library,
2238    pub hipCreateChannelDesc: Result<
2239        unsafe extern "C" fn(
2240            x: ::std::os::raw::c_int,
2241            y: ::std::os::raw::c_int,
2242            z: ::std::os::raw::c_int,
2243            w: ::std::os::raw::c_int,
2244            f: hipChannelFormatKind,
2245        ) -> hipChannelFormatDesc,
2246        ::libloading::Error,
2247    >,
2248    pub hipInit: Result<
2249        unsafe extern "C" fn(flags: ::std::os::raw::c_uint) -> hipError_t,
2250        ::libloading::Error,
2251    >,
2252    pub hipDriverGetVersion: Result<
2253        unsafe extern "C" fn(driverVersion: *mut ::std::os::raw::c_int) -> hipError_t,
2254        ::libloading::Error,
2255    >,
2256    pub hipRuntimeGetVersion: Result<
2257        unsafe extern "C" fn(runtimeVersion: *mut ::std::os::raw::c_int) -> hipError_t,
2258        ::libloading::Error,
2259    >,
2260    pub hipDeviceGet: Result<
2261        unsafe extern "C" fn(
2262            device: *mut hipDevice_t,
2263            ordinal: ::std::os::raw::c_int,
2264        ) -> hipError_t,
2265        ::libloading::Error,
2266    >,
2267    pub hipDeviceComputeCapability: Result<
2268        unsafe extern "C" fn(
2269            major: *mut ::std::os::raw::c_int,
2270            minor: *mut ::std::os::raw::c_int,
2271            device: hipDevice_t,
2272        ) -> hipError_t,
2273        ::libloading::Error,
2274    >,
2275    pub hipDeviceGetName: Result<
2276        unsafe extern "C" fn(
2277            name: *mut ::std::os::raw::c_char,
2278            len: ::std::os::raw::c_int,
2279            device: hipDevice_t,
2280        ) -> hipError_t,
2281        ::libloading::Error,
2282    >,
2283    pub hipDeviceGetUuid: Result<
2284        unsafe extern "C" fn(uuid: *mut hipUUID, device: hipDevice_t) -> hipError_t,
2285        ::libloading::Error,
2286    >,
2287    pub hipDeviceGetP2PAttribute: Result<
2288        unsafe extern "C" fn(
2289            value: *mut ::std::os::raw::c_int,
2290            attr: hipDeviceP2PAttr,
2291            srcDevice: ::std::os::raw::c_int,
2292            dstDevice: ::std::os::raw::c_int,
2293        ) -> hipError_t,
2294        ::libloading::Error,
2295    >,
2296    pub hipDeviceGetPCIBusId: Result<
2297        unsafe extern "C" fn(
2298            pciBusId: *mut ::std::os::raw::c_char,
2299            len: ::std::os::raw::c_int,
2300            device: ::std::os::raw::c_int,
2301        ) -> hipError_t,
2302        ::libloading::Error,
2303    >,
2304    pub hipDeviceGetByPCIBusId: Result<
2305        unsafe extern "C" fn(
2306            device: *mut ::std::os::raw::c_int,
2307            pciBusId: *const ::std::os::raw::c_char,
2308        ) -> hipError_t,
2309        ::libloading::Error,
2310    >,
2311    pub hipDeviceTotalMem: Result<
2312        unsafe extern "C" fn(bytes: *mut usize, device: hipDevice_t) -> hipError_t,
2313        ::libloading::Error,
2314    >,
2315    pub hipDeviceSynchronize: Result<unsafe extern "C" fn() -> hipError_t, ::libloading::Error>,
2316    pub hipDeviceReset: Result<unsafe extern "C" fn() -> hipError_t, ::libloading::Error>,
2317    pub hipSetDevice: Result<
2318        unsafe extern "C" fn(deviceId: ::std::os::raw::c_int) -> hipError_t,
2319        ::libloading::Error,
2320    >,
2321    pub hipGetDevice: Result<
2322        unsafe extern "C" fn(deviceId: *mut ::std::os::raw::c_int) -> hipError_t,
2323        ::libloading::Error,
2324    >,
2325    pub hipGetDeviceCount: Result<
2326        unsafe extern "C" fn(count: *mut ::std::os::raw::c_int) -> hipError_t,
2327        ::libloading::Error,
2328    >,
2329    pub hipDeviceGetAttribute: Result<
2330        unsafe extern "C" fn(
2331            pi: *mut ::std::os::raw::c_int,
2332            attr: hipDeviceAttribute_t,
2333            deviceId: ::std::os::raw::c_int,
2334        ) -> hipError_t,
2335        ::libloading::Error,
2336    >,
2337    pub hipDeviceGetDefaultMemPool: Result<
2338        unsafe extern "C" fn(
2339            mem_pool: *mut hipMemPool_t,
2340            device: ::std::os::raw::c_int,
2341        ) -> hipError_t,
2342        ::libloading::Error,
2343    >,
2344    pub hipDeviceSetMemPool: Result<
2345        unsafe extern "C" fn(device: ::std::os::raw::c_int, mem_pool: hipMemPool_t) -> hipError_t,
2346        ::libloading::Error,
2347    >,
2348    pub hipDeviceGetMemPool: Result<
2349        unsafe extern "C" fn(
2350            mem_pool: *mut hipMemPool_t,
2351            device: ::std::os::raw::c_int,
2352        ) -> hipError_t,
2353        ::libloading::Error,
2354    >,
2355    pub hipGetDeviceProperties: Result<
2356        unsafe extern "C" fn(
2357            prop: *mut hipDeviceProp_t,
2358            deviceId: ::std::os::raw::c_int,
2359        ) -> hipError_t,
2360        ::libloading::Error,
2361    >,
2362    pub hipDeviceSetCacheConfig: Result<
2363        unsafe extern "C" fn(cacheConfig: hipFuncCache_t) -> hipError_t,
2364        ::libloading::Error,
2365    >,
2366    pub hipDeviceGetCacheConfig: Result<
2367        unsafe extern "C" fn(cacheConfig: *mut hipFuncCache_t) -> hipError_t,
2368        ::libloading::Error,
2369    >,
2370    pub hipDeviceGetLimit: Result<
2371        unsafe extern "C" fn(pValue: *mut usize, limit: hipLimit_t) -> hipError_t,
2372        ::libloading::Error,
2373    >,
2374    pub hipDeviceSetLimit: Result<
2375        unsafe extern "C" fn(limit: hipLimit_t, value: usize) -> hipError_t,
2376        ::libloading::Error,
2377    >,
2378    pub hipDeviceGetSharedMemConfig: Result<
2379        unsafe extern "C" fn(pConfig: *mut hipSharedMemConfig) -> hipError_t,
2380        ::libloading::Error,
2381    >,
2382    pub hipGetDeviceFlags: Result<
2383        unsafe extern "C" fn(flags: *mut ::std::os::raw::c_uint) -> hipError_t,
2384        ::libloading::Error,
2385    >,
2386    pub hipDeviceSetSharedMemConfig:
2387        Result<unsafe extern "C" fn(config: hipSharedMemConfig) -> hipError_t, ::libloading::Error>,
2388    pub hipSetDeviceFlags: Result<
2389        unsafe extern "C" fn(flags: ::std::os::raw::c_uint) -> hipError_t,
2390        ::libloading::Error,
2391    >,
2392    pub hipChooseDevice: Result<
2393        unsafe extern "C" fn(
2394            device: *mut ::std::os::raw::c_int,
2395            prop: *const hipDeviceProp_t,
2396        ) -> hipError_t,
2397        ::libloading::Error,
2398    >,
2399    pub hipExtGetLinkTypeAndHopCount: Result<
2400        unsafe extern "C" fn(
2401            device1: ::std::os::raw::c_int,
2402            device2: ::std::os::raw::c_int,
2403            linktype: *mut u32,
2404            hopcount: *mut u32,
2405        ) -> hipError_t,
2406        ::libloading::Error,
2407    >,
2408    pub hipIpcGetMemHandle: Result<
2409        unsafe extern "C" fn(
2410            handle: *mut hipIpcMemHandle_t,
2411            devPtr: *mut ::std::os::raw::c_void,
2412        ) -> hipError_t,
2413        ::libloading::Error,
2414    >,
2415    pub hipIpcOpenMemHandle: Result<
2416        unsafe extern "C" fn(
2417            devPtr: *mut *mut ::std::os::raw::c_void,
2418            handle: hipIpcMemHandle_t,
2419            flags: ::std::os::raw::c_uint,
2420        ) -> hipError_t,
2421        ::libloading::Error,
2422    >,
2423    pub hipIpcCloseMemHandle: Result<
2424        unsafe extern "C" fn(devPtr: *mut ::std::os::raw::c_void) -> hipError_t,
2425        ::libloading::Error,
2426    >,
2427    pub hipIpcGetEventHandle: Result<
2428        unsafe extern "C" fn(handle: *mut hipIpcEventHandle_t, event: hipEvent_t) -> hipError_t,
2429        ::libloading::Error,
2430    >,
2431    pub hipIpcOpenEventHandle: Result<
2432        unsafe extern "C" fn(event: *mut hipEvent_t, handle: hipIpcEventHandle_t) -> hipError_t,
2433        ::libloading::Error,
2434    >,
2435    pub hipFuncSetAttribute: Result<
2436        unsafe extern "C" fn(
2437            func: *const ::std::os::raw::c_void,
2438            attr: hipFuncAttribute,
2439            value: ::std::os::raw::c_int,
2440        ) -> hipError_t,
2441        ::libloading::Error,
2442    >,
2443    pub hipFuncSetCacheConfig: Result<
2444        unsafe extern "C" fn(
2445            func: *const ::std::os::raw::c_void,
2446            config: hipFuncCache_t,
2447        ) -> hipError_t,
2448        ::libloading::Error,
2449    >,
2450    pub hipFuncSetSharedMemConfig: Result<
2451        unsafe extern "C" fn(
2452            func: *const ::std::os::raw::c_void,
2453            config: hipSharedMemConfig,
2454        ) -> hipError_t,
2455        ::libloading::Error,
2456    >,
2457    pub hipGetLastError: Result<unsafe extern "C" fn() -> hipError_t, ::libloading::Error>,
2458    pub hipPeekAtLastError: Result<unsafe extern "C" fn() -> hipError_t, ::libloading::Error>,
2459    pub hipGetErrorName: Result<
2460        unsafe extern "C" fn(hip_error: hipError_t) -> *const ::std::os::raw::c_char,
2461        ::libloading::Error,
2462    >,
2463    pub hipGetErrorString: Result<
2464        unsafe extern "C" fn(hipError: hipError_t) -> *const ::std::os::raw::c_char,
2465        ::libloading::Error,
2466    >,
2467    pub hipDrvGetErrorName: Result<
2468        unsafe extern "C" fn(
2469            hipError: hipError_t,
2470            errorString: *mut *const ::std::os::raw::c_char,
2471        ) -> hipError_t,
2472        ::libloading::Error,
2473    >,
2474    pub hipDrvGetErrorString: Result<
2475        unsafe extern "C" fn(
2476            hipError: hipError_t,
2477            errorString: *mut *const ::std::os::raw::c_char,
2478        ) -> hipError_t,
2479        ::libloading::Error,
2480    >,
2481    pub hipStreamCreate:
2482        Result<unsafe extern "C" fn(stream: *mut hipStream_t) -> hipError_t, ::libloading::Error>,
2483    pub hipStreamCreateWithFlags: Result<
2484        unsafe extern "C" fn(stream: *mut hipStream_t, flags: ::std::os::raw::c_uint) -> hipError_t,
2485        ::libloading::Error,
2486    >,
2487    pub hipStreamCreateWithPriority: Result<
2488        unsafe extern "C" fn(
2489            stream: *mut hipStream_t,
2490            flags: ::std::os::raw::c_uint,
2491            priority: ::std::os::raw::c_int,
2492        ) -> hipError_t,
2493        ::libloading::Error,
2494    >,
2495    pub hipDeviceGetStreamPriorityRange: Result<
2496        unsafe extern "C" fn(
2497            leastPriority: *mut ::std::os::raw::c_int,
2498            greatestPriority: *mut ::std::os::raw::c_int,
2499        ) -> hipError_t,
2500        ::libloading::Error,
2501    >,
2502    pub hipStreamDestroy:
2503        Result<unsafe extern "C" fn(stream: hipStream_t) -> hipError_t, ::libloading::Error>,
2504    pub hipStreamQuery:
2505        Result<unsafe extern "C" fn(stream: hipStream_t) -> hipError_t, ::libloading::Error>,
2506    pub hipStreamSynchronize:
2507        Result<unsafe extern "C" fn(stream: hipStream_t) -> hipError_t, ::libloading::Error>,
2508    pub hipStreamWaitEvent: Result<
2509        unsafe extern "C" fn(
2510            stream: hipStream_t,
2511            event: hipEvent_t,
2512            flags: ::std::os::raw::c_uint,
2513        ) -> hipError_t,
2514        ::libloading::Error,
2515    >,
2516    pub hipStreamGetFlags: Result<
2517        unsafe extern "C" fn(stream: hipStream_t, flags: *mut ::std::os::raw::c_uint) -> hipError_t,
2518        ::libloading::Error,
2519    >,
2520    pub hipStreamGetPriority: Result<
2521        unsafe extern "C" fn(
2522            stream: hipStream_t,
2523            priority: *mut ::std::os::raw::c_int,
2524        ) -> hipError_t,
2525        ::libloading::Error,
2526    >,
2527    pub hipExtStreamCreateWithCUMask: Result<
2528        unsafe extern "C" fn(
2529            stream: *mut hipStream_t,
2530            cuMaskSize: u32,
2531            cuMask: *const u32,
2532        ) -> hipError_t,
2533        ::libloading::Error,
2534    >,
2535    pub hipExtStreamGetCUMask: Result<
2536        unsafe extern "C" fn(stream: hipStream_t, cuMaskSize: u32, cuMask: *mut u32) -> hipError_t,
2537        ::libloading::Error,
2538    >,
2539    pub hipStreamAddCallback: Result<
2540        unsafe extern "C" fn(
2541            stream: hipStream_t,
2542            callback: hipStreamCallback_t,
2543            userData: *mut ::std::os::raw::c_void,
2544            flags: ::std::os::raw::c_uint,
2545        ) -> hipError_t,
2546        ::libloading::Error,
2547    >,
2548    pub hipStreamWaitValue32: Result<
2549        unsafe extern "C" fn(
2550            stream: hipStream_t,
2551            ptr: *mut ::std::os::raw::c_void,
2552            value: u32,
2553            flags: ::std::os::raw::c_uint,
2554            mask: u32,
2555        ) -> hipError_t,
2556        ::libloading::Error,
2557    >,
2558    pub hipStreamWaitValue64: Result<
2559        unsafe extern "C" fn(
2560            stream: hipStream_t,
2561            ptr: *mut ::std::os::raw::c_void,
2562            value: u64,
2563            flags: ::std::os::raw::c_uint,
2564            mask: u64,
2565        ) -> hipError_t,
2566        ::libloading::Error,
2567    >,
2568    pub hipStreamWriteValue32: Result<
2569        unsafe extern "C" fn(
2570            stream: hipStream_t,
2571            ptr: *mut ::std::os::raw::c_void,
2572            value: u32,
2573            flags: ::std::os::raw::c_uint,
2574        ) -> hipError_t,
2575        ::libloading::Error,
2576    >,
2577    pub hipStreamWriteValue64: Result<
2578        unsafe extern "C" fn(
2579            stream: hipStream_t,
2580            ptr: *mut ::std::os::raw::c_void,
2581            value: u64,
2582            flags: ::std::os::raw::c_uint,
2583        ) -> hipError_t,
2584        ::libloading::Error,
2585    >,
2586    pub hipEventCreateWithFlags: Result<
2587        unsafe extern "C" fn(event: *mut hipEvent_t, flags: ::std::os::raw::c_uint) -> hipError_t,
2588        ::libloading::Error,
2589    >,
2590    pub hipEventCreate:
2591        Result<unsafe extern "C" fn(event: *mut hipEvent_t) -> hipError_t, ::libloading::Error>,
2592    pub hipEventRecord: Result<
2593        unsafe extern "C" fn(event: hipEvent_t, stream: hipStream_t) -> hipError_t,
2594        ::libloading::Error,
2595    >,
2596    pub hipEventDestroy:
2597        Result<unsafe extern "C" fn(event: hipEvent_t) -> hipError_t, ::libloading::Error>,
2598    pub hipEventSynchronize:
2599        Result<unsafe extern "C" fn(event: hipEvent_t) -> hipError_t, ::libloading::Error>,
2600    pub hipEventElapsedTime: Result<
2601        unsafe extern "C" fn(ms: *mut f32, start: hipEvent_t, stop: hipEvent_t) -> hipError_t,
2602        ::libloading::Error,
2603    >,
2604    pub hipEventQuery:
2605        Result<unsafe extern "C" fn(event: hipEvent_t) -> hipError_t, ::libloading::Error>,
2606    pub hipPointerGetAttributes: Result<
2607        unsafe extern "C" fn(
2608            attributes: *mut hipPointerAttribute_t,
2609            ptr: *const ::std::os::raw::c_void,
2610        ) -> hipError_t,
2611        ::libloading::Error,
2612    >,
2613    pub hipPointerGetAttribute: Result<
2614        unsafe extern "C" fn(
2615            data: *mut ::std::os::raw::c_void,
2616            attribute: hipPointer_attribute,
2617            ptr: hipDeviceptr_t,
2618        ) -> hipError_t,
2619        ::libloading::Error,
2620    >,
2621    pub hipDrvPointerGetAttributes: Result<
2622        unsafe extern "C" fn(
2623            numAttributes: ::std::os::raw::c_uint,
2624            attributes: *mut hipPointer_attribute,
2625            data: *mut *mut ::std::os::raw::c_void,
2626            ptr: hipDeviceptr_t,
2627        ) -> hipError_t,
2628        ::libloading::Error,
2629    >,
2630    pub hipImportExternalSemaphore: Result<
2631        unsafe extern "C" fn(
2632            extSem_out: *mut hipExternalSemaphore_t,
2633            semHandleDesc: *const hipExternalSemaphoreHandleDesc,
2634        ) -> hipError_t,
2635        ::libloading::Error,
2636    >,
2637    pub hipSignalExternalSemaphoresAsync: Result<
2638        unsafe extern "C" fn(
2639            extSemArray: *const hipExternalSemaphore_t,
2640            paramsArray: *const hipExternalSemaphoreSignalParams,
2641            numExtSems: ::std::os::raw::c_uint,
2642            stream: hipStream_t,
2643        ) -> hipError_t,
2644        ::libloading::Error,
2645    >,
2646    pub hipWaitExternalSemaphoresAsync: Result<
2647        unsafe extern "C" fn(
2648            extSemArray: *const hipExternalSemaphore_t,
2649            paramsArray: *const hipExternalSemaphoreWaitParams,
2650            numExtSems: ::std::os::raw::c_uint,
2651            stream: hipStream_t,
2652        ) -> hipError_t,
2653        ::libloading::Error,
2654    >,
2655    pub hipDestroyExternalSemaphore: Result<
2656        unsafe extern "C" fn(extSem: hipExternalSemaphore_t) -> hipError_t,
2657        ::libloading::Error,
2658    >,
2659    pub hipImportExternalMemory: Result<
2660        unsafe extern "C" fn(
2661            extMem_out: *mut hipExternalMemory_t,
2662            memHandleDesc: *const hipExternalMemoryHandleDesc,
2663        ) -> hipError_t,
2664        ::libloading::Error,
2665    >,
2666    pub hipExternalMemoryGetMappedBuffer: Result<
2667        unsafe extern "C" fn(
2668            devPtr: *mut *mut ::std::os::raw::c_void,
2669            extMem: hipExternalMemory_t,
2670            bufferDesc: *const hipExternalMemoryBufferDesc,
2671        ) -> hipError_t,
2672        ::libloading::Error,
2673    >,
2674    pub hipDestroyExternalMemory: Result<
2675        unsafe extern "C" fn(extMem: hipExternalMemory_t) -> hipError_t,
2676        ::libloading::Error,
2677    >,
2678    pub hipMalloc: Result<
2679        unsafe extern "C" fn(ptr: *mut *mut ::std::os::raw::c_void, size: usize) -> hipError_t,
2680        ::libloading::Error,
2681    >,
2682    pub hipExtMallocWithFlags: Result<
2683        unsafe extern "C" fn(
2684            ptr: *mut *mut ::std::os::raw::c_void,
2685            sizeBytes: usize,
2686            flags: ::std::os::raw::c_uint,
2687        ) -> hipError_t,
2688        ::libloading::Error,
2689    >,
2690    pub hipMallocHost: Result<
2691        unsafe extern "C" fn(ptr: *mut *mut ::std::os::raw::c_void, size: usize) -> hipError_t,
2692        ::libloading::Error,
2693    >,
2694    pub hipMemAllocHost: Result<
2695        unsafe extern "C" fn(ptr: *mut *mut ::std::os::raw::c_void, size: usize) -> hipError_t,
2696        ::libloading::Error,
2697    >,
2698    pub hipHostMalloc: Result<
2699        unsafe extern "C" fn(
2700            ptr: *mut *mut ::std::os::raw::c_void,
2701            size: usize,
2702            flags: ::std::os::raw::c_uint,
2703        ) -> hipError_t,
2704        ::libloading::Error,
2705    >,
2706    pub hipMallocManaged: Result<
2707        unsafe extern "C" fn(
2708            dev_ptr: *mut *mut ::std::os::raw::c_void,
2709            size: usize,
2710            flags: ::std::os::raw::c_uint,
2711        ) -> hipError_t,
2712        ::libloading::Error,
2713    >,
2714    pub hipMemPrefetchAsync: Result<
2715        unsafe extern "C" fn(
2716            dev_ptr: *const ::std::os::raw::c_void,
2717            count: usize,
2718            device: ::std::os::raw::c_int,
2719            stream: hipStream_t,
2720        ) -> hipError_t,
2721        ::libloading::Error,
2722    >,
2723    pub hipMemAdvise: Result<
2724        unsafe extern "C" fn(
2725            dev_ptr: *const ::std::os::raw::c_void,
2726            count: usize,
2727            advice: hipMemoryAdvise,
2728            device: ::std::os::raw::c_int,
2729        ) -> hipError_t,
2730        ::libloading::Error,
2731    >,
2732    pub hipMemRangeGetAttribute: Result<
2733        unsafe extern "C" fn(
2734            data: *mut ::std::os::raw::c_void,
2735            data_size: usize,
2736            attribute: hipMemRangeAttribute,
2737            dev_ptr: *const ::std::os::raw::c_void,
2738            count: usize,
2739        ) -> hipError_t,
2740        ::libloading::Error,
2741    >,
2742    pub hipMemRangeGetAttributes: Result<
2743        unsafe extern "C" fn(
2744            data: *mut *mut ::std::os::raw::c_void,
2745            data_sizes: *mut usize,
2746            attributes: *mut hipMemRangeAttribute,
2747            num_attributes: usize,
2748            dev_ptr: *const ::std::os::raw::c_void,
2749            count: usize,
2750        ) -> hipError_t,
2751        ::libloading::Error,
2752    >,
2753    pub hipStreamAttachMemAsync: Result<
2754        unsafe extern "C" fn(
2755            stream: hipStream_t,
2756            dev_ptr: *mut ::std::os::raw::c_void,
2757            length: usize,
2758            flags: ::std::os::raw::c_uint,
2759        ) -> hipError_t,
2760        ::libloading::Error,
2761    >,
2762    pub hipMallocAsync: Result<
2763        unsafe extern "C" fn(
2764            dev_ptr: *mut *mut ::std::os::raw::c_void,
2765            size: usize,
2766            stream: hipStream_t,
2767        ) -> hipError_t,
2768        ::libloading::Error,
2769    >,
2770    pub hipFreeAsync: Result<
2771        unsafe extern "C" fn(
2772            dev_ptr: *mut ::std::os::raw::c_void,
2773            stream: hipStream_t,
2774        ) -> hipError_t,
2775        ::libloading::Error,
2776    >,
2777    pub hipMemPoolTrimTo: Result<
2778        unsafe extern "C" fn(mem_pool: hipMemPool_t, min_bytes_to_hold: usize) -> hipError_t,
2779        ::libloading::Error,
2780    >,
2781    pub hipMemPoolSetAttribute: Result<
2782        unsafe extern "C" fn(
2783            mem_pool: hipMemPool_t,
2784            attr: hipMemPoolAttr,
2785            value: *mut ::std::os::raw::c_void,
2786        ) -> hipError_t,
2787        ::libloading::Error,
2788    >,
2789    pub hipMemPoolGetAttribute: Result<
2790        unsafe extern "C" fn(
2791            mem_pool: hipMemPool_t,
2792            attr: hipMemPoolAttr,
2793            value: *mut ::std::os::raw::c_void,
2794        ) -> hipError_t,
2795        ::libloading::Error,
2796    >,
2797    pub hipMemPoolSetAccess: Result<
2798        unsafe extern "C" fn(
2799            mem_pool: hipMemPool_t,
2800            desc_list: *const hipMemAccessDesc,
2801            count: usize,
2802        ) -> hipError_t,
2803        ::libloading::Error,
2804    >,
2805    pub hipMemPoolGetAccess: Result<
2806        unsafe extern "C" fn(
2807            flags: *mut hipMemAccessFlags,
2808            mem_pool: hipMemPool_t,
2809            location: *mut hipMemLocation,
2810        ) -> hipError_t,
2811        ::libloading::Error,
2812    >,
2813    pub hipMemPoolCreate: Result<
2814        unsafe extern "C" fn(
2815            mem_pool: *mut hipMemPool_t,
2816            pool_props: *const hipMemPoolProps,
2817        ) -> hipError_t,
2818        ::libloading::Error,
2819    >,
2820    pub hipMemPoolDestroy:
2821        Result<unsafe extern "C" fn(mem_pool: hipMemPool_t) -> hipError_t, ::libloading::Error>,
2822    pub hipMallocFromPoolAsync: Result<
2823        unsafe extern "C" fn(
2824            dev_ptr: *mut *mut ::std::os::raw::c_void,
2825            size: usize,
2826            mem_pool: hipMemPool_t,
2827            stream: hipStream_t,
2828        ) -> hipError_t,
2829        ::libloading::Error,
2830    >,
2831    pub hipMemPoolExportToShareableHandle: Result<
2832        unsafe extern "C" fn(
2833            shared_handle: *mut ::std::os::raw::c_void,
2834            mem_pool: hipMemPool_t,
2835            handle_type: hipMemAllocationHandleType,
2836            flags: ::std::os::raw::c_uint,
2837        ) -> hipError_t,
2838        ::libloading::Error,
2839    >,
2840    pub hipMemPoolImportFromShareableHandle: Result<
2841        unsafe extern "C" fn(
2842            mem_pool: *mut hipMemPool_t,
2843            shared_handle: *mut ::std::os::raw::c_void,
2844            handle_type: hipMemAllocationHandleType,
2845            flags: ::std::os::raw::c_uint,
2846        ) -> hipError_t,
2847        ::libloading::Error,
2848    >,
2849    pub hipMemPoolExportPointer: Result<
2850        unsafe extern "C" fn(
2851            export_data: *mut hipMemPoolPtrExportData,
2852            dev_ptr: *mut ::std::os::raw::c_void,
2853        ) -> hipError_t,
2854        ::libloading::Error,
2855    >,
2856    pub hipMemPoolImportPointer: Result<
2857        unsafe extern "C" fn(
2858            dev_ptr: *mut *mut ::std::os::raw::c_void,
2859            mem_pool: hipMemPool_t,
2860            export_data: *mut hipMemPoolPtrExportData,
2861        ) -> hipError_t,
2862        ::libloading::Error,
2863    >,
2864    pub hipHostAlloc: Result<
2865        unsafe extern "C" fn(
2866            ptr: *mut *mut ::std::os::raw::c_void,
2867            size: usize,
2868            flags: ::std::os::raw::c_uint,
2869        ) -> hipError_t,
2870        ::libloading::Error,
2871    >,
2872    pub hipHostGetDevicePointer: Result<
2873        unsafe extern "C" fn(
2874            devPtr: *mut *mut ::std::os::raw::c_void,
2875            hstPtr: *mut ::std::os::raw::c_void,
2876            flags: ::std::os::raw::c_uint,
2877        ) -> hipError_t,
2878        ::libloading::Error,
2879    >,
2880    pub hipHostGetFlags: Result<
2881        unsafe extern "C" fn(
2882            flagsPtr: *mut ::std::os::raw::c_uint,
2883            hostPtr: *mut ::std::os::raw::c_void,
2884        ) -> hipError_t,
2885        ::libloading::Error,
2886    >,
2887    pub hipHostRegister: Result<
2888        unsafe extern "C" fn(
2889            hostPtr: *mut ::std::os::raw::c_void,
2890            sizeBytes: usize,
2891            flags: ::std::os::raw::c_uint,
2892        ) -> hipError_t,
2893        ::libloading::Error,
2894    >,
2895    pub hipHostUnregister: Result<
2896        unsafe extern "C" fn(hostPtr: *mut ::std::os::raw::c_void) -> hipError_t,
2897        ::libloading::Error,
2898    >,
2899    pub hipMallocPitch: Result<
2900        unsafe extern "C" fn(
2901            ptr: *mut *mut ::std::os::raw::c_void,
2902            pitch: *mut usize,
2903            width: usize,
2904            height: usize,
2905        ) -> hipError_t,
2906        ::libloading::Error,
2907    >,
2908    pub hipMemAllocPitch: Result<
2909        unsafe extern "C" fn(
2910            dptr: *mut hipDeviceptr_t,
2911            pitch: *mut usize,
2912            widthInBytes: usize,
2913            height: usize,
2914            elementSizeBytes: ::std::os::raw::c_uint,
2915        ) -> hipError_t,
2916        ::libloading::Error,
2917    >,
2918    pub hipFree: Result<
2919        unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_void) -> hipError_t,
2920        ::libloading::Error,
2921    >,
2922    pub hipFreeHost: Result<
2923        unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_void) -> hipError_t,
2924        ::libloading::Error,
2925    >,
2926    pub hipHostFree: Result<
2927        unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_void) -> hipError_t,
2928        ::libloading::Error,
2929    >,
2930    pub hipMemcpy: Result<
2931        unsafe extern "C" fn(
2932            dst: *mut ::std::os::raw::c_void,
2933            src: *const ::std::os::raw::c_void,
2934            sizeBytes: usize,
2935            kind: hipMemcpyKind,
2936        ) -> hipError_t,
2937        ::libloading::Error,
2938    >,
2939    pub hipMemcpyWithStream: Result<
2940        unsafe extern "C" fn(
2941            dst: *mut ::std::os::raw::c_void,
2942            src: *const ::std::os::raw::c_void,
2943            sizeBytes: usize,
2944            kind: hipMemcpyKind,
2945            stream: hipStream_t,
2946        ) -> hipError_t,
2947        ::libloading::Error,
2948    >,
2949    pub hipMemcpyHtoD: Result<
2950        unsafe extern "C" fn(
2951            dst: hipDeviceptr_t,
2952            src: *mut ::std::os::raw::c_void,
2953            sizeBytes: usize,
2954        ) -> hipError_t,
2955        ::libloading::Error,
2956    >,
2957    pub hipMemcpyDtoH: Result<
2958        unsafe extern "C" fn(
2959            dst: *mut ::std::os::raw::c_void,
2960            src: hipDeviceptr_t,
2961            sizeBytes: usize,
2962        ) -> hipError_t,
2963        ::libloading::Error,
2964    >,
2965    pub hipMemcpyDtoD: Result<
2966        unsafe extern "C" fn(
2967            dst: hipDeviceptr_t,
2968            src: hipDeviceptr_t,
2969            sizeBytes: usize,
2970        ) -> hipError_t,
2971        ::libloading::Error,
2972    >,
2973    pub hipMemcpyHtoDAsync: Result<
2974        unsafe extern "C" fn(
2975            dst: hipDeviceptr_t,
2976            src: *mut ::std::os::raw::c_void,
2977            sizeBytes: usize,
2978            stream: hipStream_t,
2979        ) -> hipError_t,
2980        ::libloading::Error,
2981    >,
2982    pub hipMemcpyDtoHAsync: Result<
2983        unsafe extern "C" fn(
2984            dst: *mut ::std::os::raw::c_void,
2985            src: hipDeviceptr_t,
2986            sizeBytes: usize,
2987            stream: hipStream_t,
2988        ) -> hipError_t,
2989        ::libloading::Error,
2990    >,
2991    pub hipMemcpyDtoDAsync: Result<
2992        unsafe extern "C" fn(
2993            dst: hipDeviceptr_t,
2994            src: hipDeviceptr_t,
2995            sizeBytes: usize,
2996            stream: hipStream_t,
2997        ) -> hipError_t,
2998        ::libloading::Error,
2999    >,
3000    pub hipModuleGetGlobal: Result<
3001        unsafe extern "C" fn(
3002            dptr: *mut hipDeviceptr_t,
3003            bytes: *mut usize,
3004            hmod: hipModule_t,
3005            name: *const ::std::os::raw::c_char,
3006        ) -> hipError_t,
3007        ::libloading::Error,
3008    >,
3009    pub hipGetSymbolAddress: Result<
3010        unsafe extern "C" fn(
3011            devPtr: *mut *mut ::std::os::raw::c_void,
3012            symbol: *const ::std::os::raw::c_void,
3013        ) -> hipError_t,
3014        ::libloading::Error,
3015    >,
3016    pub hipGetSymbolSize: Result<
3017        unsafe extern "C" fn(size: *mut usize, symbol: *const ::std::os::raw::c_void) -> hipError_t,
3018        ::libloading::Error,
3019    >,
3020    pub hipMemcpyToSymbol: Result<
3021        unsafe extern "C" fn(
3022            symbol: *const ::std::os::raw::c_void,
3023            src: *const ::std::os::raw::c_void,
3024            sizeBytes: usize,
3025            offset: usize,
3026            kind: hipMemcpyKind,
3027        ) -> hipError_t,
3028        ::libloading::Error,
3029    >,
3030    pub hipMemcpyToSymbolAsync: Result<
3031        unsafe extern "C" fn(
3032            symbol: *const ::std::os::raw::c_void,
3033            src: *const ::std::os::raw::c_void,
3034            sizeBytes: usize,
3035            offset: usize,
3036            kind: hipMemcpyKind,
3037            stream: hipStream_t,
3038        ) -> hipError_t,
3039        ::libloading::Error,
3040    >,
3041    pub hipMemcpyFromSymbol: Result<
3042        unsafe extern "C" fn(
3043            dst: *mut ::std::os::raw::c_void,
3044            symbol: *const ::std::os::raw::c_void,
3045            sizeBytes: usize,
3046            offset: usize,
3047            kind: hipMemcpyKind,
3048        ) -> hipError_t,
3049        ::libloading::Error,
3050    >,
3051    pub hipMemcpyFromSymbolAsync: Result<
3052        unsafe extern "C" fn(
3053            dst: *mut ::std::os::raw::c_void,
3054            symbol: *const ::std::os::raw::c_void,
3055            sizeBytes: usize,
3056            offset: usize,
3057            kind: hipMemcpyKind,
3058            stream: hipStream_t,
3059        ) -> hipError_t,
3060        ::libloading::Error,
3061    >,
3062    pub hipMemcpyAsync: Result<
3063        unsafe extern "C" fn(
3064            dst: *mut ::std::os::raw::c_void,
3065            src: *const ::std::os::raw::c_void,
3066            sizeBytes: usize,
3067            kind: hipMemcpyKind,
3068            stream: hipStream_t,
3069        ) -> hipError_t,
3070        ::libloading::Error,
3071    >,
3072    pub hipMemset: Result<
3073        unsafe extern "C" fn(
3074            dst: *mut ::std::os::raw::c_void,
3075            value: ::std::os::raw::c_int,
3076            sizeBytes: usize,
3077        ) -> hipError_t,
3078        ::libloading::Error,
3079    >,
3080    pub hipMemsetD8: Result<
3081        unsafe extern "C" fn(
3082            dest: hipDeviceptr_t,
3083            value: ::std::os::raw::c_uchar,
3084            count: usize,
3085        ) -> hipError_t,
3086        ::libloading::Error,
3087    >,
3088    pub hipMemsetD8Async: Result<
3089        unsafe extern "C" fn(
3090            dest: hipDeviceptr_t,
3091            value: ::std::os::raw::c_uchar,
3092            count: usize,
3093            stream: hipStream_t,
3094        ) -> hipError_t,
3095        ::libloading::Error,
3096    >,
3097    pub hipMemsetD16: Result<
3098        unsafe extern "C" fn(
3099            dest: hipDeviceptr_t,
3100            value: ::std::os::raw::c_ushort,
3101            count: usize,
3102        ) -> hipError_t,
3103        ::libloading::Error,
3104    >,
3105    pub hipMemsetD16Async: Result<
3106        unsafe extern "C" fn(
3107            dest: hipDeviceptr_t,
3108            value: ::std::os::raw::c_ushort,
3109            count: usize,
3110            stream: hipStream_t,
3111        ) -> hipError_t,
3112        ::libloading::Error,
3113    >,
3114    pub hipMemsetD32: Result<
3115        unsafe extern "C" fn(
3116            dest: hipDeviceptr_t,
3117            value: ::std::os::raw::c_int,
3118            count: usize,
3119        ) -> hipError_t,
3120        ::libloading::Error,
3121    >,
3122    pub hipMemsetAsync: Result<
3123        unsafe extern "C" fn(
3124            dst: *mut ::std::os::raw::c_void,
3125            value: ::std::os::raw::c_int,
3126            sizeBytes: usize,
3127            stream: hipStream_t,
3128        ) -> hipError_t,
3129        ::libloading::Error,
3130    >,
3131    pub hipMemsetD32Async: Result<
3132        unsafe extern "C" fn(
3133            dst: hipDeviceptr_t,
3134            value: ::std::os::raw::c_int,
3135            count: usize,
3136            stream: hipStream_t,
3137        ) -> hipError_t,
3138        ::libloading::Error,
3139    >,
3140    pub hipMemset2D: Result<
3141        unsafe extern "C" fn(
3142            dst: *mut ::std::os::raw::c_void,
3143            pitch: usize,
3144            value: ::std::os::raw::c_int,
3145            width: usize,
3146            height: usize,
3147        ) -> hipError_t,
3148        ::libloading::Error,
3149    >,
3150    pub hipMemset2DAsync: Result<
3151        unsafe extern "C" fn(
3152            dst: *mut ::std::os::raw::c_void,
3153            pitch: usize,
3154            value: ::std::os::raw::c_int,
3155            width: usize,
3156            height: usize,
3157            stream: hipStream_t,
3158        ) -> hipError_t,
3159        ::libloading::Error,
3160    >,
3161    pub hipMemset3D: Result<
3162        unsafe extern "C" fn(
3163            pitchedDevPtr: hipPitchedPtr,
3164            value: ::std::os::raw::c_int,
3165            extent: hipExtent,
3166        ) -> hipError_t,
3167        ::libloading::Error,
3168    >,
3169    pub hipMemset3DAsync: Result<
3170        unsafe extern "C" fn(
3171            pitchedDevPtr: hipPitchedPtr,
3172            value: ::std::os::raw::c_int,
3173            extent: hipExtent,
3174            stream: hipStream_t,
3175        ) -> hipError_t,
3176        ::libloading::Error,
3177    >,
3178    pub hipMemGetInfo: Result<
3179        unsafe extern "C" fn(free: *mut usize, total: *mut usize) -> hipError_t,
3180        ::libloading::Error,
3181    >,
3182    pub hipMemPtrGetInfo: Result<
3183        unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_void, size: *mut usize) -> hipError_t,
3184        ::libloading::Error,
3185    >,
3186    pub hipMallocArray: Result<
3187        unsafe extern "C" fn(
3188            array: *mut *mut hipArray,
3189            desc: *const hipChannelFormatDesc,
3190            width: usize,
3191            height: usize,
3192            flags: ::std::os::raw::c_uint,
3193        ) -> hipError_t,
3194        ::libloading::Error,
3195    >,
3196    pub hipArrayCreate: Result<
3197        unsafe extern "C" fn(
3198            pHandle: *mut *mut hipArray,
3199            pAllocateArray: *const HIP_ARRAY_DESCRIPTOR,
3200        ) -> hipError_t,
3201        ::libloading::Error,
3202    >,
3203    pub hipArrayDestroy:
3204        Result<unsafe extern "C" fn(array: *mut hipArray) -> hipError_t, ::libloading::Error>,
3205    pub hipArray3DCreate: Result<
3206        unsafe extern "C" fn(
3207            array: *mut *mut hipArray,
3208            pAllocateArray: *const HIP_ARRAY3D_DESCRIPTOR,
3209        ) -> hipError_t,
3210        ::libloading::Error,
3211    >,
3212    pub hipMalloc3D: Result<
3213        unsafe extern "C" fn(pitchedDevPtr: *mut hipPitchedPtr, extent: hipExtent) -> hipError_t,
3214        ::libloading::Error,
3215    >,
3216    pub hipFreeArray:
3217        Result<unsafe extern "C" fn(array: *mut hipArray) -> hipError_t, ::libloading::Error>,
3218    pub hipFreeMipmappedArray: Result<
3219        unsafe extern "C" fn(mipmappedArray: hipMipmappedArray_t) -> hipError_t,
3220        ::libloading::Error,
3221    >,
3222    pub hipMalloc3DArray: Result<
3223        unsafe extern "C" fn(
3224            array: *mut *mut hipArray,
3225            desc: *const hipChannelFormatDesc,
3226            extent: hipExtent,
3227            flags: ::std::os::raw::c_uint,
3228        ) -> hipError_t,
3229        ::libloading::Error,
3230    >,
3231    pub hipMallocMipmappedArray: Result<
3232        unsafe extern "C" fn(
3233            mipmappedArray: *mut hipMipmappedArray_t,
3234            desc: *const hipChannelFormatDesc,
3235            extent: hipExtent,
3236            numLevels: ::std::os::raw::c_uint,
3237            flags: ::std::os::raw::c_uint,
3238        ) -> hipError_t,
3239        ::libloading::Error,
3240    >,
3241    pub hipGetMipmappedArrayLevel: Result<
3242        unsafe extern "C" fn(
3243            levelArray: *mut hipArray_t,
3244            mipmappedArray: hipMipmappedArray_const_t,
3245            level: ::std::os::raw::c_uint,
3246        ) -> hipError_t,
3247        ::libloading::Error,
3248    >,
3249    pub hipMemcpy2D: Result<
3250        unsafe extern "C" fn(
3251            dst: *mut ::std::os::raw::c_void,
3252            dpitch: usize,
3253            src: *const ::std::os::raw::c_void,
3254            spitch: usize,
3255            width: usize,
3256            height: usize,
3257            kind: hipMemcpyKind,
3258        ) -> hipError_t,
3259        ::libloading::Error,
3260    >,
3261    pub hipMemcpyParam2D:
3262        Result<unsafe extern "C" fn(pCopy: *const hip_Memcpy2D) -> hipError_t, ::libloading::Error>,
3263    pub hipMemcpyParam2DAsync: Result<
3264        unsafe extern "C" fn(pCopy: *const hip_Memcpy2D, stream: hipStream_t) -> hipError_t,
3265        ::libloading::Error,
3266    >,
3267    pub hipMemcpy2DAsync: Result<
3268        unsafe extern "C" fn(
3269            dst: *mut ::std::os::raw::c_void,
3270            dpitch: usize,
3271            src: *const ::std::os::raw::c_void,
3272            spitch: usize,
3273            width: usize,
3274            height: usize,
3275            kind: hipMemcpyKind,
3276            stream: hipStream_t,
3277        ) -> hipError_t,
3278        ::libloading::Error,
3279    >,
3280    pub hipMemcpy2DToArray: Result<
3281        unsafe extern "C" fn(
3282            dst: *mut hipArray,
3283            wOffset: usize,
3284            hOffset: usize,
3285            src: *const ::std::os::raw::c_void,
3286            spitch: usize,
3287            width: usize,
3288            height: usize,
3289            kind: hipMemcpyKind,
3290        ) -> hipError_t,
3291        ::libloading::Error,
3292    >,
3293    pub hipMemcpy2DToArrayAsync: Result<
3294        unsafe extern "C" fn(
3295            dst: *mut hipArray,
3296            wOffset: usize,
3297            hOffset: usize,
3298            src: *const ::std::os::raw::c_void,
3299            spitch: usize,
3300            width: usize,
3301            height: usize,
3302            kind: hipMemcpyKind,
3303            stream: hipStream_t,
3304        ) -> hipError_t,
3305        ::libloading::Error,
3306    >,
3307    pub hipMemcpyToArray: Result<
3308        unsafe extern "C" fn(
3309            dst: *mut hipArray,
3310            wOffset: usize,
3311            hOffset: usize,
3312            src: *const ::std::os::raw::c_void,
3313            count: usize,
3314            kind: hipMemcpyKind,
3315        ) -> hipError_t,
3316        ::libloading::Error,
3317    >,
3318    pub hipMemcpyFromArray: Result<
3319        unsafe extern "C" fn(
3320            dst: *mut ::std::os::raw::c_void,
3321            srcArray: hipArray_const_t,
3322            wOffset: usize,
3323            hOffset: usize,
3324            count: usize,
3325            kind: hipMemcpyKind,
3326        ) -> hipError_t,
3327        ::libloading::Error,
3328    >,
3329    pub hipMemcpy2DFromArray: Result<
3330        unsafe extern "C" fn(
3331            dst: *mut ::std::os::raw::c_void,
3332            dpitch: usize,
3333            src: hipArray_const_t,
3334            wOffset: usize,
3335            hOffset: usize,
3336            width: usize,
3337            height: usize,
3338            kind: hipMemcpyKind,
3339        ) -> hipError_t,
3340        ::libloading::Error,
3341    >,
3342    pub hipMemcpy2DFromArrayAsync: Result<
3343        unsafe extern "C" fn(
3344            dst: *mut ::std::os::raw::c_void,
3345            dpitch: usize,
3346            src: hipArray_const_t,
3347            wOffset: usize,
3348            hOffset: usize,
3349            width: usize,
3350            height: usize,
3351            kind: hipMemcpyKind,
3352            stream: hipStream_t,
3353        ) -> hipError_t,
3354        ::libloading::Error,
3355    >,
3356    pub hipMemcpyAtoH: Result<
3357        unsafe extern "C" fn(
3358            dst: *mut ::std::os::raw::c_void,
3359            srcArray: *mut hipArray,
3360            srcOffset: usize,
3361            count: usize,
3362        ) -> hipError_t,
3363        ::libloading::Error,
3364    >,
3365    pub hipMemcpyHtoA: Result<
3366        unsafe extern "C" fn(
3367            dstArray: *mut hipArray,
3368            dstOffset: usize,
3369            srcHost: *const ::std::os::raw::c_void,
3370            count: usize,
3371        ) -> hipError_t,
3372        ::libloading::Error,
3373    >,
3374    pub hipMemcpy3D:
3375        Result<unsafe extern "C" fn(p: *const hipMemcpy3DParms) -> hipError_t, ::libloading::Error>,
3376    pub hipMemcpy3DAsync: Result<
3377        unsafe extern "C" fn(p: *const hipMemcpy3DParms, stream: hipStream_t) -> hipError_t,
3378        ::libloading::Error,
3379    >,
3380    pub hipDrvMemcpy3D:
3381        Result<unsafe extern "C" fn(pCopy: *const HIP_MEMCPY3D) -> hipError_t, ::libloading::Error>,
3382    pub hipDrvMemcpy3DAsync: Result<
3383        unsafe extern "C" fn(pCopy: *const HIP_MEMCPY3D, stream: hipStream_t) -> hipError_t,
3384        ::libloading::Error,
3385    >,
3386    pub hipDeviceCanAccessPeer: Result<
3387        unsafe extern "C" fn(
3388            canAccessPeer: *mut ::std::os::raw::c_int,
3389            deviceId: ::std::os::raw::c_int,
3390            peerDeviceId: ::std::os::raw::c_int,
3391        ) -> hipError_t,
3392        ::libloading::Error,
3393    >,
3394    pub hipDeviceEnablePeerAccess: Result<
3395        unsafe extern "C" fn(
3396            peerDeviceId: ::std::os::raw::c_int,
3397            flags: ::std::os::raw::c_uint,
3398        ) -> hipError_t,
3399        ::libloading::Error,
3400    >,
3401    pub hipDeviceDisablePeerAccess: Result<
3402        unsafe extern "C" fn(peerDeviceId: ::std::os::raw::c_int) -> hipError_t,
3403        ::libloading::Error,
3404    >,
3405    pub hipMemGetAddressRange: Result<
3406        unsafe extern "C" fn(
3407            pbase: *mut hipDeviceptr_t,
3408            psize: *mut usize,
3409            dptr: hipDeviceptr_t,
3410        ) -> hipError_t,
3411        ::libloading::Error,
3412    >,
3413    pub hipMemcpyPeer: Result<
3414        unsafe extern "C" fn(
3415            dst: *mut ::std::os::raw::c_void,
3416            dstDeviceId: ::std::os::raw::c_int,
3417            src: *const ::std::os::raw::c_void,
3418            srcDeviceId: ::std::os::raw::c_int,
3419            sizeBytes: usize,
3420        ) -> hipError_t,
3421        ::libloading::Error,
3422    >,
3423    pub hipMemcpyPeerAsync: Result<
3424        unsafe extern "C" fn(
3425            dst: *mut ::std::os::raw::c_void,
3426            dstDeviceId: ::std::os::raw::c_int,
3427            src: *const ::std::os::raw::c_void,
3428            srcDevice: ::std::os::raw::c_int,
3429            sizeBytes: usize,
3430            stream: hipStream_t,
3431        ) -> hipError_t,
3432        ::libloading::Error,
3433    >,
3434    pub hipCtxCreate: Result<
3435        unsafe extern "C" fn(
3436            ctx: *mut hipCtx_t,
3437            flags: ::std::os::raw::c_uint,
3438            device: hipDevice_t,
3439        ) -> hipError_t,
3440        ::libloading::Error,
3441    >,
3442    pub hipCtxDestroy:
3443        Result<unsafe extern "C" fn(ctx: hipCtx_t) -> hipError_t, ::libloading::Error>,
3444    pub hipCtxPopCurrent:
3445        Result<unsafe extern "C" fn(ctx: *mut hipCtx_t) -> hipError_t, ::libloading::Error>,
3446    pub hipCtxPushCurrent:
3447        Result<unsafe extern "C" fn(ctx: hipCtx_t) -> hipError_t, ::libloading::Error>,
3448    pub hipCtxSetCurrent:
3449        Result<unsafe extern "C" fn(ctx: hipCtx_t) -> hipError_t, ::libloading::Error>,
3450    pub hipCtxGetCurrent:
3451        Result<unsafe extern "C" fn(ctx: *mut hipCtx_t) -> hipError_t, ::libloading::Error>,
3452    pub hipCtxGetDevice:
3453        Result<unsafe extern "C" fn(device: *mut hipDevice_t) -> hipError_t, ::libloading::Error>,
3454    pub hipCtxGetApiVersion: Result<
3455        unsafe extern "C" fn(ctx: hipCtx_t, apiVersion: *mut ::std::os::raw::c_int) -> hipError_t,
3456        ::libloading::Error,
3457    >,
3458    pub hipCtxGetCacheConfig: Result<
3459        unsafe extern "C" fn(cacheConfig: *mut hipFuncCache_t) -> hipError_t,
3460        ::libloading::Error,
3461    >,
3462    pub hipCtxSetCacheConfig: Result<
3463        unsafe extern "C" fn(cacheConfig: hipFuncCache_t) -> hipError_t,
3464        ::libloading::Error,
3465    >,
3466    pub hipCtxSetSharedMemConfig:
3467        Result<unsafe extern "C" fn(config: hipSharedMemConfig) -> hipError_t, ::libloading::Error>,
3468    pub hipCtxGetSharedMemConfig: Result<
3469        unsafe extern "C" fn(pConfig: *mut hipSharedMemConfig) -> hipError_t,
3470        ::libloading::Error,
3471    >,
3472    pub hipCtxSynchronize: Result<unsafe extern "C" fn() -> hipError_t, ::libloading::Error>,
3473    pub hipCtxGetFlags: Result<
3474        unsafe extern "C" fn(flags: *mut ::std::os::raw::c_uint) -> hipError_t,
3475        ::libloading::Error,
3476    >,
3477    pub hipCtxEnablePeerAccess: Result<
3478        unsafe extern "C" fn(peerCtx: hipCtx_t, flags: ::std::os::raw::c_uint) -> hipError_t,
3479        ::libloading::Error,
3480    >,
3481    pub hipCtxDisablePeerAccess:
3482        Result<unsafe extern "C" fn(peerCtx: hipCtx_t) -> hipError_t, ::libloading::Error>,
3483    pub hipDevicePrimaryCtxGetState: Result<
3484        unsafe extern "C" fn(
3485            dev: hipDevice_t,
3486            flags: *mut ::std::os::raw::c_uint,
3487            active: *mut ::std::os::raw::c_int,
3488        ) -> hipError_t,
3489        ::libloading::Error,
3490    >,
3491    pub hipDevicePrimaryCtxRelease:
3492        Result<unsafe extern "C" fn(dev: hipDevice_t) -> hipError_t, ::libloading::Error>,
3493    pub hipDevicePrimaryCtxRetain: Result<
3494        unsafe extern "C" fn(pctx: *mut hipCtx_t, dev: hipDevice_t) -> hipError_t,
3495        ::libloading::Error,
3496    >,
3497    pub hipDevicePrimaryCtxReset:
3498        Result<unsafe extern "C" fn(dev: hipDevice_t) -> hipError_t, ::libloading::Error>,
3499    pub hipDevicePrimaryCtxSetFlags: Result<
3500        unsafe extern "C" fn(dev: hipDevice_t, flags: ::std::os::raw::c_uint) -> hipError_t,
3501        ::libloading::Error,
3502    >,
3503    pub hipModuleLoad: Result<
3504        unsafe extern "C" fn(
3505            module: *mut hipModule_t,
3506            fname: *const ::std::os::raw::c_char,
3507        ) -> hipError_t,
3508        ::libloading::Error,
3509    >,
3510    pub hipModuleUnload:
3511        Result<unsafe extern "C" fn(module: hipModule_t) -> hipError_t, ::libloading::Error>,
3512    pub hipModuleGetFunction: Result<
3513        unsafe extern "C" fn(
3514            function: *mut hipFunction_t,
3515            module: hipModule_t,
3516            kname: *const ::std::os::raw::c_char,
3517        ) -> hipError_t,
3518        ::libloading::Error,
3519    >,
3520    pub hipFuncGetAttributes: Result<
3521        unsafe extern "C" fn(
3522            attr: *mut hipFuncAttributes,
3523            func: *const ::std::os::raw::c_void,
3524        ) -> hipError_t,
3525        ::libloading::Error,
3526    >,
3527    pub hipFuncGetAttribute: Result<
3528        unsafe extern "C" fn(
3529            value: *mut ::std::os::raw::c_int,
3530            attrib: hipFunction_attribute,
3531            hfunc: hipFunction_t,
3532        ) -> hipError_t,
3533        ::libloading::Error,
3534    >,
3535    pub hipModuleGetTexRef: Result<
3536        unsafe extern "C" fn(
3537            texRef: *mut *mut textureReference,
3538            hmod: hipModule_t,
3539            name: *const ::std::os::raw::c_char,
3540        ) -> hipError_t,
3541        ::libloading::Error,
3542    >,
3543    pub hipModuleLoadData: Result<
3544        unsafe extern "C" fn(
3545            module: *mut hipModule_t,
3546            image: *const ::std::os::raw::c_void,
3547        ) -> hipError_t,
3548        ::libloading::Error,
3549    >,
3550    pub hipModuleLoadDataEx: Result<
3551        unsafe extern "C" fn(
3552            module: *mut hipModule_t,
3553            image: *const ::std::os::raw::c_void,
3554            numOptions: ::std::os::raw::c_uint,
3555            options: *mut hipJitOption,
3556            optionValues: *mut *mut ::std::os::raw::c_void,
3557        ) -> hipError_t,
3558        ::libloading::Error,
3559    >,
3560    pub hipModuleLaunchKernel: Result<
3561        unsafe extern "C" fn(
3562            f: hipFunction_t,
3563            gridDimX: ::std::os::raw::c_uint,
3564            gridDimY: ::std::os::raw::c_uint,
3565            gridDimZ: ::std::os::raw::c_uint,
3566            blockDimX: ::std::os::raw::c_uint,
3567            blockDimY: ::std::os::raw::c_uint,
3568            blockDimZ: ::std::os::raw::c_uint,
3569            sharedMemBytes: ::std::os::raw::c_uint,
3570            stream: hipStream_t,
3571            kernelParams: *mut *mut ::std::os::raw::c_void,
3572            extra: *mut *mut ::std::os::raw::c_void,
3573        ) -> hipError_t,
3574        ::libloading::Error,
3575    >,
3576    pub hipLaunchCooperativeKernel: Result<
3577        unsafe extern "C" fn(
3578            f: *const ::std::os::raw::c_void,
3579            gridDim: dim3,
3580            blockDimX: dim3,
3581            kernelParams: *mut *mut ::std::os::raw::c_void,
3582            sharedMemBytes: ::std::os::raw::c_uint,
3583            stream: hipStream_t,
3584        ) -> hipError_t,
3585        ::libloading::Error,
3586    >,
3587    pub hipLaunchCooperativeKernelMultiDevice: Result<
3588        unsafe extern "C" fn(
3589            launchParamsList: *mut hipLaunchParams,
3590            numDevices: ::std::os::raw::c_int,
3591            flags: ::std::os::raw::c_uint,
3592        ) -> hipError_t,
3593        ::libloading::Error,
3594    >,
3595    pub hipExtLaunchMultiKernelMultiDevice: Result<
3596        unsafe extern "C" fn(
3597            launchParamsList: *mut hipLaunchParams,
3598            numDevices: ::std::os::raw::c_int,
3599            flags: ::std::os::raw::c_uint,
3600        ) -> hipError_t,
3601        ::libloading::Error,
3602    >,
3603    pub hipModuleOccupancyMaxPotentialBlockSize: Result<
3604        unsafe extern "C" fn(
3605            gridSize: *mut ::std::os::raw::c_int,
3606            blockSize: *mut ::std::os::raw::c_int,
3607            f: hipFunction_t,
3608            dynSharedMemPerBlk: usize,
3609            blockSizeLimit: ::std::os::raw::c_int,
3610        ) -> hipError_t,
3611        ::libloading::Error,
3612    >,
3613    pub hipModuleOccupancyMaxPotentialBlockSizeWithFlags: Result<
3614        unsafe extern "C" fn(
3615            gridSize: *mut ::std::os::raw::c_int,
3616            blockSize: *mut ::std::os::raw::c_int,
3617            f: hipFunction_t,
3618            dynSharedMemPerBlk: usize,
3619            blockSizeLimit: ::std::os::raw::c_int,
3620            flags: ::std::os::raw::c_uint,
3621        ) -> hipError_t,
3622        ::libloading::Error,
3623    >,
3624    pub hipModuleOccupancyMaxActiveBlocksPerMultiprocessor: Result<
3625        unsafe extern "C" fn(
3626            numBlocks: *mut ::std::os::raw::c_int,
3627            f: hipFunction_t,
3628            blockSize: ::std::os::raw::c_int,
3629            dynSharedMemPerBlk: usize,
3630        ) -> hipError_t,
3631        ::libloading::Error,
3632    >,
3633    pub hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags: Result<
3634        unsafe extern "C" fn(
3635            numBlocks: *mut ::std::os::raw::c_int,
3636            f: hipFunction_t,
3637            blockSize: ::std::os::raw::c_int,
3638            dynSharedMemPerBlk: usize,
3639            flags: ::std::os::raw::c_uint,
3640        ) -> hipError_t,
3641        ::libloading::Error,
3642    >,
3643    pub hipOccupancyMaxActiveBlocksPerMultiprocessor: Result<
3644        unsafe extern "C" fn(
3645            numBlocks: *mut ::std::os::raw::c_int,
3646            f: *const ::std::os::raw::c_void,
3647            blockSize: ::std::os::raw::c_int,
3648            dynSharedMemPerBlk: usize,
3649        ) -> hipError_t,
3650        ::libloading::Error,
3651    >,
3652    pub hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags: Result<
3653        unsafe extern "C" fn(
3654            numBlocks: *mut ::std::os::raw::c_int,
3655            f: *const ::std::os::raw::c_void,
3656            blockSize: ::std::os::raw::c_int,
3657            dynSharedMemPerBlk: usize,
3658            flags: ::std::os::raw::c_uint,
3659        ) -> hipError_t,
3660        ::libloading::Error,
3661    >,
3662    pub hipOccupancyMaxPotentialBlockSize: Result<
3663        unsafe extern "C" fn(
3664            gridSize: *mut ::std::os::raw::c_int,
3665            blockSize: *mut ::std::os::raw::c_int,
3666            f: *const ::std::os::raw::c_void,
3667            dynSharedMemPerBlk: usize,
3668            blockSizeLimit: ::std::os::raw::c_int,
3669        ) -> hipError_t,
3670        ::libloading::Error,
3671    >,
3672    pub hipProfilerStart: Result<unsafe extern "C" fn() -> hipError_t, ::libloading::Error>,
3673    pub hipProfilerStop: Result<unsafe extern "C" fn() -> hipError_t, ::libloading::Error>,
3674    pub hipConfigureCall: Result<
3675        unsafe extern "C" fn(
3676            gridDim: dim3,
3677            blockDim: dim3,
3678            sharedMem: usize,
3679            stream: hipStream_t,
3680        ) -> hipError_t,
3681        ::libloading::Error,
3682    >,
3683    pub hipSetupArgument: Result<
3684        unsafe extern "C" fn(
3685            arg: *const ::std::os::raw::c_void,
3686            size: usize,
3687            offset: usize,
3688        ) -> hipError_t,
3689        ::libloading::Error,
3690    >,
3691    pub hipLaunchByPtr: Result<
3692        unsafe extern "C" fn(func: *const ::std::os::raw::c_void) -> hipError_t,
3693        ::libloading::Error,
3694    >,
3695    pub hipLaunchKernel: Result<
3696        unsafe extern "C" fn(
3697            function_address: *const ::std::os::raw::c_void,
3698            numBlocks: dim3,
3699            dimBlocks: dim3,
3700            args: *mut *mut ::std::os::raw::c_void,
3701            sharedMemBytes: usize,
3702            stream: hipStream_t,
3703        ) -> hipError_t,
3704        ::libloading::Error,
3705    >,
3706    pub hipLaunchHostFunc: Result<
3707        unsafe extern "C" fn(
3708            stream: hipStream_t,
3709            fn_: hipHostFn_t,
3710            userData: *mut ::std::os::raw::c_void,
3711        ) -> hipError_t,
3712        ::libloading::Error,
3713    >,
3714    pub hipDrvMemcpy2DUnaligned:
3715        Result<unsafe extern "C" fn(pCopy: *const hip_Memcpy2D) -> hipError_t, ::libloading::Error>,
3716    pub hipExtLaunchKernel: Result<
3717        unsafe extern "C" fn(
3718            function_address: *const ::std::os::raw::c_void,
3719            numBlocks: dim3,
3720            dimBlocks: dim3,
3721            args: *mut *mut ::std::os::raw::c_void,
3722            sharedMemBytes: usize,
3723            stream: hipStream_t,
3724            startEvent: hipEvent_t,
3725            stopEvent: hipEvent_t,
3726            flags: ::std::os::raw::c_int,
3727        ) -> hipError_t,
3728        ::libloading::Error,
3729    >,
3730    pub hipBindTextureToMipmappedArray: Result<
3731        unsafe extern "C" fn(
3732            tex: *const textureReference,
3733            mipmappedArray: hipMipmappedArray_const_t,
3734            desc: *const hipChannelFormatDesc,
3735        ) -> hipError_t,
3736        ::libloading::Error,
3737    >,
3738    pub hipCreateTextureObject: Result<
3739        unsafe extern "C" fn(
3740            pTexObject: *mut hipTextureObject_t,
3741            pResDesc: *const hipResourceDesc,
3742            pTexDesc: *const hipTextureDesc,
3743            pResViewDesc: *const hipResourceViewDesc,
3744        ) -> hipError_t,
3745        ::libloading::Error,
3746    >,
3747    pub hipDestroyTextureObject: Result<
3748        unsafe extern "C" fn(textureObject: hipTextureObject_t) -> hipError_t,
3749        ::libloading::Error,
3750    >,
3751    pub hipGetChannelDesc: Result<
3752        unsafe extern "C" fn(
3753            desc: *mut hipChannelFormatDesc,
3754            array: hipArray_const_t,
3755        ) -> hipError_t,
3756        ::libloading::Error,
3757    >,
3758    pub hipGetTextureObjectResourceDesc: Result<
3759        unsafe extern "C" fn(
3760            pResDesc: *mut hipResourceDesc,
3761            textureObject: hipTextureObject_t,
3762        ) -> hipError_t,
3763        ::libloading::Error,
3764    >,
3765    pub hipGetTextureObjectResourceViewDesc: Result<
3766        unsafe extern "C" fn(
3767            pResViewDesc: *mut hipResourceViewDesc,
3768            textureObject: hipTextureObject_t,
3769        ) -> hipError_t,
3770        ::libloading::Error,
3771    >,
3772    pub hipGetTextureObjectTextureDesc: Result<
3773        unsafe extern "C" fn(
3774            pTexDesc: *mut hipTextureDesc,
3775            textureObject: hipTextureObject_t,
3776        ) -> hipError_t,
3777        ::libloading::Error,
3778    >,
3779    pub hipTexObjectCreate: Result<
3780        unsafe extern "C" fn(
3781            pTexObject: *mut hipTextureObject_t,
3782            pResDesc: *const HIP_RESOURCE_DESC,
3783            pTexDesc: *const HIP_TEXTURE_DESC,
3784            pResViewDesc: *const HIP_RESOURCE_VIEW_DESC,
3785        ) -> hipError_t,
3786        ::libloading::Error,
3787    >,
3788    pub hipTexObjectDestroy: Result<
3789        unsafe extern "C" fn(texObject: hipTextureObject_t) -> hipError_t,
3790        ::libloading::Error,
3791    >,
3792    pub hipTexObjectGetResourceDesc: Result<
3793        unsafe extern "C" fn(
3794            pResDesc: *mut HIP_RESOURCE_DESC,
3795            texObject: hipTextureObject_t,
3796        ) -> hipError_t,
3797        ::libloading::Error,
3798    >,
3799    pub hipTexObjectGetResourceViewDesc: Result<
3800        unsafe extern "C" fn(
3801            pResViewDesc: *mut HIP_RESOURCE_VIEW_DESC,
3802            texObject: hipTextureObject_t,
3803        ) -> hipError_t,
3804        ::libloading::Error,
3805    >,
3806    pub hipTexObjectGetTextureDesc: Result<
3807        unsafe extern "C" fn(
3808            pTexDesc: *mut HIP_TEXTURE_DESC,
3809            texObject: hipTextureObject_t,
3810        ) -> hipError_t,
3811        ::libloading::Error,
3812    >,
3813    pub hipGetTextureReference: Result<
3814        unsafe extern "C" fn(
3815            texref: *mut *const textureReference,
3816            symbol: *const ::std::os::raw::c_void,
3817        ) -> hipError_t,
3818        ::libloading::Error,
3819    >,
3820    pub hipTexRefSetAddressMode: Result<
3821        unsafe extern "C" fn(
3822            texRef: *mut textureReference,
3823            dim: ::std::os::raw::c_int,
3824            am: hipTextureAddressMode,
3825        ) -> hipError_t,
3826        ::libloading::Error,
3827    >,
3828    pub hipTexRefSetArray: Result<
3829        unsafe extern "C" fn(
3830            tex: *mut textureReference,
3831            array: hipArray_const_t,
3832            flags: ::std::os::raw::c_uint,
3833        ) -> hipError_t,
3834        ::libloading::Error,
3835    >,
3836    pub hipTexRefSetFilterMode: Result<
3837        unsafe extern "C" fn(texRef: *mut textureReference, fm: hipTextureFilterMode) -> hipError_t,
3838        ::libloading::Error,
3839    >,
3840    pub hipTexRefSetFlags: Result<
3841        unsafe extern "C" fn(
3842            texRef: *mut textureReference,
3843            Flags: ::std::os::raw::c_uint,
3844        ) -> hipError_t,
3845        ::libloading::Error,
3846    >,
3847    pub hipTexRefSetFormat: Result<
3848        unsafe extern "C" fn(
3849            texRef: *mut textureReference,
3850            fmt: hipArray_Format,
3851            NumPackedComponents: ::std::os::raw::c_int,
3852        ) -> hipError_t,
3853        ::libloading::Error,
3854    >,
3855    pub hipBindTexture: Result<
3856        unsafe extern "C" fn(
3857            offset: *mut usize,
3858            tex: *const textureReference,
3859            devPtr: *const ::std::os::raw::c_void,
3860            desc: *const hipChannelFormatDesc,
3861            size: usize,
3862        ) -> hipError_t,
3863        ::libloading::Error,
3864    >,
3865    pub hipBindTexture2D: Result<
3866        unsafe extern "C" fn(
3867            offset: *mut usize,
3868            tex: *const textureReference,
3869            devPtr: *const ::std::os::raw::c_void,
3870            desc: *const hipChannelFormatDesc,
3871            width: usize,
3872            height: usize,
3873            pitch: usize,
3874        ) -> hipError_t,
3875        ::libloading::Error,
3876    >,
3877    pub hipBindTextureToArray: Result<
3878        unsafe extern "C" fn(
3879            tex: *const textureReference,
3880            array: hipArray_const_t,
3881            desc: *const hipChannelFormatDesc,
3882        ) -> hipError_t,
3883        ::libloading::Error,
3884    >,
3885    pub hipGetTextureAlignmentOffset: Result<
3886        unsafe extern "C" fn(offset: *mut usize, texref: *const textureReference) -> hipError_t,
3887        ::libloading::Error,
3888    >,
3889    pub hipUnbindTexture: Result<
3890        unsafe extern "C" fn(tex: *const textureReference) -> hipError_t,
3891        ::libloading::Error,
3892    >,
3893    pub hipTexRefGetAddress: Result<
3894        unsafe extern "C" fn(
3895            dev_ptr: *mut hipDeviceptr_t,
3896            texRef: *const textureReference,
3897        ) -> hipError_t,
3898        ::libloading::Error,
3899    >,
3900    pub hipTexRefGetAddressMode: Result<
3901        unsafe extern "C" fn(
3902            pam: *mut hipTextureAddressMode,
3903            texRef: *const textureReference,
3904            dim: ::std::os::raw::c_int,
3905        ) -> hipError_t,
3906        ::libloading::Error,
3907    >,
3908    pub hipTexRefGetFilterMode: Result<
3909        unsafe extern "C" fn(
3910            pfm: *mut hipTextureFilterMode,
3911            texRef: *const textureReference,
3912        ) -> hipError_t,
3913        ::libloading::Error,
3914    >,
3915    pub hipTexRefGetFlags: Result<
3916        unsafe extern "C" fn(
3917            pFlags: *mut ::std::os::raw::c_uint,
3918            texRef: *const textureReference,
3919        ) -> hipError_t,
3920        ::libloading::Error,
3921    >,
3922    pub hipTexRefGetFormat: Result<
3923        unsafe extern "C" fn(
3924            pFormat: *mut hipArray_Format,
3925            pNumChannels: *mut ::std::os::raw::c_int,
3926            texRef: *const textureReference,
3927        ) -> hipError_t,
3928        ::libloading::Error,
3929    >,
3930    pub hipTexRefGetMaxAnisotropy: Result<
3931        unsafe extern "C" fn(
3932            pmaxAnsio: *mut ::std::os::raw::c_int,
3933            texRef: *const textureReference,
3934        ) -> hipError_t,
3935        ::libloading::Error,
3936    >,
3937    pub hipTexRefGetMipmapFilterMode: Result<
3938        unsafe extern "C" fn(
3939            pfm: *mut hipTextureFilterMode,
3940            texRef: *const textureReference,
3941        ) -> hipError_t,
3942        ::libloading::Error,
3943    >,
3944    pub hipTexRefGetMipmapLevelBias: Result<
3945        unsafe extern "C" fn(pbias: *mut f32, texRef: *const textureReference) -> hipError_t,
3946        ::libloading::Error,
3947    >,
3948    pub hipTexRefGetMipmapLevelClamp: Result<
3949        unsafe extern "C" fn(
3950            pminMipmapLevelClamp: *mut f32,
3951            pmaxMipmapLevelClamp: *mut f32,
3952            texRef: *const textureReference,
3953        ) -> hipError_t,
3954        ::libloading::Error,
3955    >,
3956    pub hipTexRefGetMipMappedArray: Result<
3957        unsafe extern "C" fn(
3958            pArray: *mut hipMipmappedArray_t,
3959            texRef: *const textureReference,
3960        ) -> hipError_t,
3961        ::libloading::Error,
3962    >,
3963    pub hipTexRefSetAddress: Result<
3964        unsafe extern "C" fn(
3965            ByteOffset: *mut usize,
3966            texRef: *mut textureReference,
3967            dptr: hipDeviceptr_t,
3968            bytes: usize,
3969        ) -> hipError_t,
3970        ::libloading::Error,
3971    >,
3972    pub hipTexRefSetAddress2D: Result<
3973        unsafe extern "C" fn(
3974            texRef: *mut textureReference,
3975            desc: *const HIP_ARRAY_DESCRIPTOR,
3976            dptr: hipDeviceptr_t,
3977            Pitch: usize,
3978        ) -> hipError_t,
3979        ::libloading::Error,
3980    >,
3981    pub hipTexRefSetMaxAnisotropy: Result<
3982        unsafe extern "C" fn(
3983            texRef: *mut textureReference,
3984            maxAniso: ::std::os::raw::c_uint,
3985        ) -> hipError_t,
3986        ::libloading::Error,
3987    >,
3988    pub hipTexRefSetBorderColor: Result<
3989        unsafe extern "C" fn(texRef: *mut textureReference, pBorderColor: *mut f32) -> hipError_t,
3990        ::libloading::Error,
3991    >,
3992    pub hipTexRefSetMipmapFilterMode: Result<
3993        unsafe extern "C" fn(texRef: *mut textureReference, fm: hipTextureFilterMode) -> hipError_t,
3994        ::libloading::Error,
3995    >,
3996    pub hipTexRefSetMipmapLevelBias: Result<
3997        unsafe extern "C" fn(texRef: *mut textureReference, bias: f32) -> hipError_t,
3998        ::libloading::Error,
3999    >,
4000    pub hipTexRefSetMipmapLevelClamp: Result<
4001        unsafe extern "C" fn(
4002            texRef: *mut textureReference,
4003            minMipMapLevelClamp: f32,
4004            maxMipMapLevelClamp: f32,
4005        ) -> hipError_t,
4006        ::libloading::Error,
4007    >,
4008    pub hipTexRefSetMipmappedArray: Result<
4009        unsafe extern "C" fn(
4010            texRef: *mut textureReference,
4011            mipmappedArray: *mut hipMipmappedArray,
4012            Flags: ::std::os::raw::c_uint,
4013        ) -> hipError_t,
4014        ::libloading::Error,
4015    >,
4016    pub hipMipmappedArrayCreate: Result<
4017        unsafe extern "C" fn(
4018            pHandle: *mut hipMipmappedArray_t,
4019            pMipmappedArrayDesc: *mut HIP_ARRAY3D_DESCRIPTOR,
4020            numMipmapLevels: ::std::os::raw::c_uint,
4021        ) -> hipError_t,
4022        ::libloading::Error,
4023    >,
4024    pub hipMipmappedArrayDestroy: Result<
4025        unsafe extern "C" fn(hMipmappedArray: hipMipmappedArray_t) -> hipError_t,
4026        ::libloading::Error,
4027    >,
4028    pub hipMipmappedArrayGetLevel: Result<
4029        unsafe extern "C" fn(
4030            pLevelArray: *mut hipArray_t,
4031            hMipMappedArray: hipMipmappedArray_t,
4032            level: ::std::os::raw::c_uint,
4033        ) -> hipError_t,
4034        ::libloading::Error,
4035    >,
4036    pub hipApiName:
4037        Result<unsafe extern "C" fn(id: u32) -> *const ::std::os::raw::c_char, ::libloading::Error>,
4038    pub hipKernelNameRef: Result<
4039        unsafe extern "C" fn(f: hipFunction_t) -> *const ::std::os::raw::c_char,
4040        ::libloading::Error,
4041    >,
4042    pub hipKernelNameRefByPtr: Result<
4043        unsafe extern "C" fn(
4044            hostFunction: *const ::std::os::raw::c_void,
4045            stream: hipStream_t,
4046        ) -> *const ::std::os::raw::c_char,
4047        ::libloading::Error,
4048    >,
4049    pub hipGetStreamDeviceId: Result<
4050        unsafe extern "C" fn(stream: hipStream_t) -> ::std::os::raw::c_int,
4051        ::libloading::Error,
4052    >,
4053    pub hipStreamBeginCapture: Result<
4054        unsafe extern "C" fn(stream: hipStream_t, mode: hipStreamCaptureMode) -> hipError_t,
4055        ::libloading::Error,
4056    >,
4057    pub hipStreamEndCapture: Result<
4058        unsafe extern "C" fn(stream: hipStream_t, pGraph: *mut hipGraph_t) -> hipError_t,
4059        ::libloading::Error,
4060    >,
4061    pub hipStreamGetCaptureInfo: Result<
4062        unsafe extern "C" fn(
4063            stream: hipStream_t,
4064            pCaptureStatus: *mut hipStreamCaptureStatus,
4065            pId: *mut ::std::os::raw::c_ulonglong,
4066        ) -> hipError_t,
4067        ::libloading::Error,
4068    >,
4069    pub hipStreamGetCaptureInfo_v2: Result<
4070        unsafe extern "C" fn(
4071            stream: hipStream_t,
4072            captureStatus_out: *mut hipStreamCaptureStatus,
4073            id_out: *mut ::std::os::raw::c_ulonglong,
4074            graph_out: *mut hipGraph_t,
4075            dependencies_out: *mut *const hipGraphNode_t,
4076            numDependencies_out: *mut usize,
4077        ) -> hipError_t,
4078        ::libloading::Error,
4079    >,
4080    pub hipStreamIsCapturing: Result<
4081        unsafe extern "C" fn(
4082            stream: hipStream_t,
4083            pCaptureStatus: *mut hipStreamCaptureStatus,
4084        ) -> hipError_t,
4085        ::libloading::Error,
4086    >,
4087    pub hipStreamUpdateCaptureDependencies: Result<
4088        unsafe extern "C" fn(
4089            stream: hipStream_t,
4090            dependencies: *mut hipGraphNode_t,
4091            numDependencies: usize,
4092            flags: ::std::os::raw::c_uint,
4093        ) -> hipError_t,
4094        ::libloading::Error,
4095    >,
4096    pub hipThreadExchangeStreamCaptureMode: Result<
4097        unsafe extern "C" fn(mode: *mut hipStreamCaptureMode) -> hipError_t,
4098        ::libloading::Error,
4099    >,
4100    pub hipGraphCreate: Result<
4101        unsafe extern "C" fn(pGraph: *mut hipGraph_t, flags: ::std::os::raw::c_uint) -> hipError_t,
4102        ::libloading::Error,
4103    >,
4104    pub hipGraphDestroy:
4105        Result<unsafe extern "C" fn(graph: hipGraph_t) -> hipError_t, ::libloading::Error>,
4106    pub hipGraphAddDependencies: Result<
4107        unsafe extern "C" fn(
4108            graph: hipGraph_t,
4109            from: *const hipGraphNode_t,
4110            to: *const hipGraphNode_t,
4111            numDependencies: usize,
4112        ) -> hipError_t,
4113        ::libloading::Error,
4114    >,
4115    pub hipGraphRemoveDependencies: Result<
4116        unsafe extern "C" fn(
4117            graph: hipGraph_t,
4118            from: *const hipGraphNode_t,
4119            to: *const hipGraphNode_t,
4120            numDependencies: usize,
4121        ) -> hipError_t,
4122        ::libloading::Error,
4123    >,
4124    pub hipGraphGetEdges: Result<
4125        unsafe extern "C" fn(
4126            graph: hipGraph_t,
4127            from: *mut hipGraphNode_t,
4128            to: *mut hipGraphNode_t,
4129            numEdges: *mut usize,
4130        ) -> hipError_t,
4131        ::libloading::Error,
4132    >,
4133    pub hipGraphGetNodes: Result<
4134        unsafe extern "C" fn(
4135            graph: hipGraph_t,
4136            nodes: *mut hipGraphNode_t,
4137            numNodes: *mut usize,
4138        ) -> hipError_t,
4139        ::libloading::Error,
4140    >,
4141    pub hipGraphGetRootNodes: Result<
4142        unsafe extern "C" fn(
4143            graph: hipGraph_t,
4144            pRootNodes: *mut hipGraphNode_t,
4145            pNumRootNodes: *mut usize,
4146        ) -> hipError_t,
4147        ::libloading::Error,
4148    >,
4149    pub hipGraphNodeGetDependencies: Result<
4150        unsafe extern "C" fn(
4151            node: hipGraphNode_t,
4152            pDependencies: *mut hipGraphNode_t,
4153            pNumDependencies: *mut usize,
4154        ) -> hipError_t,
4155        ::libloading::Error,
4156    >,
4157    pub hipGraphNodeGetDependentNodes: Result<
4158        unsafe extern "C" fn(
4159            node: hipGraphNode_t,
4160            pDependentNodes: *mut hipGraphNode_t,
4161            pNumDependentNodes: *mut usize,
4162        ) -> hipError_t,
4163        ::libloading::Error,
4164    >,
4165    pub hipGraphNodeGetType: Result<
4166        unsafe extern "C" fn(node: hipGraphNode_t, pType: *mut hipGraphNodeType) -> hipError_t,
4167        ::libloading::Error,
4168    >,
4169    pub hipGraphDestroyNode:
4170        Result<unsafe extern "C" fn(node: hipGraphNode_t) -> hipError_t, ::libloading::Error>,
4171    pub hipGraphClone: Result<
4172        unsafe extern "C" fn(pGraphClone: *mut hipGraph_t, originalGraph: hipGraph_t) -> hipError_t,
4173        ::libloading::Error,
4174    >,
4175    pub hipGraphNodeFindInClone: Result<
4176        unsafe extern "C" fn(
4177            pNode: *mut hipGraphNode_t,
4178            originalNode: hipGraphNode_t,
4179            clonedGraph: hipGraph_t,
4180        ) -> hipError_t,
4181        ::libloading::Error,
4182    >,
4183    pub hipGraphInstantiate: Result<
4184        unsafe extern "C" fn(
4185            pGraphExec: *mut hipGraphExec_t,
4186            graph: hipGraph_t,
4187            pErrorNode: *mut hipGraphNode_t,
4188            pLogBuffer: *mut ::std::os::raw::c_char,
4189            bufferSize: usize,
4190        ) -> hipError_t,
4191        ::libloading::Error,
4192    >,
4193    pub hipGraphInstantiateWithFlags: Result<
4194        unsafe extern "C" fn(
4195            pGraphExec: *mut hipGraphExec_t,
4196            graph: hipGraph_t,
4197            flags: ::std::os::raw::c_ulonglong,
4198        ) -> hipError_t,
4199        ::libloading::Error,
4200    >,
4201    pub hipGraphLaunch: Result<
4202        unsafe extern "C" fn(graphExec: hipGraphExec_t, stream: hipStream_t) -> hipError_t,
4203        ::libloading::Error,
4204    >,
4205    pub hipGraphUpload: Result<
4206        unsafe extern "C" fn(graphExec: hipGraphExec_t, stream: hipStream_t) -> hipError_t,
4207        ::libloading::Error,
4208    >,
4209    pub hipGraphExecDestroy:
4210        Result<unsafe extern "C" fn(graphExec: hipGraphExec_t) -> hipError_t, ::libloading::Error>,
4211    pub hipGraphExecUpdate: Result<
4212        unsafe extern "C" fn(
4213            hGraphExec: hipGraphExec_t,
4214            hGraph: hipGraph_t,
4215            hErrorNode_out: *mut hipGraphNode_t,
4216            updateResult_out: *mut hipGraphExecUpdateResult,
4217        ) -> hipError_t,
4218        ::libloading::Error,
4219    >,
4220    pub hipGraphAddKernelNode: Result<
4221        unsafe extern "C" fn(
4222            pGraphNode: *mut hipGraphNode_t,
4223            graph: hipGraph_t,
4224            pDependencies: *const hipGraphNode_t,
4225            numDependencies: usize,
4226            pNodeParams: *const hipKernelNodeParams,
4227        ) -> hipError_t,
4228        ::libloading::Error,
4229    >,
4230    pub hipGraphKernelNodeGetParams: Result<
4231        unsafe extern "C" fn(
4232            node: hipGraphNode_t,
4233            pNodeParams: *mut hipKernelNodeParams,
4234        ) -> hipError_t,
4235        ::libloading::Error,
4236    >,
4237    pub hipGraphKernelNodeSetParams: Result<
4238        unsafe extern "C" fn(
4239            node: hipGraphNode_t,
4240            pNodeParams: *const hipKernelNodeParams,
4241        ) -> hipError_t,
4242        ::libloading::Error,
4243    >,
4244    pub hipGraphExecKernelNodeSetParams: Result<
4245        unsafe extern "C" fn(
4246            hGraphExec: hipGraphExec_t,
4247            node: hipGraphNode_t,
4248            pNodeParams: *const hipKernelNodeParams,
4249        ) -> hipError_t,
4250        ::libloading::Error,
4251    >,
4252    pub hipGraphAddMemcpyNode: Result<
4253        unsafe extern "C" fn(
4254            pGraphNode: *mut hipGraphNode_t,
4255            graph: hipGraph_t,
4256            pDependencies: *const hipGraphNode_t,
4257            numDependencies: usize,
4258            pCopyParams: *const hipMemcpy3DParms,
4259        ) -> hipError_t,
4260        ::libloading::Error,
4261    >,
4262    pub hipGraphMemcpyNodeGetParams: Result<
4263        unsafe extern "C" fn(
4264            node: hipGraphNode_t,
4265            pNodeParams: *mut hipMemcpy3DParms,
4266        ) -> hipError_t,
4267        ::libloading::Error,
4268    >,
4269    pub hipGraphMemcpyNodeSetParams: Result<
4270        unsafe extern "C" fn(
4271            node: hipGraphNode_t,
4272            pNodeParams: *const hipMemcpy3DParms,
4273        ) -> hipError_t,
4274        ::libloading::Error,
4275    >,
4276    pub hipGraphKernelNodeSetAttribute: Result<
4277        unsafe extern "C" fn(
4278            hNode: hipGraphNode_t,
4279            attr: hipKernelNodeAttrID,
4280            value: *const hipKernelNodeAttrValue,
4281        ) -> hipError_t,
4282        ::libloading::Error,
4283    >,
4284    pub hipGraphKernelNodeGetAttribute: Result<
4285        unsafe extern "C" fn(
4286            hNode: hipGraphNode_t,
4287            attr: hipKernelNodeAttrID,
4288            value: *mut hipKernelNodeAttrValue,
4289        ) -> hipError_t,
4290        ::libloading::Error,
4291    >,
4292    pub hipGraphExecMemcpyNodeSetParams: Result<
4293        unsafe extern "C" fn(
4294            hGraphExec: hipGraphExec_t,
4295            node: hipGraphNode_t,
4296            pNodeParams: *mut hipMemcpy3DParms,
4297        ) -> hipError_t,
4298        ::libloading::Error,
4299    >,
4300    pub hipGraphAddMemcpyNode1D: Result<
4301        unsafe extern "C" fn(
4302            pGraphNode: *mut hipGraphNode_t,
4303            graph: hipGraph_t,
4304            pDependencies: *const hipGraphNode_t,
4305            numDependencies: usize,
4306            dst: *mut ::std::os::raw::c_void,
4307            src: *const ::std::os::raw::c_void,
4308            count: usize,
4309            kind: hipMemcpyKind,
4310        ) -> hipError_t,
4311        ::libloading::Error,
4312    >,
4313    pub hipGraphMemcpyNodeSetParams1D: Result<
4314        unsafe extern "C" fn(
4315            node: hipGraphNode_t,
4316            dst: *mut ::std::os::raw::c_void,
4317            src: *const ::std::os::raw::c_void,
4318            count: usize,
4319            kind: hipMemcpyKind,
4320        ) -> hipError_t,
4321        ::libloading::Error,
4322    >,
4323    pub hipGraphExecMemcpyNodeSetParams1D: Result<
4324        unsafe extern "C" fn(
4325            hGraphExec: hipGraphExec_t,
4326            node: hipGraphNode_t,
4327            dst: *mut ::std::os::raw::c_void,
4328            src: *const ::std::os::raw::c_void,
4329            count: usize,
4330            kind: hipMemcpyKind,
4331        ) -> hipError_t,
4332        ::libloading::Error,
4333    >,
4334    pub hipGraphAddMemcpyNodeFromSymbol: Result<
4335        unsafe extern "C" fn(
4336            pGraphNode: *mut hipGraphNode_t,
4337            graph: hipGraph_t,
4338            pDependencies: *const hipGraphNode_t,
4339            numDependencies: usize,
4340            dst: *mut ::std::os::raw::c_void,
4341            symbol: *const ::std::os::raw::c_void,
4342            count: usize,
4343            offset: usize,
4344            kind: hipMemcpyKind,
4345        ) -> hipError_t,
4346        ::libloading::Error,
4347    >,
4348    pub hipGraphMemcpyNodeSetParamsFromSymbol: Result<
4349        unsafe extern "C" fn(
4350            node: hipGraphNode_t,
4351            dst: *mut ::std::os::raw::c_void,
4352            symbol: *const ::std::os::raw::c_void,
4353            count: usize,
4354            offset: usize,
4355            kind: hipMemcpyKind,
4356        ) -> hipError_t,
4357        ::libloading::Error,
4358    >,
4359    pub hipGraphExecMemcpyNodeSetParamsFromSymbol: Result<
4360        unsafe extern "C" fn(
4361            hGraphExec: hipGraphExec_t,
4362            node: hipGraphNode_t,
4363            dst: *mut ::std::os::raw::c_void,
4364            symbol: *const ::std::os::raw::c_void,
4365            count: usize,
4366            offset: usize,
4367            kind: hipMemcpyKind,
4368        ) -> hipError_t,
4369        ::libloading::Error,
4370    >,
4371    pub hipGraphAddMemcpyNodeToSymbol: Result<
4372        unsafe extern "C" fn(
4373            pGraphNode: *mut hipGraphNode_t,
4374            graph: hipGraph_t,
4375            pDependencies: *const hipGraphNode_t,
4376            numDependencies: usize,
4377            symbol: *const ::std::os::raw::c_void,
4378            src: *const ::std::os::raw::c_void,
4379            count: usize,
4380            offset: usize,
4381            kind: hipMemcpyKind,
4382        ) -> hipError_t,
4383        ::libloading::Error,
4384    >,
4385    pub hipGraphMemcpyNodeSetParamsToSymbol: Result<
4386        unsafe extern "C" fn(
4387            node: hipGraphNode_t,
4388            symbol: *const ::std::os::raw::c_void,
4389            src: *const ::std::os::raw::c_void,
4390            count: usize,
4391            offset: usize,
4392            kind: hipMemcpyKind,
4393        ) -> hipError_t,
4394        ::libloading::Error,
4395    >,
4396    pub hipGraphExecMemcpyNodeSetParamsToSymbol: Result<
4397        unsafe extern "C" fn(
4398            hGraphExec: hipGraphExec_t,
4399            node: hipGraphNode_t,
4400            symbol: *const ::std::os::raw::c_void,
4401            src: *const ::std::os::raw::c_void,
4402            count: usize,
4403            offset: usize,
4404            kind: hipMemcpyKind,
4405        ) -> hipError_t,
4406        ::libloading::Error,
4407    >,
4408    pub hipGraphAddMemsetNode: Result<
4409        unsafe extern "C" fn(
4410            pGraphNode: *mut hipGraphNode_t,
4411            graph: hipGraph_t,
4412            pDependencies: *const hipGraphNode_t,
4413            numDependencies: usize,
4414            pMemsetParams: *const hipMemsetParams,
4415        ) -> hipError_t,
4416        ::libloading::Error,
4417    >,
4418    pub hipGraphMemsetNodeGetParams: Result<
4419        unsafe extern "C" fn(node: hipGraphNode_t, pNodeParams: *mut hipMemsetParams) -> hipError_t,
4420        ::libloading::Error,
4421    >,
4422    pub hipGraphMemsetNodeSetParams: Result<
4423        unsafe extern "C" fn(
4424            node: hipGraphNode_t,
4425            pNodeParams: *const hipMemsetParams,
4426        ) -> hipError_t,
4427        ::libloading::Error,
4428    >,
4429    pub hipGraphExecMemsetNodeSetParams: Result<
4430        unsafe extern "C" fn(
4431            hGraphExec: hipGraphExec_t,
4432            node: hipGraphNode_t,
4433            pNodeParams: *const hipMemsetParams,
4434        ) -> hipError_t,
4435        ::libloading::Error,
4436    >,
4437    pub hipGraphAddHostNode: Result<
4438        unsafe extern "C" fn(
4439            pGraphNode: *mut hipGraphNode_t,
4440            graph: hipGraph_t,
4441            pDependencies: *const hipGraphNode_t,
4442            numDependencies: usize,
4443            pNodeParams: *const hipHostNodeParams,
4444        ) -> hipError_t,
4445        ::libloading::Error,
4446    >,
4447    pub hipGraphHostNodeGetParams: Result<
4448        unsafe extern "C" fn(
4449            node: hipGraphNode_t,
4450            pNodeParams: *mut hipHostNodeParams,
4451        ) -> hipError_t,
4452        ::libloading::Error,
4453    >,
4454    pub hipGraphHostNodeSetParams: Result<
4455        unsafe extern "C" fn(
4456            node: hipGraphNode_t,
4457            pNodeParams: *const hipHostNodeParams,
4458        ) -> hipError_t,
4459        ::libloading::Error,
4460    >,
4461    pub hipGraphExecHostNodeSetParams: Result<
4462        unsafe extern "C" fn(
4463            hGraphExec: hipGraphExec_t,
4464            node: hipGraphNode_t,
4465            pNodeParams: *const hipHostNodeParams,
4466        ) -> hipError_t,
4467        ::libloading::Error,
4468    >,
4469    pub hipGraphAddChildGraphNode: Result<
4470        unsafe extern "C" fn(
4471            pGraphNode: *mut hipGraphNode_t,
4472            graph: hipGraph_t,
4473            pDependencies: *const hipGraphNode_t,
4474            numDependencies: usize,
4475            childGraph: hipGraph_t,
4476        ) -> hipError_t,
4477        ::libloading::Error,
4478    >,
4479    pub hipGraphChildGraphNodeGetGraph: Result<
4480        unsafe extern "C" fn(node: hipGraphNode_t, pGraph: *mut hipGraph_t) -> hipError_t,
4481        ::libloading::Error,
4482    >,
4483    pub hipGraphExecChildGraphNodeSetParams: Result<
4484        unsafe extern "C" fn(
4485            hGraphExec: hipGraphExec_t,
4486            node: hipGraphNode_t,
4487            childGraph: hipGraph_t,
4488        ) -> hipError_t,
4489        ::libloading::Error,
4490    >,
4491    pub hipGraphAddEmptyNode: Result<
4492        unsafe extern "C" fn(
4493            pGraphNode: *mut hipGraphNode_t,
4494            graph: hipGraph_t,
4495            pDependencies: *const hipGraphNode_t,
4496            numDependencies: usize,
4497        ) -> hipError_t,
4498        ::libloading::Error,
4499    >,
4500    pub hipGraphAddEventRecordNode: Result<
4501        unsafe extern "C" fn(
4502            pGraphNode: *mut hipGraphNode_t,
4503            graph: hipGraph_t,
4504            pDependencies: *const hipGraphNode_t,
4505            numDependencies: usize,
4506            event: hipEvent_t,
4507        ) -> hipError_t,
4508        ::libloading::Error,
4509    >,
4510    pub hipGraphEventRecordNodeGetEvent: Result<
4511        unsafe extern "C" fn(node: hipGraphNode_t, event_out: *mut hipEvent_t) -> hipError_t,
4512        ::libloading::Error,
4513    >,
4514    pub hipGraphEventRecordNodeSetEvent: Result<
4515        unsafe extern "C" fn(node: hipGraphNode_t, event: hipEvent_t) -> hipError_t,
4516        ::libloading::Error,
4517    >,
4518    pub hipGraphExecEventRecordNodeSetEvent: Result<
4519        unsafe extern "C" fn(
4520            hGraphExec: hipGraphExec_t,
4521            hNode: hipGraphNode_t,
4522            event: hipEvent_t,
4523        ) -> hipError_t,
4524        ::libloading::Error,
4525    >,
4526    pub hipGraphAddEventWaitNode: Result<
4527        unsafe extern "C" fn(
4528            pGraphNode: *mut hipGraphNode_t,
4529            graph: hipGraph_t,
4530            pDependencies: *const hipGraphNode_t,
4531            numDependencies: usize,
4532            event: hipEvent_t,
4533        ) -> hipError_t,
4534        ::libloading::Error,
4535    >,
4536    pub hipGraphEventWaitNodeGetEvent: Result<
4537        unsafe extern "C" fn(node: hipGraphNode_t, event_out: *mut hipEvent_t) -> hipError_t,
4538        ::libloading::Error,
4539    >,
4540    pub hipGraphEventWaitNodeSetEvent: Result<
4541        unsafe extern "C" fn(node: hipGraphNode_t, event: hipEvent_t) -> hipError_t,
4542        ::libloading::Error,
4543    >,
4544    pub hipGraphExecEventWaitNodeSetEvent: Result<
4545        unsafe extern "C" fn(
4546            hGraphExec: hipGraphExec_t,
4547            hNode: hipGraphNode_t,
4548            event: hipEvent_t,
4549        ) -> hipError_t,
4550        ::libloading::Error,
4551    >,
4552    pub hipDeviceGetGraphMemAttribute: Result<
4553        unsafe extern "C" fn(
4554            device: ::std::os::raw::c_int,
4555            attr: hipGraphMemAttributeType,
4556            value: *mut ::std::os::raw::c_void,
4557        ) -> hipError_t,
4558        ::libloading::Error,
4559    >,
4560    pub hipDeviceSetGraphMemAttribute: Result<
4561        unsafe extern "C" fn(
4562            device: ::std::os::raw::c_int,
4563            attr: hipGraphMemAttributeType,
4564            value: *mut ::std::os::raw::c_void,
4565        ) -> hipError_t,
4566        ::libloading::Error,
4567    >,
4568    pub hipDeviceGraphMemTrim: Result<
4569        unsafe extern "C" fn(device: ::std::os::raw::c_int) -> hipError_t,
4570        ::libloading::Error,
4571    >,
4572    pub hipUserObjectCreate: Result<
4573        unsafe extern "C" fn(
4574            object_out: *mut hipUserObject_t,
4575            ptr: *mut ::std::os::raw::c_void,
4576            destroy: hipHostFn_t,
4577            initialRefcount: ::std::os::raw::c_uint,
4578            flags: ::std::os::raw::c_uint,
4579        ) -> hipError_t,
4580        ::libloading::Error,
4581    >,
4582    pub hipUserObjectRelease: Result<
4583        unsafe extern "C" fn(object: hipUserObject_t, count: ::std::os::raw::c_uint) -> hipError_t,
4584        ::libloading::Error,
4585    >,
4586    pub hipUserObjectRetain: Result<
4587        unsafe extern "C" fn(object: hipUserObject_t, count: ::std::os::raw::c_uint) -> hipError_t,
4588        ::libloading::Error,
4589    >,
4590    pub hipGraphRetainUserObject: Result<
4591        unsafe extern "C" fn(
4592            graph: hipGraph_t,
4593            object: hipUserObject_t,
4594            count: ::std::os::raw::c_uint,
4595            flags: ::std::os::raw::c_uint,
4596        ) -> hipError_t,
4597        ::libloading::Error,
4598    >,
4599    pub hipGraphReleaseUserObject: Result<
4600        unsafe extern "C" fn(
4601            graph: hipGraph_t,
4602            object: hipUserObject_t,
4603            count: ::std::os::raw::c_uint,
4604        ) -> hipError_t,
4605        ::libloading::Error,
4606    >,
4607    pub hipMemAddressFree: Result<
4608        unsafe extern "C" fn(devPtr: *mut ::std::os::raw::c_void, size: usize) -> hipError_t,
4609        ::libloading::Error,
4610    >,
4611    pub hipMemAddressReserve: Result<
4612        unsafe extern "C" fn(
4613            ptr: *mut *mut ::std::os::raw::c_void,
4614            size: usize,
4615            alignment: usize,
4616            addr: *mut ::std::os::raw::c_void,
4617            flags: ::std::os::raw::c_ulonglong,
4618        ) -> hipError_t,
4619        ::libloading::Error,
4620    >,
4621    pub hipMemCreate: Result<
4622        unsafe extern "C" fn(
4623            handle: *mut hipMemGenericAllocationHandle_t,
4624            size: usize,
4625            prop: *const hipMemAllocationProp,
4626            flags: ::std::os::raw::c_ulonglong,
4627        ) -> hipError_t,
4628        ::libloading::Error,
4629    >,
4630    pub hipMemExportToShareableHandle: Result<
4631        unsafe extern "C" fn(
4632            shareableHandle: *mut ::std::os::raw::c_void,
4633            handle: hipMemGenericAllocationHandle_t,
4634            handleType: hipMemAllocationHandleType,
4635            flags: ::std::os::raw::c_ulonglong,
4636        ) -> hipError_t,
4637        ::libloading::Error,
4638    >,
4639    pub hipMemGetAccess: Result<
4640        unsafe extern "C" fn(
4641            flags: *mut ::std::os::raw::c_ulonglong,
4642            location: *const hipMemLocation,
4643            ptr: *mut ::std::os::raw::c_void,
4644        ) -> hipError_t,
4645        ::libloading::Error,
4646    >,
4647    pub hipMemGetAllocationGranularity: Result<
4648        unsafe extern "C" fn(
4649            granularity: *mut usize,
4650            prop: *const hipMemAllocationProp,
4651            option: hipMemAllocationGranularity_flags,
4652        ) -> hipError_t,
4653        ::libloading::Error,
4654    >,
4655    pub hipMemGetAllocationPropertiesFromHandle: Result<
4656        unsafe extern "C" fn(
4657            prop: *mut hipMemAllocationProp,
4658            handle: hipMemGenericAllocationHandle_t,
4659        ) -> hipError_t,
4660        ::libloading::Error,
4661    >,
4662    pub hipMemImportFromShareableHandle: Result<
4663        unsafe extern "C" fn(
4664            handle: *mut hipMemGenericAllocationHandle_t,
4665            osHandle: *mut ::std::os::raw::c_void,
4666            shHandleType: hipMemAllocationHandleType,
4667        ) -> hipError_t,
4668        ::libloading::Error,
4669    >,
4670    pub hipMemMap: Result<
4671        unsafe extern "C" fn(
4672            ptr: *mut ::std::os::raw::c_void,
4673            size: usize,
4674            offset: usize,
4675            handle: hipMemGenericAllocationHandle_t,
4676            flags: ::std::os::raw::c_ulonglong,
4677        ) -> hipError_t,
4678        ::libloading::Error,
4679    >,
4680    pub hipMemMapArrayAsync: Result<
4681        unsafe extern "C" fn(
4682            mapInfoList: *mut hipArrayMapInfo,
4683            count: ::std::os::raw::c_uint,
4684            stream: hipStream_t,
4685        ) -> hipError_t,
4686        ::libloading::Error,
4687    >,
4688    pub hipMemRelease: Result<
4689        unsafe extern "C" fn(handle: hipMemGenericAllocationHandle_t) -> hipError_t,
4690        ::libloading::Error,
4691    >,
4692    pub hipMemRetainAllocationHandle: Result<
4693        unsafe extern "C" fn(
4694            handle: *mut hipMemGenericAllocationHandle_t,
4695            addr: *mut ::std::os::raw::c_void,
4696        ) -> hipError_t,
4697        ::libloading::Error,
4698    >,
4699    pub hipMemSetAccess: Result<
4700        unsafe extern "C" fn(
4701            ptr: *mut ::std::os::raw::c_void,
4702            size: usize,
4703            desc: *const hipMemAccessDesc,
4704            count: usize,
4705        ) -> hipError_t,
4706        ::libloading::Error,
4707    >,
4708    pub hipMemUnmap: Result<
4709        unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_void, size: usize) -> hipError_t,
4710        ::libloading::Error,
4711    >,
4712    pub hipGLGetDevices: Result<
4713        unsafe extern "C" fn(
4714            pHipDeviceCount: *mut ::std::os::raw::c_uint,
4715            pHipDevices: *mut ::std::os::raw::c_int,
4716            hipDeviceCount: ::std::os::raw::c_uint,
4717            deviceList: hipGLDeviceList,
4718        ) -> hipError_t,
4719        ::libloading::Error,
4720    >,
4721    pub hipGraphicsGLRegisterBuffer: Result<
4722        unsafe extern "C" fn(
4723            resource: *mut *mut hipGraphicsResource,
4724            buffer: GLuint,
4725            flags: ::std::os::raw::c_uint,
4726        ) -> hipError_t,
4727        ::libloading::Error,
4728    >,
4729    pub hipGraphicsGLRegisterImage: Result<
4730        unsafe extern "C" fn(
4731            resource: *mut *mut hipGraphicsResource,
4732            image: GLuint,
4733            target: GLenum,
4734            flags: ::std::os::raw::c_uint,
4735        ) -> hipError_t,
4736        ::libloading::Error,
4737    >,
4738    pub hipGraphicsMapResources: Result<
4739        unsafe extern "C" fn(
4740            count: ::std::os::raw::c_int,
4741            resources: *mut hipGraphicsResource_t,
4742            stream: hipStream_t,
4743        ) -> hipError_t,
4744        ::libloading::Error,
4745    >,
4746    pub hipGraphicsSubResourceGetMappedArray: Result<
4747        unsafe extern "C" fn(
4748            array: *mut hipArray_t,
4749            resource: hipGraphicsResource_t,
4750            arrayIndex: ::std::os::raw::c_uint,
4751            mipLevel: ::std::os::raw::c_uint,
4752        ) -> hipError_t,
4753        ::libloading::Error,
4754    >,
4755    pub hipGraphicsResourceGetMappedPointer: Result<
4756        unsafe extern "C" fn(
4757            devPtr: *mut *mut ::std::os::raw::c_void,
4758            size: *mut usize,
4759            resource: hipGraphicsResource_t,
4760        ) -> hipError_t,
4761        ::libloading::Error,
4762    >,
4763    pub hipGraphicsUnmapResources: Result<
4764        unsafe extern "C" fn(
4765            count: ::std::os::raw::c_int,
4766            resources: *mut hipGraphicsResource_t,
4767            stream: hipStream_t,
4768        ) -> hipError_t,
4769        ::libloading::Error,
4770    >,
4771    pub hipGraphicsUnregisterResource: Result<
4772        unsafe extern "C" fn(resource: hipGraphicsResource_t) -> hipError_t,
4773        ::libloading::Error,
4774    >,
4775    pub hipMemcpy_spt: Result<
4776        unsafe extern "C" fn(
4777            dst: *mut ::std::os::raw::c_void,
4778            src: *const ::std::os::raw::c_void,
4779            sizeBytes: usize,
4780            kind: hipMemcpyKind,
4781        ) -> hipError_t,
4782        ::libloading::Error,
4783    >,
4784    pub hipMemcpyToSymbol_spt: Result<
4785        unsafe extern "C" fn(
4786            symbol: *const ::std::os::raw::c_void,
4787            src: *const ::std::os::raw::c_void,
4788            sizeBytes: usize,
4789            offset: usize,
4790            kind: hipMemcpyKind,
4791        ) -> hipError_t,
4792        ::libloading::Error,
4793    >,
4794    pub hipMemcpyFromSymbol_spt: Result<
4795        unsafe extern "C" fn(
4796            dst: *mut ::std::os::raw::c_void,
4797            symbol: *const ::std::os::raw::c_void,
4798            sizeBytes: usize,
4799            offset: usize,
4800            kind: hipMemcpyKind,
4801        ) -> hipError_t,
4802        ::libloading::Error,
4803    >,
4804    pub hipMemcpy2D_spt: Result<
4805        unsafe extern "C" fn(
4806            dst: *mut ::std::os::raw::c_void,
4807            dpitch: usize,
4808            src: *const ::std::os::raw::c_void,
4809            spitch: usize,
4810            width: usize,
4811            height: usize,
4812            kind: hipMemcpyKind,
4813        ) -> hipError_t,
4814        ::libloading::Error,
4815    >,
4816    pub hipMemcpy2DFromArray_spt: Result<
4817        unsafe extern "C" fn(
4818            dst: *mut ::std::os::raw::c_void,
4819            dpitch: usize,
4820            src: hipArray_const_t,
4821            wOffset: usize,
4822            hOffset: usize,
4823            width: usize,
4824            height: usize,
4825            kind: hipMemcpyKind,
4826        ) -> hipError_t,
4827        ::libloading::Error,
4828    >,
4829    pub hipMemcpy3D_spt:
4830        Result<unsafe extern "C" fn(p: *const hipMemcpy3DParms) -> hipError_t, ::libloading::Error>,
4831    pub hipMemset_spt: Result<
4832        unsafe extern "C" fn(
4833            dst: *mut ::std::os::raw::c_void,
4834            value: ::std::os::raw::c_int,
4835            sizeBytes: usize,
4836        ) -> hipError_t,
4837        ::libloading::Error,
4838    >,
4839    pub hipMemsetAsync_spt: Result<
4840        unsafe extern "C" fn(
4841            dst: *mut ::std::os::raw::c_void,
4842            value: ::std::os::raw::c_int,
4843            sizeBytes: usize,
4844            stream: hipStream_t,
4845        ) -> hipError_t,
4846        ::libloading::Error,
4847    >,
4848    pub hipMemset2D_spt: Result<
4849        unsafe extern "C" fn(
4850            dst: *mut ::std::os::raw::c_void,
4851            pitch: usize,
4852            value: ::std::os::raw::c_int,
4853            width: usize,
4854            height: usize,
4855        ) -> hipError_t,
4856        ::libloading::Error,
4857    >,
4858    pub hipMemset2DAsync_spt: Result<
4859        unsafe extern "C" fn(
4860            dst: *mut ::std::os::raw::c_void,
4861            pitch: usize,
4862            value: ::std::os::raw::c_int,
4863            width: usize,
4864            height: usize,
4865            stream: hipStream_t,
4866        ) -> hipError_t,
4867        ::libloading::Error,
4868    >,
4869    pub hipMemset3DAsync_spt: Result<
4870        unsafe extern "C" fn(
4871            pitchedDevPtr: hipPitchedPtr,
4872            value: ::std::os::raw::c_int,
4873            extent: hipExtent,
4874            stream: hipStream_t,
4875        ) -> hipError_t,
4876        ::libloading::Error,
4877    >,
4878    pub hipMemset3D_spt: Result<
4879        unsafe extern "C" fn(
4880            pitchedDevPtr: hipPitchedPtr,
4881            value: ::std::os::raw::c_int,
4882            extent: hipExtent,
4883        ) -> hipError_t,
4884        ::libloading::Error,
4885    >,
4886    pub hipMemcpyAsync_spt: Result<
4887        unsafe extern "C" fn(
4888            dst: *mut ::std::os::raw::c_void,
4889            src: *const ::std::os::raw::c_void,
4890            sizeBytes: usize,
4891            kind: hipMemcpyKind,
4892            stream: hipStream_t,
4893        ) -> hipError_t,
4894        ::libloading::Error,
4895    >,
4896    pub hipMemcpy3DAsync_spt: Result<
4897        unsafe extern "C" fn(p: *const hipMemcpy3DParms, stream: hipStream_t) -> hipError_t,
4898        ::libloading::Error,
4899    >,
4900    pub hipMemcpy2DAsync_spt: Result<
4901        unsafe extern "C" fn(
4902            dst: *mut ::std::os::raw::c_void,
4903            dpitch: usize,
4904            src: *const ::std::os::raw::c_void,
4905            spitch: usize,
4906            width: usize,
4907            height: usize,
4908            kind: hipMemcpyKind,
4909            stream: hipStream_t,
4910        ) -> hipError_t,
4911        ::libloading::Error,
4912    >,
4913    pub hipMemcpyFromSymbolAsync_spt: Result<
4914        unsafe extern "C" fn(
4915            dst: *mut ::std::os::raw::c_void,
4916            symbol: *const ::std::os::raw::c_void,
4917            sizeBytes: usize,
4918            offset: usize,
4919            kind: hipMemcpyKind,
4920            stream: hipStream_t,
4921        ) -> hipError_t,
4922        ::libloading::Error,
4923    >,
4924    pub hipMemcpyToSymbolAsync_spt: Result<
4925        unsafe extern "C" fn(
4926            symbol: *const ::std::os::raw::c_void,
4927            src: *const ::std::os::raw::c_void,
4928            sizeBytes: usize,
4929            offset: usize,
4930            kind: hipMemcpyKind,
4931            stream: hipStream_t,
4932        ) -> hipError_t,
4933        ::libloading::Error,
4934    >,
4935    pub hipMemcpyFromArray_spt: Result<
4936        unsafe extern "C" fn(
4937            dst: *mut ::std::os::raw::c_void,
4938            src: hipArray_const_t,
4939            wOffsetSrc: usize,
4940            hOffset: usize,
4941            count: usize,
4942            kind: hipMemcpyKind,
4943        ) -> hipError_t,
4944        ::libloading::Error,
4945    >,
4946    pub hipMemcpy2DToArray_spt: Result<
4947        unsafe extern "C" fn(
4948            dst: *mut hipArray,
4949            wOffset: usize,
4950            hOffset: usize,
4951            src: *const ::std::os::raw::c_void,
4952            spitch: usize,
4953            width: usize,
4954            height: usize,
4955            kind: hipMemcpyKind,
4956        ) -> hipError_t,
4957        ::libloading::Error,
4958    >,
4959    pub hipMemcpy2DFromArrayAsync_spt: Result<
4960        unsafe extern "C" fn(
4961            dst: *mut ::std::os::raw::c_void,
4962            dpitch: usize,
4963            src: hipArray_const_t,
4964            wOffsetSrc: usize,
4965            hOffsetSrc: usize,
4966            width: usize,
4967            height: usize,
4968            kind: hipMemcpyKind,
4969            stream: hipStream_t,
4970        ) -> hipError_t,
4971        ::libloading::Error,
4972    >,
4973    pub hipMemcpy2DToArrayAsync_spt: Result<
4974        unsafe extern "C" fn(
4975            dst: *mut hipArray,
4976            wOffset: usize,
4977            hOffset: usize,
4978            src: *const ::std::os::raw::c_void,
4979            spitch: usize,
4980            width: usize,
4981            height: usize,
4982            kind: hipMemcpyKind,
4983            stream: hipStream_t,
4984        ) -> hipError_t,
4985        ::libloading::Error,
4986    >,
4987    pub hipStreamQuery_spt:
4988        Result<unsafe extern "C" fn(stream: hipStream_t) -> hipError_t, ::libloading::Error>,
4989    pub hipStreamSynchronize_spt:
4990        Result<unsafe extern "C" fn(stream: hipStream_t) -> hipError_t, ::libloading::Error>,
4991    pub hipStreamGetPriority_spt: Result<
4992        unsafe extern "C" fn(
4993            stream: hipStream_t,
4994            priority: *mut ::std::os::raw::c_int,
4995        ) -> hipError_t,
4996        ::libloading::Error,
4997    >,
4998    pub hipStreamWaitEvent_spt: Result<
4999        unsafe extern "C" fn(
5000            stream: hipStream_t,
5001            event: hipEvent_t,
5002            flags: ::std::os::raw::c_uint,
5003        ) -> hipError_t,
5004        ::libloading::Error,
5005    >,
5006    pub hipStreamGetFlags_spt: Result<
5007        unsafe extern "C" fn(stream: hipStream_t, flags: *mut ::std::os::raw::c_uint) -> hipError_t,
5008        ::libloading::Error,
5009    >,
5010    pub hipStreamAddCallback_spt: Result<
5011        unsafe extern "C" fn(
5012            stream: hipStream_t,
5013            callback: hipStreamCallback_t,
5014            userData: *mut ::std::os::raw::c_void,
5015            flags: ::std::os::raw::c_uint,
5016        ) -> hipError_t,
5017        ::libloading::Error,
5018    >,
5019    pub hipEventRecord_spt: Result<
5020        unsafe extern "C" fn(event: hipEvent_t, stream: hipStream_t) -> hipError_t,
5021        ::libloading::Error,
5022    >,
5023    pub hipLaunchCooperativeKernel_spt: Result<
5024        unsafe extern "C" fn(
5025            f: *const ::std::os::raw::c_void,
5026            gridDim: dim3,
5027            blockDim: dim3,
5028            kernelParams: *mut *mut ::std::os::raw::c_void,
5029            sharedMemBytes: u32,
5030            hStream: hipStream_t,
5031        ) -> hipError_t,
5032        ::libloading::Error,
5033    >,
5034    pub hipLaunchKernel_spt: Result<
5035        unsafe extern "C" fn(
5036            function_address: *const ::std::os::raw::c_void,
5037            numBlocks: dim3,
5038            dimBlocks: dim3,
5039            args: *mut *mut ::std::os::raw::c_void,
5040            sharedMemBytes: usize,
5041            stream: hipStream_t,
5042        ) -> hipError_t,
5043        ::libloading::Error,
5044    >,
5045    pub hipGraphLaunch_spt: Result<
5046        unsafe extern "C" fn(graphExec: hipGraphExec_t, stream: hipStream_t) -> hipError_t,
5047        ::libloading::Error,
5048    >,
5049    pub hipStreamBeginCapture_spt: Result<
5050        unsafe extern "C" fn(stream: hipStream_t, mode: hipStreamCaptureMode) -> hipError_t,
5051        ::libloading::Error,
5052    >,
5053    pub hipStreamEndCapture_spt: Result<
5054        unsafe extern "C" fn(stream: hipStream_t, pGraph: *mut hipGraph_t) -> hipError_t,
5055        ::libloading::Error,
5056    >,
5057    pub hipStreamIsCapturing_spt: Result<
5058        unsafe extern "C" fn(
5059            stream: hipStream_t,
5060            pCaptureStatus: *mut hipStreamCaptureStatus,
5061        ) -> hipError_t,
5062        ::libloading::Error,
5063    >,
5064    pub hipStreamGetCaptureInfo_spt: Result<
5065        unsafe extern "C" fn(
5066            stream: hipStream_t,
5067            pCaptureStatus: *mut hipStreamCaptureStatus,
5068            pId: *mut ::std::os::raw::c_ulonglong,
5069        ) -> hipError_t,
5070        ::libloading::Error,
5071    >,
5072    pub hipStreamGetCaptureInfo_v2_spt: Result<
5073        unsafe extern "C" fn(
5074            stream: hipStream_t,
5075            captureStatus_out: *mut hipStreamCaptureStatus,
5076            id_out: *mut ::std::os::raw::c_ulonglong,
5077            graph_out: *mut hipGraph_t,
5078            dependencies_out: *mut *const hipGraphNode_t,
5079            numDependencies_out: *mut usize,
5080        ) -> hipError_t,
5081        ::libloading::Error,
5082    >,
5083    pub hipLaunchHostFunc_spt: Result<
5084        unsafe extern "C" fn(
5085            stream: hipStream_t,
5086            fn_: hipHostFn_t,
5087            userData: *mut ::std::os::raw::c_void,
5088        ) -> hipError_t,
5089        ::libloading::Error,
5090    >,
5091}
5092impl hip {
5093    pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
5094    where
5095        P: AsRef<::std::ffi::OsStr>,
5096    {
5097        let library = ::libloading::Library::new(path)?;
5098        Self::from_library(library)
5099    }
5100    pub unsafe fn from_library<L>(library: L) -> Result<Self, ::libloading::Error>
5101    where
5102        L: Into<::libloading::Library>,
5103    {
5104        let __library = library.into();
5105        let hipCreateChannelDesc = __library.get(b"hipCreateChannelDesc\0").map(|sym| *sym);
5106        let hipInit = __library.get(b"hipInit\0").map(|sym| *sym);
5107        let hipDriverGetVersion = __library.get(b"hipDriverGetVersion\0").map(|sym| *sym);
5108        let hipRuntimeGetVersion = __library.get(b"hipRuntimeGetVersion\0").map(|sym| *sym);
5109        let hipDeviceGet = __library.get(b"hipDeviceGet\0").map(|sym| *sym);
5110        let hipDeviceComputeCapability = __library
5111            .get(b"hipDeviceComputeCapability\0")
5112            .map(|sym| *sym);
5113        let hipDeviceGetName = __library.get(b"hipDeviceGetName\0").map(|sym| *sym);
5114        let hipDeviceGetUuid = __library.get(b"hipDeviceGetUuid\0").map(|sym| *sym);
5115        let hipDeviceGetP2PAttribute = __library.get(b"hipDeviceGetP2PAttribute\0").map(|sym| *sym);
5116        let hipDeviceGetPCIBusId = __library.get(b"hipDeviceGetPCIBusId\0").map(|sym| *sym);
5117        let hipDeviceGetByPCIBusId = __library.get(b"hipDeviceGetByPCIBusId\0").map(|sym| *sym);
5118        let hipDeviceTotalMem = __library.get(b"hipDeviceTotalMem\0").map(|sym| *sym);
5119        let hipDeviceSynchronize = __library.get(b"hipDeviceSynchronize\0").map(|sym| *sym);
5120        let hipDeviceReset = __library.get(b"hipDeviceReset\0").map(|sym| *sym);
5121        let hipSetDevice = __library.get(b"hipSetDevice\0").map(|sym| *sym);
5122        let hipGetDevice = __library.get(b"hipGetDevice\0").map(|sym| *sym);
5123        let hipGetDeviceCount = __library.get(b"hipGetDeviceCount\0").map(|sym| *sym);
5124        let hipDeviceGetAttribute = __library.get(b"hipDeviceGetAttribute\0").map(|sym| *sym);
5125        let hipDeviceGetDefaultMemPool = __library
5126            .get(b"hipDeviceGetDefaultMemPool\0")
5127            .map(|sym| *sym);
5128        let hipDeviceSetMemPool = __library.get(b"hipDeviceSetMemPool\0").map(|sym| *sym);
5129        let hipDeviceGetMemPool = __library.get(b"hipDeviceGetMemPool\0").map(|sym| *sym);
5130        let hipGetDeviceProperties = __library.get(b"hipGetDeviceProperties\0").map(|sym| *sym);
5131        let hipDeviceSetCacheConfig = __library.get(b"hipDeviceSetCacheConfig\0").map(|sym| *sym);
5132        let hipDeviceGetCacheConfig = __library.get(b"hipDeviceGetCacheConfig\0").map(|sym| *sym);
5133        let hipDeviceGetLimit = __library.get(b"hipDeviceGetLimit\0").map(|sym| *sym);
5134        let hipDeviceSetLimit = __library.get(b"hipDeviceSetLimit\0").map(|sym| *sym);
5135        let hipDeviceGetSharedMemConfig = __library
5136            .get(b"hipDeviceGetSharedMemConfig\0")
5137            .map(|sym| *sym);
5138        let hipGetDeviceFlags = __library.get(b"hipGetDeviceFlags\0").map(|sym| *sym);
5139        let hipDeviceSetSharedMemConfig = __library
5140            .get(b"hipDeviceSetSharedMemConfig\0")
5141            .map(|sym| *sym);
5142        let hipSetDeviceFlags = __library.get(b"hipSetDeviceFlags\0").map(|sym| *sym);
5143        let hipChooseDevice = __library.get(b"hipChooseDevice\0").map(|sym| *sym);
5144        let hipExtGetLinkTypeAndHopCount = __library
5145            .get(b"hipExtGetLinkTypeAndHopCount\0")
5146            .map(|sym| *sym);
5147        let hipIpcGetMemHandle = __library.get(b"hipIpcGetMemHandle\0").map(|sym| *sym);
5148        let hipIpcOpenMemHandle = __library.get(b"hipIpcOpenMemHandle\0").map(|sym| *sym);
5149        let hipIpcCloseMemHandle = __library.get(b"hipIpcCloseMemHandle\0").map(|sym| *sym);
5150        let hipIpcGetEventHandle = __library.get(b"hipIpcGetEventHandle\0").map(|sym| *sym);
5151        let hipIpcOpenEventHandle = __library.get(b"hipIpcOpenEventHandle\0").map(|sym| *sym);
5152        let hipFuncSetAttribute = __library.get(b"hipFuncSetAttribute\0").map(|sym| *sym);
5153        let hipFuncSetCacheConfig = __library.get(b"hipFuncSetCacheConfig\0").map(|sym| *sym);
5154        let hipFuncSetSharedMemConfig = __library
5155            .get(b"hipFuncSetSharedMemConfig\0")
5156            .map(|sym| *sym);
5157        let hipGetLastError = __library.get(b"hipGetLastError\0").map(|sym| *sym);
5158        let hipPeekAtLastError = __library.get(b"hipPeekAtLastError\0").map(|sym| *sym);
5159        let hipGetErrorName = __library.get(b"hipGetErrorName\0").map(|sym| *sym);
5160        let hipGetErrorString = __library.get(b"hipGetErrorString\0").map(|sym| *sym);
5161        let hipDrvGetErrorName = __library.get(b"hipDrvGetErrorName\0").map(|sym| *sym);
5162        let hipDrvGetErrorString = __library.get(b"hipDrvGetErrorString\0").map(|sym| *sym);
5163        let hipStreamCreate = __library.get(b"hipStreamCreate\0").map(|sym| *sym);
5164        let hipStreamCreateWithFlags = __library.get(b"hipStreamCreateWithFlags\0").map(|sym| *sym);
5165        let hipStreamCreateWithPriority = __library
5166            .get(b"hipStreamCreateWithPriority\0")
5167            .map(|sym| *sym);
5168        let hipDeviceGetStreamPriorityRange = __library
5169            .get(b"hipDeviceGetStreamPriorityRange\0")
5170            .map(|sym| *sym);
5171        let hipStreamDestroy = __library.get(b"hipStreamDestroy\0").map(|sym| *sym);
5172        let hipStreamQuery = __library.get(b"hipStreamQuery\0").map(|sym| *sym);
5173        let hipStreamSynchronize = __library.get(b"hipStreamSynchronize\0").map(|sym| *sym);
5174        let hipStreamWaitEvent = __library.get(b"hipStreamWaitEvent\0").map(|sym| *sym);
5175        let hipStreamGetFlags = __library.get(b"hipStreamGetFlags\0").map(|sym| *sym);
5176        let hipStreamGetPriority = __library.get(b"hipStreamGetPriority\0").map(|sym| *sym);
5177        let hipExtStreamCreateWithCUMask = __library
5178            .get(b"hipExtStreamCreateWithCUMask\0")
5179            .map(|sym| *sym);
5180        let hipExtStreamGetCUMask = __library.get(b"hipExtStreamGetCUMask\0").map(|sym| *sym);
5181        let hipStreamAddCallback = __library.get(b"hipStreamAddCallback\0").map(|sym| *sym);
5182        let hipStreamWaitValue32 = __library.get(b"hipStreamWaitValue32\0").map(|sym| *sym);
5183        let hipStreamWaitValue64 = __library.get(b"hipStreamWaitValue64\0").map(|sym| *sym);
5184        let hipStreamWriteValue32 = __library.get(b"hipStreamWriteValue32\0").map(|sym| *sym);
5185        let hipStreamWriteValue64 = __library.get(b"hipStreamWriteValue64\0").map(|sym| *sym);
5186        let hipEventCreateWithFlags = __library.get(b"hipEventCreateWithFlags\0").map(|sym| *sym);
5187        let hipEventCreate = __library.get(b"hipEventCreate\0").map(|sym| *sym);
5188        let hipEventRecord = __library.get(b"hipEventRecord\0").map(|sym| *sym);
5189        let hipEventDestroy = __library.get(b"hipEventDestroy\0").map(|sym| *sym);
5190        let hipEventSynchronize = __library.get(b"hipEventSynchronize\0").map(|sym| *sym);
5191        let hipEventElapsedTime = __library.get(b"hipEventElapsedTime\0").map(|sym| *sym);
5192        let hipEventQuery = __library.get(b"hipEventQuery\0").map(|sym| *sym);
5193        let hipPointerGetAttributes = __library.get(b"hipPointerGetAttributes\0").map(|sym| *sym);
5194        let hipPointerGetAttribute = __library.get(b"hipPointerGetAttribute\0").map(|sym| *sym);
5195        let hipDrvPointerGetAttributes = __library
5196            .get(b"hipDrvPointerGetAttributes\0")
5197            .map(|sym| *sym);
5198        let hipImportExternalSemaphore = __library
5199            .get(b"hipImportExternalSemaphore\0")
5200            .map(|sym| *sym);
5201        let hipSignalExternalSemaphoresAsync = __library
5202            .get(b"hipSignalExternalSemaphoresAsync\0")
5203            .map(|sym| *sym);
5204        let hipWaitExternalSemaphoresAsync = __library
5205            .get(b"hipWaitExternalSemaphoresAsync\0")
5206            .map(|sym| *sym);
5207        let hipDestroyExternalSemaphore = __library
5208            .get(b"hipDestroyExternalSemaphore\0")
5209            .map(|sym| *sym);
5210        let hipImportExternalMemory = __library.get(b"hipImportExternalMemory\0").map(|sym| *sym);
5211        let hipExternalMemoryGetMappedBuffer = __library
5212            .get(b"hipExternalMemoryGetMappedBuffer\0")
5213            .map(|sym| *sym);
5214        let hipDestroyExternalMemory = __library.get(b"hipDestroyExternalMemory\0").map(|sym| *sym);
5215        let hipMalloc = __library.get(b"hipMalloc\0").map(|sym| *sym);
5216        let hipExtMallocWithFlags = __library.get(b"hipExtMallocWithFlags\0").map(|sym| *sym);
5217        let hipMallocHost = __library.get(b"hipMallocHost\0").map(|sym| *sym);
5218        let hipMemAllocHost = __library.get(b"hipMemAllocHost\0").map(|sym| *sym);
5219        let hipHostMalloc = __library.get(b"hipHostMalloc\0").map(|sym| *sym);
5220        let hipMallocManaged = __library.get(b"hipMallocManaged\0").map(|sym| *sym);
5221        let hipMemPrefetchAsync = __library.get(b"hipMemPrefetchAsync\0").map(|sym| *sym);
5222        let hipMemAdvise = __library.get(b"hipMemAdvise\0").map(|sym| *sym);
5223        let hipMemRangeGetAttribute = __library.get(b"hipMemRangeGetAttribute\0").map(|sym| *sym);
5224        let hipMemRangeGetAttributes = __library.get(b"hipMemRangeGetAttributes\0").map(|sym| *sym);
5225        let hipStreamAttachMemAsync = __library.get(b"hipStreamAttachMemAsync\0").map(|sym| *sym);
5226        let hipMallocAsync = __library.get(b"hipMallocAsync\0").map(|sym| *sym);
5227        let hipFreeAsync = __library.get(b"hipFreeAsync\0").map(|sym| *sym);
5228        let hipMemPoolTrimTo = __library.get(b"hipMemPoolTrimTo\0").map(|sym| *sym);
5229        let hipMemPoolSetAttribute = __library.get(b"hipMemPoolSetAttribute\0").map(|sym| *sym);
5230        let hipMemPoolGetAttribute = __library.get(b"hipMemPoolGetAttribute\0").map(|sym| *sym);
5231        let hipMemPoolSetAccess = __library.get(b"hipMemPoolSetAccess\0").map(|sym| *sym);
5232        let hipMemPoolGetAccess = __library.get(b"hipMemPoolGetAccess\0").map(|sym| *sym);
5233        let hipMemPoolCreate = __library.get(b"hipMemPoolCreate\0").map(|sym| *sym);
5234        let hipMemPoolDestroy = __library.get(b"hipMemPoolDestroy\0").map(|sym| *sym);
5235        let hipMallocFromPoolAsync = __library.get(b"hipMallocFromPoolAsync\0").map(|sym| *sym);
5236        let hipMemPoolExportToShareableHandle = __library
5237            .get(b"hipMemPoolExportToShareableHandle\0")
5238            .map(|sym| *sym);
5239        let hipMemPoolImportFromShareableHandle = __library
5240            .get(b"hipMemPoolImportFromShareableHandle\0")
5241            .map(|sym| *sym);
5242        let hipMemPoolExportPointer = __library.get(b"hipMemPoolExportPointer\0").map(|sym| *sym);
5243        let hipMemPoolImportPointer = __library.get(b"hipMemPoolImportPointer\0").map(|sym| *sym);
5244        let hipHostAlloc = __library.get(b"hipHostAlloc\0").map(|sym| *sym);
5245        let hipHostGetDevicePointer = __library.get(b"hipHostGetDevicePointer\0").map(|sym| *sym);
5246        let hipHostGetFlags = __library.get(b"hipHostGetFlags\0").map(|sym| *sym);
5247        let hipHostRegister = __library.get(b"hipHostRegister\0").map(|sym| *sym);
5248        let hipHostUnregister = __library.get(b"hipHostUnregister\0").map(|sym| *sym);
5249        let hipMallocPitch = __library.get(b"hipMallocPitch\0").map(|sym| *sym);
5250        let hipMemAllocPitch = __library.get(b"hipMemAllocPitch\0").map(|sym| *sym);
5251        let hipFree = __library.get(b"hipFree\0").map(|sym| *sym);
5252        let hipFreeHost = __library.get(b"hipFreeHost\0").map(|sym| *sym);
5253        let hipHostFree = __library.get(b"hipHostFree\0").map(|sym| *sym);
5254        let hipMemcpy = __library.get(b"hipMemcpy\0").map(|sym| *sym);
5255        let hipMemcpyWithStream = __library.get(b"hipMemcpyWithStream\0").map(|sym| *sym);
5256        let hipMemcpyHtoD = __library.get(b"hipMemcpyHtoD\0").map(|sym| *sym);
5257        let hipMemcpyDtoH = __library.get(b"hipMemcpyDtoH\0").map(|sym| *sym);
5258        let hipMemcpyDtoD = __library.get(b"hipMemcpyDtoD\0").map(|sym| *sym);
5259        let hipMemcpyHtoDAsync = __library.get(b"hipMemcpyHtoDAsync\0").map(|sym| *sym);
5260        let hipMemcpyDtoHAsync = __library.get(b"hipMemcpyDtoHAsync\0").map(|sym| *sym);
5261        let hipMemcpyDtoDAsync = __library.get(b"hipMemcpyDtoDAsync\0").map(|sym| *sym);
5262        let hipModuleGetGlobal = __library.get(b"hipModuleGetGlobal\0").map(|sym| *sym);
5263        let hipGetSymbolAddress = __library.get(b"hipGetSymbolAddress\0").map(|sym| *sym);
5264        let hipGetSymbolSize = __library.get(b"hipGetSymbolSize\0").map(|sym| *sym);
5265        let hipMemcpyToSymbol = __library.get(b"hipMemcpyToSymbol\0").map(|sym| *sym);
5266        let hipMemcpyToSymbolAsync = __library.get(b"hipMemcpyToSymbolAsync\0").map(|sym| *sym);
5267        let hipMemcpyFromSymbol = __library.get(b"hipMemcpyFromSymbol\0").map(|sym| *sym);
5268        let hipMemcpyFromSymbolAsync = __library.get(b"hipMemcpyFromSymbolAsync\0").map(|sym| *sym);
5269        let hipMemcpyAsync = __library.get(b"hipMemcpyAsync\0").map(|sym| *sym);
5270        let hipMemset = __library.get(b"hipMemset\0").map(|sym| *sym);
5271        let hipMemsetD8 = __library.get(b"hipMemsetD8\0").map(|sym| *sym);
5272        let hipMemsetD8Async = __library.get(b"hipMemsetD8Async\0").map(|sym| *sym);
5273        let hipMemsetD16 = __library.get(b"hipMemsetD16\0").map(|sym| *sym);
5274        let hipMemsetD16Async = __library.get(b"hipMemsetD16Async\0").map(|sym| *sym);
5275        let hipMemsetD32 = __library.get(b"hipMemsetD32\0").map(|sym| *sym);
5276        let hipMemsetAsync = __library.get(b"hipMemsetAsync\0").map(|sym| *sym);
5277        let hipMemsetD32Async = __library.get(b"hipMemsetD32Async\0").map(|sym| *sym);
5278        let hipMemset2D = __library.get(b"hipMemset2D\0").map(|sym| *sym);
5279        let hipMemset2DAsync = __library.get(b"hipMemset2DAsync\0").map(|sym| *sym);
5280        let hipMemset3D = __library.get(b"hipMemset3D\0").map(|sym| *sym);
5281        let hipMemset3DAsync = __library.get(b"hipMemset3DAsync\0").map(|sym| *sym);
5282        let hipMemGetInfo = __library.get(b"hipMemGetInfo\0").map(|sym| *sym);
5283        let hipMemPtrGetInfo = __library.get(b"hipMemPtrGetInfo\0").map(|sym| *sym);
5284        let hipMallocArray = __library.get(b"hipMallocArray\0").map(|sym| *sym);
5285        let hipArrayCreate = __library.get(b"hipArrayCreate\0").map(|sym| *sym);
5286        let hipArrayDestroy = __library.get(b"hipArrayDestroy\0").map(|sym| *sym);
5287        let hipArray3DCreate = __library.get(b"hipArray3DCreate\0").map(|sym| *sym);
5288        let hipMalloc3D = __library.get(b"hipMalloc3D\0").map(|sym| *sym);
5289        let hipFreeArray = __library.get(b"hipFreeArray\0").map(|sym| *sym);
5290        let hipFreeMipmappedArray = __library.get(b"hipFreeMipmappedArray\0").map(|sym| *sym);
5291        let hipMalloc3DArray = __library.get(b"hipMalloc3DArray\0").map(|sym| *sym);
5292        let hipMallocMipmappedArray = __library.get(b"hipMallocMipmappedArray\0").map(|sym| *sym);
5293        let hipGetMipmappedArrayLevel = __library
5294            .get(b"hipGetMipmappedArrayLevel\0")
5295            .map(|sym| *sym);
5296        let hipMemcpy2D = __library.get(b"hipMemcpy2D\0").map(|sym| *sym);
5297        let hipMemcpyParam2D = __library.get(b"hipMemcpyParam2D\0").map(|sym| *sym);
5298        let hipMemcpyParam2DAsync = __library.get(b"hipMemcpyParam2DAsync\0").map(|sym| *sym);
5299        let hipMemcpy2DAsync = __library.get(b"hipMemcpy2DAsync\0").map(|sym| *sym);
5300        let hipMemcpy2DToArray = __library.get(b"hipMemcpy2DToArray\0").map(|sym| *sym);
5301        let hipMemcpy2DToArrayAsync = __library.get(b"hipMemcpy2DToArrayAsync\0").map(|sym| *sym);
5302        let hipMemcpyToArray = __library.get(b"hipMemcpyToArray\0").map(|sym| *sym);
5303        let hipMemcpyFromArray = __library.get(b"hipMemcpyFromArray\0").map(|sym| *sym);
5304        let hipMemcpy2DFromArray = __library.get(b"hipMemcpy2DFromArray\0").map(|sym| *sym);
5305        let hipMemcpy2DFromArrayAsync = __library
5306            .get(b"hipMemcpy2DFromArrayAsync\0")
5307            .map(|sym| *sym);
5308        let hipMemcpyAtoH = __library.get(b"hipMemcpyAtoH\0").map(|sym| *sym);
5309        let hipMemcpyHtoA = __library.get(b"hipMemcpyHtoA\0").map(|sym| *sym);
5310        let hipMemcpy3D = __library.get(b"hipMemcpy3D\0").map(|sym| *sym);
5311        let hipMemcpy3DAsync = __library.get(b"hipMemcpy3DAsync\0").map(|sym| *sym);
5312        let hipDrvMemcpy3D = __library.get(b"hipDrvMemcpy3D\0").map(|sym| *sym);
5313        let hipDrvMemcpy3DAsync = __library.get(b"hipDrvMemcpy3DAsync\0").map(|sym| *sym);
5314        let hipDeviceCanAccessPeer = __library.get(b"hipDeviceCanAccessPeer\0").map(|sym| *sym);
5315        let hipDeviceEnablePeerAccess = __library
5316            .get(b"hipDeviceEnablePeerAccess\0")
5317            .map(|sym| *sym);
5318        let hipDeviceDisablePeerAccess = __library
5319            .get(b"hipDeviceDisablePeerAccess\0")
5320            .map(|sym| *sym);
5321        let hipMemGetAddressRange = __library.get(b"hipMemGetAddressRange\0").map(|sym| *sym);
5322        let hipMemcpyPeer = __library.get(b"hipMemcpyPeer\0").map(|sym| *sym);
5323        let hipMemcpyPeerAsync = __library.get(b"hipMemcpyPeerAsync\0").map(|sym| *sym);
5324        let hipCtxCreate = __library.get(b"hipCtxCreate\0").map(|sym| *sym);
5325        let hipCtxDestroy = __library.get(b"hipCtxDestroy\0").map(|sym| *sym);
5326        let hipCtxPopCurrent = __library.get(b"hipCtxPopCurrent\0").map(|sym| *sym);
5327        let hipCtxPushCurrent = __library.get(b"hipCtxPushCurrent\0").map(|sym| *sym);
5328        let hipCtxSetCurrent = __library.get(b"hipCtxSetCurrent\0").map(|sym| *sym);
5329        let hipCtxGetCurrent = __library.get(b"hipCtxGetCurrent\0").map(|sym| *sym);
5330        let hipCtxGetDevice = __library.get(b"hipCtxGetDevice\0").map(|sym| *sym);
5331        let hipCtxGetApiVersion = __library.get(b"hipCtxGetApiVersion\0").map(|sym| *sym);
5332        let hipCtxGetCacheConfig = __library.get(b"hipCtxGetCacheConfig\0").map(|sym| *sym);
5333        let hipCtxSetCacheConfig = __library.get(b"hipCtxSetCacheConfig\0").map(|sym| *sym);
5334        let hipCtxSetSharedMemConfig = __library.get(b"hipCtxSetSharedMemConfig\0").map(|sym| *sym);
5335        let hipCtxGetSharedMemConfig = __library.get(b"hipCtxGetSharedMemConfig\0").map(|sym| *sym);
5336        let hipCtxSynchronize = __library.get(b"hipCtxSynchronize\0").map(|sym| *sym);
5337        let hipCtxGetFlags = __library.get(b"hipCtxGetFlags\0").map(|sym| *sym);
5338        let hipCtxEnablePeerAccess = __library.get(b"hipCtxEnablePeerAccess\0").map(|sym| *sym);
5339        let hipCtxDisablePeerAccess = __library.get(b"hipCtxDisablePeerAccess\0").map(|sym| *sym);
5340        let hipDevicePrimaryCtxGetState = __library
5341            .get(b"hipDevicePrimaryCtxGetState\0")
5342            .map(|sym| *sym);
5343        let hipDevicePrimaryCtxRelease = __library
5344            .get(b"hipDevicePrimaryCtxRelease\0")
5345            .map(|sym| *sym);
5346        let hipDevicePrimaryCtxRetain = __library
5347            .get(b"hipDevicePrimaryCtxRetain\0")
5348            .map(|sym| *sym);
5349        let hipDevicePrimaryCtxReset = __library.get(b"hipDevicePrimaryCtxReset\0").map(|sym| *sym);
5350        let hipDevicePrimaryCtxSetFlags = __library
5351            .get(b"hipDevicePrimaryCtxSetFlags\0")
5352            .map(|sym| *sym);
5353        let hipModuleLoad = __library.get(b"hipModuleLoad\0").map(|sym| *sym);
5354        let hipModuleUnload = __library.get(b"hipModuleUnload\0").map(|sym| *sym);
5355        let hipModuleGetFunction = __library.get(b"hipModuleGetFunction\0").map(|sym| *sym);
5356        let hipFuncGetAttributes = __library.get(b"hipFuncGetAttributes\0").map(|sym| *sym);
5357        let hipFuncGetAttribute = __library.get(b"hipFuncGetAttribute\0").map(|sym| *sym);
5358        let hipModuleGetTexRef = __library.get(b"hipModuleGetTexRef\0").map(|sym| *sym);
5359        let hipModuleLoadData = __library.get(b"hipModuleLoadData\0").map(|sym| *sym);
5360        let hipModuleLoadDataEx = __library.get(b"hipModuleLoadDataEx\0").map(|sym| *sym);
5361        let hipModuleLaunchKernel = __library.get(b"hipModuleLaunchKernel\0").map(|sym| *sym);
5362        let hipLaunchCooperativeKernel = __library
5363            .get(b"hipLaunchCooperativeKernel\0")
5364            .map(|sym| *sym);
5365        let hipLaunchCooperativeKernelMultiDevice = __library
5366            .get(b"hipLaunchCooperativeKernelMultiDevice\0")
5367            .map(|sym| *sym);
5368        let hipExtLaunchMultiKernelMultiDevice = __library
5369            .get(b"hipExtLaunchMultiKernelMultiDevice\0")
5370            .map(|sym| *sym);
5371        let hipModuleOccupancyMaxPotentialBlockSize = __library
5372            .get(b"hipModuleOccupancyMaxPotentialBlockSize\0")
5373            .map(|sym| *sym);
5374        let hipModuleOccupancyMaxPotentialBlockSizeWithFlags = __library
5375            .get(b"hipModuleOccupancyMaxPotentialBlockSizeWithFlags\0")
5376            .map(|sym| *sym);
5377        let hipModuleOccupancyMaxActiveBlocksPerMultiprocessor = __library
5378            .get(b"hipModuleOccupancyMaxActiveBlocksPerMultiprocessor\0")
5379            .map(|sym| *sym);
5380        let hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags = __library
5381            .get(b"hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags\0")
5382            .map(|sym| *sym);
5383        let hipOccupancyMaxActiveBlocksPerMultiprocessor = __library
5384            .get(b"hipOccupancyMaxActiveBlocksPerMultiprocessor\0")
5385            .map(|sym| *sym);
5386        let hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags = __library
5387            .get(b"hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags\0")
5388            .map(|sym| *sym);
5389        let hipOccupancyMaxPotentialBlockSize = __library
5390            .get(b"hipOccupancyMaxPotentialBlockSize\0")
5391            .map(|sym| *sym);
5392        let hipProfilerStart = __library.get(b"hipProfilerStart\0").map(|sym| *sym);
5393        let hipProfilerStop = __library.get(b"hipProfilerStop\0").map(|sym| *sym);
5394        let hipConfigureCall = __library.get(b"hipConfigureCall\0").map(|sym| *sym);
5395        let hipSetupArgument = __library.get(b"hipSetupArgument\0").map(|sym| *sym);
5396        let hipLaunchByPtr = __library.get(b"hipLaunchByPtr\0").map(|sym| *sym);
5397        let hipLaunchKernel = __library.get(b"hipLaunchKernel\0").map(|sym| *sym);
5398        let hipLaunchHostFunc = __library.get(b"hipLaunchHostFunc\0").map(|sym| *sym);
5399        let hipDrvMemcpy2DUnaligned = __library.get(b"hipDrvMemcpy2DUnaligned\0").map(|sym| *sym);
5400        let hipExtLaunchKernel = __library.get(b"hipExtLaunchKernel\0").map(|sym| *sym);
5401        let hipBindTextureToMipmappedArray = __library
5402            .get(b"hipBindTextureToMipmappedArray\0")
5403            .map(|sym| *sym);
5404        let hipCreateTextureObject = __library.get(b"hipCreateTextureObject\0").map(|sym| *sym);
5405        let hipDestroyTextureObject = __library.get(b"hipDestroyTextureObject\0").map(|sym| *sym);
5406        let hipGetChannelDesc = __library.get(b"hipGetChannelDesc\0").map(|sym| *sym);
5407        let hipGetTextureObjectResourceDesc = __library
5408            .get(b"hipGetTextureObjectResourceDesc\0")
5409            .map(|sym| *sym);
5410        let hipGetTextureObjectResourceViewDesc = __library
5411            .get(b"hipGetTextureObjectResourceViewDesc\0")
5412            .map(|sym| *sym);
5413        let hipGetTextureObjectTextureDesc = __library
5414            .get(b"hipGetTextureObjectTextureDesc\0")
5415            .map(|sym| *sym);
5416        let hipTexObjectCreate = __library.get(b"hipTexObjectCreate\0").map(|sym| *sym);
5417        let hipTexObjectDestroy = __library.get(b"hipTexObjectDestroy\0").map(|sym| *sym);
5418        let hipTexObjectGetResourceDesc = __library
5419            .get(b"hipTexObjectGetResourceDesc\0")
5420            .map(|sym| *sym);
5421        let hipTexObjectGetResourceViewDesc = __library
5422            .get(b"hipTexObjectGetResourceViewDesc\0")
5423            .map(|sym| *sym);
5424        let hipTexObjectGetTextureDesc = __library
5425            .get(b"hipTexObjectGetTextureDesc\0")
5426            .map(|sym| *sym);
5427        let hipGetTextureReference = __library.get(b"hipGetTextureReference\0").map(|sym| *sym);
5428        let hipTexRefSetAddressMode = __library.get(b"hipTexRefSetAddressMode\0").map(|sym| *sym);
5429        let hipTexRefSetArray = __library.get(b"hipTexRefSetArray\0").map(|sym| *sym);
5430        let hipTexRefSetFilterMode = __library.get(b"hipTexRefSetFilterMode\0").map(|sym| *sym);
5431        let hipTexRefSetFlags = __library.get(b"hipTexRefSetFlags\0").map(|sym| *sym);
5432        let hipTexRefSetFormat = __library.get(b"hipTexRefSetFormat\0").map(|sym| *sym);
5433        let hipBindTexture = __library.get(b"hipBindTexture\0").map(|sym| *sym);
5434        let hipBindTexture2D = __library.get(b"hipBindTexture2D\0").map(|sym| *sym);
5435        let hipBindTextureToArray = __library.get(b"hipBindTextureToArray\0").map(|sym| *sym);
5436        let hipGetTextureAlignmentOffset = __library
5437            .get(b"hipGetTextureAlignmentOffset\0")
5438            .map(|sym| *sym);
5439        let hipUnbindTexture = __library.get(b"hipUnbindTexture\0").map(|sym| *sym);
5440        let hipTexRefGetAddress = __library.get(b"hipTexRefGetAddress\0").map(|sym| *sym);
5441        let hipTexRefGetAddressMode = __library.get(b"hipTexRefGetAddressMode\0").map(|sym| *sym);
5442        let hipTexRefGetFilterMode = __library.get(b"hipTexRefGetFilterMode\0").map(|sym| *sym);
5443        let hipTexRefGetFlags = __library.get(b"hipTexRefGetFlags\0").map(|sym| *sym);
5444        let hipTexRefGetFormat = __library.get(b"hipTexRefGetFormat\0").map(|sym| *sym);
5445        let hipTexRefGetMaxAnisotropy = __library
5446            .get(b"hipTexRefGetMaxAnisotropy\0")
5447            .map(|sym| *sym);
5448        let hipTexRefGetMipmapFilterMode = __library
5449            .get(b"hipTexRefGetMipmapFilterMode\0")
5450            .map(|sym| *sym);
5451        let hipTexRefGetMipmapLevelBias = __library
5452            .get(b"hipTexRefGetMipmapLevelBias\0")
5453            .map(|sym| *sym);
5454        let hipTexRefGetMipmapLevelClamp = __library
5455            .get(b"hipTexRefGetMipmapLevelClamp\0")
5456            .map(|sym| *sym);
5457        let hipTexRefGetMipMappedArray = __library
5458            .get(b"hipTexRefGetMipMappedArray\0")
5459            .map(|sym| *sym);
5460        let hipTexRefSetAddress = __library.get(b"hipTexRefSetAddress\0").map(|sym| *sym);
5461        let hipTexRefSetAddress2D = __library.get(b"hipTexRefSetAddress2D\0").map(|sym| *sym);
5462        let hipTexRefSetMaxAnisotropy = __library
5463            .get(b"hipTexRefSetMaxAnisotropy\0")
5464            .map(|sym| *sym);
5465        let hipTexRefSetBorderColor = __library.get(b"hipTexRefSetBorderColor\0").map(|sym| *sym);
5466        let hipTexRefSetMipmapFilterMode = __library
5467            .get(b"hipTexRefSetMipmapFilterMode\0")
5468            .map(|sym| *sym);
5469        let hipTexRefSetMipmapLevelBias = __library
5470            .get(b"hipTexRefSetMipmapLevelBias\0")
5471            .map(|sym| *sym);
5472        let hipTexRefSetMipmapLevelClamp = __library
5473            .get(b"hipTexRefSetMipmapLevelClamp\0")
5474            .map(|sym| *sym);
5475        let hipTexRefSetMipmappedArray = __library
5476            .get(b"hipTexRefSetMipmappedArray\0")
5477            .map(|sym| *sym);
5478        let hipMipmappedArrayCreate = __library.get(b"hipMipmappedArrayCreate\0").map(|sym| *sym);
5479        let hipMipmappedArrayDestroy = __library.get(b"hipMipmappedArrayDestroy\0").map(|sym| *sym);
5480        let hipMipmappedArrayGetLevel = __library
5481            .get(b"hipMipmappedArrayGetLevel\0")
5482            .map(|sym| *sym);
5483        let hipApiName = __library.get(b"hipApiName\0").map(|sym| *sym);
5484        let hipKernelNameRef = __library.get(b"hipKernelNameRef\0").map(|sym| *sym);
5485        let hipKernelNameRefByPtr = __library.get(b"hipKernelNameRefByPtr\0").map(|sym| *sym);
5486        let hipGetStreamDeviceId = __library.get(b"hipGetStreamDeviceId\0").map(|sym| *sym);
5487        let hipStreamBeginCapture = __library.get(b"hipStreamBeginCapture\0").map(|sym| *sym);
5488        let hipStreamEndCapture = __library.get(b"hipStreamEndCapture\0").map(|sym| *sym);
5489        let hipStreamGetCaptureInfo = __library.get(b"hipStreamGetCaptureInfo\0").map(|sym| *sym);
5490        let hipStreamGetCaptureInfo_v2 = __library
5491            .get(b"hipStreamGetCaptureInfo_v2\0")
5492            .map(|sym| *sym);
5493        let hipStreamIsCapturing = __library.get(b"hipStreamIsCapturing\0").map(|sym| *sym);
5494        let hipStreamUpdateCaptureDependencies = __library
5495            .get(b"hipStreamUpdateCaptureDependencies\0")
5496            .map(|sym| *sym);
5497        let hipThreadExchangeStreamCaptureMode = __library
5498            .get(b"hipThreadExchangeStreamCaptureMode\0")
5499            .map(|sym| *sym);
5500        let hipGraphCreate = __library.get(b"hipGraphCreate\0").map(|sym| *sym);
5501        let hipGraphDestroy = __library.get(b"hipGraphDestroy\0").map(|sym| *sym);
5502        let hipGraphAddDependencies = __library.get(b"hipGraphAddDependencies\0").map(|sym| *sym);
5503        let hipGraphRemoveDependencies = __library
5504            .get(b"hipGraphRemoveDependencies\0")
5505            .map(|sym| *sym);
5506        let hipGraphGetEdges = __library.get(b"hipGraphGetEdges\0").map(|sym| *sym);
5507        let hipGraphGetNodes = __library.get(b"hipGraphGetNodes\0").map(|sym| *sym);
5508        let hipGraphGetRootNodes = __library.get(b"hipGraphGetRootNodes\0").map(|sym| *sym);
5509        let hipGraphNodeGetDependencies = __library
5510            .get(b"hipGraphNodeGetDependencies\0")
5511            .map(|sym| *sym);
5512        let hipGraphNodeGetDependentNodes = __library
5513            .get(b"hipGraphNodeGetDependentNodes\0")
5514            .map(|sym| *sym);
5515        let hipGraphNodeGetType = __library.get(b"hipGraphNodeGetType\0").map(|sym| *sym);
5516        let hipGraphDestroyNode = __library.get(b"hipGraphDestroyNode\0").map(|sym| *sym);
5517        let hipGraphClone = __library.get(b"hipGraphClone\0").map(|sym| *sym);
5518        let hipGraphNodeFindInClone = __library.get(b"hipGraphNodeFindInClone\0").map(|sym| *sym);
5519        let hipGraphInstantiate = __library.get(b"hipGraphInstantiate\0").map(|sym| *sym);
5520        let hipGraphInstantiateWithFlags = __library
5521            .get(b"hipGraphInstantiateWithFlags\0")
5522            .map(|sym| *sym);
5523        let hipGraphLaunch = __library.get(b"hipGraphLaunch\0").map(|sym| *sym);
5524        let hipGraphUpload = __library.get(b"hipGraphUpload\0").map(|sym| *sym);
5525        let hipGraphExecDestroy = __library.get(b"hipGraphExecDestroy\0").map(|sym| *sym);
5526        let hipGraphExecUpdate = __library.get(b"hipGraphExecUpdate\0").map(|sym| *sym);
5527        let hipGraphAddKernelNode = __library.get(b"hipGraphAddKernelNode\0").map(|sym| *sym);
5528        let hipGraphKernelNodeGetParams = __library
5529            .get(b"hipGraphKernelNodeGetParams\0")
5530            .map(|sym| *sym);
5531        let hipGraphKernelNodeSetParams = __library
5532            .get(b"hipGraphKernelNodeSetParams\0")
5533            .map(|sym| *sym);
5534        let hipGraphExecKernelNodeSetParams = __library
5535            .get(b"hipGraphExecKernelNodeSetParams\0")
5536            .map(|sym| *sym);
5537        let hipGraphAddMemcpyNode = __library.get(b"hipGraphAddMemcpyNode\0").map(|sym| *sym);
5538        let hipGraphMemcpyNodeGetParams = __library
5539            .get(b"hipGraphMemcpyNodeGetParams\0")
5540            .map(|sym| *sym);
5541        let hipGraphMemcpyNodeSetParams = __library
5542            .get(b"hipGraphMemcpyNodeSetParams\0")
5543            .map(|sym| *sym);
5544        let hipGraphKernelNodeSetAttribute = __library
5545            .get(b"hipGraphKernelNodeSetAttribute\0")
5546            .map(|sym| *sym);
5547        let hipGraphKernelNodeGetAttribute = __library
5548            .get(b"hipGraphKernelNodeGetAttribute\0")
5549            .map(|sym| *sym);
5550        let hipGraphExecMemcpyNodeSetParams = __library
5551            .get(b"hipGraphExecMemcpyNodeSetParams\0")
5552            .map(|sym| *sym);
5553        let hipGraphAddMemcpyNode1D = __library.get(b"hipGraphAddMemcpyNode1D\0").map(|sym| *sym);
5554        let hipGraphMemcpyNodeSetParams1D = __library
5555            .get(b"hipGraphMemcpyNodeSetParams1D\0")
5556            .map(|sym| *sym);
5557        let hipGraphExecMemcpyNodeSetParams1D = __library
5558            .get(b"hipGraphExecMemcpyNodeSetParams1D\0")
5559            .map(|sym| *sym);
5560        let hipGraphAddMemcpyNodeFromSymbol = __library
5561            .get(b"hipGraphAddMemcpyNodeFromSymbol\0")
5562            .map(|sym| *sym);
5563        let hipGraphMemcpyNodeSetParamsFromSymbol = __library
5564            .get(b"hipGraphMemcpyNodeSetParamsFromSymbol\0")
5565            .map(|sym| *sym);
5566        let hipGraphExecMemcpyNodeSetParamsFromSymbol = __library
5567            .get(b"hipGraphExecMemcpyNodeSetParamsFromSymbol\0")
5568            .map(|sym| *sym);
5569        let hipGraphAddMemcpyNodeToSymbol = __library
5570            .get(b"hipGraphAddMemcpyNodeToSymbol\0")
5571            .map(|sym| *sym);
5572        let hipGraphMemcpyNodeSetParamsToSymbol = __library
5573            .get(b"hipGraphMemcpyNodeSetParamsToSymbol\0")
5574            .map(|sym| *sym);
5575        let hipGraphExecMemcpyNodeSetParamsToSymbol = __library
5576            .get(b"hipGraphExecMemcpyNodeSetParamsToSymbol\0")
5577            .map(|sym| *sym);
5578        let hipGraphAddMemsetNode = __library.get(b"hipGraphAddMemsetNode\0").map(|sym| *sym);
5579        let hipGraphMemsetNodeGetParams = __library
5580            .get(b"hipGraphMemsetNodeGetParams\0")
5581            .map(|sym| *sym);
5582        let hipGraphMemsetNodeSetParams = __library
5583            .get(b"hipGraphMemsetNodeSetParams\0")
5584            .map(|sym| *sym);
5585        let hipGraphExecMemsetNodeSetParams = __library
5586            .get(b"hipGraphExecMemsetNodeSetParams\0")
5587            .map(|sym| *sym);
5588        let hipGraphAddHostNode = __library.get(b"hipGraphAddHostNode\0").map(|sym| *sym);
5589        let hipGraphHostNodeGetParams = __library
5590            .get(b"hipGraphHostNodeGetParams\0")
5591            .map(|sym| *sym);
5592        let hipGraphHostNodeSetParams = __library
5593            .get(b"hipGraphHostNodeSetParams\0")
5594            .map(|sym| *sym);
5595        let hipGraphExecHostNodeSetParams = __library
5596            .get(b"hipGraphExecHostNodeSetParams\0")
5597            .map(|sym| *sym);
5598        let hipGraphAddChildGraphNode = __library
5599            .get(b"hipGraphAddChildGraphNode\0")
5600            .map(|sym| *sym);
5601        let hipGraphChildGraphNodeGetGraph = __library
5602            .get(b"hipGraphChildGraphNodeGetGraph\0")
5603            .map(|sym| *sym);
5604        let hipGraphExecChildGraphNodeSetParams = __library
5605            .get(b"hipGraphExecChildGraphNodeSetParams\0")
5606            .map(|sym| *sym);
5607        let hipGraphAddEmptyNode = __library.get(b"hipGraphAddEmptyNode\0").map(|sym| *sym);
5608        let hipGraphAddEventRecordNode = __library
5609            .get(b"hipGraphAddEventRecordNode\0")
5610            .map(|sym| *sym);
5611        let hipGraphEventRecordNodeGetEvent = __library
5612            .get(b"hipGraphEventRecordNodeGetEvent\0")
5613            .map(|sym| *sym);
5614        let hipGraphEventRecordNodeSetEvent = __library
5615            .get(b"hipGraphEventRecordNodeSetEvent\0")
5616            .map(|sym| *sym);
5617        let hipGraphExecEventRecordNodeSetEvent = __library
5618            .get(b"hipGraphExecEventRecordNodeSetEvent\0")
5619            .map(|sym| *sym);
5620        let hipGraphAddEventWaitNode = __library.get(b"hipGraphAddEventWaitNode\0").map(|sym| *sym);
5621        let hipGraphEventWaitNodeGetEvent = __library
5622            .get(b"hipGraphEventWaitNodeGetEvent\0")
5623            .map(|sym| *sym);
5624        let hipGraphEventWaitNodeSetEvent = __library
5625            .get(b"hipGraphEventWaitNodeSetEvent\0")
5626            .map(|sym| *sym);
5627        let hipGraphExecEventWaitNodeSetEvent = __library
5628            .get(b"hipGraphExecEventWaitNodeSetEvent\0")
5629            .map(|sym| *sym);
5630        let hipDeviceGetGraphMemAttribute = __library
5631            .get(b"hipDeviceGetGraphMemAttribute\0")
5632            .map(|sym| *sym);
5633        let hipDeviceSetGraphMemAttribute = __library
5634            .get(b"hipDeviceSetGraphMemAttribute\0")
5635            .map(|sym| *sym);
5636        let hipDeviceGraphMemTrim = __library.get(b"hipDeviceGraphMemTrim\0").map(|sym| *sym);
5637        let hipUserObjectCreate = __library.get(b"hipUserObjectCreate\0").map(|sym| *sym);
5638        let hipUserObjectRelease = __library.get(b"hipUserObjectRelease\0").map(|sym| *sym);
5639        let hipUserObjectRetain = __library.get(b"hipUserObjectRetain\0").map(|sym| *sym);
5640        let hipGraphRetainUserObject = __library.get(b"hipGraphRetainUserObject\0").map(|sym| *sym);
5641        let hipGraphReleaseUserObject = __library
5642            .get(b"hipGraphReleaseUserObject\0")
5643            .map(|sym| *sym);
5644        let hipMemAddressFree = __library.get(b"hipMemAddressFree\0").map(|sym| *sym);
5645        let hipMemAddressReserve = __library.get(b"hipMemAddressReserve\0").map(|sym| *sym);
5646        let hipMemCreate = __library.get(b"hipMemCreate\0").map(|sym| *sym);
5647        let hipMemExportToShareableHandle = __library
5648            .get(b"hipMemExportToShareableHandle\0")
5649            .map(|sym| *sym);
5650        let hipMemGetAccess = __library.get(b"hipMemGetAccess\0").map(|sym| *sym);
5651        let hipMemGetAllocationGranularity = __library
5652            .get(b"hipMemGetAllocationGranularity\0")
5653            .map(|sym| *sym);
5654        let hipMemGetAllocationPropertiesFromHandle = __library
5655            .get(b"hipMemGetAllocationPropertiesFromHandle\0")
5656            .map(|sym| *sym);
5657        let hipMemImportFromShareableHandle = __library
5658            .get(b"hipMemImportFromShareableHandle\0")
5659            .map(|sym| *sym);
5660        let hipMemMap = __library.get(b"hipMemMap\0").map(|sym| *sym);
5661        let hipMemMapArrayAsync = __library.get(b"hipMemMapArrayAsync\0").map(|sym| *sym);
5662        let hipMemRelease = __library.get(b"hipMemRelease\0").map(|sym| *sym);
5663        let hipMemRetainAllocationHandle = __library
5664            .get(b"hipMemRetainAllocationHandle\0")
5665            .map(|sym| *sym);
5666        let hipMemSetAccess = __library.get(b"hipMemSetAccess\0").map(|sym| *sym);
5667        let hipMemUnmap = __library.get(b"hipMemUnmap\0").map(|sym| *sym);
5668        let hipGLGetDevices = __library.get(b"hipGLGetDevices\0").map(|sym| *sym);
5669        let hipGraphicsGLRegisterBuffer = __library
5670            .get(b"hipGraphicsGLRegisterBuffer\0")
5671            .map(|sym| *sym);
5672        let hipGraphicsGLRegisterImage = __library
5673            .get(b"hipGraphicsGLRegisterImage\0")
5674            .map(|sym| *sym);
5675        let hipGraphicsMapResources = __library.get(b"hipGraphicsMapResources\0").map(|sym| *sym);
5676        let hipGraphicsSubResourceGetMappedArray = __library
5677            .get(b"hipGraphicsSubResourceGetMappedArray\0")
5678            .map(|sym| *sym);
5679        let hipGraphicsResourceGetMappedPointer = __library
5680            .get(b"hipGraphicsResourceGetMappedPointer\0")
5681            .map(|sym| *sym);
5682        let hipGraphicsUnmapResources = __library
5683            .get(b"hipGraphicsUnmapResources\0")
5684            .map(|sym| *sym);
5685        let hipGraphicsUnregisterResource = __library
5686            .get(b"hipGraphicsUnregisterResource\0")
5687            .map(|sym| *sym);
5688        let hipMemcpy_spt = __library.get(b"hipMemcpy_spt\0").map(|sym| *sym);
5689        let hipMemcpyToSymbol_spt = __library.get(b"hipMemcpyToSymbol_spt\0").map(|sym| *sym);
5690        let hipMemcpyFromSymbol_spt = __library.get(b"hipMemcpyFromSymbol_spt\0").map(|sym| *sym);
5691        let hipMemcpy2D_spt = __library.get(b"hipMemcpy2D_spt\0").map(|sym| *sym);
5692        let hipMemcpy2DFromArray_spt = __library.get(b"hipMemcpy2DFromArray_spt\0").map(|sym| *sym);
5693        let hipMemcpy3D_spt = __library.get(b"hipMemcpy3D_spt\0").map(|sym| *sym);
5694        let hipMemset_spt = __library.get(b"hipMemset_spt\0").map(|sym| *sym);
5695        let hipMemsetAsync_spt = __library.get(b"hipMemsetAsync_spt\0").map(|sym| *sym);
5696        let hipMemset2D_spt = __library.get(b"hipMemset2D_spt\0").map(|sym| *sym);
5697        let hipMemset2DAsync_spt = __library.get(b"hipMemset2DAsync_spt\0").map(|sym| *sym);
5698        let hipMemset3DAsync_spt = __library.get(b"hipMemset3DAsync_spt\0").map(|sym| *sym);
5699        let hipMemset3D_spt = __library.get(b"hipMemset3D_spt\0").map(|sym| *sym);
5700        let hipMemcpyAsync_spt = __library.get(b"hipMemcpyAsync_spt\0").map(|sym| *sym);
5701        let hipMemcpy3DAsync_spt = __library.get(b"hipMemcpy3DAsync_spt\0").map(|sym| *sym);
5702        let hipMemcpy2DAsync_spt = __library.get(b"hipMemcpy2DAsync_spt\0").map(|sym| *sym);
5703        let hipMemcpyFromSymbolAsync_spt = __library
5704            .get(b"hipMemcpyFromSymbolAsync_spt\0")
5705            .map(|sym| *sym);
5706        let hipMemcpyToSymbolAsync_spt = __library
5707            .get(b"hipMemcpyToSymbolAsync_spt\0")
5708            .map(|sym| *sym);
5709        let hipMemcpyFromArray_spt = __library.get(b"hipMemcpyFromArray_spt\0").map(|sym| *sym);
5710        let hipMemcpy2DToArray_spt = __library.get(b"hipMemcpy2DToArray_spt\0").map(|sym| *sym);
5711        let hipMemcpy2DFromArrayAsync_spt = __library
5712            .get(b"hipMemcpy2DFromArrayAsync_spt\0")
5713            .map(|sym| *sym);
5714        let hipMemcpy2DToArrayAsync_spt = __library
5715            .get(b"hipMemcpy2DToArrayAsync_spt\0")
5716            .map(|sym| *sym);
5717        let hipStreamQuery_spt = __library.get(b"hipStreamQuery_spt\0").map(|sym| *sym);
5718        let hipStreamSynchronize_spt = __library.get(b"hipStreamSynchronize_spt\0").map(|sym| *sym);
5719        let hipStreamGetPriority_spt = __library.get(b"hipStreamGetPriority_spt\0").map(|sym| *sym);
5720        let hipStreamWaitEvent_spt = __library.get(b"hipStreamWaitEvent_spt\0").map(|sym| *sym);
5721        let hipStreamGetFlags_spt = __library.get(b"hipStreamGetFlags_spt\0").map(|sym| *sym);
5722        let hipStreamAddCallback_spt = __library.get(b"hipStreamAddCallback_spt\0").map(|sym| *sym);
5723        let hipEventRecord_spt = __library.get(b"hipEventRecord_spt\0").map(|sym| *sym);
5724        let hipLaunchCooperativeKernel_spt = __library
5725            .get(b"hipLaunchCooperativeKernel_spt\0")
5726            .map(|sym| *sym);
5727        let hipLaunchKernel_spt = __library.get(b"hipLaunchKernel_spt\0").map(|sym| *sym);
5728        let hipGraphLaunch_spt = __library.get(b"hipGraphLaunch_spt\0").map(|sym| *sym);
5729        let hipStreamBeginCapture_spt = __library
5730            .get(b"hipStreamBeginCapture_spt\0")
5731            .map(|sym| *sym);
5732        let hipStreamEndCapture_spt = __library.get(b"hipStreamEndCapture_spt\0").map(|sym| *sym);
5733        let hipStreamIsCapturing_spt = __library.get(b"hipStreamIsCapturing_spt\0").map(|sym| *sym);
5734        let hipStreamGetCaptureInfo_spt = __library
5735            .get(b"hipStreamGetCaptureInfo_spt\0")
5736            .map(|sym| *sym);
5737        let hipStreamGetCaptureInfo_v2_spt = __library
5738            .get(b"hipStreamGetCaptureInfo_v2_spt\0")
5739            .map(|sym| *sym);
5740        let hipLaunchHostFunc_spt = __library.get(b"hipLaunchHostFunc_spt\0").map(|sym| *sym);
5741        Ok(hip {
5742            __library,
5743            hipCreateChannelDesc,
5744            hipInit,
5745            hipDriverGetVersion,
5746            hipRuntimeGetVersion,
5747            hipDeviceGet,
5748            hipDeviceComputeCapability,
5749            hipDeviceGetName,
5750            hipDeviceGetUuid,
5751            hipDeviceGetP2PAttribute,
5752            hipDeviceGetPCIBusId,
5753            hipDeviceGetByPCIBusId,
5754            hipDeviceTotalMem,
5755            hipDeviceSynchronize,
5756            hipDeviceReset,
5757            hipSetDevice,
5758            hipGetDevice,
5759            hipGetDeviceCount,
5760            hipDeviceGetAttribute,
5761            hipDeviceGetDefaultMemPool,
5762            hipDeviceSetMemPool,
5763            hipDeviceGetMemPool,
5764            hipGetDeviceProperties,
5765            hipDeviceSetCacheConfig,
5766            hipDeviceGetCacheConfig,
5767            hipDeviceGetLimit,
5768            hipDeviceSetLimit,
5769            hipDeviceGetSharedMemConfig,
5770            hipGetDeviceFlags,
5771            hipDeviceSetSharedMemConfig,
5772            hipSetDeviceFlags,
5773            hipChooseDevice,
5774            hipExtGetLinkTypeAndHopCount,
5775            hipIpcGetMemHandle,
5776            hipIpcOpenMemHandle,
5777            hipIpcCloseMemHandle,
5778            hipIpcGetEventHandle,
5779            hipIpcOpenEventHandle,
5780            hipFuncSetAttribute,
5781            hipFuncSetCacheConfig,
5782            hipFuncSetSharedMemConfig,
5783            hipGetLastError,
5784            hipPeekAtLastError,
5785            hipGetErrorName,
5786            hipGetErrorString,
5787            hipDrvGetErrorName,
5788            hipDrvGetErrorString,
5789            hipStreamCreate,
5790            hipStreamCreateWithFlags,
5791            hipStreamCreateWithPriority,
5792            hipDeviceGetStreamPriorityRange,
5793            hipStreamDestroy,
5794            hipStreamQuery,
5795            hipStreamSynchronize,
5796            hipStreamWaitEvent,
5797            hipStreamGetFlags,
5798            hipStreamGetPriority,
5799            hipExtStreamCreateWithCUMask,
5800            hipExtStreamGetCUMask,
5801            hipStreamAddCallback,
5802            hipStreamWaitValue32,
5803            hipStreamWaitValue64,
5804            hipStreamWriteValue32,
5805            hipStreamWriteValue64,
5806            hipEventCreateWithFlags,
5807            hipEventCreate,
5808            hipEventRecord,
5809            hipEventDestroy,
5810            hipEventSynchronize,
5811            hipEventElapsedTime,
5812            hipEventQuery,
5813            hipPointerGetAttributes,
5814            hipPointerGetAttribute,
5815            hipDrvPointerGetAttributes,
5816            hipImportExternalSemaphore,
5817            hipSignalExternalSemaphoresAsync,
5818            hipWaitExternalSemaphoresAsync,
5819            hipDestroyExternalSemaphore,
5820            hipImportExternalMemory,
5821            hipExternalMemoryGetMappedBuffer,
5822            hipDestroyExternalMemory,
5823            hipMalloc,
5824            hipExtMallocWithFlags,
5825            hipMallocHost,
5826            hipMemAllocHost,
5827            hipHostMalloc,
5828            hipMallocManaged,
5829            hipMemPrefetchAsync,
5830            hipMemAdvise,
5831            hipMemRangeGetAttribute,
5832            hipMemRangeGetAttributes,
5833            hipStreamAttachMemAsync,
5834            hipMallocAsync,
5835            hipFreeAsync,
5836            hipMemPoolTrimTo,
5837            hipMemPoolSetAttribute,
5838            hipMemPoolGetAttribute,
5839            hipMemPoolSetAccess,
5840            hipMemPoolGetAccess,
5841            hipMemPoolCreate,
5842            hipMemPoolDestroy,
5843            hipMallocFromPoolAsync,
5844            hipMemPoolExportToShareableHandle,
5845            hipMemPoolImportFromShareableHandle,
5846            hipMemPoolExportPointer,
5847            hipMemPoolImportPointer,
5848            hipHostAlloc,
5849            hipHostGetDevicePointer,
5850            hipHostGetFlags,
5851            hipHostRegister,
5852            hipHostUnregister,
5853            hipMallocPitch,
5854            hipMemAllocPitch,
5855            hipFree,
5856            hipFreeHost,
5857            hipHostFree,
5858            hipMemcpy,
5859            hipMemcpyWithStream,
5860            hipMemcpyHtoD,
5861            hipMemcpyDtoH,
5862            hipMemcpyDtoD,
5863            hipMemcpyHtoDAsync,
5864            hipMemcpyDtoHAsync,
5865            hipMemcpyDtoDAsync,
5866            hipModuleGetGlobal,
5867            hipGetSymbolAddress,
5868            hipGetSymbolSize,
5869            hipMemcpyToSymbol,
5870            hipMemcpyToSymbolAsync,
5871            hipMemcpyFromSymbol,
5872            hipMemcpyFromSymbolAsync,
5873            hipMemcpyAsync,
5874            hipMemset,
5875            hipMemsetD8,
5876            hipMemsetD8Async,
5877            hipMemsetD16,
5878            hipMemsetD16Async,
5879            hipMemsetD32,
5880            hipMemsetAsync,
5881            hipMemsetD32Async,
5882            hipMemset2D,
5883            hipMemset2DAsync,
5884            hipMemset3D,
5885            hipMemset3DAsync,
5886            hipMemGetInfo,
5887            hipMemPtrGetInfo,
5888            hipMallocArray,
5889            hipArrayCreate,
5890            hipArrayDestroy,
5891            hipArray3DCreate,
5892            hipMalloc3D,
5893            hipFreeArray,
5894            hipFreeMipmappedArray,
5895            hipMalloc3DArray,
5896            hipMallocMipmappedArray,
5897            hipGetMipmappedArrayLevel,
5898            hipMemcpy2D,
5899            hipMemcpyParam2D,
5900            hipMemcpyParam2DAsync,
5901            hipMemcpy2DAsync,
5902            hipMemcpy2DToArray,
5903            hipMemcpy2DToArrayAsync,
5904            hipMemcpyToArray,
5905            hipMemcpyFromArray,
5906            hipMemcpy2DFromArray,
5907            hipMemcpy2DFromArrayAsync,
5908            hipMemcpyAtoH,
5909            hipMemcpyHtoA,
5910            hipMemcpy3D,
5911            hipMemcpy3DAsync,
5912            hipDrvMemcpy3D,
5913            hipDrvMemcpy3DAsync,
5914            hipDeviceCanAccessPeer,
5915            hipDeviceEnablePeerAccess,
5916            hipDeviceDisablePeerAccess,
5917            hipMemGetAddressRange,
5918            hipMemcpyPeer,
5919            hipMemcpyPeerAsync,
5920            hipCtxCreate,
5921            hipCtxDestroy,
5922            hipCtxPopCurrent,
5923            hipCtxPushCurrent,
5924            hipCtxSetCurrent,
5925            hipCtxGetCurrent,
5926            hipCtxGetDevice,
5927            hipCtxGetApiVersion,
5928            hipCtxGetCacheConfig,
5929            hipCtxSetCacheConfig,
5930            hipCtxSetSharedMemConfig,
5931            hipCtxGetSharedMemConfig,
5932            hipCtxSynchronize,
5933            hipCtxGetFlags,
5934            hipCtxEnablePeerAccess,
5935            hipCtxDisablePeerAccess,
5936            hipDevicePrimaryCtxGetState,
5937            hipDevicePrimaryCtxRelease,
5938            hipDevicePrimaryCtxRetain,
5939            hipDevicePrimaryCtxReset,
5940            hipDevicePrimaryCtxSetFlags,
5941            hipModuleLoad,
5942            hipModuleUnload,
5943            hipModuleGetFunction,
5944            hipFuncGetAttributes,
5945            hipFuncGetAttribute,
5946            hipModuleGetTexRef,
5947            hipModuleLoadData,
5948            hipModuleLoadDataEx,
5949            hipModuleLaunchKernel,
5950            hipLaunchCooperativeKernel,
5951            hipLaunchCooperativeKernelMultiDevice,
5952            hipExtLaunchMultiKernelMultiDevice,
5953            hipModuleOccupancyMaxPotentialBlockSize,
5954            hipModuleOccupancyMaxPotentialBlockSizeWithFlags,
5955            hipModuleOccupancyMaxActiveBlocksPerMultiprocessor,
5956            hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags,
5957            hipOccupancyMaxActiveBlocksPerMultiprocessor,
5958            hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags,
5959            hipOccupancyMaxPotentialBlockSize,
5960            hipProfilerStart,
5961            hipProfilerStop,
5962            hipConfigureCall,
5963            hipSetupArgument,
5964            hipLaunchByPtr,
5965            hipLaunchKernel,
5966            hipLaunchHostFunc,
5967            hipDrvMemcpy2DUnaligned,
5968            hipExtLaunchKernel,
5969            hipBindTextureToMipmappedArray,
5970            hipCreateTextureObject,
5971            hipDestroyTextureObject,
5972            hipGetChannelDesc,
5973            hipGetTextureObjectResourceDesc,
5974            hipGetTextureObjectResourceViewDesc,
5975            hipGetTextureObjectTextureDesc,
5976            hipTexObjectCreate,
5977            hipTexObjectDestroy,
5978            hipTexObjectGetResourceDesc,
5979            hipTexObjectGetResourceViewDesc,
5980            hipTexObjectGetTextureDesc,
5981            hipGetTextureReference,
5982            hipTexRefSetAddressMode,
5983            hipTexRefSetArray,
5984            hipTexRefSetFilterMode,
5985            hipTexRefSetFlags,
5986            hipTexRefSetFormat,
5987            hipBindTexture,
5988            hipBindTexture2D,
5989            hipBindTextureToArray,
5990            hipGetTextureAlignmentOffset,
5991            hipUnbindTexture,
5992            hipTexRefGetAddress,
5993            hipTexRefGetAddressMode,
5994            hipTexRefGetFilterMode,
5995            hipTexRefGetFlags,
5996            hipTexRefGetFormat,
5997            hipTexRefGetMaxAnisotropy,
5998            hipTexRefGetMipmapFilterMode,
5999            hipTexRefGetMipmapLevelBias,
6000            hipTexRefGetMipmapLevelClamp,
6001            hipTexRefGetMipMappedArray,
6002            hipTexRefSetAddress,
6003            hipTexRefSetAddress2D,
6004            hipTexRefSetMaxAnisotropy,
6005            hipTexRefSetBorderColor,
6006            hipTexRefSetMipmapFilterMode,
6007            hipTexRefSetMipmapLevelBias,
6008            hipTexRefSetMipmapLevelClamp,
6009            hipTexRefSetMipmappedArray,
6010            hipMipmappedArrayCreate,
6011            hipMipmappedArrayDestroy,
6012            hipMipmappedArrayGetLevel,
6013            hipApiName,
6014            hipKernelNameRef,
6015            hipKernelNameRefByPtr,
6016            hipGetStreamDeviceId,
6017            hipStreamBeginCapture,
6018            hipStreamEndCapture,
6019            hipStreamGetCaptureInfo,
6020            hipStreamGetCaptureInfo_v2,
6021            hipStreamIsCapturing,
6022            hipStreamUpdateCaptureDependencies,
6023            hipThreadExchangeStreamCaptureMode,
6024            hipGraphCreate,
6025            hipGraphDestroy,
6026            hipGraphAddDependencies,
6027            hipGraphRemoveDependencies,
6028            hipGraphGetEdges,
6029            hipGraphGetNodes,
6030            hipGraphGetRootNodes,
6031            hipGraphNodeGetDependencies,
6032            hipGraphNodeGetDependentNodes,
6033            hipGraphNodeGetType,
6034            hipGraphDestroyNode,
6035            hipGraphClone,
6036            hipGraphNodeFindInClone,
6037            hipGraphInstantiate,
6038            hipGraphInstantiateWithFlags,
6039            hipGraphLaunch,
6040            hipGraphUpload,
6041            hipGraphExecDestroy,
6042            hipGraphExecUpdate,
6043            hipGraphAddKernelNode,
6044            hipGraphKernelNodeGetParams,
6045            hipGraphKernelNodeSetParams,
6046            hipGraphExecKernelNodeSetParams,
6047            hipGraphAddMemcpyNode,
6048            hipGraphMemcpyNodeGetParams,
6049            hipGraphMemcpyNodeSetParams,
6050            hipGraphKernelNodeSetAttribute,
6051            hipGraphKernelNodeGetAttribute,
6052            hipGraphExecMemcpyNodeSetParams,
6053            hipGraphAddMemcpyNode1D,
6054            hipGraphMemcpyNodeSetParams1D,
6055            hipGraphExecMemcpyNodeSetParams1D,
6056            hipGraphAddMemcpyNodeFromSymbol,
6057            hipGraphMemcpyNodeSetParamsFromSymbol,
6058            hipGraphExecMemcpyNodeSetParamsFromSymbol,
6059            hipGraphAddMemcpyNodeToSymbol,
6060            hipGraphMemcpyNodeSetParamsToSymbol,
6061            hipGraphExecMemcpyNodeSetParamsToSymbol,
6062            hipGraphAddMemsetNode,
6063            hipGraphMemsetNodeGetParams,
6064            hipGraphMemsetNodeSetParams,
6065            hipGraphExecMemsetNodeSetParams,
6066            hipGraphAddHostNode,
6067            hipGraphHostNodeGetParams,
6068            hipGraphHostNodeSetParams,
6069            hipGraphExecHostNodeSetParams,
6070            hipGraphAddChildGraphNode,
6071            hipGraphChildGraphNodeGetGraph,
6072            hipGraphExecChildGraphNodeSetParams,
6073            hipGraphAddEmptyNode,
6074            hipGraphAddEventRecordNode,
6075            hipGraphEventRecordNodeGetEvent,
6076            hipGraphEventRecordNodeSetEvent,
6077            hipGraphExecEventRecordNodeSetEvent,
6078            hipGraphAddEventWaitNode,
6079            hipGraphEventWaitNodeGetEvent,
6080            hipGraphEventWaitNodeSetEvent,
6081            hipGraphExecEventWaitNodeSetEvent,
6082            hipDeviceGetGraphMemAttribute,
6083            hipDeviceSetGraphMemAttribute,
6084            hipDeviceGraphMemTrim,
6085            hipUserObjectCreate,
6086            hipUserObjectRelease,
6087            hipUserObjectRetain,
6088            hipGraphRetainUserObject,
6089            hipGraphReleaseUserObject,
6090            hipMemAddressFree,
6091            hipMemAddressReserve,
6092            hipMemCreate,
6093            hipMemExportToShareableHandle,
6094            hipMemGetAccess,
6095            hipMemGetAllocationGranularity,
6096            hipMemGetAllocationPropertiesFromHandle,
6097            hipMemImportFromShareableHandle,
6098            hipMemMap,
6099            hipMemMapArrayAsync,
6100            hipMemRelease,
6101            hipMemRetainAllocationHandle,
6102            hipMemSetAccess,
6103            hipMemUnmap,
6104            hipGLGetDevices,
6105            hipGraphicsGLRegisterBuffer,
6106            hipGraphicsGLRegisterImage,
6107            hipGraphicsMapResources,
6108            hipGraphicsSubResourceGetMappedArray,
6109            hipGraphicsResourceGetMappedPointer,
6110            hipGraphicsUnmapResources,
6111            hipGraphicsUnregisterResource,
6112            hipMemcpy_spt,
6113            hipMemcpyToSymbol_spt,
6114            hipMemcpyFromSymbol_spt,
6115            hipMemcpy2D_spt,
6116            hipMemcpy2DFromArray_spt,
6117            hipMemcpy3D_spt,
6118            hipMemset_spt,
6119            hipMemsetAsync_spt,
6120            hipMemset2D_spt,
6121            hipMemset2DAsync_spt,
6122            hipMemset3DAsync_spt,
6123            hipMemset3D_spt,
6124            hipMemcpyAsync_spt,
6125            hipMemcpy3DAsync_spt,
6126            hipMemcpy2DAsync_spt,
6127            hipMemcpyFromSymbolAsync_spt,
6128            hipMemcpyToSymbolAsync_spt,
6129            hipMemcpyFromArray_spt,
6130            hipMemcpy2DToArray_spt,
6131            hipMemcpy2DFromArrayAsync_spt,
6132            hipMemcpy2DToArrayAsync_spt,
6133            hipStreamQuery_spt,
6134            hipStreamSynchronize_spt,
6135            hipStreamGetPriority_spt,
6136            hipStreamWaitEvent_spt,
6137            hipStreamGetFlags_spt,
6138            hipStreamAddCallback_spt,
6139            hipEventRecord_spt,
6140            hipLaunchCooperativeKernel_spt,
6141            hipLaunchKernel_spt,
6142            hipGraphLaunch_spt,
6143            hipStreamBeginCapture_spt,
6144            hipStreamEndCapture_spt,
6145            hipStreamIsCapturing_spt,
6146            hipStreamGetCaptureInfo_spt,
6147            hipStreamGetCaptureInfo_v2_spt,
6148            hipLaunchHostFunc_spt,
6149        })
6150    }
6151    pub unsafe fn hipCreateChannelDesc(
6152        &self,
6153        x: ::std::os::raw::c_int,
6154        y: ::std::os::raw::c_int,
6155        z: ::std::os::raw::c_int,
6156        w: ::std::os::raw::c_int,
6157        f: hipChannelFormatKind,
6158    ) -> hipChannelFormatDesc {
6159        (self
6160            .hipCreateChannelDesc
6161            .as_ref()
6162            .expect("Expected function, got error."))(x, y, z, w, f)
6163    }
6164    #[doc = "  @defgroup API HIP API\n  @{\n\n  Defines the HIP API.  See the individual sections for more information.\n/\n/**\n  @defgroup Driver Initialization and Version\n  @{\n  This section describes the initializtion and version functions of HIP runtime API.\n\n/\n/**\n @brief Explicitly initializes the HIP runtime.\n\n Most HIP APIs implicitly initialize the HIP runtime.\n This API provides control over the timing of the initialization."]
6165    pub unsafe fn hipInit(&self, flags: ::std::os::raw::c_uint) -> hipError_t {
6166        (self
6167            .hipInit
6168            .as_ref()
6169            .expect("Expected function, got error."))(flags)
6170    }
6171    #[doc = " @brief Returns the approximate HIP driver version.\n\n @param [out] driverVersion\n\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @warning The HIP feature set does not correspond to an exact CUDA SDK driver revision.\n This function always set *driverVersion to 4 as an approximation though HIP supports\n some features which were introduced in later CUDA SDK revisions.\n HIP apps code should not rely on the driver revision number here and should\n use arch feature flags to test device capabilities or conditional compilation.\n\n @see hipRuntimeGetVersion"]
6172    pub unsafe fn hipDriverGetVersion(
6173        &self,
6174        driverVersion: *mut ::std::os::raw::c_int,
6175    ) -> hipError_t {
6176        (self
6177            .hipDriverGetVersion
6178            .as_ref()
6179            .expect("Expected function, got error."))(driverVersion)
6180    }
6181    #[doc = " @brief Returns the approximate HIP Runtime version.\n\n @param [out] runtimeVersion\n\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @warning The version definition of HIP runtime is different from CUDA.\n On AMD platform, the function returns HIP runtime version,\n while on NVIDIA platform, it returns CUDA runtime version.\n And there is no mapping/correlation between HIP version and CUDA version.\n\n @see hipDriverGetVersion"]
6182    pub unsafe fn hipRuntimeGetVersion(
6183        &self,
6184        runtimeVersion: *mut ::std::os::raw::c_int,
6185    ) -> hipError_t {
6186        (self
6187            .hipRuntimeGetVersion
6188            .as_ref()
6189            .expect("Expected function, got error."))(runtimeVersion)
6190    }
6191    #[doc = " @brief Returns a handle to a compute device\n @param [out] device\n @param [in] ordinal\n\n @returns #hipSuccess, #hipErrorInvalidDevice"]
6192    pub unsafe fn hipDeviceGet(
6193        &self,
6194        device: *mut hipDevice_t,
6195        ordinal: ::std::os::raw::c_int,
6196    ) -> hipError_t {
6197        (self
6198            .hipDeviceGet
6199            .as_ref()
6200            .expect("Expected function, got error."))(device, ordinal)
6201    }
6202    #[doc = " @brief Returns the compute capability of the device\n @param [out] major\n @param [out] minor\n @param [in] device\n\n @returns #hipSuccess, #hipErrorInvalidDevice"]
6203    pub unsafe fn hipDeviceComputeCapability(
6204        &self,
6205        major: *mut ::std::os::raw::c_int,
6206        minor: *mut ::std::os::raw::c_int,
6207        device: hipDevice_t,
6208    ) -> hipError_t {
6209        (self
6210            .hipDeviceComputeCapability
6211            .as_ref()
6212            .expect("Expected function, got error."))(major, minor, device)
6213    }
6214    #[doc = " @brief Returns an identifer string for the device.\n @param [out] name\n @param [in] len\n @param [in] device\n\n @returns #hipSuccess, #hipErrorInvalidDevice"]
6215    pub unsafe fn hipDeviceGetName(
6216        &self,
6217        name: *mut ::std::os::raw::c_char,
6218        len: ::std::os::raw::c_int,
6219        device: hipDevice_t,
6220    ) -> hipError_t {
6221        (self
6222            .hipDeviceGetName
6223            .as_ref()
6224            .expect("Expected function, got error."))(name, len, device)
6225    }
6226    #[doc = " @brief Returns an UUID for the device.[BETA]\n @param [out] uuid\n @param [in] device\n\n @beta This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n\n @returns #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue, #hipErrorNotInitialized,\n #hipErrorDeinitialized"]
6227    pub unsafe fn hipDeviceGetUuid(&self, uuid: *mut hipUUID, device: hipDevice_t) -> hipError_t {
6228        (self
6229            .hipDeviceGetUuid
6230            .as_ref()
6231            .expect("Expected function, got error."))(uuid, device)
6232    }
6233    #[doc = " @brief Returns a value for attr of link between two devices\n @param [out] value\n @param [in] attr\n @param [in] srcDevice\n @param [in] dstDevice\n\n @returns #hipSuccess, #hipErrorInvalidDevice"]
6234    pub unsafe fn hipDeviceGetP2PAttribute(
6235        &self,
6236        value: *mut ::std::os::raw::c_int,
6237        attr: hipDeviceP2PAttr,
6238        srcDevice: ::std::os::raw::c_int,
6239        dstDevice: ::std::os::raw::c_int,
6240    ) -> hipError_t {
6241        (self
6242            .hipDeviceGetP2PAttribute
6243            .as_ref()
6244            .expect("Expected function, got error."))(value, attr, srcDevice, dstDevice)
6245    }
6246    #[doc = " @brief Returns a PCI Bus Id string for the device, overloaded to take int device ID.\n @param [out] pciBusId\n @param [in] len\n @param [in] device\n\n @returns #hipSuccess, #hipErrorInvalidDevice"]
6247    pub unsafe fn hipDeviceGetPCIBusId(
6248        &self,
6249        pciBusId: *mut ::std::os::raw::c_char,
6250        len: ::std::os::raw::c_int,
6251        device: ::std::os::raw::c_int,
6252    ) -> hipError_t {
6253        (self
6254            .hipDeviceGetPCIBusId
6255            .as_ref()
6256            .expect("Expected function, got error."))(pciBusId, len, device)
6257    }
6258    #[doc = " @brief Returns a handle to a compute device.\n @param [out] device handle\n @param [in] PCI Bus ID\n\n @returns #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue"]
6259    pub unsafe fn hipDeviceGetByPCIBusId(
6260        &self,
6261        device: *mut ::std::os::raw::c_int,
6262        pciBusId: *const ::std::os::raw::c_char,
6263    ) -> hipError_t {
6264        (self
6265            .hipDeviceGetByPCIBusId
6266            .as_ref()
6267            .expect("Expected function, got error."))(device, pciBusId)
6268    }
6269    #[doc = " @brief Returns the total amount of memory on the device.\n @param [out] bytes\n @param [in] device\n\n @returns #hipSuccess, #hipErrorInvalidDevice"]
6270    pub unsafe fn hipDeviceTotalMem(&self, bytes: *mut usize, device: hipDevice_t) -> hipError_t {
6271        (self
6272            .hipDeviceTotalMem
6273            .as_ref()
6274            .expect("Expected function, got error."))(bytes, device)
6275    }
6276    #[doc = " @}\n/\n/**\n  @defgroup Device Device Management\n  @{\n  This section describes the device management functions of HIP runtime API.\n/\n/**\n @brief Waits on all active streams on current device\n\n When this command is invoked, the host thread gets blocked until all the commands associated\n with streams associated with the device. HIP does not support multiple blocking modes (yet!).\n\n @returns #hipSuccess\n\n @see hipSetDevice, hipDeviceReset"]
6277    pub unsafe fn hipDeviceSynchronize(&self) -> hipError_t {
6278        (self
6279            .hipDeviceSynchronize
6280            .as_ref()
6281            .expect("Expected function, got error."))()
6282    }
6283    #[doc = " @brief The state of current device is discarded and updated to a fresh state.\n\n Calling this function deletes all streams created, memory allocated, kernels running, events\n created. Make sure that no other thread is using the device or streams, memory, kernels, events\n associated with the current device.\n\n @returns #hipSuccess\n\n @see hipDeviceSynchronize"]
6284    pub unsafe fn hipDeviceReset(&self) -> hipError_t {
6285        (self
6286            .hipDeviceReset
6287            .as_ref()
6288            .expect("Expected function, got error."))()
6289    }
6290    #[doc = " @brief Set default device to be used for subsequent hip API calls from this thread.\n\n @param[in] deviceId Valid device in range 0...hipGetDeviceCount().\n\n Sets @p device as the default device for the calling host thread.  Valid device id's are 0...\n (hipGetDeviceCount()-1).\n\n Many HIP APIs implicitly use the \"default device\" :\n\n - Any device memory subsequently allocated from this host thread (using hipMalloc) will be\n allocated on device.\n - Any streams or events created from this host thread will be associated with device.\n - Any kernels launched from this host thread (using hipLaunchKernel) will be executed on device\n (unless a specific stream is specified, in which case the device associated with that stream will\n be used).\n\n This function may be called from any host thread.  Multiple host threads may use the same device.\n This function does no synchronization with the previous or new device, and has very little\n runtime overhead. Applications can use hipSetDevice to quickly switch the default device before\n making a HIP runtime call which uses the default device.\n\n The default device is stored in thread-local-storage for each thread.\n Thread-pool implementations may inherit the default device of the previous thread.  A good\n practice is to always call hipSetDevice at the start of HIP coding sequency to establish a known\n standard device.\n\n @returns #hipSuccess, #hipErrorInvalidDevice, #hipErrorDeviceAlreadyInUse\n\n @see hipGetDevice, hipGetDeviceCount"]
6291    pub unsafe fn hipSetDevice(&self, deviceId: ::std::os::raw::c_int) -> hipError_t {
6292        (self
6293            .hipSetDevice
6294            .as_ref()
6295            .expect("Expected function, got error."))(deviceId)
6296    }
6297    #[doc = " @brief Return the default device id for the calling host thread.\n\n @param [out] device *device is written with the default device\n\n HIP maintains an default device for each thread using thread-local-storage.\n This device is used implicitly for HIP runtime APIs called by this thread.\n hipGetDevice returns in * @p device the default device for the calling host thread.\n\n @returns #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue\n\n @see hipSetDevice, hipGetDevicesizeBytes"]
6298    pub unsafe fn hipGetDevice(&self, deviceId: *mut ::std::os::raw::c_int) -> hipError_t {
6299        (self
6300            .hipGetDevice
6301            .as_ref()
6302            .expect("Expected function, got error."))(deviceId)
6303    }
6304    #[doc = " @brief Return number of compute-capable devices.\n\n @param [output] count Returns number of compute-capable devices.\n\n @returns #hipSuccess, #hipErrorNoDevice\n\n\n Returns in @p *count the number of devices that have ability to run compute commands.  If there\n are no such devices, then @ref hipGetDeviceCount will return #hipErrorNoDevice. If 1 or more\n devices can be found, then hipGetDeviceCount returns #hipSuccess."]
6305    pub unsafe fn hipGetDeviceCount(&self, count: *mut ::std::os::raw::c_int) -> hipError_t {
6306        (self
6307            .hipGetDeviceCount
6308            .as_ref()
6309            .expect("Expected function, got error."))(count)
6310    }
6311    #[doc = " @brief Query for a specific device attribute.\n\n @param [out] pi pointer to value to return\n @param [in] attr attribute to query\n @param [in] deviceId which device to query for information\n\n @returns #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue"]
6312    pub unsafe fn hipDeviceGetAttribute(
6313        &self,
6314        pi: *mut ::std::os::raw::c_int,
6315        attr: hipDeviceAttribute_t,
6316        deviceId: ::std::os::raw::c_int,
6317    ) -> hipError_t {
6318        (self
6319            .hipDeviceGetAttribute
6320            .as_ref()
6321            .expect("Expected function, got error."))(pi, attr, deviceId)
6322    }
6323    #[doc = " @brief Returns the default memory pool of the specified device\n\n @param [out] mem_pool Default memory pool to return\n @param [in] device    Device index for query the default memory pool\n\n @returns #chipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue, #hipErrorNotSupported\n\n @see hipDeviceGetDefaultMemPool, hipMallocAsync, hipMemPoolTrimTo, hipMemPoolGetAttribute,\n hipDeviceSetMemPool, hipMemPoolSetAttribute, hipMemPoolSetAccess, hipMemPoolGetAccess\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
6324    pub unsafe fn hipDeviceGetDefaultMemPool(
6325        &self,
6326        mem_pool: *mut hipMemPool_t,
6327        device: ::std::os::raw::c_int,
6328    ) -> hipError_t {
6329        (self
6330            .hipDeviceGetDefaultMemPool
6331            .as_ref()
6332            .expect("Expected function, got error."))(mem_pool, device)
6333    }
6334    #[doc = " @brief Sets the current memory pool of a device\n\n The memory pool must be local to the specified device.\n @p hipMallocAsync allocates from the current mempool of the provided stream's device.\n By default, a device's current memory pool is its default memory pool.\n\n @note Use @p hipMallocFromPoolAsync for asynchronous memory allocations from a device\n different than the one the stream runs on.\n\n @param [in] device   Device index for the update\n @param [in] mem_pool Memory pool for update as the current on the specified device\n\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidDevice, #hipErrorNotSupported\n\n @see hipDeviceGetDefaultMemPool, hipMallocAsync, hipMemPoolTrimTo, hipMemPoolGetAttribute,\n hipDeviceSetMemPool, hipMemPoolSetAttribute, hipMemPoolSetAccess, hipMemPoolGetAccess\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
6335    pub unsafe fn hipDeviceSetMemPool(
6336        &self,
6337        device: ::std::os::raw::c_int,
6338        mem_pool: hipMemPool_t,
6339    ) -> hipError_t {
6340        (self
6341            .hipDeviceSetMemPool
6342            .as_ref()
6343            .expect("Expected function, got error."))(device, mem_pool)
6344    }
6345    #[doc = " @brief Gets the current memory pool for the specified device\n\n Returns the last pool provided to @p hipDeviceSetMemPool for this device\n or the device's default memory pool if @p hipDeviceSetMemPool has never been called.\n By default the current mempool is the default mempool for a device,\n otherwise the returned pool must have been set with @p hipDeviceSetMemPool.\n\n @param [out] mem_pool Current memory pool on the specified device\n @param [in] device    Device index to query the current memory pool\n\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported\n\n @see hipDeviceGetDefaultMemPool, hipMallocAsync, hipMemPoolTrimTo, hipMemPoolGetAttribute,\n hipDeviceSetMemPool, hipMemPoolSetAttribute, hipMemPoolSetAccess, hipMemPoolGetAccess\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
6346    pub unsafe fn hipDeviceGetMemPool(
6347        &self,
6348        mem_pool: *mut hipMemPool_t,
6349        device: ::std::os::raw::c_int,
6350    ) -> hipError_t {
6351        (self
6352            .hipDeviceGetMemPool
6353            .as_ref()
6354            .expect("Expected function, got error."))(mem_pool, device)
6355    }
6356    #[doc = " @brief Returns device properties.\n\n @param [out] prop written with device properties\n @param [in]  deviceId which device to query for information\n\n @return #hipSuccess, #hipErrorInvalidDevice\n @bug HCC always returns 0 for maxThreadsPerMultiProcessor\n @bug HCC always returns 0 for regsPerBlock\n @bug HCC always returns 0 for l2CacheSize\n\n Populates hipGetDeviceProperties with information for the specified device."]
6357    pub unsafe fn hipGetDeviceProperties(
6358        &self,
6359        prop: *mut hipDeviceProp_t,
6360        deviceId: ::std::os::raw::c_int,
6361    ) -> hipError_t {
6362        (self
6363            .hipGetDeviceProperties
6364            .as_ref()
6365            .expect("Expected function, got error."))(prop, deviceId)
6366    }
6367    #[doc = " @brief Set L1/Shared cache partition.\n\n @param [in] cacheConfig\n\n @returns #hipSuccess, #hipErrorNotInitialized\n Note: AMD devices and some Nvidia GPUS do not support reconfigurable cache.  This hint is ignored\n on those architectures.\n"]
6368    pub unsafe fn hipDeviceSetCacheConfig(&self, cacheConfig: hipFuncCache_t) -> hipError_t {
6369        (self
6370            .hipDeviceSetCacheConfig
6371            .as_ref()
6372            .expect("Expected function, got error."))(cacheConfig)
6373    }
6374    #[doc = " @brief Get Cache configuration for a specific Device\n\n @param [out] cacheConfig\n\n @returns #hipSuccess, #hipErrorNotInitialized\n Note: AMD devices and some Nvidia GPUS do not support reconfigurable cache.  This hint is ignored\n on those architectures.\n"]
6375    pub unsafe fn hipDeviceGetCacheConfig(&self, cacheConfig: *mut hipFuncCache_t) -> hipError_t {
6376        (self
6377            .hipDeviceGetCacheConfig
6378            .as_ref()
6379            .expect("Expected function, got error."))(cacheConfig)
6380    }
6381    #[doc = " @brief Get Resource limits of current device\n\n @param [out] pValue\n @param [in]  limit\n\n @returns #hipSuccess, #hipErrorUnsupportedLimit, #hipErrorInvalidValue\n Note: Currently, only hipLimitMallocHeapSize is available\n"]
6382    pub unsafe fn hipDeviceGetLimit(&self, pValue: *mut usize, limit: hipLimit_t) -> hipError_t {
6383        (self
6384            .hipDeviceGetLimit
6385            .as_ref()
6386            .expect("Expected function, got error."))(pValue, limit)
6387    }
6388    #[doc = " @brief Set Resource limits of current device\n\n @param [in] limit\n @param [in] value\n\n @returns #hipSuccess, #hipErrorUnsupportedLimit, #hipErrorInvalidValue\n"]
6389    pub unsafe fn hipDeviceSetLimit(&self, limit: hipLimit_t, value: usize) -> hipError_t {
6390        (self
6391            .hipDeviceSetLimit
6392            .as_ref()
6393            .expect("Expected function, got error."))(limit, value)
6394    }
6395    #[doc = " @brief Returns bank width of shared memory for current device\n\n @param [out] pConfig\n\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotInitialized\n\n Note: AMD devices and some Nvidia GPUS do not support shared cache banking, and the hint is\n ignored on those architectures.\n"]
6396    pub unsafe fn hipDeviceGetSharedMemConfig(
6397        &self,
6398        pConfig: *mut hipSharedMemConfig,
6399    ) -> hipError_t {
6400        (self
6401            .hipDeviceGetSharedMemConfig
6402            .as_ref()
6403            .expect("Expected function, got error."))(pConfig)
6404    }
6405    #[doc = " @brief Gets the flags set for current device\n\n @param [out] flags\n\n @returns #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue"]
6406    pub unsafe fn hipGetDeviceFlags(&self, flags: *mut ::std::os::raw::c_uint) -> hipError_t {
6407        (self
6408            .hipGetDeviceFlags
6409            .as_ref()
6410            .expect("Expected function, got error."))(flags)
6411    }
6412    #[doc = " @brief The bank width of shared memory on current device is set\n\n @param [in] config\n\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotInitialized\n\n Note: AMD devices and some Nvidia GPUS do not support shared cache banking, and the hint is\n ignored on those architectures.\n"]
6413    pub unsafe fn hipDeviceSetSharedMemConfig(&self, config: hipSharedMemConfig) -> hipError_t {
6414        (self
6415            .hipDeviceSetSharedMemConfig
6416            .as_ref()
6417            .expect("Expected function, got error."))(config)
6418    }
6419    #[doc = " @brief The current device behavior is changed according the flags passed.\n\n @param [in] flags\n\n The schedule flags impact how HIP waits for the completion of a command running on a device.\n hipDeviceScheduleSpin         : HIP runtime will actively spin in the thread which submitted the\n work until the command completes.  This offers the lowest latency, but will consume a CPU core\n and may increase power. hipDeviceScheduleYield        : The HIP runtime will yield the CPU to\n system so that other tasks can use it.  This may increase latency to detect the completion but\n will consume less power and is friendlier to other tasks in the system.\n hipDeviceScheduleBlockingSync : On ROCm platform, this is a synonym for hipDeviceScheduleYield.\n hipDeviceScheduleAuto         : Use a hueristic to select between Spin and Yield modes.  If the\n number of HIP contexts is greater than the number of logical processors in the system, use Spin\n scheduling.  Else use Yield scheduling.\n\n\n hipDeviceMapHost              : Allow mapping host memory.  On ROCM, this is always allowed and\n the flag is ignored. hipDeviceLmemResizeToMax      : @warning ROCm silently ignores this flag.\n\n @returns #hipSuccess, #hipErrorInvalidDevice, #hipErrorSetOnActiveProcess\n\n"]
6420    pub unsafe fn hipSetDeviceFlags(&self, flags: ::std::os::raw::c_uint) -> hipError_t {
6421        (self
6422            .hipSetDeviceFlags
6423            .as_ref()
6424            .expect("Expected function, got error."))(flags)
6425    }
6426    #[doc = " @brief Device which matches hipDeviceProp_t is returned\n\n @param [out] device ID\n @param [in]  device properties pointer\n\n @returns #hipSuccess, #hipErrorInvalidValue"]
6427    pub unsafe fn hipChooseDevice(
6428        &self,
6429        device: *mut ::std::os::raw::c_int,
6430        prop: *const hipDeviceProp_t,
6431    ) -> hipError_t {
6432        (self
6433            .hipChooseDevice
6434            .as_ref()
6435            .expect("Expected function, got error."))(device, prop)
6436    }
6437    #[doc = " @brief Returns the link type and hop count between two devices\n\n @param [in] device1 Ordinal for device1\n @param [in] device2 Ordinal for device2\n @param [out] linktype Returns the link type (See hsa_amd_link_info_type_t) between the two devices\n @param [out] hopcount Returns the hop count between the two devices\n\n Queries and returns the HSA link type and the hop count between the two specified devices.\n\n @returns #hipSuccess, #hipInvalidDevice, #hipErrorRuntimeOther"]
6438    pub unsafe fn hipExtGetLinkTypeAndHopCount(
6439        &self,
6440        device1: ::std::os::raw::c_int,
6441        device2: ::std::os::raw::c_int,
6442        linktype: *mut u32,
6443        hopcount: *mut u32,
6444    ) -> hipError_t {
6445        (self
6446            .hipExtGetLinkTypeAndHopCount
6447            .as_ref()
6448            .expect("Expected function, got error."))(device1, device2, linktype, hopcount)
6449    }
6450    #[doc = " @brief Gets an interprocess memory handle for an existing device memory\n          allocation\n\n Takes a pointer to the base of an existing device memory allocation created\n with hipMalloc and exports it for use in another process. This is a\n lightweight operation and may be called multiple times on an allocation\n without adverse effects.\n\n If a region of memory is freed with hipFree and a subsequent call\n to hipMalloc returns memory with the same device address,\n hipIpcGetMemHandle will return a unique handle for the\n new memory.\n\n @param handle - Pointer to user allocated hipIpcMemHandle to return\n                    the handle in.\n @param devPtr - Base pointer to previously allocated device memory\n\n @returns\n hipSuccess,\n hipErrorInvalidHandle,\n hipErrorOutOfMemory,\n hipErrorMapFailed,\n"]
6451    pub unsafe fn hipIpcGetMemHandle(
6452        &self,
6453        handle: *mut hipIpcMemHandle_t,
6454        devPtr: *mut ::std::os::raw::c_void,
6455    ) -> hipError_t {
6456        (self
6457            .hipIpcGetMemHandle
6458            .as_ref()
6459            .expect("Expected function, got error."))(handle, devPtr)
6460    }
6461    #[doc = " @brief Opens an interprocess memory handle exported from another process\n          and returns a device pointer usable in the local process.\n\n Maps memory exported from another process with hipIpcGetMemHandle into\n the current device address space. For contexts on different devices\n hipIpcOpenMemHandle can attempt to enable peer access between the\n devices as if the user called hipDeviceEnablePeerAccess. This behavior is\n controlled by the hipIpcMemLazyEnablePeerAccess flag.\n hipDeviceCanAccessPeer can determine if a mapping is possible.\n\n Contexts that may open hipIpcMemHandles are restricted in the following way.\n hipIpcMemHandles from each device in a given process may only be opened\n by one context per device per other process.\n\n Memory returned from hipIpcOpenMemHandle must be freed with\n hipIpcCloseMemHandle.\n\n Calling hipFree on an exported memory region before calling\n hipIpcCloseMemHandle in the importing context will result in undefined\n behavior.\n\n @param devPtr - Returned device pointer\n @param handle - hipIpcMemHandle to open\n @param flags  - Flags for this operation. Must be specified as hipIpcMemLazyEnablePeerAccess\n\n @returns\n hipSuccess,\n hipErrorMapFailed,\n hipErrorInvalidHandle,\n hipErrorTooManyPeers\n\n @note During multiple processes, using the same memory handle opened by the current context,\n there is no guarantee that the same device poiter will be returned in @p *devPtr.\n This is diffrent from CUDA.\n"]
6462    pub unsafe fn hipIpcOpenMemHandle(
6463        &self,
6464        devPtr: *mut *mut ::std::os::raw::c_void,
6465        handle: hipIpcMemHandle_t,
6466        flags: ::std::os::raw::c_uint,
6467    ) -> hipError_t {
6468        (self
6469            .hipIpcOpenMemHandle
6470            .as_ref()
6471            .expect("Expected function, got error."))(devPtr, handle, flags)
6472    }
6473    #[doc = " @brief Close memory mapped with hipIpcOpenMemHandle\n\n Unmaps memory returnd by hipIpcOpenMemHandle. The original allocation\n in the exporting process as well as imported mappings in other processes\n will be unaffected.\n\n Any resources used to enable peer access will be freed if this is the\n last mapping using them.\n\n @param devPtr - Device pointer returned by hipIpcOpenMemHandle\n\n @returns\n hipSuccess,\n hipErrorMapFailed,\n hipErrorInvalidHandle,\n"]
6474    pub unsafe fn hipIpcCloseMemHandle(&self, devPtr: *mut ::std::os::raw::c_void) -> hipError_t {
6475        (self
6476            .hipIpcCloseMemHandle
6477            .as_ref()
6478            .expect("Expected function, got error."))(devPtr)
6479    }
6480    #[doc = " @brief Gets an opaque interprocess handle for an event.\n\n This opaque handle may be copied into other processes and opened with hipIpcOpenEventHandle.\n Then hipEventRecord, hipEventSynchronize, hipStreamWaitEvent and hipEventQuery may be used in\n either process. Operations on the imported event after the exported event has been freed with hipEventDestroy\n will result in undefined behavior.\n\n @param[out]  handle Pointer to hipIpcEventHandle to return the opaque event handle\n @param[in]   event  Event allocated with hipEventInterprocess and hipEventDisableTiming flags\n\n @returns #hipSuccess, #hipErrorInvalidConfiguration, #hipErrorInvalidValue\n"]
6481    pub unsafe fn hipIpcGetEventHandle(
6482        &self,
6483        handle: *mut hipIpcEventHandle_t,
6484        event: hipEvent_t,
6485    ) -> hipError_t {
6486        (self
6487            .hipIpcGetEventHandle
6488            .as_ref()
6489            .expect("Expected function, got error."))(handle, event)
6490    }
6491    #[doc = " @brief Opens an interprocess event handles.\n\n Opens an interprocess event handle exported from another process with cudaIpcGetEventHandle. The returned\n hipEvent_t behaves like a locally created event with the hipEventDisableTiming flag specified. This event\n need be freed with hipEventDestroy. Operations on the imported event after the exported event has been freed\n with hipEventDestroy will result in undefined behavior. If the function is called within the same process where\n handle is returned by hipIpcGetEventHandle, it will return hipErrorInvalidContext.\n\n @param[out]  event  Pointer to hipEvent_t to return the event\n @param[in]   handle The opaque interprocess handle to open\n\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidContext\n"]
6492    pub unsafe fn hipIpcOpenEventHandle(
6493        &self,
6494        event: *mut hipEvent_t,
6495        handle: hipIpcEventHandle_t,
6496    ) -> hipError_t {
6497        (self
6498            .hipIpcOpenEventHandle
6499            .as_ref()
6500            .expect("Expected function, got error."))(event, handle)
6501    }
6502    #[doc = " @}\n/\n/**\n\n  @defgroup Execution Execution Control\n  @{\n  This section describes the execution control functions of HIP runtime API.\n\n/\n/**\n @brief Set attribute for a specific function\n\n @param [in] func;\n @param [in] attr;\n @param [in] value;\n\n @returns #hipSuccess, #hipErrorInvalidDeviceFunction, #hipErrorInvalidValue\n\n Note: AMD devices and some Nvidia GPUS do not support shared cache banking, and the hint is\n ignored on those architectures.\n"]
6503    pub unsafe fn hipFuncSetAttribute(
6504        &self,
6505        func: *const ::std::os::raw::c_void,
6506        attr: hipFuncAttribute,
6507        value: ::std::os::raw::c_int,
6508    ) -> hipError_t {
6509        (self
6510            .hipFuncSetAttribute
6511            .as_ref()
6512            .expect("Expected function, got error."))(func, attr, value)
6513    }
6514    #[doc = " @brief Set Cache configuration for a specific function\n\n @param [in] config;\n\n @returns #hipSuccess, #hipErrorNotInitialized\n Note: AMD devices and some Nvidia GPUS do not support reconfigurable cache.  This hint is ignored\n on those architectures.\n"]
6515    pub unsafe fn hipFuncSetCacheConfig(
6516        &self,
6517        func: *const ::std::os::raw::c_void,
6518        config: hipFuncCache_t,
6519    ) -> hipError_t {
6520        (self
6521            .hipFuncSetCacheConfig
6522            .as_ref()
6523            .expect("Expected function, got error."))(func, config)
6524    }
6525    #[doc = " @brief Set shared memory configuation for a specific function\n\n @param [in] func\n @param [in] config\n\n @returns #hipSuccess, #hipErrorInvalidDeviceFunction, #hipErrorInvalidValue\n\n Note: AMD devices and some Nvidia GPUS do not support shared cache banking, and the hint is\n ignored on those architectures.\n"]
6526    pub unsafe fn hipFuncSetSharedMemConfig(
6527        &self,
6528        func: *const ::std::os::raw::c_void,
6529        config: hipSharedMemConfig,
6530    ) -> hipError_t {
6531        (self
6532            .hipFuncSetSharedMemConfig
6533            .as_ref()
6534            .expect("Expected function, got error."))(func, config)
6535    }
6536    #[doc = " @}\n/\n/**\n-------------------------------------------------------------------------------------------------\n-------------------------------------------------------------------------------------------------\n  @defgroup Error Error Handling\n  @{\n  This section describes the error handling functions of HIP runtime API.\n/\n/**\n @brief Return last error returned by any HIP runtime API call and resets the stored error code to\n #hipSuccess\n\n @returns return code from last HIP called from the active host thread\n\n Returns the last error that has been returned by any of the runtime calls in the same host\n thread, and then resets the saved error to #hipSuccess.\n\n @see hipGetErrorString, hipGetLastError, hipPeakAtLastError, hipError_t"]
6537    pub unsafe fn hipGetLastError(&self) -> hipError_t {
6538        (self
6539            .hipGetLastError
6540            .as_ref()
6541            .expect("Expected function, got error."))()
6542    }
6543    #[doc = " @brief Return last error returned by any HIP runtime API call.\n\n @return #hipSuccess\n\n Returns the last error that has been returned by any of the runtime calls in the same host\n thread. Unlike hipGetLastError, this function does not reset the saved error code.\n\n @see hipGetErrorString, hipGetLastError, hipPeakAtLastError, hipError_t"]
6544    pub unsafe fn hipPeekAtLastError(&self) -> hipError_t {
6545        (self
6546            .hipPeekAtLastError
6547            .as_ref()
6548            .expect("Expected function, got error."))()
6549    }
6550    #[doc = " @brief Return hip error as text string form.\n\n @param hip_error Error code to convert to name.\n @return const char pointer to the NULL-terminated error name\n\n @see hipGetErrorString, hipGetLastError, hipPeakAtLastError, hipError_t"]
6551    pub unsafe fn hipGetErrorName(&self, hip_error: hipError_t) -> *const ::std::os::raw::c_char {
6552        (self
6553            .hipGetErrorName
6554            .as_ref()
6555            .expect("Expected function, got error."))(hip_error)
6556    }
6557    #[doc = " @brief Return handy text string message to explain the error which occurred\n\n @param hipError Error code to convert to string.\n @return const char pointer to the NULL-terminated error string\n\n @see hipGetErrorName, hipGetLastError, hipPeakAtLastError, hipError_t"]
6558    pub unsafe fn hipGetErrorString(&self, hipError: hipError_t) -> *const ::std::os::raw::c_char {
6559        (self
6560            .hipGetErrorString
6561            .as_ref()
6562            .expect("Expected function, got error."))(hipError)
6563    }
6564    #[doc = " @brief Return hip error as text string form.\n\n @param [in] hipError Error code to convert to string.\n @param [out] const char pointer to the NULL-terminated error string\n @return #hipSuccess, #hipErrorInvalidValue\n\n @see hipGetErrorName, hipGetLastError, hipPeakAtLastError, hipError_t"]
6565    pub unsafe fn hipDrvGetErrorName(
6566        &self,
6567        hipError: hipError_t,
6568        errorString: *mut *const ::std::os::raw::c_char,
6569    ) -> hipError_t {
6570        (self
6571            .hipDrvGetErrorName
6572            .as_ref()
6573            .expect("Expected function, got error."))(hipError, errorString)
6574    }
6575    #[doc = " @brief Return handy text string message to explain the error which occurred\n\n @param [in] hipError Error code to convert to string.\n @param [out] const char pointer to the NULL-terminated error string\n @return #hipSuccess, #hipErrorInvalidValue\n\n @see hipGetErrorName, hipGetLastError, hipPeakAtLastError, hipError_t"]
6576    pub unsafe fn hipDrvGetErrorString(
6577        &self,
6578        hipError: hipError_t,
6579        errorString: *mut *const ::std::os::raw::c_char,
6580    ) -> hipError_t {
6581        (self
6582            .hipDrvGetErrorString
6583            .as_ref()
6584            .expect("Expected function, got error."))(hipError, errorString)
6585    }
6586    #[doc = " @brief Create an asynchronous stream.\n\n @param[in, out] stream Valid pointer to hipStream_t.  This function writes the memory with the\n newly created stream.\n @return #hipSuccess, #hipErrorInvalidValue\n\n Create a new asynchronous stream.  @p stream returns an opaque handle that can be used to\n reference the newly created stream in subsequent hipStream* commands.  The stream is allocated on\n the heap and will remain allocated even if the handle goes out-of-scope.  To release the memory\n used by the stream, applicaiton must call hipStreamDestroy.\n\n @return #hipSuccess, #hipErrorInvalidValue\n\n @see hipStreamCreateWithFlags, hipStreamCreateWithPriority, hipStreamSynchronize, hipStreamWaitEvent, hipStreamDestroy"]
6587    pub unsafe fn hipStreamCreate(&self, stream: *mut hipStream_t) -> hipError_t {
6588        (self
6589            .hipStreamCreate
6590            .as_ref()
6591            .expect("Expected function, got error."))(stream)
6592    }
6593    #[doc = " @brief Create an asynchronous stream.\n\n @param[in, out] stream Pointer to new stream\n @param[in ] flags to control stream creation.\n @return #hipSuccess, #hipErrorInvalidValue\n\n Create a new asynchronous stream.  @p stream returns an opaque handle that can be used to\n reference the newly created stream in subsequent hipStream* commands.  The stream is allocated on\n the heap and will remain allocated even if the handle goes out-of-scope.  To release the memory\n used by the stream, applicaiton must call hipStreamDestroy. Flags controls behavior of the\n stream.  See #hipStreamDefault, #hipStreamNonBlocking.\n\n\n @see hipStreamCreate, hipStreamCreateWithPriority, hipStreamSynchronize, hipStreamWaitEvent, hipStreamDestroy"]
6594    pub unsafe fn hipStreamCreateWithFlags(
6595        &self,
6596        stream: *mut hipStream_t,
6597        flags: ::std::os::raw::c_uint,
6598    ) -> hipError_t {
6599        (self
6600            .hipStreamCreateWithFlags
6601            .as_ref()
6602            .expect("Expected function, got error."))(stream, flags)
6603    }
6604    #[doc = " @brief Create an asynchronous stream with the specified priority.\n\n @param[in, out] stream Pointer to new stream\n @param[in ] flags to control stream creation.\n @param[in ] priority of the stream. Lower numbers represent higher priorities.\n @return #hipSuccess, #hipErrorInvalidValue\n\n Create a new asynchronous stream with the specified priority.  @p stream returns an opaque handle\n that can be used to reference the newly created stream in subsequent hipStream* commands.  The\n stream is allocated on the heap and will remain allocated even if the handle goes out-of-scope.\n To release the memory used by the stream, applicaiton must call hipStreamDestroy. Flags controls\n behavior of the stream.  See #hipStreamDefault, #hipStreamNonBlocking.\n\n\n @see hipStreamCreate, hipStreamSynchronize, hipStreamWaitEvent, hipStreamDestroy"]
6605    pub unsafe fn hipStreamCreateWithPriority(
6606        &self,
6607        stream: *mut hipStream_t,
6608        flags: ::std::os::raw::c_uint,
6609        priority: ::std::os::raw::c_int,
6610    ) -> hipError_t {
6611        (self
6612            .hipStreamCreateWithPriority
6613            .as_ref()
6614            .expect("Expected function, got error."))(stream, flags, priority)
6615    }
6616    #[doc = " @brief Returns numerical values that correspond to the least and greatest stream priority.\n\n @param[in, out] leastPriority pointer in which value corresponding to least priority is returned.\n @param[in, out] greatestPriority pointer in which value corresponding to greatest priority is returned.\n\n Returns in *leastPriority and *greatestPriority the numerical values that correspond to the least\n and greatest stream priority respectively. Stream priorities follow a convention where lower numbers\n imply greater priorities. The range of meaningful stream priorities is given by\n [*greatestPriority, *leastPriority]. If the user attempts to create a stream with a priority value\n that is outside the the meaningful range as specified by this API, the priority is automatically\n clamped to within the valid range."]
6617    pub unsafe fn hipDeviceGetStreamPriorityRange(
6618        &self,
6619        leastPriority: *mut ::std::os::raw::c_int,
6620        greatestPriority: *mut ::std::os::raw::c_int,
6621    ) -> hipError_t {
6622        (self
6623            .hipDeviceGetStreamPriorityRange
6624            .as_ref()
6625            .expect("Expected function, got error."))(leastPriority, greatestPriority)
6626    }
6627    #[doc = " @brief Destroys the specified stream.\n\n @param[in, out] stream Valid pointer to hipStream_t.  This function writes the memory with the\n newly created stream.\n @return #hipSuccess #hipErrorInvalidHandle\n\n Destroys the specified stream.\n\n If commands are still executing on the specified stream, some may complete execution before the\n queue is deleted.\n\n The queue may be destroyed while some commands are still inflight, or may wait for all commands\n queued to the stream before destroying it.\n\n @see hipStreamCreate, hipStreamCreateWithFlags, hipStreamCreateWithPriority, hipStreamQuery, hipStreamWaitEvent,\n hipStreamSynchronize"]
6628    pub unsafe fn hipStreamDestroy(&self, stream: hipStream_t) -> hipError_t {
6629        (self
6630            .hipStreamDestroy
6631            .as_ref()
6632            .expect("Expected function, got error."))(stream)
6633    }
6634    #[doc = " @brief Return #hipSuccess if all of the operations in the specified @p stream have completed, or\n #hipErrorNotReady if not.\n\n @param[in] stream stream to query\n\n @return #hipSuccess, #hipErrorNotReady, #hipErrorInvalidHandle\n\n This is thread-safe and returns a snapshot of the current state of the queue.  However, if other\n host threads are sending work to the stream, the status may change immediately after the function\n is called.  It is typically used for debug.\n\n @see hipStreamCreate, hipStreamCreateWithFlags, hipStreamCreateWithPriority, hipStreamWaitEvent, hipStreamSynchronize,\n hipStreamDestroy"]
6635    pub unsafe fn hipStreamQuery(&self, stream: hipStream_t) -> hipError_t {
6636        (self
6637            .hipStreamQuery
6638            .as_ref()
6639            .expect("Expected function, got error."))(stream)
6640    }
6641    #[doc = " @brief Wait for all commands in stream to complete.\n\n @param[in] stream stream identifier.\n\n @return #hipSuccess, #hipErrorInvalidHandle\n\n This command is host-synchronous : the host will block until the specified stream is empty.\n\n This command follows standard null-stream semantics.  Specifically, specifying the null stream\n will cause the command to wait for other streams on the same device to complete all pending\n operations.\n\n This command honors the hipDeviceLaunchBlocking flag, which controls whether the wait is active\n or blocking.\n\n @see hipStreamCreate, hipStreamCreateWithFlags, hipStreamCreateWithPriority, hipStreamWaitEvent, hipStreamDestroy\n"]
6642    pub unsafe fn hipStreamSynchronize(&self, stream: hipStream_t) -> hipError_t {
6643        (self
6644            .hipStreamSynchronize
6645            .as_ref()
6646            .expect("Expected function, got error."))(stream)
6647    }
6648    #[doc = " @brief Make the specified compute stream wait for an event\n\n @param[in] stream stream to make wait.\n @param[in] event event to wait on\n @param[in] flags control operation [must be 0]\n\n @return #hipSuccess, #hipErrorInvalidHandle\n\n This function inserts a wait operation into the specified stream.\n All future work submitted to @p stream will wait until @p event reports completion before\n beginning execution.\n\n This function only waits for commands in the current stream to complete.  Notably,, this function\n does not impliciy wait for commands in the default stream to complete, even if the specified\n stream is created with hipStreamNonBlocking = 0.\n\n @see hipStreamCreate, hipStreamCreateWithFlags, hipStreamCreateWithPriority, hipStreamSynchronize, hipStreamDestroy"]
6649    pub unsafe fn hipStreamWaitEvent(
6650        &self,
6651        stream: hipStream_t,
6652        event: hipEvent_t,
6653        flags: ::std::os::raw::c_uint,
6654    ) -> hipError_t {
6655        (self
6656            .hipStreamWaitEvent
6657            .as_ref()
6658            .expect("Expected function, got error."))(stream, event, flags)
6659    }
6660    #[doc = " @brief Return flags associated with this stream.\n\n @param[in] stream stream to be queried\n @param[in,out] flags Pointer to an unsigned integer in which the stream's flags are returned\n @return #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidHandle\n\n @returns #hipSuccess #hipErrorInvalidValue #hipErrorInvalidHandle\n\n Return flags associated with this stream in *@p flags.\n\n @see hipStreamCreateWithFlags"]
6661    pub unsafe fn hipStreamGetFlags(
6662        &self,
6663        stream: hipStream_t,
6664        flags: *mut ::std::os::raw::c_uint,
6665    ) -> hipError_t {
6666        (self
6667            .hipStreamGetFlags
6668            .as_ref()
6669            .expect("Expected function, got error."))(stream, flags)
6670    }
6671    #[doc = " @brief Query the priority of a stream.\n\n @param[in] stream stream to be queried\n @param[in,out] priority Pointer to an unsigned integer in which the stream's priority is returned\n @return #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidHandle\n\n @returns #hipSuccess #hipErrorInvalidValue #hipErrorInvalidHandle\n\n Query the priority of a stream. The priority is returned in in priority.\n\n @see hipStreamCreateWithFlags"]
6672    pub unsafe fn hipStreamGetPriority(
6673        &self,
6674        stream: hipStream_t,
6675        priority: *mut ::std::os::raw::c_int,
6676    ) -> hipError_t {
6677        (self
6678            .hipStreamGetPriority
6679            .as_ref()
6680            .expect("Expected function, got error."))(stream, priority)
6681    }
6682    #[doc = " @brief Create an asynchronous stream with the specified CU mask.\n\n @param[in, out] stream Pointer to new stream\n @param[in ] cuMaskSize Size of CU mask bit array passed in.\n @param[in ] cuMask Bit-vector representing the CU mask. Each active bit represents using one CU.\n The first 32 bits represent the first 32 CUs, and so on. If its size is greater than physical\n CU number (i.e., multiProcessorCount member of hipDeviceProp_t), the extra elements are ignored.\n It is user's responsibility to make sure the input is meaningful.\n @return #hipSuccess, #hipErrorInvalidHandle, #hipErrorInvalidValue\n\n Create a new asynchronous stream with the specified CU mask.  @p stream returns an opaque handle\n that can be used to reference the newly created stream in subsequent hipStream* commands.  The\n stream is allocated on the heap and will remain allocated even if the handle goes out-of-scope.\n To release the memory used by the stream, application must call hipStreamDestroy.\n\n\n @see hipStreamCreate, hipStreamSynchronize, hipStreamWaitEvent, hipStreamDestroy"]
6683    pub unsafe fn hipExtStreamCreateWithCUMask(
6684        &self,
6685        stream: *mut hipStream_t,
6686        cuMaskSize: u32,
6687        cuMask: *const u32,
6688    ) -> hipError_t {
6689        (self
6690            .hipExtStreamCreateWithCUMask
6691            .as_ref()
6692            .expect("Expected function, got error."))(stream, cuMaskSize, cuMask)
6693    }
6694    #[doc = " @brief Get CU mask associated with an asynchronous stream\n\n @param[in] stream stream to be queried\n @param[in] cuMaskSize number of the block of memories (uint32_t *) allocated by user\n @param[out] cuMask Pointer to a pre-allocated block of memories (uint32_t *) in which\n the stream's CU mask is returned. The CU mask is returned in a chunck of 32 bits where\n each active bit represents one active CU\n @return #hipSuccess, #hipErrorInvalidHandle, #hipErrorInvalidValue\n\n @see hipStreamCreate, hipStreamSynchronize, hipStreamWaitEvent, hipStreamDestroy"]
6695    pub unsafe fn hipExtStreamGetCUMask(
6696        &self,
6697        stream: hipStream_t,
6698        cuMaskSize: u32,
6699        cuMask: *mut u32,
6700    ) -> hipError_t {
6701        (self
6702            .hipExtStreamGetCUMask
6703            .as_ref()
6704            .expect("Expected function, got error."))(stream, cuMaskSize, cuMask)
6705    }
6706    #[doc = " @brief Adds a callback to be called on the host after all currently enqueued\n items in the stream have completed.  For each\n hipStreamAddCallback call, a callback will be executed exactly once.\n The callback will block later work in the stream until it is finished.\n @param[in] stream   - Stream to add callback to\n @param[in] callback - The function to call once preceding stream operations are complete\n @param[in] userData - User specified data to be passed to the callback function\n @param[in] flags    - Reserved for future use, must be 0\n @return #hipSuccess, #hipErrorInvalidHandle, #hipErrorNotSupported\n\n @see hipStreamCreate, hipStreamCreateWithFlags, hipStreamQuery, hipStreamSynchronize,\n hipStreamWaitEvent, hipStreamDestroy, hipStreamCreateWithPriority\n"]
6707    pub unsafe fn hipStreamAddCallback(
6708        &self,
6709        stream: hipStream_t,
6710        callback: hipStreamCallback_t,
6711        userData: *mut ::std::os::raw::c_void,
6712        flags: ::std::os::raw::c_uint,
6713    ) -> hipError_t {
6714        (self
6715            .hipStreamAddCallback
6716            .as_ref()
6717            .expect("Expected function, got error."))(stream, callback, userData, flags)
6718    }
6719    #[doc = " @}\n/\n/**\n-------------------------------------------------------------------------------------------------\n-------------------------------------------------------------------------------------------------\n  @defgroup StreamM Stream Memory Operations\n  @{\n  This section describes Stream Memory Wait and Write functions of HIP runtime API.\n/\n/**\n @brief Enqueues a wait command to the stream.[BETA]\n\n @param [in] stream - Stream identifier\n @param [in] ptr    - Pointer to memory object allocated using 'hipMallocSignalMemory' flag\n @param [in] value  - Value to be used in compare operation\n @param [in] flags  - Defines the compare operation, supported values are hipStreamWaitValueGte\n hipStreamWaitValueEq, hipStreamWaitValueAnd and hipStreamWaitValueNor\n @param [in] mask   - Mask to be applied on value at memory before it is compared with value,\n default value is set to enable every bit\n\n @returns #hipSuccess, #hipErrorInvalidValue\n\n Enqueues a wait command to the stream, all operations enqueued  on this stream after this, will\n not execute until the defined wait condition is true.\n\n hipStreamWaitValueGte: waits until *ptr&mask >= value\n hipStreamWaitValueEq : waits until *ptr&mask == value\n hipStreamWaitValueAnd: waits until ((*ptr&mask) & value) != 0\n hipStreamWaitValueNor: waits until ~((*ptr&mask) | (value&mask)) != 0\n\n @note when using 'hipStreamWaitValueNor', mask is applied on both 'value' and '*ptr'.\n\n @note Support for hipStreamWaitValue32 can be queried using 'hipDeviceGetAttribute()' and\n 'hipDeviceAttributeCanUseStreamWaitValue' flag.\n\n @beta This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n\n @see hipExtMallocWithFlags, hipFree, hipStreamWaitValue64, hipStreamWriteValue64,\n hipStreamWriteValue32, hipDeviceGetAttribute"]
6720    pub unsafe fn hipStreamWaitValue32(
6721        &self,
6722        stream: hipStream_t,
6723        ptr: *mut ::std::os::raw::c_void,
6724        value: u32,
6725        flags: ::std::os::raw::c_uint,
6726        mask: u32,
6727    ) -> hipError_t {
6728        (self
6729            .hipStreamWaitValue32
6730            .as_ref()
6731            .expect("Expected function, got error."))(stream, ptr, value, flags, mask)
6732    }
6733    #[doc = " @brief Enqueues a wait command to the stream.[BETA]\n\n @param [in] stream - Stream identifier\n @param [in] ptr    - Pointer to memory object allocated using 'hipMallocSignalMemory' flag\n @param [in] value  - Value to be used in compare operation\n @param [in] flags  - Defines the compare operation, supported values are hipStreamWaitValueGte\n hipStreamWaitValueEq, hipStreamWaitValueAnd and hipStreamWaitValueNor.\n @param [in] mask   - Mask to be applied on value at memory before it is compared with value\n default value is set to enable every bit\n\n @returns #hipSuccess, #hipErrorInvalidValue\n\n Enqueues a wait command to the stream, all operations enqueued  on this stream after this, will\n not execute until the defined wait condition is true.\n\n hipStreamWaitValueGte: waits until *ptr&mask >= value\n hipStreamWaitValueEq : waits until *ptr&mask == value\n hipStreamWaitValueAnd: waits until ((*ptr&mask) & value) != 0\n hipStreamWaitValueNor: waits until ~((*ptr&mask) | (value&mask)) != 0\n\n @note when using 'hipStreamWaitValueNor', mask is applied on both 'value' and '*ptr'.\n\n @note Support for hipStreamWaitValue64 can be queried using 'hipDeviceGetAttribute()' and\n 'hipDeviceAttributeCanUseStreamWaitValue' flag.\n\n @beta This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n\n @see hipExtMallocWithFlags, hipFree, hipStreamWaitValue32, hipStreamWriteValue64,\n hipStreamWriteValue32, hipDeviceGetAttribute"]
6734    pub unsafe fn hipStreamWaitValue64(
6735        &self,
6736        stream: hipStream_t,
6737        ptr: *mut ::std::os::raw::c_void,
6738        value: u64,
6739        flags: ::std::os::raw::c_uint,
6740        mask: u64,
6741    ) -> hipError_t {
6742        (self
6743            .hipStreamWaitValue64
6744            .as_ref()
6745            .expect("Expected function, got error."))(stream, ptr, value, flags, mask)
6746    }
6747    #[doc = " @brief Enqueues a write command to the stream.[BETA]\n\n @param [in] stream - Stream identifier\n @param [in] ptr    - Pointer to a GPU accessible memory object\n @param [in] value  - Value to be written\n @param [in] flags  - reserved, ignored for now, will be used in future releases\n\n @returns #hipSuccess, #hipErrorInvalidValue\n\n Enqueues a write command to the stream, write operation is performed after all earlier commands\n on this stream have completed the execution.\n\n @beta This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n\n @see hipExtMallocWithFlags, hipFree, hipStreamWriteValue32, hipStreamWaitValue32,\n hipStreamWaitValue64"]
6748    pub unsafe fn hipStreamWriteValue32(
6749        &self,
6750        stream: hipStream_t,
6751        ptr: *mut ::std::os::raw::c_void,
6752        value: u32,
6753        flags: ::std::os::raw::c_uint,
6754    ) -> hipError_t {
6755        (self
6756            .hipStreamWriteValue32
6757            .as_ref()
6758            .expect("Expected function, got error."))(stream, ptr, value, flags)
6759    }
6760    #[doc = " @brief Enqueues a write command to the stream.[BETA]\n\n @param [in] stream - Stream identifier\n @param [in] ptr    - Pointer to a GPU accessible memory object\n @param [in] value  - Value to be written\n @param [in] flags  - reserved, ignored for now, will be used in future releases\n\n @returns #hipSuccess, #hipErrorInvalidValue\n\n Enqueues a write command to the stream, write operation is performed after all earlier commands\n on this stream have completed the execution.\n\n @beta This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n\n @see hipExtMallocWithFlags, hipFree, hipStreamWriteValue32, hipStreamWaitValue32,\n hipStreamWaitValue64"]
6761    pub unsafe fn hipStreamWriteValue64(
6762        &self,
6763        stream: hipStream_t,
6764        ptr: *mut ::std::os::raw::c_void,
6765        value: u64,
6766        flags: ::std::os::raw::c_uint,
6767    ) -> hipError_t {
6768        (self
6769            .hipStreamWriteValue64
6770            .as_ref()
6771            .expect("Expected function, got error."))(stream, ptr, value, flags)
6772    }
6773    #[doc = " @}\n/\n/**\n-------------------------------------------------------------------------------------------------\n-------------------------------------------------------------------------------------------------\n  @defgroup Event Event Management\n  @{\n  This section describes the event management functions of HIP runtime API.\n/\n/**\n @brief Create an event with the specified flags\n\n @param[in,out] event Returns the newly created event.\n @param[in] flags     Flags to control event behavior.  Valid values are #hipEventDefault,\n#hipEventBlockingSync, #hipEventDisableTiming, #hipEventInterprocess\n #hipEventDefault : Default flag.  The event will use active synchronization and will support\ntiming.  Blocking synchronization provides lowest possible latency at the expense of dedicating a\nCPU to poll on the event.\n #hipEventBlockingSync : The event will use blocking synchronization : if hipEventSynchronize is\ncalled on this event, the thread will block until the event completes.  This can increase latency\nfor the synchroniation but can result in lower power and more resources for other CPU threads.\n #hipEventDisableTiming : Disable recording of timing information. Events created with this flag\nwould not record profiling data and provide best performance if used for synchronization.\n #hipEventInterprocess : The event can be used as an interprocess event. hipEventDisableTiming\nflag also must be set when hipEventInterprocess flag is set.\n\n @returns #hipSuccess, #hipErrorNotInitialized, #hipErrorInvalidValue,\n#hipErrorLaunchFailure, #hipErrorOutOfMemory\n\n @see hipEventCreate, hipEventSynchronize, hipEventDestroy, hipEventElapsedTime"]
6774    pub unsafe fn hipEventCreateWithFlags(
6775        &self,
6776        event: *mut hipEvent_t,
6777        flags: ::std::os::raw::c_uint,
6778    ) -> hipError_t {
6779        (self
6780            .hipEventCreateWithFlags
6781            .as_ref()
6782            .expect("Expected function, got error."))(event, flags)
6783    }
6784    #[doc = "  Create an event\n\n @param[in,out] event Returns the newly created event.\n\n @returns #hipSuccess, #hipErrorNotInitialized, #hipErrorInvalidValue,\n #hipErrorLaunchFailure, #hipErrorOutOfMemory\n\n @see hipEventCreateWithFlags, hipEventRecord, hipEventQuery, hipEventSynchronize,\n hipEventDestroy, hipEventElapsedTime"]
6785    pub unsafe fn hipEventCreate(&self, event: *mut hipEvent_t) -> hipError_t {
6786        (self
6787            .hipEventCreate
6788            .as_ref()
6789            .expect("Expected function, got error."))(event)
6790    }
6791    pub unsafe fn hipEventRecord(&self, event: hipEvent_t, stream: hipStream_t) -> hipError_t {
6792        (self
6793            .hipEventRecord
6794            .as_ref()
6795            .expect("Expected function, got error."))(event, stream)
6796    }
6797    #[doc = "  @brief Destroy the specified event.\n\n  @param[in] event Event to destroy.\n  @returns #hipSuccess, #hipErrorNotInitialized, #hipErrorInvalidValue,\n #hipErrorLaunchFailure\n\n  Releases memory associated with the event.  If the event is recording but has not completed\n recording when hipEventDestroy() is called, the function will return immediately and the\n completion_future resources will be released later, when the hipDevice is synchronized.\n\n @see hipEventCreate, hipEventCreateWithFlags, hipEventQuery, hipEventSynchronize, hipEventRecord,\n hipEventElapsedTime\n\n @returns #hipSuccess"]
6798    pub unsafe fn hipEventDestroy(&self, event: hipEvent_t) -> hipError_t {
6799        (self
6800            .hipEventDestroy
6801            .as_ref()
6802            .expect("Expected function, got error."))(event)
6803    }
6804    #[doc = "  @brief Wait for an event to complete.\n\n  This function will block until the event is ready, waiting for all previous work in the stream\n specified when event was recorded with hipEventRecord().\n\n  If hipEventRecord() has not been called on @p event, this function returns immediately.\n\n  TODO-hip- This function needs to support hipEventBlockingSync parameter.\n\n  @param[in] event Event on which to wait.\n  @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotInitialized,\n #hipErrorInvalidHandle, #hipErrorLaunchFailure\n\n  @see hipEventCreate, hipEventCreateWithFlags, hipEventQuery, hipEventDestroy, hipEventRecord,\n hipEventElapsedTime"]
6805    pub unsafe fn hipEventSynchronize(&self, event: hipEvent_t) -> hipError_t {
6806        (self
6807            .hipEventSynchronize
6808            .as_ref()
6809            .expect("Expected function, got error."))(event)
6810    }
6811    #[doc = " @brief Return the elapsed time between two events.\n\n @param[out] ms : Return time between start and stop in ms.\n @param[in]   start : Start event.\n @param[in]   stop  : Stop event.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotReady, #hipErrorInvalidHandle,\n #hipErrorNotInitialized, #hipErrorLaunchFailure\n\n Computes the elapsed time between two events. Time is computed in ms, with\n a resolution of approximately 1 us.\n\n Events which are recorded in a NULL stream will block until all commands\n on all other streams complete execution, and then record the timestamp.\n\n Events which are recorded in a non-NULL stream will record their timestamp\n when they reach the head of the specified stream, after all previous\n commands in that stream have completed executing.  Thus the time that\n the event recorded may be significantly after the host calls hipEventRecord().\n\n If hipEventRecord() has not been called on either event, then #hipErrorInvalidHandle is\n returned. If hipEventRecord() has been called on both events, but the timestamp has not yet been\n recorded on one or both events (that is, hipEventQuery() would return #hipErrorNotReady on at\n least one of the events), then #hipErrorNotReady is returned.\n\n @see hipEventCreate, hipEventCreateWithFlags, hipEventQuery, hipEventDestroy, hipEventRecord,\n hipEventSynchronize"]
6812    pub unsafe fn hipEventElapsedTime(
6813        &self,
6814        ms: *mut f32,
6815        start: hipEvent_t,
6816        stop: hipEvent_t,
6817    ) -> hipError_t {
6818        (self
6819            .hipEventElapsedTime
6820            .as_ref()
6821            .expect("Expected function, got error."))(ms, start, stop)
6822    }
6823    #[doc = " @brief Query event status\n\n @param[in] event Event to query.\n @returns #hipSuccess, #hipErrorNotReady, #hipErrorInvalidHandle, #hipErrorInvalidValue,\n #hipErrorNotInitialized, #hipErrorLaunchFailure\n\n Query the status of the specified event.  This function will return #hipSuccess if all\n commands in the appropriate stream (specified to hipEventRecord()) have completed.  If that work\n has not completed, or if hipEventRecord() was not called on the event, then #hipErrorNotReady is\n returned.\n\n @see hipEventCreate, hipEventCreateWithFlags, hipEventRecord, hipEventDestroy,\n hipEventSynchronize, hipEventElapsedTime"]
6824    pub unsafe fn hipEventQuery(&self, event: hipEvent_t) -> hipError_t {
6825        (self
6826            .hipEventQuery
6827            .as_ref()
6828            .expect("Expected function, got error."))(event)
6829    }
6830    #[doc = " @}\n/\n/**\n-------------------------------------------------------------------------------------------------\n-------------------------------------------------------------------------------------------------\n  @defgroup Memory Memory Management\n  @{\n  This section describes the memory management functions of HIP runtime API.\n  The following CUDA APIs are not currently supported:\n  - cudaMalloc3D\n  - cudaMalloc3DArray\n  - TODO - more 2D, 3D, array APIs here.\n\n\n/\n/**\n  @brief Return attributes for the specified pointer\n\n  @param [out]  attributes  attributes for the specified pointer\n  @param [in]   ptr         pointer to get attributes for\n\n  @return #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue\n\n  @see hipPointerGetAttribute"]
6831    pub unsafe fn hipPointerGetAttributes(
6832        &self,
6833        attributes: *mut hipPointerAttribute_t,
6834        ptr: *const ::std::os::raw::c_void,
6835    ) -> hipError_t {
6836        (self
6837            .hipPointerGetAttributes
6838            .as_ref()
6839            .expect("Expected function, got error."))(attributes, ptr)
6840    }
6841    #[doc = "  @brief Returns information about the specified pointer.[BETA]\n\n  @param [in, out] data     returned pointer attribute value\n  @param [in]      atribute attribute to query for\n  @param [in]      ptr      pointer to get attributes for\n\n  @return #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue\n\n  @beta This API is marked as beta, meaning, while this is feature complete,\n  it is still open to changes and may have outstanding issues.\n\n  @see hipPointerGetAttributes"]
6842    pub unsafe fn hipPointerGetAttribute(
6843        &self,
6844        data: *mut ::std::os::raw::c_void,
6845        attribute: hipPointer_attribute,
6846        ptr: hipDeviceptr_t,
6847    ) -> hipError_t {
6848        (self
6849            .hipPointerGetAttribute
6850            .as_ref()
6851            .expect("Expected function, got error."))(data, attribute, ptr)
6852    }
6853    #[doc = "  @brief Returns information about the specified pointer.[BETA]\n\n  @param [in]  numAttributes   number of attributes to query for\n  @param [in]  attributes      attributes to query for\n  @param [in, out] data        a two-dimensional containing pointers to memory locations\n                               where the result of each attribute query will be written to\n  @param [in]  ptr             pointer to get attributes for\n\n  @return #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue\n\n  @beta This API is marked as beta, meaning, while this is feature complete,\n  it is still open to changes and may have outstanding issues.\n\n  @see hipPointerGetAttribute"]
6854    pub unsafe fn hipDrvPointerGetAttributes(
6855        &self,
6856        numAttributes: ::std::os::raw::c_uint,
6857        attributes: *mut hipPointer_attribute,
6858        data: *mut *mut ::std::os::raw::c_void,
6859        ptr: hipDeviceptr_t,
6860    ) -> hipError_t {
6861        (self
6862            .hipDrvPointerGetAttributes
6863            .as_ref()
6864            .expect("Expected function, got error."))(numAttributes, attributes, data, ptr)
6865    }
6866    #[doc = "  @brief Imports an external semaphore.\n\n  @param[out] extSem_out  External semaphores to be waited on\n  @param[in] semHandleDesc Semaphore import handle descriptor\n\n  @return #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue\n\n  @see"]
6867    pub unsafe fn hipImportExternalSemaphore(
6868        &self,
6869        extSem_out: *mut hipExternalSemaphore_t,
6870        semHandleDesc: *const hipExternalSemaphoreHandleDesc,
6871    ) -> hipError_t {
6872        (self
6873            .hipImportExternalSemaphore
6874            .as_ref()
6875            .expect("Expected function, got error."))(extSem_out, semHandleDesc)
6876    }
6877    #[doc = "  @brief Signals a set of external semaphore objects.\n\n  @param[in] extSem_out  External semaphores to be waited on\n  @param[in] paramsArray Array of semaphore parameters\n  @param[in] numExtSems Number of semaphores to wait on\n  @param[in] stream Stream to enqueue the wait operations in\n\n  @return #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue\n\n  @see"]
6878    pub unsafe fn hipSignalExternalSemaphoresAsync(
6879        &self,
6880        extSemArray: *const hipExternalSemaphore_t,
6881        paramsArray: *const hipExternalSemaphoreSignalParams,
6882        numExtSems: ::std::os::raw::c_uint,
6883        stream: hipStream_t,
6884    ) -> hipError_t {
6885        (self
6886            .hipSignalExternalSemaphoresAsync
6887            .as_ref()
6888            .expect("Expected function, got error."))(
6889            extSemArray, paramsArray, numExtSems, stream
6890        )
6891    }
6892    #[doc = "  @brief Waits on a set of external semaphore objects\n\n  @param[in] extSem_out  External semaphores to be waited on\n  @param[in] paramsArray Array of semaphore parameters\n  @param[in] numExtSems Number of semaphores to wait on\n  @param[in] stream Stream to enqueue the wait operations in\n\n  @return #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue\n\n  @see"]
6893    pub unsafe fn hipWaitExternalSemaphoresAsync(
6894        &self,
6895        extSemArray: *const hipExternalSemaphore_t,
6896        paramsArray: *const hipExternalSemaphoreWaitParams,
6897        numExtSems: ::std::os::raw::c_uint,
6898        stream: hipStream_t,
6899    ) -> hipError_t {
6900        (self
6901            .hipWaitExternalSemaphoresAsync
6902            .as_ref()
6903            .expect("Expected function, got error."))(
6904            extSemArray, paramsArray, numExtSems, stream
6905        )
6906    }
6907    #[doc = "  @brief Destroys an external semaphore object and releases any references to the underlying resource. Any outstanding signals or waits must have completed before the semaphore is destroyed.\n\n  @param[in] extSem handle to an external memory object\n\n  @return #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue\n\n  @see"]
6908    pub unsafe fn hipDestroyExternalSemaphore(&self, extSem: hipExternalSemaphore_t) -> hipError_t {
6909        (self
6910            .hipDestroyExternalSemaphore
6911            .as_ref()
6912            .expect("Expected function, got error."))(extSem)
6913    }
6914    #[doc = "  @brief Imports an external memory object.\n\n  @param[out] extMem_out  Returned handle to an external memory object\n  @param[in]  memHandleDesc Memory import handle descriptor\n\n  @return #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue\n\n  @see"]
6915    pub unsafe fn hipImportExternalMemory(
6916        &self,
6917        extMem_out: *mut hipExternalMemory_t,
6918        memHandleDesc: *const hipExternalMemoryHandleDesc,
6919    ) -> hipError_t {
6920        (self
6921            .hipImportExternalMemory
6922            .as_ref()
6923            .expect("Expected function, got error."))(extMem_out, memHandleDesc)
6924    }
6925    #[doc = "  @brief Maps a buffer onto an imported memory object.\n\n  @param[out] devPtr Returned device pointer to buffer\n  @param[in]  extMem  Handle to external memory object\n  @param[in]  bufferDesc  Buffer descriptor\n\n  @return #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue\n\n  @see"]
6926    pub unsafe fn hipExternalMemoryGetMappedBuffer(
6927        &self,
6928        devPtr: *mut *mut ::std::os::raw::c_void,
6929        extMem: hipExternalMemory_t,
6930        bufferDesc: *const hipExternalMemoryBufferDesc,
6931    ) -> hipError_t {
6932        (self
6933            .hipExternalMemoryGetMappedBuffer
6934            .as_ref()
6935            .expect("Expected function, got error."))(devPtr, extMem, bufferDesc)
6936    }
6937    #[doc = "  @brief Destroys an external memory object.\n\n  @param[in] extMem  External memory object to be destroyed\n\n  @return #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue\n\n  @see"]
6938    pub unsafe fn hipDestroyExternalMemory(&self, extMem: hipExternalMemory_t) -> hipError_t {
6939        (self
6940            .hipDestroyExternalMemory
6941            .as_ref()
6942            .expect("Expected function, got error."))(extMem)
6943    }
6944    #[doc = "  @brief Allocate memory on the default accelerator\n\n  @param[out] ptr Pointer to the allocated memory\n  @param[in]  size Requested memory size\n\n  If size is 0, no memory is allocated, *ptr returns nullptr, and hipSuccess is returned.\n\n  @return #hipSuccess, #hipErrorOutOfMemory, #hipErrorInvalidValue (bad context, null *ptr)\n\n  @see hipMallocPitch, hipFree, hipMallocArray, hipFreeArray, hipMalloc3D, hipMalloc3DArray,\n hipHostFree, hipHostMalloc"]
6945    pub unsafe fn hipMalloc(
6946        &self,
6947        ptr: *mut *mut ::std::os::raw::c_void,
6948        size: usize,
6949    ) -> hipError_t {
6950        (self
6951            .hipMalloc
6952            .as_ref()
6953            .expect("Expected function, got error."))(ptr, size)
6954    }
6955    #[doc = "  @brief Allocate memory on the default accelerator\n\n  @param[out] ptr Pointer to the allocated memory\n  @param[in]  size Requested memory size\n  @param[in]  flags Type of memory allocation\n\n  If size is 0, no memory is allocated, *ptr returns nullptr, and hipSuccess is returned.\n\n  @return #hipSuccess, #hipErrorOutOfMemory, #hipErrorInvalidValue (bad context, null *ptr)\n\n  @see hipMallocPitch, hipFree, hipMallocArray, hipFreeArray, hipMalloc3D, hipMalloc3DArray,\n hipHostFree, hipHostMalloc"]
6956    pub unsafe fn hipExtMallocWithFlags(
6957        &self,
6958        ptr: *mut *mut ::std::os::raw::c_void,
6959        sizeBytes: usize,
6960        flags: ::std::os::raw::c_uint,
6961    ) -> hipError_t {
6962        (self
6963            .hipExtMallocWithFlags
6964            .as_ref()
6965            .expect("Expected function, got error."))(ptr, sizeBytes, flags)
6966    }
6967    #[doc = "  @brief Allocate pinned host memory [Deprecated]\n\n  @param[out] ptr Pointer to the allocated host pinned memory\n  @param[in]  size Requested memory size\n\n  If size is 0, no memory is allocated, *ptr returns nullptr, and hipSuccess is returned.\n\n  @return #hipSuccess, #hipErrorOutOfMemory\n\n  @deprecated use hipHostMalloc() instead"]
6968    pub unsafe fn hipMallocHost(
6969        &self,
6970        ptr: *mut *mut ::std::os::raw::c_void,
6971        size: usize,
6972    ) -> hipError_t {
6973        (self
6974            .hipMallocHost
6975            .as_ref()
6976            .expect("Expected function, got error."))(ptr, size)
6977    }
6978    #[doc = "  @brief Allocate pinned host memory [Deprecated]\n\n  @param[out] ptr Pointer to the allocated host pinned memory\n  @param[in]  size Requested memory size\n\n  If size is 0, no memory is allocated, *ptr returns nullptr, and hipSuccess is returned.\n\n  @return #hipSuccess, #hipErrorOutOfMemory\n\n  @deprecated use hipHostMalloc() instead"]
6979    pub unsafe fn hipMemAllocHost(
6980        &self,
6981        ptr: *mut *mut ::std::os::raw::c_void,
6982        size: usize,
6983    ) -> hipError_t {
6984        (self
6985            .hipMemAllocHost
6986            .as_ref()
6987            .expect("Expected function, got error."))(ptr, size)
6988    }
6989    #[doc = "  @brief Allocate device accessible page locked host memory\n\n  @param[out] ptr Pointer to the allocated host pinned memory\n  @param[in]  size Requested memory size\n  @param[in]  flags Type of host memory allocation\n\n  If size is 0, no memory is allocated, *ptr returns nullptr, and hipSuccess is returned.\n\n  @return #hipSuccess, #hipErrorOutOfMemory\n\n  @see hipSetDeviceFlags, hipHostFree"]
6990    pub unsafe fn hipHostMalloc(
6991        &self,
6992        ptr: *mut *mut ::std::os::raw::c_void,
6993        size: usize,
6994        flags: ::std::os::raw::c_uint,
6995    ) -> hipError_t {
6996        (self
6997            .hipHostMalloc
6998            .as_ref()
6999            .expect("Expected function, got error."))(ptr, size, flags)
7000    }
7001    #[doc = "-------------------------------------------------------------------------------------------------\n-------------------------------------------------------------------------------------------------\n  @addtogroup MemoryM Managed Memory\n  @{\n  @ingroup Memory\n  This section describes the managed memory management functions of HIP runtime API.\n\n/\n/**\n @brief Allocates memory that will be automatically managed by HIP.\n\n @param [out] dev_ptr - pointer to allocated device memory\n @param [in]  size    - requested allocation size in bytes\n @param [in]  flags   - must be either hipMemAttachGlobal or hipMemAttachHost\n                        (defaults to hipMemAttachGlobal)\n\n @returns #hipSuccess, #hipErrorMemoryAllocation, #hipErrorNotSupported, #hipErrorInvalidValue"]
7002    pub unsafe fn hipMallocManaged(
7003        &self,
7004        dev_ptr: *mut *mut ::std::os::raw::c_void,
7005        size: usize,
7006        flags: ::std::os::raw::c_uint,
7007    ) -> hipError_t {
7008        (self
7009            .hipMallocManaged
7010            .as_ref()
7011            .expect("Expected function, got error."))(dev_ptr, size, flags)
7012    }
7013    #[doc = " @brief Prefetches memory to the specified destination device using HIP.\n\n @param [in] dev_ptr  pointer to be prefetched\n @param [in] count    size in bytes for prefetching\n @param [in] device   destination device to prefetch to\n @param [in] stream   stream to enqueue prefetch operation\n\n @returns #hipSuccess, #hipErrorInvalidValue"]
7014    pub unsafe fn hipMemPrefetchAsync(
7015        &self,
7016        dev_ptr: *const ::std::os::raw::c_void,
7017        count: usize,
7018        device: ::std::os::raw::c_int,
7019        stream: hipStream_t,
7020    ) -> hipError_t {
7021        (self
7022            .hipMemPrefetchAsync
7023            .as_ref()
7024            .expect("Expected function, got error."))(dev_ptr, count, device, stream)
7025    }
7026    #[doc = " @brief Advise about the usage of a given memory range to HIP.\n\n @param [in] dev_ptr  pointer to memory to set the advice for\n @param [in] count    size in bytes of the memory range\n @param [in] advice   advice to be applied for the specified memory range\n @param [in] device   device to apply the advice for\n\n @returns #hipSuccess, #hipErrorInvalidValue"]
7027    pub unsafe fn hipMemAdvise(
7028        &self,
7029        dev_ptr: *const ::std::os::raw::c_void,
7030        count: usize,
7031        advice: hipMemoryAdvise,
7032        device: ::std::os::raw::c_int,
7033    ) -> hipError_t {
7034        (self
7035            .hipMemAdvise
7036            .as_ref()
7037            .expect("Expected function, got error."))(dev_ptr, count, advice, device)
7038    }
7039    #[doc = " @brief Query an attribute of a given memory range in HIP.\n\n @param [in,out] data   a pointer to a memory location where the result of each\n                        attribute query will be written to\n @param [in] data_size  the size of data\n @param [in] attribute  the attribute to query\n @param [in] dev_ptr    start of the range to query\n @param [in] count      size of the range to query\n\n @returns #hipSuccess, #hipErrorInvalidValue"]
7040    pub unsafe fn hipMemRangeGetAttribute(
7041        &self,
7042        data: *mut ::std::os::raw::c_void,
7043        data_size: usize,
7044        attribute: hipMemRangeAttribute,
7045        dev_ptr: *const ::std::os::raw::c_void,
7046        count: usize,
7047    ) -> hipError_t {
7048        (self
7049            .hipMemRangeGetAttribute
7050            .as_ref()
7051            .expect("Expected function, got error."))(
7052            data, data_size, attribute, dev_ptr, count
7053        )
7054    }
7055    #[doc = " @brief Query attributes of a given memory range in HIP.\n\n @param [in,out] data     a two-dimensional array containing pointers to memory locations\n                          where the result of each attribute query will be written to\n @param [in] data_sizes   an array, containing the sizes of each result\n @param [in] attributes   the attribute to query\n @param [in] num_attributes  an array of attributes to query (numAttributes and the number\n                          of attributes in this array should match)\n @param [in] dev_ptr      start of the range to query\n @param [in] count        size of the range to query\n\n @returns #hipSuccess, #hipErrorInvalidValue"]
7056    pub unsafe fn hipMemRangeGetAttributes(
7057        &self,
7058        data: *mut *mut ::std::os::raw::c_void,
7059        data_sizes: *mut usize,
7060        attributes: *mut hipMemRangeAttribute,
7061        num_attributes: usize,
7062        dev_ptr: *const ::std::os::raw::c_void,
7063        count: usize,
7064    ) -> hipError_t {
7065        (self
7066            .hipMemRangeGetAttributes
7067            .as_ref()
7068            .expect("Expected function, got error."))(
7069            data,
7070            data_sizes,
7071            attributes,
7072            num_attributes,
7073            dev_ptr,
7074            count,
7075        )
7076    }
7077    #[doc = " @brief Attach memory to a stream asynchronously in HIP.\n\n @param [in] stream     - stream in which to enqueue the attach operation\n @param [in] dev_ptr    - pointer to memory (must be a pointer to managed memory or\n                          to a valid host-accessible region of system-allocated memory)\n @param [in] length     - length of memory (defaults to zero)\n @param [in] flags      - must be one of hipMemAttachGlobal, hipMemAttachHost or\n                          hipMemAttachSingle (defaults to hipMemAttachSingle)\n\n @returns #hipSuccess, #hipErrorInvalidValue"]
7078    pub unsafe fn hipStreamAttachMemAsync(
7079        &self,
7080        stream: hipStream_t,
7081        dev_ptr: *mut ::std::os::raw::c_void,
7082        length: usize,
7083        flags: ::std::os::raw::c_uint,
7084    ) -> hipError_t {
7085        (self
7086            .hipStreamAttachMemAsync
7087            .as_ref()
7088            .expect("Expected function, got error."))(stream, dev_ptr, length, flags)
7089    }
7090    #[doc = " @brief Allocates memory with stream ordered semantics\n\n Inserts a memory allocation operation into @p stream.\n A pointer to the allocated memory is returned immediately in *dptr.\n The allocation must not be accessed until the the allocation operation completes.\n The allocation comes from the memory pool associated with the stream's device.\n\n @note The default memory pool of a device contains device memory from that device.\n @note Basic stream ordering allows future work submitted into the same stream to use the allocation.\n Stream query, stream synchronize, and HIP events can be used to guarantee that the allocation\n operation completes before work submitted in a separate stream runs.\n @note During stream capture, this function results in the creation of an allocation node. In this case,\n the allocation is owned by the graph instead of the memory pool. The memory pool's properties\n are used to set the node's creation parameters.\n\n @param [out] dev_ptr  Returned device pointer of memory allocation\n @param [in] size      Number of bytes to allocate\n @param [in] stream    The stream establishing the stream ordering contract and\n                       the memory pool to allocate from\n\n @return #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported, #hipErrorOutOfMemory\n\n @see hipMallocFromPoolAsync, hipFreeAsync, hipMemPoolTrimTo, hipMemPoolGetAttribute,\n hipDeviceSetMemPool, hipMemPoolSetAttribute, hipMemPoolSetAccess, hipMemPoolGetAccess\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
7091    pub unsafe fn hipMallocAsync(
7092        &self,
7093        dev_ptr: *mut *mut ::std::os::raw::c_void,
7094        size: usize,
7095        stream: hipStream_t,
7096    ) -> hipError_t {
7097        (self
7098            .hipMallocAsync
7099            .as_ref()
7100            .expect("Expected function, got error."))(dev_ptr, size, stream)
7101    }
7102    #[doc = " @brief Frees memory with stream ordered semantics\n\n Inserts a free operation into @p stream.\n The allocation must not be used after stream execution reaches the free.\n After this API returns, accessing the memory from any subsequent work launched on the GPU\n or querying its pointer attributes results in undefined behavior.\n\n @note During stream capture, this function results in the creation of a free node and\n must therefore be passed the address of a graph allocation.\n\n @param [in] dev_ptr Pointer to device memory to free\n @param [in] stream  The stream, where the destruciton will occur according to the execution order\n\n @returns hipSuccess, hipErrorInvalidValue, hipErrorNotSupported\n\n @see hipMallocFromPoolAsync, hipMallocAsync, hipMemPoolTrimTo, hipMemPoolGetAttribute,\n hipDeviceSetMemPool, hipMemPoolSetAttribute, hipMemPoolSetAccess, hipMemPoolGetAccess\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
7103    pub unsafe fn hipFreeAsync(
7104        &self,
7105        dev_ptr: *mut ::std::os::raw::c_void,
7106        stream: hipStream_t,
7107    ) -> hipError_t {
7108        (self
7109            .hipFreeAsync
7110            .as_ref()
7111            .expect("Expected function, got error."))(dev_ptr, stream)
7112    }
7113    #[doc = " @brief Releases freed memory back to the OS\n\n Releases memory back to the OS until the pool contains fewer than @p min_bytes_to_keep\n reserved bytes, or there is no more memory that the allocator can safely release.\n The allocator cannot release OS allocations that back outstanding asynchronous allocations.\n The OS allocations may happen at different granularity from the user allocations.\n\n @note: Allocations that have not been freed count as outstanding.\n @note: Allocations that have been asynchronously freed but whose completion has\n not been observed on the host (eg. by a synchronize) can count as outstanding.\n\n @param[in] mem_pool          The memory pool to trim allocations\n @param[in] min_bytes_to_hold If the pool has less than min_bytes_to_hold reserved,\n then the TrimTo operation is a no-op.  Otherwise the memory pool will contain\n at least min_bytes_to_hold bytes reserved after the operation.\n\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @see hipMallocFromPoolAsync, hipMallocAsync, hipFreeAsync, hipMemPoolGetAttribute,\n hipDeviceSetMemPool, hipMemPoolSetAttribute, hipMemPoolSetAccess, hipMemPoolGetAccess\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
7114    pub unsafe fn hipMemPoolTrimTo(
7115        &self,
7116        mem_pool: hipMemPool_t,
7117        min_bytes_to_hold: usize,
7118    ) -> hipError_t {
7119        (self
7120            .hipMemPoolTrimTo
7121            .as_ref()
7122            .expect("Expected function, got error."))(mem_pool, min_bytes_to_hold)
7123    }
7124    #[doc = " @brief Sets attributes of a memory pool\n\n Supported attributes are:\n - @p hipMemPoolAttrReleaseThreshold: (value type = cuuint64_t)\n                                  Amount of reserved memory in bytes to hold onto before trying\n                                  to release memory back to the OS. When more than the release\n                                  threshold bytes of memory are held by the memory pool, the\n                                  allocator will try to release memory back to the OS on the\n                                  next call to stream, event or context synchronize. (default 0)\n - @p hipMemPoolReuseFollowEventDependencies: (value type = int)\n                                  Allow @p hipMallocAsync to use memory asynchronously freed\n                                  in another stream as long as a stream ordering dependency\n                                  of the allocating stream on the free action exists.\n                                  HIP events and null stream interactions can create the required\n                                  stream ordered dependencies. (default enabled)\n - @p hipMemPoolReuseAllowOpportunistic: (value type = int)\n                                  Allow reuse of already completed frees when there is no dependency\n                                  between the free and allocation. (default enabled)\n - @p hipMemPoolReuseAllowInternalDependencies: (value type = int)\n                                  Allow @p hipMallocAsync to insert new stream dependencies\n                                  in order to establish the stream ordering required to reuse\n                                  a piece of memory released by @p hipFreeAsync (default enabled).\n\n @param [in] mem_pool The memory pool to modify\n @param [in] attr     The attribute to modify\n @param [in] value    Pointer to the value to assign\n\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @see hipMallocFromPoolAsync, hipMallocAsync, hipFreeAsync, hipMemPoolGetAttribute,\n hipMemPoolTrimTo, hipDeviceSetMemPool, hipMemPoolSetAccess, hipMemPoolGetAccess\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
7125    pub unsafe fn hipMemPoolSetAttribute(
7126        &self,
7127        mem_pool: hipMemPool_t,
7128        attr: hipMemPoolAttr,
7129        value: *mut ::std::os::raw::c_void,
7130    ) -> hipError_t {
7131        (self
7132            .hipMemPoolSetAttribute
7133            .as_ref()
7134            .expect("Expected function, got error."))(mem_pool, attr, value)
7135    }
7136    #[doc = " @brief Gets attributes of a memory pool\n\n Supported attributes are:\n - @p hipMemPoolAttrReleaseThreshold: (value type = cuuint64_t)\n                                  Amount of reserved memory in bytes to hold onto before trying\n                                  to release memory back to the OS. When more than the release\n                                  threshold bytes of memory are held by the memory pool, the\n                                  allocator will try to release memory back to the OS on the\n                                  next call to stream, event or context synchronize. (default 0)\n - @p hipMemPoolReuseFollowEventDependencies: (value type = int)\n                                  Allow @p hipMallocAsync to use memory asynchronously freed\n                                  in another stream as long as a stream ordering dependency\n                                  of the allocating stream on the free action exists.\n                                  HIP events and null stream interactions can create the required\n                                  stream ordered dependencies. (default enabled)\n - @p hipMemPoolReuseAllowOpportunistic: (value type = int)\n                                  Allow reuse of already completed frees when there is no dependency\n                                  between the free and allocation. (default enabled)\n - @p hipMemPoolReuseAllowInternalDependencies: (value type = int)\n                                  Allow @p hipMallocAsync to insert new stream dependencies\n                                  in order to establish the stream ordering required to reuse\n                                  a piece of memory released by @p hipFreeAsync (default enabled).\n\n @param [in] mem_pool The memory pool to get attributes of\n @param [in] attr     The attribute to get\n @param [in] value    Retrieved value\n\n @returns  #hipSuccess, #hipErrorInvalidValue\n\n @see hipMallocFromPoolAsync, hipMallocAsync, hipFreeAsync,\n hipMemPoolTrimTo, hipDeviceSetMemPool, hipMemPoolSetAttribute, hipMemPoolSetAccess, hipMemPoolGetAccess\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
7137    pub unsafe fn hipMemPoolGetAttribute(
7138        &self,
7139        mem_pool: hipMemPool_t,
7140        attr: hipMemPoolAttr,
7141        value: *mut ::std::os::raw::c_void,
7142    ) -> hipError_t {
7143        (self
7144            .hipMemPoolGetAttribute
7145            .as_ref()
7146            .expect("Expected function, got error."))(mem_pool, attr, value)
7147    }
7148    #[doc = " @brief Controls visibility of the specified pool between devices\n\n @param [in] mem_pool   Memory pool for acccess change\n @param [in] desc_list  Array of access descriptors. Each descriptor instructs the access to enable for a single gpu\n @param [in] count  Number of descriptors in the map array.\n\n @returns  #hipSuccess, #hipErrorInvalidValue\n\n @see hipMallocFromPoolAsync, hipMallocAsync, hipFreeAsync, hipMemPoolGetAttribute,\n hipMemPoolTrimTo, hipDeviceSetMemPool, hipMemPoolSetAttribute, hipMemPoolGetAccess\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
7149    pub unsafe fn hipMemPoolSetAccess(
7150        &self,
7151        mem_pool: hipMemPool_t,
7152        desc_list: *const hipMemAccessDesc,
7153        count: usize,
7154    ) -> hipError_t {
7155        (self
7156            .hipMemPoolSetAccess
7157            .as_ref()
7158            .expect("Expected function, got error."))(mem_pool, desc_list, count)
7159    }
7160    #[doc = " @brief Returns the accessibility of a pool from a device\n\n Returns the accessibility of the pool's memory from the specified location.\n\n @param [out] flags    Accessibility of the memory pool from the specified location/device\n @param [in] mem_pool   Memory pool being queried\n @param [in] location  Location/device for memory pool access\n\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @see hipMallocFromPoolAsync, hipMallocAsync, hipFreeAsync, hipMemPoolGetAttribute,\n hipMemPoolTrimTo, hipDeviceSetMemPool, hipMemPoolSetAttribute, hipMemPoolSetAccess\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
7161    pub unsafe fn hipMemPoolGetAccess(
7162        &self,
7163        flags: *mut hipMemAccessFlags,
7164        mem_pool: hipMemPool_t,
7165        location: *mut hipMemLocation,
7166    ) -> hipError_t {
7167        (self
7168            .hipMemPoolGetAccess
7169            .as_ref()
7170            .expect("Expected function, got error."))(flags, mem_pool, location)
7171    }
7172    #[doc = " @brief Creates a memory pool\n\n Creates a HIP memory pool and returns the handle in @p mem_pool. The @p pool_props determines\n the properties of the pool such as the backing device and IPC capabilities.\n\n By default, the memory pool will be accessible from the device it is allocated on.\n\n @param [out] mem_pool    Contains createed memory pool\n @param [in] pool_props   Memory pool properties\n\n @note Specifying hipMemHandleTypeNone creates a memory pool that will not support IPC.\n\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported\n\n @see hipMallocFromPoolAsync, hipMallocAsync, hipFreeAsync, hipMemPoolGetAttribute, hipMemPoolDestroy,\n hipMemPoolTrimTo, hipDeviceSetMemPool, hipMemPoolSetAttribute, hipMemPoolSetAccess, hipMemPoolGetAccess\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
7173    pub unsafe fn hipMemPoolCreate(
7174        &self,
7175        mem_pool: *mut hipMemPool_t,
7176        pool_props: *const hipMemPoolProps,
7177    ) -> hipError_t {
7178        (self
7179            .hipMemPoolCreate
7180            .as_ref()
7181            .expect("Expected function, got error."))(mem_pool, pool_props)
7182    }
7183    #[doc = " @brief Destroys the specified memory pool\n\n If any pointers obtained from this pool haven't been freed or\n the pool has free operations that haven't completed\n when @p hipMemPoolDestroy is invoked, the function will return immediately and the\n resources associated with the pool will be released automatically\n once there are no more outstanding allocations.\n\n Destroying the current mempool of a device sets the default mempool of\n that device as the current mempool for that device.\n\n @param [in] mem_pool Memory pool for destruction\n\n @note A device's default memory pool cannot be destroyed.\n\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @see hipMallocFromPoolAsync, hipMallocAsync, hipFreeAsync, hipMemPoolGetAttribute, hipMemPoolCreate\n hipMemPoolTrimTo, hipDeviceSetMemPool, hipMemPoolSetAttribute, hipMemPoolSetAccess, hipMemPoolGetAccess\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
7184    pub unsafe fn hipMemPoolDestroy(&self, mem_pool: hipMemPool_t) -> hipError_t {
7185        (self
7186            .hipMemPoolDestroy
7187            .as_ref()
7188            .expect("Expected function, got error."))(mem_pool)
7189    }
7190    #[doc = " @brief Allocates memory from a specified pool with stream ordered semantics.\n\n Inserts an allocation operation into @p stream.\n A pointer to the allocated memory is returned immediately in @p dev_ptr.\n The allocation must not be accessed until the the allocation operation completes.\n The allocation comes from the specified memory pool.\n\n @note The specified memory pool may be from a device different than that of the specified @p stream.\n\n Basic stream ordering allows future work submitted into the same stream to use the allocation.\n Stream query, stream synchronize, and HIP events can be used to guarantee that the allocation\n operation completes before work submitted in a separate stream runs.\n\n @note During stream capture, this function results in the creation of an allocation node. In this case,\n the allocation is owned by the graph instead of the memory pool. The memory pool's properties\n are used to set the node's creation parameters.\n\n @param [out] dev_ptr Returned device pointer\n @param [in] size     Number of bytes to allocate\n @param [in] mem_pool The pool to allocate from\n @param [in] stream   The stream establishing the stream ordering semantic\n\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported, #hipErrorOutOfMemory\n\n @see hipMallocAsync, hipFreeAsync, hipMemPoolGetAttribute, hipMemPoolCreate\n hipMemPoolTrimTo, hipDeviceSetMemPool, hipMemPoolSetAttribute, hipMemPoolSetAccess, hipMemPoolGetAccess,\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
7191    pub unsafe fn hipMallocFromPoolAsync(
7192        &self,
7193        dev_ptr: *mut *mut ::std::os::raw::c_void,
7194        size: usize,
7195        mem_pool: hipMemPool_t,
7196        stream: hipStream_t,
7197    ) -> hipError_t {
7198        (self
7199            .hipMallocFromPoolAsync
7200            .as_ref()
7201            .expect("Expected function, got error."))(dev_ptr, size, mem_pool, stream)
7202    }
7203    #[doc = " @brief Exports a memory pool to the requested handle type.\n\n Given an IPC capable mempool, create an OS handle to share the pool with another process.\n A recipient process can convert the shareable handle into a mempool with @p hipMemPoolImportFromShareableHandle.\n Individual pointers can then be shared with the @p hipMemPoolExportPointer and @p hipMemPoolImportPointer APIs.\n The implementation of what the shareable handle is and how it can be transferred is defined by the requested\n handle type.\n\n @note: To create an IPC capable mempool, create a mempool with a @p hipMemAllocationHandleType other\n than @p hipMemHandleTypeNone.\n\n @param [out] shared_handle Pointer to the location in which to store the requested handle\n @param [in] mem_pool       Pool to export\n @param [in] handle_type    The type of handle to create\n @param [in] flags          Must be 0\n\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorOutOfMemory\n\n @see hipMemPoolImportFromShareableHandle\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
7204    pub unsafe fn hipMemPoolExportToShareableHandle(
7205        &self,
7206        shared_handle: *mut ::std::os::raw::c_void,
7207        mem_pool: hipMemPool_t,
7208        handle_type: hipMemAllocationHandleType,
7209        flags: ::std::os::raw::c_uint,
7210    ) -> hipError_t {
7211        (self
7212            .hipMemPoolExportToShareableHandle
7213            .as_ref()
7214            .expect("Expected function, got error."))(
7215            shared_handle, mem_pool, handle_type, flags
7216        )
7217    }
7218    #[doc = " @brief Imports a memory pool from a shared handle.\n\n Specific allocations can be imported from the imported pool with @p hipMemPoolImportPointer.\n\n @note Imported memory pools do not support creating new allocations.\n As such imported memory pools may not be used in @p hipDeviceSetMemPool\n or @p hipMallocFromPoolAsync calls.\n\n @param [out] mem_pool     Returned memory pool\n @param [in] shared_handle OS handle of the pool to open\n @param [in] handle_type   The type of handle being imported\n @param [in] flags         Must be 0\n\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorOutOfMemory\n\n @see hipMemPoolExportToShareableHandle\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
7219    pub unsafe fn hipMemPoolImportFromShareableHandle(
7220        &self,
7221        mem_pool: *mut hipMemPool_t,
7222        shared_handle: *mut ::std::os::raw::c_void,
7223        handle_type: hipMemAllocationHandleType,
7224        flags: ::std::os::raw::c_uint,
7225    ) -> hipError_t {
7226        (self
7227            .hipMemPoolImportFromShareableHandle
7228            .as_ref()
7229            .expect("Expected function, got error."))(
7230            mem_pool, shared_handle, handle_type, flags
7231        )
7232    }
7233    #[doc = " @brief Export data to share a memory pool allocation between processes.\n\n Constructs @p export_data for sharing a specific allocation from an already shared memory pool.\n The recipient process can import the allocation with the @p hipMemPoolImportPointer api.\n The data is not a handle and may be shared through any IPC mechanism.\n\n @param[out] export_data  Returned export data\n @param[in] dev_ptr       Pointer to memory being exported\n\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorOutOfMemory\n\n @see hipMemPoolImportPointer\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
7234    pub unsafe fn hipMemPoolExportPointer(
7235        &self,
7236        export_data: *mut hipMemPoolPtrExportData,
7237        dev_ptr: *mut ::std::os::raw::c_void,
7238    ) -> hipError_t {
7239        (self
7240            .hipMemPoolExportPointer
7241            .as_ref()
7242            .expect("Expected function, got error."))(export_data, dev_ptr)
7243    }
7244    #[doc = " @brief Import a memory pool allocation from another process.\n\n Returns in @p dev_ptr a pointer to the imported memory.\n The imported memory must not be accessed before the allocation operation completes\n in the exporting process. The imported memory must be freed from all importing processes before\n being freed in the exporting process. The pointer may be freed with @p hipFree\n or @p hipFreeAsync. If @p hipFreeAsync is used, the free must be completed\n on the importing process before the free operation on the exporting process.\n\n @note The @p hipFreeAsync api may be used in the exporting process before\n the @p hipFreeAsync operation completes in its stream as long as the\n @p hipFreeAsync in the exporting process specifies a stream with\n a stream dependency on the importing process's @p hipFreeAsync.\n\n @param [out] dev_ptr     Pointer to imported memory\n @param [in] mem_pool     Memory pool from which to import a pointer\n @param [in] export_data  Data specifying the memory to import\n\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotInitialized, #hipErrorOutOfMemory\n\n @see hipMemPoolExportPointer\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
7245    pub unsafe fn hipMemPoolImportPointer(
7246        &self,
7247        dev_ptr: *mut *mut ::std::os::raw::c_void,
7248        mem_pool: hipMemPool_t,
7249        export_data: *mut hipMemPoolPtrExportData,
7250    ) -> hipError_t {
7251        (self
7252            .hipMemPoolImportPointer
7253            .as_ref()
7254            .expect("Expected function, got error."))(dev_ptr, mem_pool, export_data)
7255    }
7256    #[doc = "  @brief Allocate device accessible page locked host memory [Deprecated]\n\n  @param[out] ptr Pointer to the allocated host pinned memory\n  @param[in]  size Requested memory size\n  @param[in]  flags Type of host memory allocation\n\n  If size is 0, no memory is allocated, *ptr returns nullptr, and hipSuccess is returned.\n\n  @return #hipSuccess, #hipErrorOutOfMemory\n\n  @deprecated use hipHostMalloc() instead"]
7257    pub unsafe fn hipHostAlloc(
7258        &self,
7259        ptr: *mut *mut ::std::os::raw::c_void,
7260        size: usize,
7261        flags: ::std::os::raw::c_uint,
7262    ) -> hipError_t {
7263        (self
7264            .hipHostAlloc
7265            .as_ref()
7266            .expect("Expected function, got error."))(ptr, size, flags)
7267    }
7268    #[doc = "  @brief Get Device pointer from Host Pointer allocated through hipHostMalloc\n\n  @param[out] dstPtr Device Pointer mapped to passed host pointer\n  @param[in]  hstPtr Host Pointer allocated through hipHostMalloc\n  @param[in]  flags Flags to be passed for extension\n\n  @return #hipSuccess, #hipErrorInvalidValue, #hipErrorOutOfMemory\n\n  @see hipSetDeviceFlags, hipHostMalloc"]
7269    pub unsafe fn hipHostGetDevicePointer(
7270        &self,
7271        devPtr: *mut *mut ::std::os::raw::c_void,
7272        hstPtr: *mut ::std::os::raw::c_void,
7273        flags: ::std::os::raw::c_uint,
7274    ) -> hipError_t {
7275        (self
7276            .hipHostGetDevicePointer
7277            .as_ref()
7278            .expect("Expected function, got error."))(devPtr, hstPtr, flags)
7279    }
7280    #[doc = "  @brief Return flags associated with host pointer\n\n  @param[out] flagsPtr Memory location to store flags\n  @param[in]  hostPtr Host Pointer allocated through hipHostMalloc\n  @return #hipSuccess, #hipErrorInvalidValue\n\n  @see hipHostMalloc"]
7281    pub unsafe fn hipHostGetFlags(
7282        &self,
7283        flagsPtr: *mut ::std::os::raw::c_uint,
7284        hostPtr: *mut ::std::os::raw::c_void,
7285    ) -> hipError_t {
7286        (self
7287            .hipHostGetFlags
7288            .as_ref()
7289            .expect("Expected function, got error."))(flagsPtr, hostPtr)
7290    }
7291    #[doc = "  @brief Register host memory so it can be accessed from the current device.\n\n  @param[out] hostPtr Pointer to host memory to be registered.\n  @param[in] sizeBytes size of the host memory\n  @param[in] flags.  See below.\n\n  Flags:\n  - #hipHostRegisterDefault   Memory is Mapped and Portable\n  - #hipHostRegisterPortable  Memory is considered registered by all contexts.  HIP only supports\n one context so this is always assumed true.\n  - #hipHostRegisterMapped    Map the allocation into the address space for the current device.\n The device pointer can be obtained with #hipHostGetDevicePointer.\n\n\n  After registering the memory, use #hipHostGetDevicePointer to obtain the mapped device pointer.\n  On many systems, the mapped device pointer will have a different value than the mapped host\n pointer.  Applications must use the device pointer in device code, and the host pointer in device\n code.\n\n  On some systems, registered memory is pinned.  On some systems, registered memory may not be\n actually be pinned but uses OS or hardware facilities to all GPU access to the host memory.\n\n  Developers are strongly encouraged to register memory blocks which are aligned to the host\n cache-line size. (typically 64-bytes but can be obtains from the CPUID instruction).\n\n  If registering non-aligned pointers, the application must take care when register pointers from\n the same cache line on different devices.  HIP's coarse-grained synchronization model does not\n guarantee correct results if different devices write to different parts of the same cache block -\n typically one of the writes will \"win\" and overwrite data from the other registered memory\n region.\n\n  @return #hipSuccess, #hipErrorOutOfMemory\n\n  @see hipHostUnregister, hipHostGetFlags, hipHostGetDevicePointer"]
7292    pub unsafe fn hipHostRegister(
7293        &self,
7294        hostPtr: *mut ::std::os::raw::c_void,
7295        sizeBytes: usize,
7296        flags: ::std::os::raw::c_uint,
7297    ) -> hipError_t {
7298        (self
7299            .hipHostRegister
7300            .as_ref()
7301            .expect("Expected function, got error."))(hostPtr, sizeBytes, flags)
7302    }
7303    #[doc = "  @brief Un-register host pointer\n\n  @param[in] hostPtr Host pointer previously registered with #hipHostRegister\n  @return Error code\n\n  @see hipHostRegister"]
7304    pub unsafe fn hipHostUnregister(&self, hostPtr: *mut ::std::os::raw::c_void) -> hipError_t {
7305        (self
7306            .hipHostUnregister
7307            .as_ref()
7308            .expect("Expected function, got error."))(hostPtr)
7309    }
7310    #[doc = "  Allocates at least width (in bytes) * height bytes of linear memory\n  Padding may occur to ensure alighnment requirements are met for the given row\n  The change in width size due to padding will be returned in *pitch.\n  Currently the alignment is set to 128 bytes\n\n  @param[out] ptr Pointer to the allocated device memory\n  @param[out] pitch Pitch for allocation (in bytes)\n  @param[in]  width Requested pitched allocation width (in bytes)\n  @param[in]  height Requested pitched allocation height\n\n  If size is 0, no memory is allocated, *ptr returns nullptr, and hipSuccess is returned.\n\n  @return Error code\n\n  @see hipMalloc, hipFree, hipMallocArray, hipFreeArray, hipHostFree, hipMalloc3D,\n hipMalloc3DArray, hipHostMalloc"]
7311    pub unsafe fn hipMallocPitch(
7312        &self,
7313        ptr: *mut *mut ::std::os::raw::c_void,
7314        pitch: *mut usize,
7315        width: usize,
7316        height: usize,
7317    ) -> hipError_t {
7318        (self
7319            .hipMallocPitch
7320            .as_ref()
7321            .expect("Expected function, got error."))(ptr, pitch, width, height)
7322    }
7323    #[doc = "  Allocates at least width (in bytes) * height bytes of linear memory\n  Padding may occur to ensure alighnment requirements are met for the given row\n  The change in width size due to padding will be returned in *pitch.\n  Currently the alignment is set to 128 bytes\n\n  @param[out] dptr Pointer to the allocated device memory\n  @param[out] pitch Pitch for allocation (in bytes)\n  @param[in]  width Requested pitched allocation width (in bytes)\n  @param[in]  height Requested pitched allocation height\n\n  If size is 0, no memory is allocated, *ptr returns nullptr, and hipSuccess is returned.\n  The intended usage of pitch is as a separate parameter of the allocation, used to compute addresses within the 2D array.\n  Given the row and column of an array element of type T, the address is computed as:\n  T* pElement = (T*)((char*)BaseAddress + Row * Pitch) + Column;\n\n  @return Error code\n\n  @see hipMalloc, hipFree, hipMallocArray, hipFreeArray, hipHostFree, hipMalloc3D,\n hipMalloc3DArray, hipHostMalloc"]
7324    pub unsafe fn hipMemAllocPitch(
7325        &self,
7326        dptr: *mut hipDeviceptr_t,
7327        pitch: *mut usize,
7328        widthInBytes: usize,
7329        height: usize,
7330        elementSizeBytes: ::std::os::raw::c_uint,
7331    ) -> hipError_t {
7332        (self
7333            .hipMemAllocPitch
7334            .as_ref()
7335            .expect("Expected function, got error."))(
7336            dptr,
7337            pitch,
7338            widthInBytes,
7339            height,
7340            elementSizeBytes,
7341        )
7342    }
7343    #[doc = "  @brief Free memory allocated by the hcc hip memory allocation API.\n  This API performs an implicit hipDeviceSynchronize() call.\n  If pointer is NULL, the hip runtime is initialized and hipSuccess is returned.\n\n  @param[in] ptr Pointer to memory to be freed\n  @return #hipSuccess\n  @return #hipErrorInvalidDevicePointer (if pointer is invalid, including host pointers allocated\n with hipHostMalloc)\n\n  @see hipMalloc, hipMallocPitch, hipMallocArray, hipFreeArray, hipHostFree, hipMalloc3D,\n hipMalloc3DArray, hipHostMalloc"]
7344    pub unsafe fn hipFree(&self, ptr: *mut ::std::os::raw::c_void) -> hipError_t {
7345        (self
7346            .hipFree
7347            .as_ref()
7348            .expect("Expected function, got error."))(ptr)
7349    }
7350    #[doc = "  @brief Free memory allocated by the hcc hip host memory allocation API.  [Deprecated]\n\n  @param[in] ptr Pointer to memory to be freed\n  @return #hipSuccess,\n          #hipErrorInvalidValue (if pointer is invalid, including device pointers allocated with\nhipMalloc)\n  @deprecated use hipHostFree() instead"]
7351    pub unsafe fn hipFreeHost(&self, ptr: *mut ::std::os::raw::c_void) -> hipError_t {
7352        (self
7353            .hipFreeHost
7354            .as_ref()
7355            .expect("Expected function, got error."))(ptr)
7356    }
7357    #[doc = "  @brief Free memory allocated by the hcc hip host memory allocation API\n  This API performs an implicit hipDeviceSynchronize() call.\n  If pointer is NULL, the hip runtime is initialized and hipSuccess is returned.\n\n  @param[in] ptr Pointer to memory to be freed\n  @return #hipSuccess,\n          #hipErrorInvalidValue (if pointer is invalid, including device pointers allocated with\n hipMalloc)\n\n  @see hipMalloc, hipMallocPitch, hipFree, hipMallocArray, hipFreeArray, hipMalloc3D,\n hipMalloc3DArray, hipHostMalloc"]
7358    pub unsafe fn hipHostFree(&self, ptr: *mut ::std::os::raw::c_void) -> hipError_t {
7359        (self
7360            .hipHostFree
7361            .as_ref()
7362            .expect("Expected function, got error."))(ptr)
7363    }
7364    #[doc = "  @brief Copy data from src to dst.\n\n  It supports memory from host to device,\n  device to host, device to device and host to host\n  The src and dst must not overlap.\n\n  For hipMemcpy, the copy is always performed by the current device (set by hipSetDevice).\n  For multi-gpu or peer-to-peer configurations, it is recommended to set the current device to the\n  device where the src data is physically located. For optimal peer-to-peer copies, the copy device\n  must be able to access the src and dst pointers (by calling hipDeviceEnablePeerAccess with copy\n  agent as the current device and src/dest as the peerDevice argument.  if this is not done, the\n  hipMemcpy will still work, but will perform the copy using a staging buffer on the host.\n  Calling hipMemcpy with dst and src pointers that do not match the hipMemcpyKind results in\n  undefined behavior.\n\n  @param[out]  dst Data being copy to\n  @param[in]  src Data being copy from\n  @param[in]  sizeBytes Data size in bytes\n  @param[in]  copyType Memory copy type\n  @return #hipSuccess, #hipErrorInvalidValue, #hipErrorMemoryFree, #hipErrorUnknowni\n\n  @see hipArrayCreate, hipArrayDestroy, hipArrayGetDescriptor, hipMemAlloc, hipMemAllocHost,\n hipMemAllocPitch, hipMemcpy2D, hipMemcpy2DAsync, hipMemcpy2DUnaligned, hipMemcpyAtoA,\n hipMemcpyAtoD, hipMemcpyAtoH, hipMemcpyAtoHAsync, hipMemcpyDtoA, hipMemcpyDtoD,\n hipMemcpyDtoDAsync, hipMemcpyDtoH, hipMemcpyDtoHAsync, hipMemcpyHtoA, hipMemcpyHtoAAsync,\n hipMemcpyHtoDAsync, hipMemFree, hipMemFreeHost, hipMemGetAddressRange, hipMemGetInfo,\n hipMemHostAlloc, hipMemHostGetDevicePointer"]
7365    pub unsafe fn hipMemcpy(
7366        &self,
7367        dst: *mut ::std::os::raw::c_void,
7368        src: *const ::std::os::raw::c_void,
7369        sizeBytes: usize,
7370        kind: hipMemcpyKind,
7371    ) -> hipError_t {
7372        (self
7373            .hipMemcpy
7374            .as_ref()
7375            .expect("Expected function, got error."))(dst, src, sizeBytes, kind)
7376    }
7377    pub unsafe fn hipMemcpyWithStream(
7378        &self,
7379        dst: *mut ::std::os::raw::c_void,
7380        src: *const ::std::os::raw::c_void,
7381        sizeBytes: usize,
7382        kind: hipMemcpyKind,
7383        stream: hipStream_t,
7384    ) -> hipError_t {
7385        (self
7386            .hipMemcpyWithStream
7387            .as_ref()
7388            .expect("Expected function, got error."))(dst, src, sizeBytes, kind, stream)
7389    }
7390    #[doc = "  @brief Copy data from Host to Device\n\n  @param[out]  dst Data being copy to\n  @param[in]   src Data being copy from\n  @param[in]   sizeBytes Data size in bytes\n\n  @return #hipSuccess, #hipErrorDeinitialized, #hipErrorNotInitialized, #hipErrorInvalidContext,\n #hipErrorInvalidValue\n\n  @see hipArrayCreate, hipArrayDestroy, hipArrayGetDescriptor, hipMemAlloc, hipMemAllocHost,\n hipMemAllocPitch, hipMemcpy2D, hipMemcpy2DAsync, hipMemcpy2DUnaligned, hipMemcpyAtoA,\n hipMemcpyAtoD, hipMemcpyAtoH, hipMemcpyAtoHAsync, hipMemcpyDtoA, hipMemcpyDtoD,\n hipMemcpyDtoDAsync, hipMemcpyDtoH, hipMemcpyDtoHAsync, hipMemcpyHtoA, hipMemcpyHtoAAsync,\n hipMemcpyHtoDAsync, hipMemFree, hipMemFreeHost, hipMemGetAddressRange, hipMemGetInfo,\n hipMemHostAlloc, hipMemHostGetDevicePointer"]
7391    pub unsafe fn hipMemcpyHtoD(
7392        &self,
7393        dst: hipDeviceptr_t,
7394        src: *mut ::std::os::raw::c_void,
7395        sizeBytes: usize,
7396    ) -> hipError_t {
7397        (self
7398            .hipMemcpyHtoD
7399            .as_ref()
7400            .expect("Expected function, got error."))(dst, src, sizeBytes)
7401    }
7402    #[doc = "  @brief Copy data from Device to Host\n\n  @param[out]  dst Data being copy to\n  @param[in]   src Data being copy from\n  @param[in]   sizeBytes Data size in bytes\n\n  @return #hipSuccess, #hipErrorDeinitialized, #hipErrorNotInitialized, #hipErrorInvalidContext,\n #hipErrorInvalidValue\n\n  @see hipArrayCreate, hipArrayDestroy, hipArrayGetDescriptor, hipMemAlloc, hipMemAllocHost,\n hipMemAllocPitch, hipMemcpy2D, hipMemcpy2DAsync, hipMemcpy2DUnaligned, hipMemcpyAtoA,\n hipMemcpyAtoD, hipMemcpyAtoH, hipMemcpyAtoHAsync, hipMemcpyDtoA, hipMemcpyDtoD,\n hipMemcpyDtoDAsync, hipMemcpyDtoH, hipMemcpyDtoHAsync, hipMemcpyHtoA, hipMemcpyHtoAAsync,\n hipMemcpyHtoDAsync, hipMemFree, hipMemFreeHost, hipMemGetAddressRange, hipMemGetInfo,\n hipMemHostAlloc, hipMemHostGetDevicePointer"]
7403    pub unsafe fn hipMemcpyDtoH(
7404        &self,
7405        dst: *mut ::std::os::raw::c_void,
7406        src: hipDeviceptr_t,
7407        sizeBytes: usize,
7408    ) -> hipError_t {
7409        (self
7410            .hipMemcpyDtoH
7411            .as_ref()
7412            .expect("Expected function, got error."))(dst, src, sizeBytes)
7413    }
7414    #[doc = "  @brief Copy data from Device to Device\n\n  @param[out]  dst Data being copy to\n  @param[in]   src Data being copy from\n  @param[in]   sizeBytes Data size in bytes\n\n  @return #hipSuccess, #hipErrorDeinitialized, #hipErrorNotInitialized, #hipErrorInvalidContext,\n #hipErrorInvalidValue\n\n  @see hipArrayCreate, hipArrayDestroy, hipArrayGetDescriptor, hipMemAlloc, hipMemAllocHost,\n hipMemAllocPitch, hipMemcpy2D, hipMemcpy2DAsync, hipMemcpy2DUnaligned, hipMemcpyAtoA,\n hipMemcpyAtoD, hipMemcpyAtoH, hipMemcpyAtoHAsync, hipMemcpyDtoA, hipMemcpyDtoD,\n hipMemcpyDtoDAsync, hipMemcpyDtoH, hipMemcpyDtoHAsync, hipMemcpyHtoA, hipMemcpyHtoAAsync,\n hipMemcpyHtoDAsync, hipMemFree, hipMemFreeHost, hipMemGetAddressRange, hipMemGetInfo,\n hipMemHostAlloc, hipMemHostGetDevicePointer"]
7415    pub unsafe fn hipMemcpyDtoD(
7416        &self,
7417        dst: hipDeviceptr_t,
7418        src: hipDeviceptr_t,
7419        sizeBytes: usize,
7420    ) -> hipError_t {
7421        (self
7422            .hipMemcpyDtoD
7423            .as_ref()
7424            .expect("Expected function, got error."))(dst, src, sizeBytes)
7425    }
7426    #[doc = "  @brief Copy data from Host to Device asynchronously\n\n  @param[out]  dst Data being copy to\n  @param[in]   src Data being copy from\n  @param[in]   sizeBytes Data size in bytes\n\n  @return #hipSuccess, #hipErrorDeinitialized, #hipErrorNotInitialized, #hipErrorInvalidContext,\n #hipErrorInvalidValue\n\n  @see hipArrayCreate, hipArrayDestroy, hipArrayGetDescriptor, hipMemAlloc, hipMemAllocHost,\n hipMemAllocPitch, hipMemcpy2D, hipMemcpy2DAsync, hipMemcpy2DUnaligned, hipMemcpyAtoA,\n hipMemcpyAtoD, hipMemcpyAtoH, hipMemcpyAtoHAsync, hipMemcpyDtoA, hipMemcpyDtoD,\n hipMemcpyDtoDAsync, hipMemcpyDtoH, hipMemcpyDtoHAsync, hipMemcpyHtoA, hipMemcpyHtoAAsync,\n hipMemcpyHtoDAsync, hipMemFree, hipMemFreeHost, hipMemGetAddressRange, hipMemGetInfo,\n hipMemHostAlloc, hipMemHostGetDevicePointer"]
7427    pub unsafe fn hipMemcpyHtoDAsync(
7428        &self,
7429        dst: hipDeviceptr_t,
7430        src: *mut ::std::os::raw::c_void,
7431        sizeBytes: usize,
7432        stream: hipStream_t,
7433    ) -> hipError_t {
7434        (self
7435            .hipMemcpyHtoDAsync
7436            .as_ref()
7437            .expect("Expected function, got error."))(dst, src, sizeBytes, stream)
7438    }
7439    #[doc = "  @brief Copy data from Device to Host asynchronously\n\n  @param[out]  dst Data being copy to\n  @param[in]   src Data being copy from\n  @param[in]   sizeBytes Data size in bytes\n\n  @return #hipSuccess, #hipErrorDeinitialized, #hipErrorNotInitialized, #hipErrorInvalidContext,\n #hipErrorInvalidValue\n\n  @see hipArrayCreate, hipArrayDestroy, hipArrayGetDescriptor, hipMemAlloc, hipMemAllocHost,\n hipMemAllocPitch, hipMemcpy2D, hipMemcpy2DAsync, hipMemcpy2DUnaligned, hipMemcpyAtoA,\n hipMemcpyAtoD, hipMemcpyAtoH, hipMemcpyAtoHAsync, hipMemcpyDtoA, hipMemcpyDtoD,\n hipMemcpyDtoDAsync, hipMemcpyDtoH, hipMemcpyDtoHAsync, hipMemcpyHtoA, hipMemcpyHtoAAsync,\n hipMemcpyHtoDAsync, hipMemFree, hipMemFreeHost, hipMemGetAddressRange, hipMemGetInfo,\n hipMemHostAlloc, hipMemHostGetDevicePointer"]
7440    pub unsafe fn hipMemcpyDtoHAsync(
7441        &self,
7442        dst: *mut ::std::os::raw::c_void,
7443        src: hipDeviceptr_t,
7444        sizeBytes: usize,
7445        stream: hipStream_t,
7446    ) -> hipError_t {
7447        (self
7448            .hipMemcpyDtoHAsync
7449            .as_ref()
7450            .expect("Expected function, got error."))(dst, src, sizeBytes, stream)
7451    }
7452    #[doc = "  @brief Copy data from Device to Device asynchronously\n\n  @param[out]  dst Data being copy to\n  @param[in]   src Data being copy from\n  @param[in]   sizeBytes Data size in bytes\n\n  @return #hipSuccess, #hipErrorDeinitialized, #hipErrorNotInitialized, #hipErrorInvalidContext,\n #hipErrorInvalidValue\n\n  @see hipArrayCreate, hipArrayDestroy, hipArrayGetDescriptor, hipMemAlloc, hipMemAllocHost,\n hipMemAllocPitch, hipMemcpy2D, hipMemcpy2DAsync, hipMemcpy2DUnaligned, hipMemcpyAtoA,\n hipMemcpyAtoD, hipMemcpyAtoH, hipMemcpyAtoHAsync, hipMemcpyDtoA, hipMemcpyDtoD,\n hipMemcpyDtoDAsync, hipMemcpyDtoH, hipMemcpyDtoHAsync, hipMemcpyHtoA, hipMemcpyHtoAAsync,\n hipMemcpyHtoDAsync, hipMemFree, hipMemFreeHost, hipMemGetAddressRange, hipMemGetInfo,\n hipMemHostAlloc, hipMemHostGetDevicePointer"]
7453    pub unsafe fn hipMemcpyDtoDAsync(
7454        &self,
7455        dst: hipDeviceptr_t,
7456        src: hipDeviceptr_t,
7457        sizeBytes: usize,
7458        stream: hipStream_t,
7459    ) -> hipError_t {
7460        (self
7461            .hipMemcpyDtoDAsync
7462            .as_ref()
7463            .expect("Expected function, got error."))(dst, src, sizeBytes, stream)
7464    }
7465    #[doc = "  @brief Returns a global pointer from a module.\n  Returns in *dptr and *bytes the pointer and size of the global of name name located in module hmod.\n  If no variable of that name exists, it returns hipErrorNotFound. Both parameters dptr and bytes are optional.\n  If one of them is NULL, it is ignored and hipSuccess is returned.\n\n  @param[out]  dptr  Returns global device pointer\n  @param[out]  bytes Returns global size in bytes\n  @param[in]   hmod  Module to retrieve global from\n  @param[in]   name  Name of global to retrieve\n\n  @return #hipSuccess, #hipErrorInvalidValue, #hipErrorNotFound, #hipErrorInvalidContext\n"]
7466    pub unsafe fn hipModuleGetGlobal(
7467        &self,
7468        dptr: *mut hipDeviceptr_t,
7469        bytes: *mut usize,
7470        hmod: hipModule_t,
7471        name: *const ::std::os::raw::c_char,
7472    ) -> hipError_t {
7473        (self
7474            .hipModuleGetGlobal
7475            .as_ref()
7476            .expect("Expected function, got error."))(dptr, bytes, hmod, name)
7477    }
7478    #[doc = "  @brief Gets device pointer associated with symbol on the device.\n\n  @param[out]  devPtr  pointer to the device associated the symbole\n  @param[in]   symbol  pointer to the symbole of the device\n\n  @return #hipSuccess, #hipErrorInvalidValue\n"]
7479    pub unsafe fn hipGetSymbolAddress(
7480        &self,
7481        devPtr: *mut *mut ::std::os::raw::c_void,
7482        symbol: *const ::std::os::raw::c_void,
7483    ) -> hipError_t {
7484        (self
7485            .hipGetSymbolAddress
7486            .as_ref()
7487            .expect("Expected function, got error."))(devPtr, symbol)
7488    }
7489    #[doc = "  @brief Gets the size of the given symbol on the device.\n\n  @param[in]   symbol  pointer to the device symbole\n  @param[out]  size  pointer to the size\n\n  @return #hipSuccess, #hipErrorInvalidValue\n"]
7490    pub unsafe fn hipGetSymbolSize(
7491        &self,
7492        size: *mut usize,
7493        symbol: *const ::std::os::raw::c_void,
7494    ) -> hipError_t {
7495        (self
7496            .hipGetSymbolSize
7497            .as_ref()
7498            .expect("Expected function, got error."))(size, symbol)
7499    }
7500    #[doc = "  @brief Copies data to the given symbol on the device.\n Symbol HIP APIs allow a kernel to define a device-side data symbol which can be accessed on\n the host side. The symbol can be in __constant or device space.\n Note that the symbol name needs to be encased in the HIP_SYMBOL macro.\n This also applies to hipMemcpyFromSymbol, hipGetSymbolAddress, and hipGetSymbolSize.\n For detail usage, see the example at\n https://github.com/ROCm-Developer-Tools/HIP/blob/rocm-5.0.x/docs/markdown/hip_porting_guide.md\n\n  @param[out]  symbol  pointer to the device symbole\n  @param[in]   src  pointer to the source address\n  @param[in]   sizeBytes  size in bytes to copy\n  @param[in]   offset  offset in bytes from start of symbole\n  @param[in]   kind  type of memory transfer\n\n  @return #hipSuccess, #hipErrorInvalidValue\n"]
7501    pub unsafe fn hipMemcpyToSymbol(
7502        &self,
7503        symbol: *const ::std::os::raw::c_void,
7504        src: *const ::std::os::raw::c_void,
7505        sizeBytes: usize,
7506        offset: usize,
7507        kind: hipMemcpyKind,
7508    ) -> hipError_t {
7509        (self
7510            .hipMemcpyToSymbol
7511            .as_ref()
7512            .expect("Expected function, got error."))(symbol, src, sizeBytes, offset, kind)
7513    }
7514    #[doc = "  @brief Copies data to the given symbol on the device asynchronously.\n\n  @param[out]  symbol  pointer to the device symbole\n  @param[in]   src  pointer to the source address\n  @param[in]   sizeBytes  size in bytes to copy\n  @param[in]   offset  offset in bytes from start of symbole\n  @param[in]   kind  type of memory transfer\n  @param[in]   stream  stream identifier\n\n  @return #hipSuccess, #hipErrorInvalidValue\n"]
7515    pub unsafe fn hipMemcpyToSymbolAsync(
7516        &self,
7517        symbol: *const ::std::os::raw::c_void,
7518        src: *const ::std::os::raw::c_void,
7519        sizeBytes: usize,
7520        offset: usize,
7521        kind: hipMemcpyKind,
7522        stream: hipStream_t,
7523    ) -> hipError_t {
7524        (self
7525            .hipMemcpyToSymbolAsync
7526            .as_ref()
7527            .expect("Expected function, got error."))(
7528            symbol, src, sizeBytes, offset, kind, stream
7529        )
7530    }
7531    #[doc = "  @brief Copies data from the given symbol on the device.\n\n  @param[out]  dptr  Returns pointer to destinition memory address\n  @param[in]   symbol  pointer to the symbole address on the device\n  @param[in]   sizeBytes  size in bytes to copy\n  @param[in]   offset  offset in bytes from the start of symbole\n  @param[in]   kind  type of memory transfer\n\n  @return #hipSuccess, #hipErrorInvalidValue\n"]
7532    pub unsafe fn hipMemcpyFromSymbol(
7533        &self,
7534        dst: *mut ::std::os::raw::c_void,
7535        symbol: *const ::std::os::raw::c_void,
7536        sizeBytes: usize,
7537        offset: usize,
7538        kind: hipMemcpyKind,
7539    ) -> hipError_t {
7540        (self
7541            .hipMemcpyFromSymbol
7542            .as_ref()
7543            .expect("Expected function, got error."))(dst, symbol, sizeBytes, offset, kind)
7544    }
7545    #[doc = "  @brief Copies data from the given symbol on the device asynchronously.\n\n  @param[out]  dptr  Returns pointer to destinition memory address\n  @param[in]   symbol  pointer to the symbole address on the device\n  @param[in]   sizeBytes  size in bytes to copy\n  @param[in]   offset  offset in bytes from the start of symbole\n  @param[in]   kind  type of memory transfer\n  @param[in]   stream  stream identifier\n\n  @return #hipSuccess, #hipErrorInvalidValue\n"]
7546    pub unsafe fn hipMemcpyFromSymbolAsync(
7547        &self,
7548        dst: *mut ::std::os::raw::c_void,
7549        symbol: *const ::std::os::raw::c_void,
7550        sizeBytes: usize,
7551        offset: usize,
7552        kind: hipMemcpyKind,
7553        stream: hipStream_t,
7554    ) -> hipError_t {
7555        (self
7556            .hipMemcpyFromSymbolAsync
7557            .as_ref()
7558            .expect("Expected function, got error."))(
7559            dst, symbol, sizeBytes, offset, kind, stream
7560        )
7561    }
7562    #[doc = "  @brief Copy data from src to dst asynchronously.\n\n  @warning If host or dest are not pinned, the memory copy will be performed synchronously.  For\n best performance, use hipHostMalloc to allocate host memory that is transferred asynchronously.\n\n  @warning on HCC hipMemcpyAsync does not support overlapped H2D and D2H copies.\n  For hipMemcpy, the copy is always performed by the device associated with the specified stream.\n\n  For multi-gpu or peer-to-peer configurations, it is recommended to use a stream which is a\n attached to the device where the src data is physically located. For optimal peer-to-peer copies,\n the copy device must be able to access the src and dst pointers (by calling\n hipDeviceEnablePeerAccess with copy agent as the current device and src/dest as the peerDevice\n argument.  if this is not done, the hipMemcpy will still work, but will perform the copy using a\n staging buffer on the host.\n\n  @param[out] dst Data being copy to\n  @param[in]  src Data being copy from\n  @param[in]  sizeBytes Data size in bytes\n  @param[in]  accelerator_view Accelerator view which the copy is being enqueued\n  @return #hipSuccess, #hipErrorInvalidValue, #hipErrorMemoryFree, #hipErrorUnknown\n\n  @see hipMemcpy, hipMemcpy2D, hipMemcpyToArray, hipMemcpy2DToArray, hipMemcpyFromArray,\n hipMemcpy2DFromArray, hipMemcpyArrayToArray, hipMemcpy2DArrayToArray, hipMemcpyToSymbol,\n hipMemcpyFromSymbol, hipMemcpy2DAsync, hipMemcpyToArrayAsync, hipMemcpy2DToArrayAsync,\n hipMemcpyFromArrayAsync, hipMemcpy2DFromArrayAsync, hipMemcpyToSymbolAsync,\n hipMemcpyFromSymbolAsync"]
7563    pub unsafe fn hipMemcpyAsync(
7564        &self,
7565        dst: *mut ::std::os::raw::c_void,
7566        src: *const ::std::os::raw::c_void,
7567        sizeBytes: usize,
7568        kind: hipMemcpyKind,
7569        stream: hipStream_t,
7570    ) -> hipError_t {
7571        (self
7572            .hipMemcpyAsync
7573            .as_ref()
7574            .expect("Expected function, got error."))(dst, src, sizeBytes, kind, stream)
7575    }
7576    #[doc = "  @brief Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant\n byte value value.\n\n  @param[out] dst Data being filled\n  @param[in]  constant value to be set\n  @param[in]  sizeBytes Data size in bytes\n  @return #hipSuccess, #hipErrorInvalidValue, #hipErrorNotInitialized"]
7577    pub unsafe fn hipMemset(
7578        &self,
7579        dst: *mut ::std::os::raw::c_void,
7580        value: ::std::os::raw::c_int,
7581        sizeBytes: usize,
7582    ) -> hipError_t {
7583        (self
7584            .hipMemset
7585            .as_ref()
7586            .expect("Expected function, got error."))(dst, value, sizeBytes)
7587    }
7588    #[doc = "  @brief Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant\n byte value value.\n\n  @param[out] dst Data ptr to be filled\n  @param[in]  constant value to be set\n  @param[in]  number of values to be set\n  @return #hipSuccess, #hipErrorInvalidValue, #hipErrorNotInitialized"]
7589    pub unsafe fn hipMemsetD8(
7590        &self,
7591        dest: hipDeviceptr_t,
7592        value: ::std::os::raw::c_uchar,
7593        count: usize,
7594    ) -> hipError_t {
7595        (self
7596            .hipMemsetD8
7597            .as_ref()
7598            .expect("Expected function, got error."))(dest, value, count)
7599    }
7600    #[doc = "  @brief Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant\n byte value value.\n\n hipMemsetD8Async() is asynchronous with respect to the host, so the call may return before the\n memset is complete. The operation can optionally be associated to a stream by passing a non-zero\n stream argument. If stream is non-zero, the operation may overlap with operations in other\n streams.\n\n  @param[out] dst Data ptr to be filled\n  @param[in]  constant value to be set\n  @param[in]  number of values to be set\n  @param[in]  stream - Stream identifier\n  @return #hipSuccess, #hipErrorInvalidValue, #hipErrorNotInitialized"]
7601    pub unsafe fn hipMemsetD8Async(
7602        &self,
7603        dest: hipDeviceptr_t,
7604        value: ::std::os::raw::c_uchar,
7605        count: usize,
7606        stream: hipStream_t,
7607    ) -> hipError_t {
7608        (self
7609            .hipMemsetD8Async
7610            .as_ref()
7611            .expect("Expected function, got error."))(dest, value, count, stream)
7612    }
7613    #[doc = "  @brief Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant\n short value value.\n\n  @param[out] dst Data ptr to be filled\n  @param[in]  constant value to be set\n  @param[in]  number of values to be set\n  @return #hipSuccess, #hipErrorInvalidValue, #hipErrorNotInitialized"]
7614    pub unsafe fn hipMemsetD16(
7615        &self,
7616        dest: hipDeviceptr_t,
7617        value: ::std::os::raw::c_ushort,
7618        count: usize,
7619    ) -> hipError_t {
7620        (self
7621            .hipMemsetD16
7622            .as_ref()
7623            .expect("Expected function, got error."))(dest, value, count)
7624    }
7625    #[doc = "  @brief Fills the first sizeBytes bytes of the memory area pointed to by dest with the constant\n short value value.\n\n hipMemsetD16Async() is asynchronous with respect to the host, so the call may return before the\n memset is complete. The operation can optionally be associated to a stream by passing a non-zero\n stream argument. If stream is non-zero, the operation may overlap with operations in other\n streams.\n\n  @param[out] dst Data ptr to be filled\n  @param[in]  constant value to be set\n  @param[in]  number of values to be set\n  @param[in]  stream - Stream identifier\n  @return #hipSuccess, #hipErrorInvalidValue, #hipErrorNotInitialized"]
7626    pub unsafe fn hipMemsetD16Async(
7627        &self,
7628        dest: hipDeviceptr_t,
7629        value: ::std::os::raw::c_ushort,
7630        count: usize,
7631        stream: hipStream_t,
7632    ) -> hipError_t {
7633        (self
7634            .hipMemsetD16Async
7635            .as_ref()
7636            .expect("Expected function, got error."))(dest, value, count, stream)
7637    }
7638    #[doc = "  @brief Fills the memory area pointed to by dest with the constant integer\n value for specified number of times.\n\n  @param[out] dst Data being filled\n  @param[in]  constant value to be set\n  @param[in]  number of values to be set\n  @return #hipSuccess, #hipErrorInvalidValue, #hipErrorNotInitialized"]
7639    pub unsafe fn hipMemsetD32(
7640        &self,
7641        dest: hipDeviceptr_t,
7642        value: ::std::os::raw::c_int,
7643        count: usize,
7644    ) -> hipError_t {
7645        (self
7646            .hipMemsetD32
7647            .as_ref()
7648            .expect("Expected function, got error."))(dest, value, count)
7649    }
7650    #[doc = "  @brief Fills the first sizeBytes bytes of the memory area pointed to by dev with the constant\n byte value value.\n\n  hipMemsetAsync() is asynchronous with respect to the host, so the call may return before the\n memset is complete. The operation can optionally be associated to a stream by passing a non-zero\n stream argument. If stream is non-zero, the operation may overlap with operations in other\n streams.\n\n  @param[out] dst Pointer to device memory\n  @param[in]  value - Value to set for each byte of specified memory\n  @param[in]  sizeBytes - Size in bytes to set\n  @param[in]  stream - Stream identifier\n  @return #hipSuccess, #hipErrorInvalidValue, #hipErrorMemoryFree"]
7651    pub unsafe fn hipMemsetAsync(
7652        &self,
7653        dst: *mut ::std::os::raw::c_void,
7654        value: ::std::os::raw::c_int,
7655        sizeBytes: usize,
7656        stream: hipStream_t,
7657    ) -> hipError_t {
7658        (self
7659            .hipMemsetAsync
7660            .as_ref()
7661            .expect("Expected function, got error."))(dst, value, sizeBytes, stream)
7662    }
7663    #[doc = "  @brief Fills the memory area pointed to by dev with the constant integer\n value for specified number of times.\n\n  hipMemsetD32Async() is asynchronous with respect to the host, so the call may return before the\n memset is complete. The operation can optionally be associated to a stream by passing a non-zero\n stream argument. If stream is non-zero, the operation may overlap with operations in other\n streams.\n\n  @param[out] dst Pointer to device memory\n  @param[in]  value - Value to set for each byte of specified memory\n  @param[in]  count - number of values to be set\n  @param[in]  stream - Stream identifier\n  @return #hipSuccess, #hipErrorInvalidValue, #hipErrorMemoryFree"]
7664    pub unsafe fn hipMemsetD32Async(
7665        &self,
7666        dst: hipDeviceptr_t,
7667        value: ::std::os::raw::c_int,
7668        count: usize,
7669        stream: hipStream_t,
7670    ) -> hipError_t {
7671        (self
7672            .hipMemsetD32Async
7673            .as_ref()
7674            .expect("Expected function, got error."))(dst, value, count, stream)
7675    }
7676    #[doc = "  @brief Fills the memory area pointed to by dst with the constant value.\n\n  @param[out] dst Pointer to device memory\n  @param[in]  pitch - data size in bytes\n  @param[in]  value - constant value to be set\n  @param[in]  width\n  @param[in]  height\n  @return #hipSuccess, #hipErrorInvalidValue, #hipErrorMemoryFree"]
7677    pub unsafe fn hipMemset2D(
7678        &self,
7679        dst: *mut ::std::os::raw::c_void,
7680        pitch: usize,
7681        value: ::std::os::raw::c_int,
7682        width: usize,
7683        height: usize,
7684    ) -> hipError_t {
7685        (self
7686            .hipMemset2D
7687            .as_ref()
7688            .expect("Expected function, got error."))(dst, pitch, value, width, height)
7689    }
7690    #[doc = "  @brief Fills asynchronously the memory area pointed to by dst with the constant value.\n\n  @param[in]  dst Pointer to device memory\n  @param[in]  pitch - data size in bytes\n  @param[in]  value - constant value to be set\n  @param[in]  width\n  @param[in]  height\n  @param[in]  stream\n  @return #hipSuccess, #hipErrorInvalidValue, #hipErrorMemoryFree"]
7691    pub unsafe fn hipMemset2DAsync(
7692        &self,
7693        dst: *mut ::std::os::raw::c_void,
7694        pitch: usize,
7695        value: ::std::os::raw::c_int,
7696        width: usize,
7697        height: usize,
7698        stream: hipStream_t,
7699    ) -> hipError_t {
7700        (self
7701            .hipMemset2DAsync
7702            .as_ref()
7703            .expect("Expected function, got error."))(
7704            dst, pitch, value, width, height, stream
7705        )
7706    }
7707    #[doc = "  @brief Fills synchronously the memory area pointed to by pitchedDevPtr with the constant value.\n\n  @param[in] pitchedDevPtr\n  @param[in]  value - constant value to be set\n  @param[in]  extent\n  @return #hipSuccess, #hipErrorInvalidValue, #hipErrorMemoryFree"]
7708    pub unsafe fn hipMemset3D(
7709        &self,
7710        pitchedDevPtr: hipPitchedPtr,
7711        value: ::std::os::raw::c_int,
7712        extent: hipExtent,
7713    ) -> hipError_t {
7714        (self
7715            .hipMemset3D
7716            .as_ref()
7717            .expect("Expected function, got error."))(pitchedDevPtr, value, extent)
7718    }
7719    #[doc = "  @brief Fills asynchronously the memory area pointed to by pitchedDevPtr with the constant value.\n\n  @param[in] pitchedDevPtr\n  @param[in]  value - constant value to be set\n  @param[in]  extent\n  @param[in]  stream\n  @return #hipSuccess, #hipErrorInvalidValue, #hipErrorMemoryFree"]
7720    pub unsafe fn hipMemset3DAsync(
7721        &self,
7722        pitchedDevPtr: hipPitchedPtr,
7723        value: ::std::os::raw::c_int,
7724        extent: hipExtent,
7725        stream: hipStream_t,
7726    ) -> hipError_t {
7727        (self
7728            .hipMemset3DAsync
7729            .as_ref()
7730            .expect("Expected function, got error."))(pitchedDevPtr, value, extent, stream)
7731    }
7732    #[doc = " @brief Query memory info.\n Return snapshot of free memory, and total allocatable memory on the device.\n\n Returns in *free a snapshot of the current free memory.\n @returns #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue\n @warning On HCC, the free memory only accounts for memory allocated by this process and may be\noptimistic."]
7733    pub unsafe fn hipMemGetInfo(&self, free: *mut usize, total: *mut usize) -> hipError_t {
7734        (self
7735            .hipMemGetInfo
7736            .as_ref()
7737            .expect("Expected function, got error."))(free, total)
7738    }
7739    pub unsafe fn hipMemPtrGetInfo(
7740        &self,
7741        ptr: *mut ::std::os::raw::c_void,
7742        size: *mut usize,
7743    ) -> hipError_t {
7744        (self
7745            .hipMemPtrGetInfo
7746            .as_ref()
7747            .expect("Expected function, got error."))(ptr, size)
7748    }
7749    #[doc = "  @brief Allocate an array on the device.\n\n  @param[out]  array  Pointer to allocated array in device memory\n  @param[in]   desc   Requested channel format\n  @param[in]   width  Requested array allocation width\n  @param[in]   height Requested array allocation height\n  @param[in]   flags  Requested properties of allocated array\n  @return      #hipSuccess, #hipErrorOutOfMemory\n\n  @see hipMalloc, hipMallocPitch, hipFree, hipFreeArray, hipHostMalloc, hipHostFree"]
7750    pub unsafe fn hipMallocArray(
7751        &self,
7752        array: *mut *mut hipArray,
7753        desc: *const hipChannelFormatDesc,
7754        width: usize,
7755        height: usize,
7756        flags: ::std::os::raw::c_uint,
7757    ) -> hipError_t {
7758        (self
7759            .hipMallocArray
7760            .as_ref()
7761            .expect("Expected function, got error."))(array, desc, width, height, flags)
7762    }
7763    pub unsafe fn hipArrayCreate(
7764        &self,
7765        pHandle: *mut *mut hipArray,
7766        pAllocateArray: *const HIP_ARRAY_DESCRIPTOR,
7767    ) -> hipError_t {
7768        (self
7769            .hipArrayCreate
7770            .as_ref()
7771            .expect("Expected function, got error."))(pHandle, pAllocateArray)
7772    }
7773    pub unsafe fn hipArrayDestroy(&self, array: *mut hipArray) -> hipError_t {
7774        (self
7775            .hipArrayDestroy
7776            .as_ref()
7777            .expect("Expected function, got error."))(array)
7778    }
7779    pub unsafe fn hipArray3DCreate(
7780        &self,
7781        array: *mut *mut hipArray,
7782        pAllocateArray: *const HIP_ARRAY3D_DESCRIPTOR,
7783    ) -> hipError_t {
7784        (self
7785            .hipArray3DCreate
7786            .as_ref()
7787            .expect("Expected function, got error."))(array, pAllocateArray)
7788    }
7789    pub unsafe fn hipMalloc3D(
7790        &self,
7791        pitchedDevPtr: *mut hipPitchedPtr,
7792        extent: hipExtent,
7793    ) -> hipError_t {
7794        (self
7795            .hipMalloc3D
7796            .as_ref()
7797            .expect("Expected function, got error."))(pitchedDevPtr, extent)
7798    }
7799    #[doc = "  @brief Frees an array on the device.\n\n  @param[in]  array  Pointer to array to free\n  @return     #hipSuccess, #hipErrorInvalidValue, #hipErrorNotInitialized\n\n  @see hipMalloc, hipMallocPitch, hipFree, hipMallocArray, hipHostMalloc, hipHostFree"]
7800    pub unsafe fn hipFreeArray(&self, array: *mut hipArray) -> hipError_t {
7801        (self
7802            .hipFreeArray
7803            .as_ref()
7804            .expect("Expected function, got error."))(array)
7805    }
7806    #[doc = " @brief Frees a mipmapped array on the device\n\n @param[in] mipmappedArray - Pointer to mipmapped array to free\n\n @return #hipSuccess, #hipErrorInvalidValue"]
7807    pub unsafe fn hipFreeMipmappedArray(&self, mipmappedArray: hipMipmappedArray_t) -> hipError_t {
7808        (self
7809            .hipFreeMipmappedArray
7810            .as_ref()
7811            .expect("Expected function, got error."))(mipmappedArray)
7812    }
7813    #[doc = "  @brief Allocate an array on the device.\n\n  @param[out]  array  Pointer to allocated array in device memory\n  @param[in]   desc   Requested channel format\n  @param[in]   extent Requested array allocation width, height and depth\n  @param[in]   flags  Requested properties of allocated array\n  @return      #hipSuccess, #hipErrorOutOfMemory\n\n  @see hipMalloc, hipMallocPitch, hipFree, hipFreeArray, hipHostMalloc, hipHostFree"]
7814    pub unsafe fn hipMalloc3DArray(
7815        &self,
7816        array: *mut *mut hipArray,
7817        desc: *const hipChannelFormatDesc,
7818        extent: hipExtent,
7819        flags: ::std::os::raw::c_uint,
7820    ) -> hipError_t {
7821        (self
7822            .hipMalloc3DArray
7823            .as_ref()
7824            .expect("Expected function, got error."))(array, desc, extent, flags)
7825    }
7826    #[doc = " @brief Allocate a mipmapped array on the device\n\n @param[out] mipmappedArray  - Pointer to allocated mipmapped array in device memory\n @param[in]  desc            - Requested channel format\n @param[in]  extent          - Requested allocation size (width field in elements)\n @param[in]  numLevels       - Number of mipmap levels to allocate\n @param[in]  flags           - Flags for extensions\n\n @return #hipSuccess, #hipErrorInvalidValue, #hipErrorMemoryAllocation"]
7827    pub unsafe fn hipMallocMipmappedArray(
7828        &self,
7829        mipmappedArray: *mut hipMipmappedArray_t,
7830        desc: *const hipChannelFormatDesc,
7831        extent: hipExtent,
7832        numLevels: ::std::os::raw::c_uint,
7833        flags: ::std::os::raw::c_uint,
7834    ) -> hipError_t {
7835        (self
7836            .hipMallocMipmappedArray
7837            .as_ref()
7838            .expect("Expected function, got error."))(
7839            mipmappedArray,
7840            desc,
7841            extent,
7842            numLevels,
7843            flags,
7844        )
7845    }
7846    #[doc = " @brief Gets a mipmap level of a HIP mipmapped array\n\n @param[out] levelArray     - Returned mipmap level HIP array\n @param[in]  mipmappedArray - HIP mipmapped array\n @param[in]  level          - Mipmap level\n\n @return #hipSuccess, #hipErrorInvalidValue"]
7847    pub unsafe fn hipGetMipmappedArrayLevel(
7848        &self,
7849        levelArray: *mut hipArray_t,
7850        mipmappedArray: hipMipmappedArray_const_t,
7851        level: ::std::os::raw::c_uint,
7852    ) -> hipError_t {
7853        (self
7854            .hipGetMipmappedArrayLevel
7855            .as_ref()
7856            .expect("Expected function, got error."))(levelArray, mipmappedArray, level)
7857    }
7858    #[doc = "  @brief Copies data between host and device.\n\n  @param[in]   dst    Destination memory address\n  @param[in]   dpitch Pitch of destination memory\n  @param[in]   src    Source memory address\n  @param[in]   spitch Pitch of source memory\n  @param[in]   width  Width of matrix transfer (columns in bytes)\n  @param[in]   height Height of matrix transfer (rows)\n  @param[in]   kind   Type of transfer\n  @return      #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidPitchValue,\n #hipErrorInvalidDevicePointer, #hipErrorInvalidMemcpyDirection\n\n  @see hipMemcpy, hipMemcpyToArray, hipMemcpy2DToArray, hipMemcpyFromArray, hipMemcpyToSymbol,\n hipMemcpyAsync"]
7859    pub unsafe fn hipMemcpy2D(
7860        &self,
7861        dst: *mut ::std::os::raw::c_void,
7862        dpitch: usize,
7863        src: *const ::std::os::raw::c_void,
7864        spitch: usize,
7865        width: usize,
7866        height: usize,
7867        kind: hipMemcpyKind,
7868    ) -> hipError_t {
7869        (self
7870            .hipMemcpy2D
7871            .as_ref()
7872            .expect("Expected function, got error."))(
7873            dst, dpitch, src, spitch, width, height, kind
7874        )
7875    }
7876    #[doc = "  @brief Copies memory for 2D arrays.\n  @param[in]   pCopy Parameters for the memory copy\n  @return      #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidPitchValue,\n  #hipErrorInvalidDevicePointer, #hipErrorInvalidMemcpyDirection\n\n  @see hipMemcpy, hipMemcpy2D, hipMemcpyToArray, hipMemcpy2DToArray, hipMemcpyFromArray,\n hipMemcpyToSymbol, hipMemcpyAsync"]
7877    pub unsafe fn hipMemcpyParam2D(&self, pCopy: *const hip_Memcpy2D) -> hipError_t {
7878        (self
7879            .hipMemcpyParam2D
7880            .as_ref()
7881            .expect("Expected function, got error."))(pCopy)
7882    }
7883    #[doc = "  @brief Copies memory for 2D arrays.\n  @param[in]   pCopy Parameters for the memory copy\n  @param[in]   stream Stream to use\n  @return      #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidPitchValue,\n #hipErrorInvalidDevicePointer, #hipErrorInvalidMemcpyDirection\n\n  @see hipMemcpy, hipMemcpy2D, hipMemcpyToArray, hipMemcpy2DToArray, hipMemcpyFromArray,\n hipMemcpyToSymbol, hipMemcpyAsync"]
7884    pub unsafe fn hipMemcpyParam2DAsync(
7885        &self,
7886        pCopy: *const hip_Memcpy2D,
7887        stream: hipStream_t,
7888    ) -> hipError_t {
7889        (self
7890            .hipMemcpyParam2DAsync
7891            .as_ref()
7892            .expect("Expected function, got error."))(pCopy, stream)
7893    }
7894    #[doc = "  @brief Copies data between host and device.\n\n  @param[in]   dst    Destination memory address\n  @param[in]   dpitch Pitch of destination memory\n  @param[in]   src    Source memory address\n  @param[in]   spitch Pitch of source memory\n  @param[in]   width  Width of matrix transfer (columns in bytes)\n  @param[in]   height Height of matrix transfer (rows)\n  @param[in]   kind   Type of transfer\n  @param[in]   stream Stream to use\n  @return      #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidPitchValue,\n #hipErrorInvalidDevicePointer, #hipErrorInvalidMemcpyDirection\n\n  @see hipMemcpy, hipMemcpyToArray, hipMemcpy2DToArray, hipMemcpyFromArray, hipMemcpyToSymbol,\n hipMemcpyAsync"]
7895    pub unsafe fn hipMemcpy2DAsync(
7896        &self,
7897        dst: *mut ::std::os::raw::c_void,
7898        dpitch: usize,
7899        src: *const ::std::os::raw::c_void,
7900        spitch: usize,
7901        width: usize,
7902        height: usize,
7903        kind: hipMemcpyKind,
7904        stream: hipStream_t,
7905    ) -> hipError_t {
7906        (self
7907            .hipMemcpy2DAsync
7908            .as_ref()
7909            .expect("Expected function, got error."))(
7910            dst, dpitch, src, spitch, width, height, kind, stream,
7911        )
7912    }
7913    #[doc = "  @brief Copies data between host and device.\n\n  @param[in]   dst     Destination memory address\n  @param[in]   wOffset Destination starting X offset\n  @param[in]   hOffset Destination starting Y offset\n  @param[in]   src     Source memory address\n  @param[in]   spitch  Pitch of source memory\n  @param[in]   width   Width of matrix transfer (columns in bytes)\n  @param[in]   height  Height of matrix transfer (rows)\n  @param[in]   kind    Type of transfer\n  @return      #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidPitchValue,\n #hipErrorInvalidDevicePointer, #hipErrorInvalidMemcpyDirection\n\n  @see hipMemcpy, hipMemcpyToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol,\n hipMemcpyAsync"]
7914    pub unsafe fn hipMemcpy2DToArray(
7915        &self,
7916        dst: *mut hipArray,
7917        wOffset: usize,
7918        hOffset: usize,
7919        src: *const ::std::os::raw::c_void,
7920        spitch: usize,
7921        width: usize,
7922        height: usize,
7923        kind: hipMemcpyKind,
7924    ) -> hipError_t {
7925        (self
7926            .hipMemcpy2DToArray
7927            .as_ref()
7928            .expect("Expected function, got error."))(
7929            dst, wOffset, hOffset, src, spitch, width, height, kind,
7930        )
7931    }
7932    #[doc = "  @brief Copies data between host and device.\n\n  @param[in]   dst     Destination memory address\n  @param[in]   wOffset Destination starting X offset\n  @param[in]   hOffset Destination starting Y offset\n  @param[in]   src     Source memory address\n  @param[in]   spitch  Pitch of source memory\n  @param[in]   width   Width of matrix transfer (columns in bytes)\n  @param[in]   height  Height of matrix transfer (rows)\n  @param[in]   kind    Type of transfer\n  @param[in]   stream    Accelerator view which the copy is being enqueued\n  @return      #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidPitchValue,\n #hipErrorInvalidDevicePointer, #hipErrorInvalidMemcpyDirection\n\n  @see hipMemcpy, hipMemcpyToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol,\n hipMemcpyAsync"]
7933    pub unsafe fn hipMemcpy2DToArrayAsync(
7934        &self,
7935        dst: *mut hipArray,
7936        wOffset: usize,
7937        hOffset: usize,
7938        src: *const ::std::os::raw::c_void,
7939        spitch: usize,
7940        width: usize,
7941        height: usize,
7942        kind: hipMemcpyKind,
7943        stream: hipStream_t,
7944    ) -> hipError_t {
7945        (self
7946            .hipMemcpy2DToArrayAsync
7947            .as_ref()
7948            .expect("Expected function, got error."))(
7949            dst, wOffset, hOffset, src, spitch, width, height, kind, stream,
7950        )
7951    }
7952    #[doc = "  @brief Copies data between host and device.\n\n  @param[in]   dst     Destination memory address\n  @param[in]   wOffset Destination starting X offset\n  @param[in]   hOffset Destination starting Y offset\n  @param[in]   src     Source memory address\n  @param[in]   count   size in bytes to copy\n  @param[in]   kind    Type of transfer\n  @return      #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidPitchValue,\n #hipErrorInvalidDevicePointer, #hipErrorInvalidMemcpyDirection\n\n  @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol,\n hipMemcpyAsync"]
7953    pub unsafe fn hipMemcpyToArray(
7954        &self,
7955        dst: *mut hipArray,
7956        wOffset: usize,
7957        hOffset: usize,
7958        src: *const ::std::os::raw::c_void,
7959        count: usize,
7960        kind: hipMemcpyKind,
7961    ) -> hipError_t {
7962        (self
7963            .hipMemcpyToArray
7964            .as_ref()
7965            .expect("Expected function, got error."))(
7966            dst, wOffset, hOffset, src, count, kind
7967        )
7968    }
7969    #[doc = "  @brief Copies data between host and device.\n\n  @param[in]   dst       Destination memory address\n  @param[in]   srcArray  Source memory address\n  @param[in]   woffset   Source starting X offset\n  @param[in]   hOffset   Source starting Y offset\n  @param[in]   count     Size in bytes to copy\n  @param[in]   kind      Type of transfer\n  @return      #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidPitchValue,\n #hipErrorInvalidDevicePointer, #hipErrorInvalidMemcpyDirection\n\n  @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol,\n hipMemcpyAsync"]
7970    pub unsafe fn hipMemcpyFromArray(
7971        &self,
7972        dst: *mut ::std::os::raw::c_void,
7973        srcArray: hipArray_const_t,
7974        wOffset: usize,
7975        hOffset: usize,
7976        count: usize,
7977        kind: hipMemcpyKind,
7978    ) -> hipError_t {
7979        (self
7980            .hipMemcpyFromArray
7981            .as_ref()
7982            .expect("Expected function, got error."))(
7983            dst, srcArray, wOffset, hOffset, count, kind
7984        )
7985    }
7986    #[doc = "  @brief Copies data between host and device.\n\n  @param[in]   dst       Destination memory address\n  @param[in]   dpitch    Pitch of destination memory\n  @param[in]   src       Source memory address\n  @param[in]   wOffset   Source starting X offset\n  @param[in]   hOffset   Source starting Y offset\n  @param[in]   width     Width of matrix transfer (columns in bytes)\n  @param[in]   height    Height of matrix transfer (rows)\n  @param[in]   kind      Type of transfer\n  @return      #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidPitchValue,\n #hipErrorInvalidDevicePointer, #hipErrorInvalidMemcpyDirection\n\n  @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol,\n hipMemcpyAsync"]
7987    pub unsafe fn hipMemcpy2DFromArray(
7988        &self,
7989        dst: *mut ::std::os::raw::c_void,
7990        dpitch: usize,
7991        src: hipArray_const_t,
7992        wOffset: usize,
7993        hOffset: usize,
7994        width: usize,
7995        height: usize,
7996        kind: hipMemcpyKind,
7997    ) -> hipError_t {
7998        (self
7999            .hipMemcpy2DFromArray
8000            .as_ref()
8001            .expect("Expected function, got error."))(
8002            dst, dpitch, src, wOffset, hOffset, width, height, kind,
8003        )
8004    }
8005    #[doc = "  @brief Copies data between host and device asynchronously.\n\n  @param[in]   dst       Destination memory address\n  @param[in]   dpitch    Pitch of destination memory\n  @param[in]   src       Source memory address\n  @param[in]   wOffset   Source starting X offset\n  @param[in]   hOffset   Source starting Y offset\n  @param[in]   width     Width of matrix transfer (columns in bytes)\n  @param[in]   height    Height of matrix transfer (rows)\n  @param[in]   kind      Type of transfer\n  @param[in]   stream    Accelerator view which the copy is being enqueued\n  @return      #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidPitchValue,\n #hipErrorInvalidDevicePointer, #hipErrorInvalidMemcpyDirection\n\n  @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol,\n hipMemcpyAsync"]
8006    pub unsafe fn hipMemcpy2DFromArrayAsync(
8007        &self,
8008        dst: *mut ::std::os::raw::c_void,
8009        dpitch: usize,
8010        src: hipArray_const_t,
8011        wOffset: usize,
8012        hOffset: usize,
8013        width: usize,
8014        height: usize,
8015        kind: hipMemcpyKind,
8016        stream: hipStream_t,
8017    ) -> hipError_t {
8018        (self
8019            .hipMemcpy2DFromArrayAsync
8020            .as_ref()
8021            .expect("Expected function, got error."))(
8022            dst, dpitch, src, wOffset, hOffset, width, height, kind, stream,
8023        )
8024    }
8025    #[doc = "  @brief Copies data between host and device.\n\n  @param[in]   dst       Destination memory address\n  @param[in]   srcArray  Source array\n  @param[in]   srcoffset Offset in bytes of source array\n  @param[in]   count     Size of memory copy in bytes\n  @return      #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidPitchValue,\n #hipErrorInvalidDevicePointer, #hipErrorInvalidMemcpyDirection\n\n  @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol,\n hipMemcpyAsync"]
8026    pub unsafe fn hipMemcpyAtoH(
8027        &self,
8028        dst: *mut ::std::os::raw::c_void,
8029        srcArray: *mut hipArray,
8030        srcOffset: usize,
8031        count: usize,
8032    ) -> hipError_t {
8033        (self
8034            .hipMemcpyAtoH
8035            .as_ref()
8036            .expect("Expected function, got error."))(dst, srcArray, srcOffset, count)
8037    }
8038    #[doc = "  @brief Copies data between host and device.\n\n  @param[in]   dstArray   Destination memory address\n  @param[in]   dstOffset  Offset in bytes of destination array\n  @param[in]   srcHost    Source host pointer\n  @param[in]   count      Size of memory copy in bytes\n  @return      #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidPitchValue,\n #hipErrorInvalidDevicePointer, #hipErrorInvalidMemcpyDirection\n\n  @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol,\n hipMemcpyAsync"]
8039    pub unsafe fn hipMemcpyHtoA(
8040        &self,
8041        dstArray: *mut hipArray,
8042        dstOffset: usize,
8043        srcHost: *const ::std::os::raw::c_void,
8044        count: usize,
8045    ) -> hipError_t {
8046        (self
8047            .hipMemcpyHtoA
8048            .as_ref()
8049            .expect("Expected function, got error."))(dstArray, dstOffset, srcHost, count)
8050    }
8051    #[doc = "  @brief Copies data between host and device.\n\n  @param[in]   p   3D memory copy parameters\n  @return      #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidPitchValue,\n #hipErrorInvalidDevicePointer, #hipErrorInvalidMemcpyDirection\n\n  @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol,\n hipMemcpyAsync"]
8052    pub unsafe fn hipMemcpy3D(&self, p: *const hipMemcpy3DParms) -> hipError_t {
8053        (self
8054            .hipMemcpy3D
8055            .as_ref()
8056            .expect("Expected function, got error."))(p)
8057    }
8058    #[doc = "  @brief Copies data between host and device asynchronously.\n\n  @param[in]   p        3D memory copy parameters\n  @param[in]   stream   Stream to use\n  @return      #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidPitchValue,\n #hipErrorInvalidDevicePointer, #hipErrorInvalidMemcpyDirection\n\n  @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol,\n hipMemcpyAsync"]
8059    pub unsafe fn hipMemcpy3DAsync(
8060        &self,
8061        p: *const hipMemcpy3DParms,
8062        stream: hipStream_t,
8063    ) -> hipError_t {
8064        (self
8065            .hipMemcpy3DAsync
8066            .as_ref()
8067            .expect("Expected function, got error."))(p, stream)
8068    }
8069    #[doc = "  @brief Copies data between host and device.\n\n  @param[in]   pCopy   3D memory copy parameters\n  @return      #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidPitchValue,\n  #hipErrorInvalidDevicePointer, #hipErrorInvalidMemcpyDirection\n\n  @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol,\n hipMemcpyAsync"]
8070    pub unsafe fn hipDrvMemcpy3D(&self, pCopy: *const HIP_MEMCPY3D) -> hipError_t {
8071        (self
8072            .hipDrvMemcpy3D
8073            .as_ref()
8074            .expect("Expected function, got error."))(pCopy)
8075    }
8076    #[doc = "  @brief Copies data between host and device asynchronously.\n\n  @param[in]   pCopy    3D memory copy parameters\n  @param[in]   stream   Stream to use\n  @return      #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidPitchValue,\n  #hipErrorInvalidDevicePointer, #hipErrorInvalidMemcpyDirection\n\n  @see hipMemcpy, hipMemcpy2DToArray, hipMemcpy2D, hipMemcpyFromArray, hipMemcpyToSymbol,\n hipMemcpyAsync"]
8077    pub unsafe fn hipDrvMemcpy3DAsync(
8078        &self,
8079        pCopy: *const HIP_MEMCPY3D,
8080        stream: hipStream_t,
8081    ) -> hipError_t {
8082        (self
8083            .hipDrvMemcpy3DAsync
8084            .as_ref()
8085            .expect("Expected function, got error."))(pCopy, stream)
8086    }
8087    #[doc = " @}\n/\n/**\n-------------------------------------------------------------------------------------------------\n-------------------------------------------------------------------------------------------------\n  @defgroup PeerToPeer PeerToPeer Device Memory Access\n  @{\n  @warning PeerToPeer support is experimental.\n  This section describes the PeerToPeer device memory access functions of HIP runtime API.\n/\n/**\n @brief Determine if a device can access a peer's memory.\n\n @param [out] canAccessPeer Returns the peer access capability (0 or 1)\n @param [in] device - device from where memory may be accessed.\n @param [in] peerDevice - device where memory is physically located\n\n Returns \"1\" in @p canAccessPeer if the specified @p device is capable\n of directly accessing memory physically located on peerDevice , or \"0\" if not.\n\n Returns \"0\" in @p canAccessPeer if deviceId == peerDeviceId, and both are valid devices : a\n device is not a peer of itself.\n\n @returns #hipSuccess,\n @returns #hipErrorInvalidDevice if deviceId or peerDeviceId are not valid devices"]
8088    pub unsafe fn hipDeviceCanAccessPeer(
8089        &self,
8090        canAccessPeer: *mut ::std::os::raw::c_int,
8091        deviceId: ::std::os::raw::c_int,
8092        peerDeviceId: ::std::os::raw::c_int,
8093    ) -> hipError_t {
8094        (self
8095            .hipDeviceCanAccessPeer
8096            .as_ref()
8097            .expect("Expected function, got error."))(canAccessPeer, deviceId, peerDeviceId)
8098    }
8099    #[doc = " @brief Enable direct access from current device's virtual address space to memory allocations\n physically located on a peer device.\n\n Memory which already allocated on peer device will be mapped into the address space of the\n current device.  In addition, all future memory allocations on peerDeviceId will be mapped into\n the address space of the current device when the memory is allocated. The peer memory remains\n accessible from the current device until a call to hipDeviceDisablePeerAccess or hipDeviceReset.\n\n\n @param [in] peerDeviceId\n @param [in] flags\n\n Returns #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue,\n @returns #hipErrorPeerAccessAlreadyEnabled if peer access is already enabled for this device."]
8100    pub unsafe fn hipDeviceEnablePeerAccess(
8101        &self,
8102        peerDeviceId: ::std::os::raw::c_int,
8103        flags: ::std::os::raw::c_uint,
8104    ) -> hipError_t {
8105        (self
8106            .hipDeviceEnablePeerAccess
8107            .as_ref()
8108            .expect("Expected function, got error."))(peerDeviceId, flags)
8109    }
8110    #[doc = " @brief Disable direct access from current device's virtual address space to memory allocations\n physically located on a peer device.\n\n Returns hipErrorPeerAccessNotEnabled if direct access to memory on peerDevice has not yet been\n enabled from the current device.\n\n @param [in] peerDeviceId\n\n @returns #hipSuccess, #hipErrorPeerAccessNotEnabled"]
8111    pub unsafe fn hipDeviceDisablePeerAccess(
8112        &self,
8113        peerDeviceId: ::std::os::raw::c_int,
8114    ) -> hipError_t {
8115        (self
8116            .hipDeviceDisablePeerAccess
8117            .as_ref()
8118            .expect("Expected function, got error."))(peerDeviceId)
8119    }
8120    #[doc = " @brief Get information on memory allocations.\n\n @param [out] pbase - BAse pointer address\n @param [out] psize - Size of allocation\n @param [in]  dptr- Device Pointer\n\n @returns #hipSuccess, #hipErrorInvalidDevicePointer\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,\n hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice"]
8121    pub unsafe fn hipMemGetAddressRange(
8122        &self,
8123        pbase: *mut hipDeviceptr_t,
8124        psize: *mut usize,
8125        dptr: hipDeviceptr_t,
8126    ) -> hipError_t {
8127        (self
8128            .hipMemGetAddressRange
8129            .as_ref()
8130            .expect("Expected function, got error."))(pbase, psize, dptr)
8131    }
8132    #[doc = " @brief Copies memory from one device to memory on another device.\n\n @param [out] dst - Destination device pointer.\n @param [in] dstDeviceId - Destination device\n @param [in] src - Source device pointer\n @param [in] srcDeviceId - Source device\n @param [in] sizeBytes - Size of memory copy in bytes\n\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidDevice"]
8133    pub unsafe fn hipMemcpyPeer(
8134        &self,
8135        dst: *mut ::std::os::raw::c_void,
8136        dstDeviceId: ::std::os::raw::c_int,
8137        src: *const ::std::os::raw::c_void,
8138        srcDeviceId: ::std::os::raw::c_int,
8139        sizeBytes: usize,
8140    ) -> hipError_t {
8141        (self
8142            .hipMemcpyPeer
8143            .as_ref()
8144            .expect("Expected function, got error."))(
8145            dst, dstDeviceId, src, srcDeviceId, sizeBytes
8146        )
8147    }
8148    #[doc = " @brief Copies memory from one device to memory on another device.\n\n @param [out] dst - Destination device pointer.\n @param [in] dstDevice - Destination device\n @param [in] src - Source device pointer\n @param [in] srcDevice - Source device\n @param [in] sizeBytes - Size of memory copy in bytes\n @param [in] stream - Stream identifier\n\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidDevice"]
8149    pub unsafe fn hipMemcpyPeerAsync(
8150        &self,
8151        dst: *mut ::std::os::raw::c_void,
8152        dstDeviceId: ::std::os::raw::c_int,
8153        src: *const ::std::os::raw::c_void,
8154        srcDevice: ::std::os::raw::c_int,
8155        sizeBytes: usize,
8156        stream: hipStream_t,
8157    ) -> hipError_t {
8158        (self
8159            .hipMemcpyPeerAsync
8160            .as_ref()
8161            .expect("Expected function, got error."))(
8162            dst,
8163            dstDeviceId,
8164            src,
8165            srcDevice,
8166            sizeBytes,
8167            stream,
8168        )
8169    }
8170    #[doc = " @}\n/\n/**\n-------------------------------------------------------------------------------------------------\n-------------------------------------------------------------------------------------------------\n  @defgroup Context Context Management\n  @{\n  This section describes the context management functions of HIP runtime API.\n/\n/**\n\n  @addtogroup ContextD Context Management [Deprecated]\n  @{\n  @ingroup Context\n  This section describes the deprecated context management functions of HIP runtime API.\n/\n/**\n @brief Create a context and set it as current/ default context\n\n @param [out] ctx\n @param [in] flags\n @param [in] associated device handle\n\n @return #hipSuccess\n\n @see hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, hipCtxPushCurrent,\n hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice"]
8171    pub unsafe fn hipCtxCreate(
8172        &self,
8173        ctx: *mut hipCtx_t,
8174        flags: ::std::os::raw::c_uint,
8175        device: hipDevice_t,
8176    ) -> hipError_t {
8177        (self
8178            .hipCtxCreate
8179            .as_ref()
8180            .expect("Expected function, got error."))(ctx, flags, device)
8181    }
8182    #[doc = " @brief Destroy a HIP context.\n\n @param [in] ctx Context to destroy\n\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @see hipCtxCreate, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,hipCtxSetCurrent,\n hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize , hipCtxGetDevice"]
8183    pub unsafe fn hipCtxDestroy(&self, ctx: hipCtx_t) -> hipError_t {
8184        (self
8185            .hipCtxDestroy
8186            .as_ref()
8187            .expect("Expected function, got error."))(ctx)
8188    }
8189    #[doc = " @brief Pop the current/default context and return the popped context.\n\n @param [out] ctx\n\n @returns #hipSuccess, #hipErrorInvalidContext\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxSetCurrent, hipCtxGetCurrent,\n hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice"]
8190    pub unsafe fn hipCtxPopCurrent(&self, ctx: *mut hipCtx_t) -> hipError_t {
8191        (self
8192            .hipCtxPopCurrent
8193            .as_ref()
8194            .expect("Expected function, got error."))(ctx)
8195    }
8196    #[doc = " @brief Push the context to be set as current/ default context\n\n @param [in] ctx\n\n @returns #hipSuccess, #hipErrorInvalidContext\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,\n hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize , hipCtxGetDevice"]
8197    pub unsafe fn hipCtxPushCurrent(&self, ctx: hipCtx_t) -> hipError_t {
8198        (self
8199            .hipCtxPushCurrent
8200            .as_ref()
8201            .expect("Expected function, got error."))(ctx)
8202    }
8203    #[doc = " @brief Set the passed context as current/default\n\n @param [in] ctx\n\n @returns #hipSuccess, #hipErrorInvalidContext\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,\n hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize , hipCtxGetDevice"]
8204    pub unsafe fn hipCtxSetCurrent(&self, ctx: hipCtx_t) -> hipError_t {
8205        (self
8206            .hipCtxSetCurrent
8207            .as_ref()
8208            .expect("Expected function, got error."))(ctx)
8209    }
8210    #[doc = " @brief Get the handle of the current/ default context\n\n @param [out] ctx\n\n @returns #hipSuccess, #hipErrorInvalidContext\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetDevice, hipCtxGetFlags, hipCtxPopCurrent,\n hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice"]
8211    pub unsafe fn hipCtxGetCurrent(&self, ctx: *mut hipCtx_t) -> hipError_t {
8212        (self
8213            .hipCtxGetCurrent
8214            .as_ref()
8215            .expect("Expected function, got error."))(ctx)
8216    }
8217    #[doc = " @brief Get the handle of the device associated with current/default context\n\n @param [out] device\n\n @returns #hipSuccess, #hipErrorInvalidContext\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,\n hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize"]
8218    pub unsafe fn hipCtxGetDevice(&self, device: *mut hipDevice_t) -> hipError_t {
8219        (self
8220            .hipCtxGetDevice
8221            .as_ref()
8222            .expect("Expected function, got error."))(device)
8223    }
8224    #[doc = " @brief Returns the approximate HIP api version.\n\n @param [in]  ctx Context to check\n @param [out] apiVersion\n\n @return #hipSuccess\n\n @warning The HIP feature set does not correspond to an exact CUDA SDK api revision.\n This function always set *apiVersion to 4 as an approximation though HIP supports\n some features which were introduced in later CUDA SDK revisions.\n HIP apps code should not rely on the api revision number here and should\n use arch feature flags to test device capabilities or conditional compilation.\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetDevice, hipCtxGetFlags, hipCtxPopCurrent,\n hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice"]
8225    pub unsafe fn hipCtxGetApiVersion(
8226        &self,
8227        ctx: hipCtx_t,
8228        apiVersion: *mut ::std::os::raw::c_int,
8229    ) -> hipError_t {
8230        (self
8231            .hipCtxGetApiVersion
8232            .as_ref()
8233            .expect("Expected function, got error."))(ctx, apiVersion)
8234    }
8235    #[doc = " @brief Set Cache configuration for a specific function\n\n @param [out] cacheConfiguration\n\n @return #hipSuccess\n\n @warning AMD devices and some Nvidia GPUS do not support reconfigurable cache.  This hint is\n ignored on those architectures.\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,\n hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice"]
8236    pub unsafe fn hipCtxGetCacheConfig(&self, cacheConfig: *mut hipFuncCache_t) -> hipError_t {
8237        (self
8238            .hipCtxGetCacheConfig
8239            .as_ref()
8240            .expect("Expected function, got error."))(cacheConfig)
8241    }
8242    #[doc = " @brief Set L1/Shared cache partition.\n\n @param [in] cacheConfiguration\n\n @return #hipSuccess\n\n @warning AMD devices and some Nvidia GPUS do not support reconfigurable cache.  This hint is\n ignored on those architectures.\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,\n hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice"]
8243    pub unsafe fn hipCtxSetCacheConfig(&self, cacheConfig: hipFuncCache_t) -> hipError_t {
8244        (self
8245            .hipCtxSetCacheConfig
8246            .as_ref()
8247            .expect("Expected function, got error."))(cacheConfig)
8248    }
8249    #[doc = " @brief Set Shared memory bank configuration.\n\n @param [in] sharedMemoryConfiguration\n\n @return #hipSuccess\n\n @warning AMD devices and some Nvidia GPUS do not support shared cache banking, and the hint is\n ignored on those architectures.\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,\n hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice"]
8250    pub unsafe fn hipCtxSetSharedMemConfig(&self, config: hipSharedMemConfig) -> hipError_t {
8251        (self
8252            .hipCtxSetSharedMemConfig
8253            .as_ref()
8254            .expect("Expected function, got error."))(config)
8255    }
8256    #[doc = " @brief Get Shared memory bank configuration.\n\n @param [out] sharedMemoryConfiguration\n\n @return #hipSuccess\n\n @warning AMD devices and some Nvidia GPUS do not support shared cache banking, and the hint is\n ignored on those architectures.\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,\n hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice"]
8257    pub unsafe fn hipCtxGetSharedMemConfig(&self, pConfig: *mut hipSharedMemConfig) -> hipError_t {
8258        (self
8259            .hipCtxGetSharedMemConfig
8260            .as_ref()
8261            .expect("Expected function, got error."))(pConfig)
8262    }
8263    #[doc = " @brief Blocks until the default context has completed all preceding requested tasks.\n\n @return #hipSuccess\n\n @warning This function waits for all streams on the default context to complete execution, and\n then returns.\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,\n hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxGetDevice"]
8264    pub unsafe fn hipCtxSynchronize(&self) -> hipError_t {
8265        (self
8266            .hipCtxSynchronize
8267            .as_ref()
8268            .expect("Expected function, got error."))()
8269    }
8270    #[doc = " @brief Return flags used for creating default context.\n\n @param [out] flags\n\n @returns #hipSuccess\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxPopCurrent, hipCtxGetCurrent, hipCtxGetCurrent,\n hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice"]
8271    pub unsafe fn hipCtxGetFlags(&self, flags: *mut ::std::os::raw::c_uint) -> hipError_t {
8272        (self
8273            .hipCtxGetFlags
8274            .as_ref()
8275            .expect("Expected function, got error."))(flags)
8276    }
8277    #[doc = " @brief Enables direct access to memory allocations in a peer context.\n\n Memory which already allocated on peer device will be mapped into the address space of the\n current device.  In addition, all future memory allocations on peerDeviceId will be mapped into\n the address space of the current device when the memory is allocated. The peer memory remains\n accessible from the current device until a call to hipDeviceDisablePeerAccess or hipDeviceReset.\n\n\n @param [in] peerCtx\n @param [in] flags\n\n @returns #hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue,\n #hipErrorPeerAccessAlreadyEnabled\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,\n hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice\n @warning PeerToPeer support is experimental."]
8278    pub unsafe fn hipCtxEnablePeerAccess(
8279        &self,
8280        peerCtx: hipCtx_t,
8281        flags: ::std::os::raw::c_uint,
8282    ) -> hipError_t {
8283        (self
8284            .hipCtxEnablePeerAccess
8285            .as_ref()
8286            .expect("Expected function, got error."))(peerCtx, flags)
8287    }
8288    #[doc = " @brief Disable direct access from current context's virtual address space to memory allocations\n physically located on a peer context.Disables direct access to memory allocations in a peer\n context and unregisters any registered allocations.\n\n Returns hipErrorPeerAccessNotEnabled if direct access to memory on peerDevice has not yet been\n enabled from the current device.\n\n @param [in] peerCtx\n\n @returns #hipSuccess, #hipErrorPeerAccessNotEnabled\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,\n hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice\n @warning PeerToPeer support is experimental."]
8289    pub unsafe fn hipCtxDisablePeerAccess(&self, peerCtx: hipCtx_t) -> hipError_t {
8290        (self
8291            .hipCtxDisablePeerAccess
8292            .as_ref()
8293            .expect("Expected function, got error."))(peerCtx)
8294    }
8295    #[doc = " @}\n/\n/**\n @brief Get the state of the primary context.\n\n @param [in] Device to get primary context flags for\n @param [out] Pointer to store flags\n @param [out] Pointer to store context state; 0 = inactive, 1 = active\n\n @returns #hipSuccess\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,\n hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice"]
8296    pub unsafe fn hipDevicePrimaryCtxGetState(
8297        &self,
8298        dev: hipDevice_t,
8299        flags: *mut ::std::os::raw::c_uint,
8300        active: *mut ::std::os::raw::c_int,
8301    ) -> hipError_t {
8302        (self
8303            .hipDevicePrimaryCtxGetState
8304            .as_ref()
8305            .expect("Expected function, got error."))(dev, flags, active)
8306    }
8307    #[doc = " @brief Release the primary context on the GPU.\n\n @param [in] Device which primary context is released\n\n @returns #hipSuccess\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,\n hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice\n @warning This function return #hipSuccess though doesn't release the primaryCtx by design on\n HIP/HCC path."]
8308    pub unsafe fn hipDevicePrimaryCtxRelease(&self, dev: hipDevice_t) -> hipError_t {
8309        (self
8310            .hipDevicePrimaryCtxRelease
8311            .as_ref()
8312            .expect("Expected function, got error."))(dev)
8313    }
8314    #[doc = " @brief Retain the primary context on the GPU.\n\n @param [out] Returned context handle of the new context\n @param [in] Device which primary context is released\n\n @returns #hipSuccess\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,\n hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice"]
8315    pub unsafe fn hipDevicePrimaryCtxRetain(
8316        &self,
8317        pctx: *mut hipCtx_t,
8318        dev: hipDevice_t,
8319    ) -> hipError_t {
8320        (self
8321            .hipDevicePrimaryCtxRetain
8322            .as_ref()
8323            .expect("Expected function, got error."))(pctx, dev)
8324    }
8325    #[doc = " @brief Resets the primary context on the GPU.\n\n @param [in] Device which primary context is reset\n\n @returns #hipSuccess\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,\n hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice"]
8326    pub unsafe fn hipDevicePrimaryCtxReset(&self, dev: hipDevice_t) -> hipError_t {
8327        (self
8328            .hipDevicePrimaryCtxReset
8329            .as_ref()
8330            .expect("Expected function, got error."))(dev)
8331    }
8332    #[doc = " @brief Set flags for the primary context.\n\n @param [in] Device for which the primary context flags are set\n @param [in] New flags for the device\n\n @returns #hipSuccess, #hipErrorContextAlreadyInUse\n\n @see hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,\n hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice"]
8333    pub unsafe fn hipDevicePrimaryCtxSetFlags(
8334        &self,
8335        dev: hipDevice_t,
8336        flags: ::std::os::raw::c_uint,
8337    ) -> hipError_t {
8338        (self
8339            .hipDevicePrimaryCtxSetFlags
8340            .as_ref()
8341            .expect("Expected function, got error."))(dev, flags)
8342    }
8343    #[doc = " @}\n/\n/**\n\n  @defgroup Module Module Management\n  @{\n  This section describes the module management functions of HIP runtime API.\n\n/\n/**\n @brief Loads code object from file into a hipModule_t\n\n @param [in] fname\n @param [out] module\n\n @warning File/memory resources allocated in this function are released only in hipModuleUnload.\n\n @returns hipSuccess, hipErrorInvalidValue, hipErrorInvalidContext, hipErrorFileNotFound,\n hipErrorOutOfMemory, hipErrorSharedObjectInitFailed, hipErrorNotInitialized\n\n"]
8344    pub unsafe fn hipModuleLoad(
8345        &self,
8346        module: *mut hipModule_t,
8347        fname: *const ::std::os::raw::c_char,
8348    ) -> hipError_t {
8349        (self
8350            .hipModuleLoad
8351            .as_ref()
8352            .expect("Expected function, got error."))(module, fname)
8353    }
8354    #[doc = " @brief Frees the module\n\n @param [in] module\n\n @returns hipSuccess, hipInvalidValue\n module is freed and the code objects associated with it are destroyed\n"]
8355    pub unsafe fn hipModuleUnload(&self, module: hipModule_t) -> hipError_t {
8356        (self
8357            .hipModuleUnload
8358            .as_ref()
8359            .expect("Expected function, got error."))(module)
8360    }
8361    #[doc = " @brief Function with kname will be extracted if present in module\n\n @param [in] module\n @param [in] kname\n @param [out] function\n\n @returns hipSuccess, hipErrorInvalidValue, hipErrorInvalidContext, hipErrorNotInitialized,\n hipErrorNotFound,"]
8362    pub unsafe fn hipModuleGetFunction(
8363        &self,
8364        function: *mut hipFunction_t,
8365        module: hipModule_t,
8366        kname: *const ::std::os::raw::c_char,
8367    ) -> hipError_t {
8368        (self
8369            .hipModuleGetFunction
8370            .as_ref()
8371            .expect("Expected function, got error."))(function, module, kname)
8372    }
8373    #[doc = " @brief Find out attributes for a given function.\n\n @param [out] attr\n @param [in] func\n\n @returns hipSuccess, hipErrorInvalidValue, hipErrorInvalidDeviceFunction"]
8374    pub unsafe fn hipFuncGetAttributes(
8375        &self,
8376        attr: *mut hipFuncAttributes,
8377        func: *const ::std::os::raw::c_void,
8378    ) -> hipError_t {
8379        (self
8380            .hipFuncGetAttributes
8381            .as_ref()
8382            .expect("Expected function, got error."))(attr, func)
8383    }
8384    #[doc = " @brief Find out a specific attribute for a given function.\n\n @param [out] value\n @param [in]  attrib\n @param [in]  hfunc\n\n @returns hipSuccess, hipErrorInvalidValue, hipErrorInvalidDeviceFunction"]
8385    pub unsafe fn hipFuncGetAttribute(
8386        &self,
8387        value: *mut ::std::os::raw::c_int,
8388        attrib: hipFunction_attribute,
8389        hfunc: hipFunction_t,
8390    ) -> hipError_t {
8391        (self
8392            .hipFuncGetAttribute
8393            .as_ref()
8394            .expect("Expected function, got error."))(value, attrib, hfunc)
8395    }
8396    #[doc = " @brief returns the handle of the texture reference with the name from the module.\n\n @param [in] hmod\n @param [in] name\n @param [out] texRef\n\n @returns hipSuccess, hipErrorNotInitialized, hipErrorNotFound, hipErrorInvalidValue"]
8397    pub unsafe fn hipModuleGetTexRef(
8398        &self,
8399        texRef: *mut *mut textureReference,
8400        hmod: hipModule_t,
8401        name: *const ::std::os::raw::c_char,
8402    ) -> hipError_t {
8403        (self
8404            .hipModuleGetTexRef
8405            .as_ref()
8406            .expect("Expected function, got error."))(texRef, hmod, name)
8407    }
8408    #[doc = " @brief builds module from code object which resides in host memory. Image is pointer to that\n location.\n\n @param [in] image\n @param [out] module\n\n @returns hipSuccess, hipErrorNotInitialized, hipErrorOutOfMemory, hipErrorNotInitialized"]
8409    pub unsafe fn hipModuleLoadData(
8410        &self,
8411        module: *mut hipModule_t,
8412        image: *const ::std::os::raw::c_void,
8413    ) -> hipError_t {
8414        (self
8415            .hipModuleLoadData
8416            .as_ref()
8417            .expect("Expected function, got error."))(module, image)
8418    }
8419    #[doc = " @brief builds module from code object which resides in host memory. Image is pointer to that\n location. Options are not used. hipModuleLoadData is called.\n\n @param [in] image\n @param [out] module\n @param [in] number of options\n @param [in] options for JIT\n @param [in] option values for JIT\n\n @returns hipSuccess, hipErrorNotInitialized, hipErrorOutOfMemory, hipErrorNotInitialized"]
8420    pub unsafe fn hipModuleLoadDataEx(
8421        &self,
8422        module: *mut hipModule_t,
8423        image: *const ::std::os::raw::c_void,
8424        numOptions: ::std::os::raw::c_uint,
8425        options: *mut hipJitOption,
8426        optionValues: *mut *mut ::std::os::raw::c_void,
8427    ) -> hipError_t {
8428        (self
8429            .hipModuleLoadDataEx
8430            .as_ref()
8431            .expect("Expected function, got error."))(
8432            module,
8433            image,
8434            numOptions,
8435            options,
8436            optionValues,
8437        )
8438    }
8439    #[doc = " @brief launches kernel f with launch parameters and shared memory on stream with arguments passed\n to kernelparams or extra\n\n @param [in] f         Kernel to launch.\n @param [in] gridDimX  X grid dimension specified as multiple of blockDimX.\n @param [in] gridDimY  Y grid dimension specified as multiple of blockDimY.\n @param [in] gridDimZ  Z grid dimension specified as multiple of blockDimZ.\n @param [in] blockDimX X block dimensions specified in work-items\n @param [in] blockDimY Y grid dimension specified in work-items\n @param [in] blockDimZ Z grid dimension specified in work-items\n @param [in] sharedMemBytes Amount of dynamic shared memory to allocate for this kernel. The\n HIP-Clang compiler provides support for extern shared declarations.\n @param [in] stream    Stream where the kernel should be dispatched.  May be 0, in which case th\n default stream is used with associated synchronization rules.\n @param [in] kernelParams\n @param [in] extra     Pointer to kernel arguments.   These are passed directly to the kernel and\n must be in the memory layout and alignment expected by the kernel.\n\n Please note, HIP does not support kernel launch with total work items defined in dimension with\n size gridDim x blockDim >= 2^32. So gridDim.x * blockDim.x, gridDim.y * blockDim.y\n and gridDim.z * blockDim.z are always less than 2^32.\n\n @returns hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue\n\n @warning kernellParams argument is not yet implemented in HIP. Please use extra instead. Please\n refer to hip_porting_driver_api.md for sample usage."]
8440    pub unsafe fn hipModuleLaunchKernel(
8441        &self,
8442        f: hipFunction_t,
8443        gridDimX: ::std::os::raw::c_uint,
8444        gridDimY: ::std::os::raw::c_uint,
8445        gridDimZ: ::std::os::raw::c_uint,
8446        blockDimX: ::std::os::raw::c_uint,
8447        blockDimY: ::std::os::raw::c_uint,
8448        blockDimZ: ::std::os::raw::c_uint,
8449        sharedMemBytes: ::std::os::raw::c_uint,
8450        stream: hipStream_t,
8451        kernelParams: *mut *mut ::std::os::raw::c_void,
8452        extra: *mut *mut ::std::os::raw::c_void,
8453    ) -> hipError_t {
8454        (self
8455            .hipModuleLaunchKernel
8456            .as_ref()
8457            .expect("Expected function, got error."))(
8458            f,
8459            gridDimX,
8460            gridDimY,
8461            gridDimZ,
8462            blockDimX,
8463            blockDimY,
8464            blockDimZ,
8465            sharedMemBytes,
8466            stream,
8467            kernelParams,
8468            extra,
8469        )
8470    }
8471    #[doc = " @brief launches kernel f with launch parameters and shared memory on stream with arguments passed\n to kernelparams or extra, where thread blocks can cooperate and synchronize as they execute\n\n @param [in] f         Kernel to launch.\n @param [in] gridDim   Grid dimensions specified as multiple of blockDim.\n @param [in] blockDim  Block dimensions specified in work-items\n @param [in] kernelParams A list of kernel arguments\n @param [in] sharedMemBytes Amount of dynamic shared memory to allocate for this kernel. The\n HIP-Clang compiler provides support for extern shared declarations.\n @param [in] stream    Stream where the kernel should be dispatched.  May be 0, in which case th\n default stream is used with associated synchronization rules.\n\n Please note, HIP does not support kernel launch with total work items defined in dimension with\n size gridDim x blockDim >= 2^32.\n\n @returns hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue, hipErrorCooperativeLaunchTooLarge"]
8472    pub unsafe fn hipLaunchCooperativeKernel(
8473        &self,
8474        f: *const ::std::os::raw::c_void,
8475        gridDim: dim3,
8476        blockDimX: dim3,
8477        kernelParams: *mut *mut ::std::os::raw::c_void,
8478        sharedMemBytes: ::std::os::raw::c_uint,
8479        stream: hipStream_t,
8480    ) -> hipError_t {
8481        (self
8482            .hipLaunchCooperativeKernel
8483            .as_ref()
8484            .expect("Expected function, got error."))(
8485            f,
8486            gridDim,
8487            blockDimX,
8488            kernelParams,
8489            sharedMemBytes,
8490            stream,
8491        )
8492    }
8493    #[doc = " @brief Launches kernels on multiple devices where thread blocks can cooperate and\n synchronize as they execute.\n\n @param [in] launchParamsList         List of launch parameters, one per device.\n @param [in] numDevices               Size of the launchParamsList array.\n @param [in] flags                    Flags to control launch behavior.\n\n @returns hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue, hipErrorCooperativeLaunchTooLarge"]
8494    pub unsafe fn hipLaunchCooperativeKernelMultiDevice(
8495        &self,
8496        launchParamsList: *mut hipLaunchParams,
8497        numDevices: ::std::os::raw::c_int,
8498        flags: ::std::os::raw::c_uint,
8499    ) -> hipError_t {
8500        (self
8501            .hipLaunchCooperativeKernelMultiDevice
8502            .as_ref()
8503            .expect("Expected function, got error."))(launchParamsList, numDevices, flags)
8504    }
8505    #[doc = " @brief Launches kernels on multiple devices and guarantees all specified kernels are dispatched\n on respective streams before enqueuing any other work on the specified streams from any other threads\n\n\n @param [in] hipLaunchParams          List of launch parameters, one per device.\n @param [in] numDevices               Size of the launchParamsList array.\n @param [in] flags                    Flags to control launch behavior.\n\n @returns hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue"]
8506    pub unsafe fn hipExtLaunchMultiKernelMultiDevice(
8507        &self,
8508        launchParamsList: *mut hipLaunchParams,
8509        numDevices: ::std::os::raw::c_int,
8510        flags: ::std::os::raw::c_uint,
8511    ) -> hipError_t {
8512        (self
8513            .hipExtLaunchMultiKernelMultiDevice
8514            .as_ref()
8515            .expect("Expected function, got error."))(launchParamsList, numDevices, flags)
8516    }
8517    #[doc = " @}\n/\n/**\n\n  @defgroup Occupancy Occupancy\n  @{\n  This section describes the occupancy functions of HIP runtime API.\n\n/\n/**\n @brief determine the grid and block sizes to achieves maximum occupancy for a kernel\n\n @param [out] gridSize           minimum grid size for maximum potential occupancy\n @param [out] blockSize          block size for maximum potential occupancy\n @param [in]  f                  kernel function for which occupancy is calulated\n @param [in]  dynSharedMemPerBlk dynamic shared memory usage (in bytes) intended for each block\n @param [in]  blockSizeLimit     the maximum block size for the kernel, use 0 for no limit\n\n Please note, HIP does not support kernel launch with total work items defined in dimension with\n size gridDim x blockDim >= 2^32.\n\n @returns hipSuccess, hipInvalidDevice, hipErrorInvalidValue"]
8518    pub unsafe fn hipModuleOccupancyMaxPotentialBlockSize(
8519        &self,
8520        gridSize: *mut ::std::os::raw::c_int,
8521        blockSize: *mut ::std::os::raw::c_int,
8522        f: hipFunction_t,
8523        dynSharedMemPerBlk: usize,
8524        blockSizeLimit: ::std::os::raw::c_int,
8525    ) -> hipError_t {
8526        (self
8527            .hipModuleOccupancyMaxPotentialBlockSize
8528            .as_ref()
8529            .expect("Expected function, got error."))(
8530            gridSize,
8531            blockSize,
8532            f,
8533            dynSharedMemPerBlk,
8534            blockSizeLimit,
8535        )
8536    }
8537    #[doc = " @brief determine the grid and block sizes to achieves maximum occupancy for a kernel\n\n @param [out] gridSize           minimum grid size for maximum potential occupancy\n @param [out] blockSize          block size for maximum potential occupancy\n @param [in]  f                  kernel function for which occupancy is calulated\n @param [in]  dynSharedMemPerBlk dynamic shared memory usage (in bytes) intended for each block\n @param [in]  blockSizeLimit     the maximum block size for the kernel, use 0 for no limit\n @param [in]  flags            Extra flags for occupancy calculation (only default supported)\n\n Please note, HIP does not support kernel launch with total work items defined in dimension with\n size gridDim x blockDim >= 2^32.\n\n @returns hipSuccess, hipInvalidDevice, hipErrorInvalidValue"]
8538    pub unsafe fn hipModuleOccupancyMaxPotentialBlockSizeWithFlags(
8539        &self,
8540        gridSize: *mut ::std::os::raw::c_int,
8541        blockSize: *mut ::std::os::raw::c_int,
8542        f: hipFunction_t,
8543        dynSharedMemPerBlk: usize,
8544        blockSizeLimit: ::std::os::raw::c_int,
8545        flags: ::std::os::raw::c_uint,
8546    ) -> hipError_t {
8547        (self
8548            .hipModuleOccupancyMaxPotentialBlockSizeWithFlags
8549            .as_ref()
8550            .expect("Expected function, got error."))(
8551            gridSize,
8552            blockSize,
8553            f,
8554            dynSharedMemPerBlk,
8555            blockSizeLimit,
8556            flags,
8557        )
8558    }
8559    #[doc = " @brief Returns occupancy for a device function.\n\n @param [out] numBlocks        Returned occupancy\n @param [in]  func             Kernel function (hipFunction) for which occupancy is calulated\n @param [in]  blockSize        Block size the kernel is intended to be launched with\n @param [in]  dynSharedMemPerBlk dynamic shared memory usage (in bytes) intended for each block"]
8560    pub unsafe fn hipModuleOccupancyMaxActiveBlocksPerMultiprocessor(
8561        &self,
8562        numBlocks: *mut ::std::os::raw::c_int,
8563        f: hipFunction_t,
8564        blockSize: ::std::os::raw::c_int,
8565        dynSharedMemPerBlk: usize,
8566    ) -> hipError_t {
8567        (self
8568            .hipModuleOccupancyMaxActiveBlocksPerMultiprocessor
8569            .as_ref()
8570            .expect("Expected function, got error."))(
8571            numBlocks, f, blockSize, dynSharedMemPerBlk
8572        )
8573    }
8574    #[doc = " @brief Returns occupancy for a device function.\n\n @param [out] numBlocks        Returned occupancy\n @param [in]  f                Kernel function(hipFunction_t) for which occupancy is calulated\n @param [in]  blockSize        Block size the kernel is intended to be launched with\n @param [in]  dynSharedMemPerBlk dynamic shared memory usage (in bytes) intended for each block\n @param [in]  flags            Extra flags for occupancy calculation (only default supported)"]
8575    pub unsafe fn hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(
8576        &self,
8577        numBlocks: *mut ::std::os::raw::c_int,
8578        f: hipFunction_t,
8579        blockSize: ::std::os::raw::c_int,
8580        dynSharedMemPerBlk: usize,
8581        flags: ::std::os::raw::c_uint,
8582    ) -> hipError_t {
8583        (self
8584            .hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags
8585            .as_ref()
8586            .expect("Expected function, got error."))(
8587            numBlocks,
8588            f,
8589            blockSize,
8590            dynSharedMemPerBlk,
8591            flags,
8592        )
8593    }
8594    #[doc = " @brief Returns occupancy for a device function.\n\n @param [out] numBlocks        Returned occupancy\n @param [in]  func             Kernel function for which occupancy is calulated\n @param [in]  blockSize        Block size the kernel is intended to be launched with\n @param [in]  dynSharedMemPerBlk dynamic shared memory usage (in bytes) intended for each block"]
8595    pub unsafe fn hipOccupancyMaxActiveBlocksPerMultiprocessor(
8596        &self,
8597        numBlocks: *mut ::std::os::raw::c_int,
8598        f: *const ::std::os::raw::c_void,
8599        blockSize: ::std::os::raw::c_int,
8600        dynSharedMemPerBlk: usize,
8601    ) -> hipError_t {
8602        (self
8603            .hipOccupancyMaxActiveBlocksPerMultiprocessor
8604            .as_ref()
8605            .expect("Expected function, got error."))(
8606            numBlocks, f, blockSize, dynSharedMemPerBlk
8607        )
8608    }
8609    #[doc = " @brief Returns occupancy for a device function.\n\n @param [out] numBlocks        Returned occupancy\n @param [in]  f                Kernel function for which occupancy is calulated\n @param [in]  blockSize        Block size the kernel is intended to be launched with\n @param [in]  dynSharedMemPerBlk dynamic shared memory usage (in bytes) intended for each block\n @param [in]  flags            Extra flags for occupancy calculation (currently ignored)"]
8610    pub unsafe fn hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(
8611        &self,
8612        numBlocks: *mut ::std::os::raw::c_int,
8613        f: *const ::std::os::raw::c_void,
8614        blockSize: ::std::os::raw::c_int,
8615        dynSharedMemPerBlk: usize,
8616        flags: ::std::os::raw::c_uint,
8617    ) -> hipError_t {
8618        (self
8619            .hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags
8620            .as_ref()
8621            .expect("Expected function, got error."))(
8622            numBlocks,
8623            f,
8624            blockSize,
8625            dynSharedMemPerBlk,
8626            flags,
8627        )
8628    }
8629    #[doc = " @brief determine the grid and block sizes to achieves maximum occupancy for a kernel\n\n @param [out] gridSize           minimum grid size for maximum potential occupancy\n @param [out] blockSize          block size for maximum potential occupancy\n @param [in]  f                  kernel function for which occupancy is calulated\n @param [in]  dynSharedMemPerBlk dynamic shared memory usage (in bytes) intended for each block\n @param [in]  blockSizeLimit     the maximum block size for the kernel, use 0 for no limit\n\n Please note, HIP does not support kernel launch with total work items defined in dimension with\n size gridDim x blockDim >= 2^32.\n\n @returns hipSuccess, hipInvalidDevice, hipErrorInvalidValue"]
8630    pub unsafe fn hipOccupancyMaxPotentialBlockSize(
8631        &self,
8632        gridSize: *mut ::std::os::raw::c_int,
8633        blockSize: *mut ::std::os::raw::c_int,
8634        f: *const ::std::os::raw::c_void,
8635        dynSharedMemPerBlk: usize,
8636        blockSizeLimit: ::std::os::raw::c_int,
8637    ) -> hipError_t {
8638        (self
8639            .hipOccupancyMaxPotentialBlockSize
8640            .as_ref()
8641            .expect("Expected function, got error."))(
8642            gridSize,
8643            blockSize,
8644            f,
8645            dynSharedMemPerBlk,
8646            blockSizeLimit,
8647        )
8648    }
8649    #[doc = " @brief Start recording of profiling information\n When using this API, start the profiler with profiling disabled.  (--startdisabled)\n @warning : hipProfilerStart API is under development."]
8650    pub unsafe fn hipProfilerStart(&self) -> hipError_t {
8651        (self
8652            .hipProfilerStart
8653            .as_ref()
8654            .expect("Expected function, got error."))()
8655    }
8656    #[doc = " @brief Stop recording of profiling information.\n When using this API, start the profiler with profiling disabled.  (--startdisabled)\n @warning : hipProfilerStop API is under development."]
8657    pub unsafe fn hipProfilerStop(&self) -> hipError_t {
8658        (self
8659            .hipProfilerStop
8660            .as_ref()
8661            .expect("Expected function, got error."))()
8662    }
8663    #[doc = " @}\n/\n/**\n-------------------------------------------------------------------------------------------------\n-------------------------------------------------------------------------------------------------\n  @defgroup Clang Launch API to support the triple-chevron syntax\n  @{\n  This section describes the API to support the triple-chevron syntax.\n/\n/**\n @brief Configure a kernel launch.\n\n @param [in] gridDim   grid dimension specified as multiple of blockDim.\n @param [in] blockDim  block dimensions specified in work-items\n @param [in] sharedMem Amount of dynamic shared memory to allocate for this kernel. The\n HIP-Clang compiler provides support for extern shared declarations.\n @param [in] stream    Stream where the kernel should be dispatched.  May be 0, in which case the\n default stream is used with associated synchronization rules.\n\n Please note, HIP does not support kernel launch with total work items defined in dimension with\n size gridDim x blockDim >= 2^32.\n\n @returns hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue\n"]
8664    pub unsafe fn hipConfigureCall(
8665        &self,
8666        gridDim: dim3,
8667        blockDim: dim3,
8668        sharedMem: usize,
8669        stream: hipStream_t,
8670    ) -> hipError_t {
8671        (self
8672            .hipConfigureCall
8673            .as_ref()
8674            .expect("Expected function, got error."))(gridDim, blockDim, sharedMem, stream)
8675    }
8676    #[doc = " @brief Set a kernel argument.\n\n @returns hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue\n\n @param [in] arg    Pointer the argument in host memory.\n @param [in] size   Size of the argument.\n @param [in] offset Offset of the argument on the argument stack.\n"]
8677    pub unsafe fn hipSetupArgument(
8678        &self,
8679        arg: *const ::std::os::raw::c_void,
8680        size: usize,
8681        offset: usize,
8682    ) -> hipError_t {
8683        (self
8684            .hipSetupArgument
8685            .as_ref()
8686            .expect("Expected function, got error."))(arg, size, offset)
8687    }
8688    #[doc = " @brief Launch a kernel.\n\n @param [in] func Kernel to launch.\n\n @returns hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue\n"]
8689    pub unsafe fn hipLaunchByPtr(&self, func: *const ::std::os::raw::c_void) -> hipError_t {
8690        (self
8691            .hipLaunchByPtr
8692            .as_ref()
8693            .expect("Expected function, got error."))(func)
8694    }
8695    #[doc = " @brief C compliant kernel launch API\n\n @param [in] function_address - kernel stub function pointer.\n @param [in] numBlocks - number of blocks\n @param [in] dimBlocks - dimension of a block\n @param [in] args - kernel arguments\n @param [in] sharedMemBytes - Amount of dynamic shared memory to allocate for this kernel. The\n HIP-Clang compiler provides support for extern shared declarations.\n @param [in] stream - Stream where the kernel should be dispatched.  May be 0, in which case th\n  default stream is used with associated synchronization rules.\n\n @returns #hipSuccess, #hipErrorInvalidValue, hipInvalidDevice\n"]
8696    pub unsafe fn hipLaunchKernel(
8697        &self,
8698        function_address: *const ::std::os::raw::c_void,
8699        numBlocks: dim3,
8700        dimBlocks: dim3,
8701        args: *mut *mut ::std::os::raw::c_void,
8702        sharedMemBytes: usize,
8703        stream: hipStream_t,
8704    ) -> hipError_t {
8705        (self
8706            .hipLaunchKernel
8707            .as_ref()
8708            .expect("Expected function, got error."))(
8709            function_address,
8710            numBlocks,
8711            dimBlocks,
8712            args,
8713            sharedMemBytes,
8714            stream,
8715        )
8716    }
8717    #[doc = " @brief Enqueues a host function call in a stream.\n\n @param [in] stream - stream to enqueue work to.\n @param [in] fn - function to call once operations enqueued preceeding are complete.\n @param [in] userData - User-specified data to be passed to the function.\n @returns #hipSuccess, #hipErrorInvalidResourceHandle, #hipErrorInvalidValue,\n #hipErrorNotSupported\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
8718    pub unsafe fn hipLaunchHostFunc(
8719        &self,
8720        stream: hipStream_t,
8721        fn_: hipHostFn_t,
8722        userData: *mut ::std::os::raw::c_void,
8723    ) -> hipError_t {
8724        (self
8725            .hipLaunchHostFunc
8726            .as_ref()
8727            .expect("Expected function, got error."))(stream, fn_, userData)
8728    }
8729    #[doc = " Copies memory for 2D arrays.\n\n @param pCopy           - Parameters for the memory copy\n\n @returns #hipSuccess, #hipErrorInvalidValue"]
8730    pub unsafe fn hipDrvMemcpy2DUnaligned(&self, pCopy: *const hip_Memcpy2D) -> hipError_t {
8731        (self
8732            .hipDrvMemcpy2DUnaligned
8733            .as_ref()
8734            .expect("Expected function, got error."))(pCopy)
8735    }
8736    #[doc = " @brief Launches kernel from the pointer address, with arguments and shared memory on stream.\n\n @param [in] function_address pointer to the Kernel to launch.\n @param [in] numBlocks number of blocks.\n @param [in] dimBlocks dimension of a block.\n @param [in] args pointer to kernel arguments.\n @param [in] sharedMemBytes  Amount of dynamic shared memory to allocate for this kernel.\n HIP-Clang compiler provides support for extern shared declarations.\n @param [in] stream  Stream where the kernel should be dispatched.\n @param [in] startEvent  If non-null, specified event will be updated to track the start time of\n the kernel launch. The event must be created before calling this API.\n @param [in] stopEvent  If non-null, specified event will be updated to track the stop time of\n the kernel launch. The event must be created before calling this API.\n May be 0, in which case the default stream is used with associated synchronization rules.\n @param [in] flags. The value of hipExtAnyOrderLaunch, signifies if kernel can be\n launched in any order.\n @returns hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue.\n"]
8737    pub unsafe fn hipExtLaunchKernel(
8738        &self,
8739        function_address: *const ::std::os::raw::c_void,
8740        numBlocks: dim3,
8741        dimBlocks: dim3,
8742        args: *mut *mut ::std::os::raw::c_void,
8743        sharedMemBytes: usize,
8744        stream: hipStream_t,
8745        startEvent: hipEvent_t,
8746        stopEvent: hipEvent_t,
8747        flags: ::std::os::raw::c_int,
8748    ) -> hipError_t {
8749        (self
8750            .hipExtLaunchKernel
8751            .as_ref()
8752            .expect("Expected function, got error."))(
8753            function_address,
8754            numBlocks,
8755            dimBlocks,
8756            args,
8757            sharedMemBytes,
8758            stream,
8759            startEvent,
8760            stopEvent,
8761            flags,
8762        )
8763    }
8764    #[doc = " @brief  Binds a mipmapped array to a texture.\n\n @param [in] tex  pointer to the texture reference to bind\n @param [in] mipmappedArray  memory mipmapped array on the device\n @param [in] desc  opointer to the channel format\n\n @returns hipSuccess, hipErrorInvalidValue\n"]
8765    pub unsafe fn hipBindTextureToMipmappedArray(
8766        &self,
8767        tex: *const textureReference,
8768        mipmappedArray: hipMipmappedArray_const_t,
8769        desc: *const hipChannelFormatDesc,
8770    ) -> hipError_t {
8771        (self
8772            .hipBindTextureToMipmappedArray
8773            .as_ref()
8774            .expect("Expected function, got error."))(tex, mipmappedArray, desc)
8775    }
8776    #[doc = " @brief Creates a texture object.\n\n @param [out] pTexObject  pointer to the texture object to create\n @param [in] pResDesc  pointer to resource descriptor\n @param [in] pTexDesc  pointer to texture descriptor\n @param [in] pResViewDesc  pointer to resource view descriptor\n\n @returns hipSuccess, hipErrorInvalidValue, hipErrorNotSupported, hipErrorOutOfMemory\n\n @note 3D liner filter isn't supported on GFX90A boards, on which the API @p hipCreateTextureObject will\n return hipErrorNotSupported.\n"]
8777    pub unsafe fn hipCreateTextureObject(
8778        &self,
8779        pTexObject: *mut hipTextureObject_t,
8780        pResDesc: *const hipResourceDesc,
8781        pTexDesc: *const hipTextureDesc,
8782        pResViewDesc: *const hipResourceViewDesc,
8783    ) -> hipError_t {
8784        (self
8785            .hipCreateTextureObject
8786            .as_ref()
8787            .expect("Expected function, got error."))(
8788            pTexObject, pResDesc, pTexDesc, pResViewDesc
8789        )
8790    }
8791    #[doc = " @brief Destroys a texture object.\n\n @param [in] textureObject  texture object to destroy\n\n @returns hipSuccess, hipErrorInvalidValue\n"]
8792    pub unsafe fn hipDestroyTextureObject(&self, textureObject: hipTextureObject_t) -> hipError_t {
8793        (self
8794            .hipDestroyTextureObject
8795            .as_ref()
8796            .expect("Expected function, got error."))(textureObject)
8797    }
8798    #[doc = " @brief Gets the channel descriptor in an array.\n\n @param [in] desc  pointer to channel format descriptor\n @param [out] array  memory array on the device\n\n @returns hipSuccess, hipErrorInvalidValue\n"]
8799    pub unsafe fn hipGetChannelDesc(
8800        &self,
8801        desc: *mut hipChannelFormatDesc,
8802        array: hipArray_const_t,
8803    ) -> hipError_t {
8804        (self
8805            .hipGetChannelDesc
8806            .as_ref()
8807            .expect("Expected function, got error."))(desc, array)
8808    }
8809    #[doc = " @brief Gets resource descriptor for the texture object.\n\n @param [out] pResDesc  pointer to resource descriptor\n @param [in] textureObject  texture object\n\n @returns hipSuccess, hipErrorInvalidValue\n"]
8810    pub unsafe fn hipGetTextureObjectResourceDesc(
8811        &self,
8812        pResDesc: *mut hipResourceDesc,
8813        textureObject: hipTextureObject_t,
8814    ) -> hipError_t {
8815        (self
8816            .hipGetTextureObjectResourceDesc
8817            .as_ref()
8818            .expect("Expected function, got error."))(pResDesc, textureObject)
8819    }
8820    #[doc = " @brief Gets resource view descriptor for the texture object.\n\n @param [out] pResViewDesc  pointer to resource view descriptor\n @param [in] textureObject  texture object\n\n @returns hipSuccess, hipErrorInvalidValue\n"]
8821    pub unsafe fn hipGetTextureObjectResourceViewDesc(
8822        &self,
8823        pResViewDesc: *mut hipResourceViewDesc,
8824        textureObject: hipTextureObject_t,
8825    ) -> hipError_t {
8826        (self
8827            .hipGetTextureObjectResourceViewDesc
8828            .as_ref()
8829            .expect("Expected function, got error."))(pResViewDesc, textureObject)
8830    }
8831    #[doc = " @brief Gets texture descriptor for the texture object.\n\n @param [out] pTexDesc  pointer to texture descriptor\n @param [in] textureObject  texture object\n\n @returns hipSuccess, hipErrorInvalidValue\n"]
8832    pub unsafe fn hipGetTextureObjectTextureDesc(
8833        &self,
8834        pTexDesc: *mut hipTextureDesc,
8835        textureObject: hipTextureObject_t,
8836    ) -> hipError_t {
8837        (self
8838            .hipGetTextureObjectTextureDesc
8839            .as_ref()
8840            .expect("Expected function, got error."))(pTexDesc, textureObject)
8841    }
8842    #[doc = " @brief Creates a texture object.\n\n @param [out] pTexObject  pointer to texture object to create\n @param [in] pResDesc  pointer to resource descriptor\n @param [in] pTexDesc  pointer to texture descriptor\n @param [in] pResViewDesc  pointer to resource view descriptor\n\n @returns hipSuccess, hipErrorInvalidValue\n"]
8843    pub unsafe fn hipTexObjectCreate(
8844        &self,
8845        pTexObject: *mut hipTextureObject_t,
8846        pResDesc: *const HIP_RESOURCE_DESC,
8847        pTexDesc: *const HIP_TEXTURE_DESC,
8848        pResViewDesc: *const HIP_RESOURCE_VIEW_DESC,
8849    ) -> hipError_t {
8850        (self
8851            .hipTexObjectCreate
8852            .as_ref()
8853            .expect("Expected function, got error."))(
8854            pTexObject, pResDesc, pTexDesc, pResViewDesc
8855        )
8856    }
8857    #[doc = " @brief Destroys a texture object.\n\n @param [in] texObject  texture object to destroy\n\n @returns hipSuccess, hipErrorInvalidValue\n"]
8858    pub unsafe fn hipTexObjectDestroy(&self, texObject: hipTextureObject_t) -> hipError_t {
8859        (self
8860            .hipTexObjectDestroy
8861            .as_ref()
8862            .expect("Expected function, got error."))(texObject)
8863    }
8864    #[doc = " @brief Gets resource descriptor of a texture object.\n\n @param [out] pResDesc  pointer to resource descriptor\n @param [in] texObject  texture object\n\n @returns hipSuccess, hipErrorNotSupported, hipErrorInvalidValue\n"]
8865    pub unsafe fn hipTexObjectGetResourceDesc(
8866        &self,
8867        pResDesc: *mut HIP_RESOURCE_DESC,
8868        texObject: hipTextureObject_t,
8869    ) -> hipError_t {
8870        (self
8871            .hipTexObjectGetResourceDesc
8872            .as_ref()
8873            .expect("Expected function, got error."))(pResDesc, texObject)
8874    }
8875    #[doc = " @brief Gets resource view descriptor of a texture object.\n\n @param [out] pResViewDesc  pointer to resource view descriptor\n @param [in] texObject  texture object\n\n @returns hipSuccess, hipErrorNotSupported, hipErrorInvalidValue\n"]
8876    pub unsafe fn hipTexObjectGetResourceViewDesc(
8877        &self,
8878        pResViewDesc: *mut HIP_RESOURCE_VIEW_DESC,
8879        texObject: hipTextureObject_t,
8880    ) -> hipError_t {
8881        (self
8882            .hipTexObjectGetResourceViewDesc
8883            .as_ref()
8884            .expect("Expected function, got error."))(pResViewDesc, texObject)
8885    }
8886    #[doc = " @brief Gets texture descriptor of a texture object.\n\n @param [out] pTexDesc  pointer to texture descriptor\n @param [in] texObject  texture object\n\n @returns hipSuccess, hipErrorNotSupported, hipErrorInvalidValue\n"]
8887    pub unsafe fn hipTexObjectGetTextureDesc(
8888        &self,
8889        pTexDesc: *mut HIP_TEXTURE_DESC,
8890        texObject: hipTextureObject_t,
8891    ) -> hipError_t {
8892        (self
8893            .hipTexObjectGetTextureDesc
8894            .as_ref()
8895            .expect("Expected function, got error."))(pTexDesc, texObject)
8896    }
8897    #[doc = "  @addtogroup TextureD Texture Management [Deprecated]\n  @{\n  @ingroup Texture\n  This section describes the deprecated texture management functions of HIP runtime API.\n/\n/**\n @brief Gets the texture reference related with the symbol.\n\n @param [out] texref  texture reference\n @param [in] symbol  pointer to the symbol related with the texture for the reference\n\n @returns hipSuccess, hipErrorInvalidValue\n"]
8898    pub unsafe fn hipGetTextureReference(
8899        &self,
8900        texref: *mut *const textureReference,
8901        symbol: *const ::std::os::raw::c_void,
8902    ) -> hipError_t {
8903        (self
8904            .hipGetTextureReference
8905            .as_ref()
8906            .expect("Expected function, got error."))(texref, symbol)
8907    }
8908    pub unsafe fn hipTexRefSetAddressMode(
8909        &self,
8910        texRef: *mut textureReference,
8911        dim: ::std::os::raw::c_int,
8912        am: hipTextureAddressMode,
8913    ) -> hipError_t {
8914        (self
8915            .hipTexRefSetAddressMode
8916            .as_ref()
8917            .expect("Expected function, got error."))(texRef, dim, am)
8918    }
8919    pub unsafe fn hipTexRefSetArray(
8920        &self,
8921        tex: *mut textureReference,
8922        array: hipArray_const_t,
8923        flags: ::std::os::raw::c_uint,
8924    ) -> hipError_t {
8925        (self
8926            .hipTexRefSetArray
8927            .as_ref()
8928            .expect("Expected function, got error."))(tex, array, flags)
8929    }
8930    pub unsafe fn hipTexRefSetFilterMode(
8931        &self,
8932        texRef: *mut textureReference,
8933        fm: hipTextureFilterMode,
8934    ) -> hipError_t {
8935        (self
8936            .hipTexRefSetFilterMode
8937            .as_ref()
8938            .expect("Expected function, got error."))(texRef, fm)
8939    }
8940    pub unsafe fn hipTexRefSetFlags(
8941        &self,
8942        texRef: *mut textureReference,
8943        Flags: ::std::os::raw::c_uint,
8944    ) -> hipError_t {
8945        (self
8946            .hipTexRefSetFlags
8947            .as_ref()
8948            .expect("Expected function, got error."))(texRef, Flags)
8949    }
8950    pub unsafe fn hipTexRefSetFormat(
8951        &self,
8952        texRef: *mut textureReference,
8953        fmt: hipArray_Format,
8954        NumPackedComponents: ::std::os::raw::c_int,
8955    ) -> hipError_t {
8956        (self
8957            .hipTexRefSetFormat
8958            .as_ref()
8959            .expect("Expected function, got error."))(texRef, fmt, NumPackedComponents)
8960    }
8961    pub unsafe fn hipBindTexture(
8962        &self,
8963        offset: *mut usize,
8964        tex: *const textureReference,
8965        devPtr: *const ::std::os::raw::c_void,
8966        desc: *const hipChannelFormatDesc,
8967        size: usize,
8968    ) -> hipError_t {
8969        (self
8970            .hipBindTexture
8971            .as_ref()
8972            .expect("Expected function, got error."))(offset, tex, devPtr, desc, size)
8973    }
8974    pub unsafe fn hipBindTexture2D(
8975        &self,
8976        offset: *mut usize,
8977        tex: *const textureReference,
8978        devPtr: *const ::std::os::raw::c_void,
8979        desc: *const hipChannelFormatDesc,
8980        width: usize,
8981        height: usize,
8982        pitch: usize,
8983    ) -> hipError_t {
8984        (self
8985            .hipBindTexture2D
8986            .as_ref()
8987            .expect("Expected function, got error."))(
8988            offset, tex, devPtr, desc, width, height, pitch,
8989        )
8990    }
8991    pub unsafe fn hipBindTextureToArray(
8992        &self,
8993        tex: *const textureReference,
8994        array: hipArray_const_t,
8995        desc: *const hipChannelFormatDesc,
8996    ) -> hipError_t {
8997        (self
8998            .hipBindTextureToArray
8999            .as_ref()
9000            .expect("Expected function, got error."))(tex, array, desc)
9001    }
9002    pub unsafe fn hipGetTextureAlignmentOffset(
9003        &self,
9004        offset: *mut usize,
9005        texref: *const textureReference,
9006    ) -> hipError_t {
9007        (self
9008            .hipGetTextureAlignmentOffset
9009            .as_ref()
9010            .expect("Expected function, got error."))(offset, texref)
9011    }
9012    pub unsafe fn hipUnbindTexture(&self, tex: *const textureReference) -> hipError_t {
9013        (self
9014            .hipUnbindTexture
9015            .as_ref()
9016            .expect("Expected function, got error."))(tex)
9017    }
9018    pub unsafe fn hipTexRefGetAddress(
9019        &self,
9020        dev_ptr: *mut hipDeviceptr_t,
9021        texRef: *const textureReference,
9022    ) -> hipError_t {
9023        (self
9024            .hipTexRefGetAddress
9025            .as_ref()
9026            .expect("Expected function, got error."))(dev_ptr, texRef)
9027    }
9028    pub unsafe fn hipTexRefGetAddressMode(
9029        &self,
9030        pam: *mut hipTextureAddressMode,
9031        texRef: *const textureReference,
9032        dim: ::std::os::raw::c_int,
9033    ) -> hipError_t {
9034        (self
9035            .hipTexRefGetAddressMode
9036            .as_ref()
9037            .expect("Expected function, got error."))(pam, texRef, dim)
9038    }
9039    pub unsafe fn hipTexRefGetFilterMode(
9040        &self,
9041        pfm: *mut hipTextureFilterMode,
9042        texRef: *const textureReference,
9043    ) -> hipError_t {
9044        (self
9045            .hipTexRefGetFilterMode
9046            .as_ref()
9047            .expect("Expected function, got error."))(pfm, texRef)
9048    }
9049    pub unsafe fn hipTexRefGetFlags(
9050        &self,
9051        pFlags: *mut ::std::os::raw::c_uint,
9052        texRef: *const textureReference,
9053    ) -> hipError_t {
9054        (self
9055            .hipTexRefGetFlags
9056            .as_ref()
9057            .expect("Expected function, got error."))(pFlags, texRef)
9058    }
9059    pub unsafe fn hipTexRefGetFormat(
9060        &self,
9061        pFormat: *mut hipArray_Format,
9062        pNumChannels: *mut ::std::os::raw::c_int,
9063        texRef: *const textureReference,
9064    ) -> hipError_t {
9065        (self
9066            .hipTexRefGetFormat
9067            .as_ref()
9068            .expect("Expected function, got error."))(pFormat, pNumChannels, texRef)
9069    }
9070    pub unsafe fn hipTexRefGetMaxAnisotropy(
9071        &self,
9072        pmaxAnsio: *mut ::std::os::raw::c_int,
9073        texRef: *const textureReference,
9074    ) -> hipError_t {
9075        (self
9076            .hipTexRefGetMaxAnisotropy
9077            .as_ref()
9078            .expect("Expected function, got error."))(pmaxAnsio, texRef)
9079    }
9080    pub unsafe fn hipTexRefGetMipmapFilterMode(
9081        &self,
9082        pfm: *mut hipTextureFilterMode,
9083        texRef: *const textureReference,
9084    ) -> hipError_t {
9085        (self
9086            .hipTexRefGetMipmapFilterMode
9087            .as_ref()
9088            .expect("Expected function, got error."))(pfm, texRef)
9089    }
9090    pub unsafe fn hipTexRefGetMipmapLevelBias(
9091        &self,
9092        pbias: *mut f32,
9093        texRef: *const textureReference,
9094    ) -> hipError_t {
9095        (self
9096            .hipTexRefGetMipmapLevelBias
9097            .as_ref()
9098            .expect("Expected function, got error."))(pbias, texRef)
9099    }
9100    pub unsafe fn hipTexRefGetMipmapLevelClamp(
9101        &self,
9102        pminMipmapLevelClamp: *mut f32,
9103        pmaxMipmapLevelClamp: *mut f32,
9104        texRef: *const textureReference,
9105    ) -> hipError_t {
9106        (self
9107            .hipTexRefGetMipmapLevelClamp
9108            .as_ref()
9109            .expect("Expected function, got error."))(
9110            pminMipmapLevelClamp,
9111            pmaxMipmapLevelClamp,
9112            texRef,
9113        )
9114    }
9115    pub unsafe fn hipTexRefGetMipMappedArray(
9116        &self,
9117        pArray: *mut hipMipmappedArray_t,
9118        texRef: *const textureReference,
9119    ) -> hipError_t {
9120        (self
9121            .hipTexRefGetMipMappedArray
9122            .as_ref()
9123            .expect("Expected function, got error."))(pArray, texRef)
9124    }
9125    pub unsafe fn hipTexRefSetAddress(
9126        &self,
9127        ByteOffset: *mut usize,
9128        texRef: *mut textureReference,
9129        dptr: hipDeviceptr_t,
9130        bytes: usize,
9131    ) -> hipError_t {
9132        (self
9133            .hipTexRefSetAddress
9134            .as_ref()
9135            .expect("Expected function, got error."))(ByteOffset, texRef, dptr, bytes)
9136    }
9137    pub unsafe fn hipTexRefSetAddress2D(
9138        &self,
9139        texRef: *mut textureReference,
9140        desc: *const HIP_ARRAY_DESCRIPTOR,
9141        dptr: hipDeviceptr_t,
9142        Pitch: usize,
9143    ) -> hipError_t {
9144        (self
9145            .hipTexRefSetAddress2D
9146            .as_ref()
9147            .expect("Expected function, got error."))(texRef, desc, dptr, Pitch)
9148    }
9149    pub unsafe fn hipTexRefSetMaxAnisotropy(
9150        &self,
9151        texRef: *mut textureReference,
9152        maxAniso: ::std::os::raw::c_uint,
9153    ) -> hipError_t {
9154        (self
9155            .hipTexRefSetMaxAnisotropy
9156            .as_ref()
9157            .expect("Expected function, got error."))(texRef, maxAniso)
9158    }
9159    pub unsafe fn hipTexRefSetBorderColor(
9160        &self,
9161        texRef: *mut textureReference,
9162        pBorderColor: *mut f32,
9163    ) -> hipError_t {
9164        (self
9165            .hipTexRefSetBorderColor
9166            .as_ref()
9167            .expect("Expected function, got error."))(texRef, pBorderColor)
9168    }
9169    pub unsafe fn hipTexRefSetMipmapFilterMode(
9170        &self,
9171        texRef: *mut textureReference,
9172        fm: hipTextureFilterMode,
9173    ) -> hipError_t {
9174        (self
9175            .hipTexRefSetMipmapFilterMode
9176            .as_ref()
9177            .expect("Expected function, got error."))(texRef, fm)
9178    }
9179    pub unsafe fn hipTexRefSetMipmapLevelBias(
9180        &self,
9181        texRef: *mut textureReference,
9182        bias: f32,
9183    ) -> hipError_t {
9184        (self
9185            .hipTexRefSetMipmapLevelBias
9186            .as_ref()
9187            .expect("Expected function, got error."))(texRef, bias)
9188    }
9189    pub unsafe fn hipTexRefSetMipmapLevelClamp(
9190        &self,
9191        texRef: *mut textureReference,
9192        minMipMapLevelClamp: f32,
9193        maxMipMapLevelClamp: f32,
9194    ) -> hipError_t {
9195        (self
9196            .hipTexRefSetMipmapLevelClamp
9197            .as_ref()
9198            .expect("Expected function, got error."))(
9199            texRef,
9200            minMipMapLevelClamp,
9201            maxMipMapLevelClamp,
9202        )
9203    }
9204    pub unsafe fn hipTexRefSetMipmappedArray(
9205        &self,
9206        texRef: *mut textureReference,
9207        mipmappedArray: *mut hipMipmappedArray,
9208        Flags: ::std::os::raw::c_uint,
9209    ) -> hipError_t {
9210        (self
9211            .hipTexRefSetMipmappedArray
9212            .as_ref()
9213            .expect("Expected function, got error."))(texRef, mipmappedArray, Flags)
9214    }
9215    #[doc = "  @addtogroup TextureU Texture Management [Not supported]\n  @{\n  @ingroup Texture\n  This section describes the texture management functions currently unsupported in HIP runtime."]
9216    pub unsafe fn hipMipmappedArrayCreate(
9217        &self,
9218        pHandle: *mut hipMipmappedArray_t,
9219        pMipmappedArrayDesc: *mut HIP_ARRAY3D_DESCRIPTOR,
9220        numMipmapLevels: ::std::os::raw::c_uint,
9221    ) -> hipError_t {
9222        (self
9223            .hipMipmappedArrayCreate
9224            .as_ref()
9225            .expect("Expected function, got error."))(
9226            pHandle, pMipmappedArrayDesc, numMipmapLevels
9227        )
9228    }
9229    pub unsafe fn hipMipmappedArrayDestroy(
9230        &self,
9231        hMipmappedArray: hipMipmappedArray_t,
9232    ) -> hipError_t {
9233        (self
9234            .hipMipmappedArrayDestroy
9235            .as_ref()
9236            .expect("Expected function, got error."))(hMipmappedArray)
9237    }
9238    pub unsafe fn hipMipmappedArrayGetLevel(
9239        &self,
9240        pLevelArray: *mut hipArray_t,
9241        hMipMappedArray: hipMipmappedArray_t,
9242        level: ::std::os::raw::c_uint,
9243    ) -> hipError_t {
9244        (self
9245            .hipMipmappedArrayGetLevel
9246            .as_ref()
9247            .expect("Expected function, got error."))(pLevelArray, hMipMappedArray, level)
9248    }
9249    #[doc = "  @defgroup Callback Callback Activity APIs\n  @{\n  This section describes the callback/Activity of HIP runtime API."]
9250    pub unsafe fn hipApiName(&self, id: u32) -> *const ::std::os::raw::c_char {
9251        (self
9252            .hipApiName
9253            .as_ref()
9254            .expect("Expected function, got error."))(id)
9255    }
9256    pub unsafe fn hipKernelNameRef(&self, f: hipFunction_t) -> *const ::std::os::raw::c_char {
9257        (self
9258            .hipKernelNameRef
9259            .as_ref()
9260            .expect("Expected function, got error."))(f)
9261    }
9262    pub unsafe fn hipKernelNameRefByPtr(
9263        &self,
9264        hostFunction: *const ::std::os::raw::c_void,
9265        stream: hipStream_t,
9266    ) -> *const ::std::os::raw::c_char {
9267        (self
9268            .hipKernelNameRefByPtr
9269            .as_ref()
9270            .expect("Expected function, got error."))(hostFunction, stream)
9271    }
9272    pub unsafe fn hipGetStreamDeviceId(&self, stream: hipStream_t) -> ::std::os::raw::c_int {
9273        (self
9274            .hipGetStreamDeviceId
9275            .as_ref()
9276            .expect("Expected function, got error."))(stream)
9277    }
9278    #[doc = " @brief Begins graph capture on a stream.\n\n @param [in] stream - Stream to initiate capture.\n @param [in] mode - Controls the interaction of this capture sequence with other API calls that\n are not safe.\n\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9279    pub unsafe fn hipStreamBeginCapture(
9280        &self,
9281        stream: hipStream_t,
9282        mode: hipStreamCaptureMode,
9283    ) -> hipError_t {
9284        (self
9285            .hipStreamBeginCapture
9286            .as_ref()
9287            .expect("Expected function, got error."))(stream, mode)
9288    }
9289    #[doc = " @brief Ends capture on a stream, returning the captured graph.\n\n @param [in] stream - Stream to end capture.\n @param [out] pGraph - returns the graph captured.\n\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9290    pub unsafe fn hipStreamEndCapture(
9291        &self,
9292        stream: hipStream_t,
9293        pGraph: *mut hipGraph_t,
9294    ) -> hipError_t {
9295        (self
9296            .hipStreamEndCapture
9297            .as_ref()
9298            .expect("Expected function, got error."))(stream, pGraph)
9299    }
9300    #[doc = " @brief Get capture status of a stream.\n\n @param [in] stream - Stream under capture.\n @param [out] pCaptureStatus - returns current status of the capture.\n @param [out] pId - unique ID of the capture.\n\n @returns #hipSuccess, #hipErrorStreamCaptureImplicit\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9301    pub unsafe fn hipStreamGetCaptureInfo(
9302        &self,
9303        stream: hipStream_t,
9304        pCaptureStatus: *mut hipStreamCaptureStatus,
9305        pId: *mut ::std::os::raw::c_ulonglong,
9306    ) -> hipError_t {
9307        (self
9308            .hipStreamGetCaptureInfo
9309            .as_ref()
9310            .expect("Expected function, got error."))(stream, pCaptureStatus, pId)
9311    }
9312    #[doc = " @brief Get stream's capture state\n\n @param [in] stream - Stream under capture.\n @param [out] captureStatus_out - returns current status of the capture.\n @param [out] id_out - unique ID of the capture.\n @param [in] graph_out - returns the graph being captured into.\n @param [out] dependencies_out - returns pointer to an array of nodes.\n @param [out] numDependencies_out - returns size of the array returned in dependencies_out.\n\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorStreamCaptureImplicit\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9313    pub unsafe fn hipStreamGetCaptureInfo_v2(
9314        &self,
9315        stream: hipStream_t,
9316        captureStatus_out: *mut hipStreamCaptureStatus,
9317        id_out: *mut ::std::os::raw::c_ulonglong,
9318        graph_out: *mut hipGraph_t,
9319        dependencies_out: *mut *const hipGraphNode_t,
9320        numDependencies_out: *mut usize,
9321    ) -> hipError_t {
9322        (self
9323            .hipStreamGetCaptureInfo_v2
9324            .as_ref()
9325            .expect("Expected function, got error."))(
9326            stream,
9327            captureStatus_out,
9328            id_out,
9329            graph_out,
9330            dependencies_out,
9331            numDependencies_out,
9332        )
9333    }
9334    #[doc = " @brief Get stream's capture state\n\n @param [in] stream - Stream under capture.\n @param [out] pCaptureStatus - returns current status of the capture.\n\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorStreamCaptureImplicit\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9335    pub unsafe fn hipStreamIsCapturing(
9336        &self,
9337        stream: hipStream_t,
9338        pCaptureStatus: *mut hipStreamCaptureStatus,
9339    ) -> hipError_t {
9340        (self
9341            .hipStreamIsCapturing
9342            .as_ref()
9343            .expect("Expected function, got error."))(stream, pCaptureStatus)
9344    }
9345    #[doc = " @brief Update the set of dependencies in a capturing stream\n\n @param [in] stream - Stream under capture.\n @param [in] dependencies - pointer to an array of nodes to Add/Replace.\n @param [in] numDependencies - size of the array in dependencies.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorIllegalState\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9346    pub unsafe fn hipStreamUpdateCaptureDependencies(
9347        &self,
9348        stream: hipStream_t,
9349        dependencies: *mut hipGraphNode_t,
9350        numDependencies: usize,
9351        flags: ::std::os::raw::c_uint,
9352    ) -> hipError_t {
9353        (self
9354            .hipStreamUpdateCaptureDependencies
9355            .as_ref()
9356            .expect("Expected function, got error."))(
9357            stream, dependencies, numDependencies, flags
9358        )
9359    }
9360    #[doc = " @brief Swaps the stream capture mode of a thread.\n\n @param [in] mode - Pointer to mode value to swap with the current mode\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9361    pub unsafe fn hipThreadExchangeStreamCaptureMode(
9362        &self,
9363        mode: *mut hipStreamCaptureMode,
9364    ) -> hipError_t {
9365        (self
9366            .hipThreadExchangeStreamCaptureMode
9367            .as_ref()
9368            .expect("Expected function, got error."))(mode)
9369    }
9370    #[doc = " @brief Creates a graph\n\n @param [out] pGraph - pointer to graph to create.\n @param [in] flags - flags for graph creation, must be 0.\n\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorMemoryAllocation\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9371    pub unsafe fn hipGraphCreate(
9372        &self,
9373        pGraph: *mut hipGraph_t,
9374        flags: ::std::os::raw::c_uint,
9375    ) -> hipError_t {
9376        (self
9377            .hipGraphCreate
9378            .as_ref()
9379            .expect("Expected function, got error."))(pGraph, flags)
9380    }
9381    #[doc = " @brief Destroys a graph\n\n @param [in] graph - instance of graph to destroy.\n\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9382    pub unsafe fn hipGraphDestroy(&self, graph: hipGraph_t) -> hipError_t {
9383        (self
9384            .hipGraphDestroy
9385            .as_ref()
9386            .expect("Expected function, got error."))(graph)
9387    }
9388    #[doc = " @brief Adds dependency edges to a graph.\n\n @param [in] graph - instance of the graph to add dependencies.\n @param [in] from - pointer to the graph nodes with dependenties to add from.\n @param [in] to - pointer to the graph nodes to add dependenties to.\n @param [in] numDependencies - the number of dependencies to add.\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9389    pub unsafe fn hipGraphAddDependencies(
9390        &self,
9391        graph: hipGraph_t,
9392        from: *const hipGraphNode_t,
9393        to: *const hipGraphNode_t,
9394        numDependencies: usize,
9395    ) -> hipError_t {
9396        (self
9397            .hipGraphAddDependencies
9398            .as_ref()
9399            .expect("Expected function, got error."))(graph, from, to, numDependencies)
9400    }
9401    #[doc = " @brief Removes dependency edges from a graph.\n\n @param [in] graph - instance of the graph to remove dependencies.\n @param [in] from - Array of nodes that provide the dependencies.\n @param [in] to - Array of dependent nodes.\n @param [in] numDependencies - the number of dependencies to remove.\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9402    pub unsafe fn hipGraphRemoveDependencies(
9403        &self,
9404        graph: hipGraph_t,
9405        from: *const hipGraphNode_t,
9406        to: *const hipGraphNode_t,
9407        numDependencies: usize,
9408    ) -> hipError_t {
9409        (self
9410            .hipGraphRemoveDependencies
9411            .as_ref()
9412            .expect("Expected function, got error."))(graph, from, to, numDependencies)
9413    }
9414    #[doc = " @brief Returns a graph's dependency edges.\n\n @param [in] graph - instance of the graph to get the edges from.\n @param [out] from - pointer to the graph nodes to return edge endpoints.\n @param [out] to - pointer to the graph nodes to return edge endpoints.\n @param [out] numEdges - returns number of edges.\n @returns #hipSuccess, #hipErrorInvalidValue\n\n from and to may both be NULL, in which case this function only returns the number of edges in\n numEdges. Otherwise, numEdges entries will be filled in. If numEdges is higher than the actual\n number of edges, the remaining entries in from and to will be set to NULL, and the number of\n edges actually returned will be written to numEdges\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9415    pub unsafe fn hipGraphGetEdges(
9416        &self,
9417        graph: hipGraph_t,
9418        from: *mut hipGraphNode_t,
9419        to: *mut hipGraphNode_t,
9420        numEdges: *mut usize,
9421    ) -> hipError_t {
9422        (self
9423            .hipGraphGetEdges
9424            .as_ref()
9425            .expect("Expected function, got error."))(graph, from, to, numEdges)
9426    }
9427    #[doc = " @brief Returns graph nodes.\n\n @param [in] graph - instance of graph to get the nodes.\n @param [out] nodes - pointer to return the  graph nodes.\n @param [out] numNodes - returns number of graph nodes.\n @returns #hipSuccess, #hipErrorInvalidValue\n\n nodes may be NULL, in which case this function will return the number of nodes in numNodes.\n Otherwise, numNodes entries will be filled in. If numNodes is higher than the actual number of\n nodes, the remaining entries in nodes will be set to NULL, and the number of nodes actually\n obtained will be returned in numNodes.\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9428    pub unsafe fn hipGraphGetNodes(
9429        &self,
9430        graph: hipGraph_t,
9431        nodes: *mut hipGraphNode_t,
9432        numNodes: *mut usize,
9433    ) -> hipError_t {
9434        (self
9435            .hipGraphGetNodes
9436            .as_ref()
9437            .expect("Expected function, got error."))(graph, nodes, numNodes)
9438    }
9439    #[doc = " @brief Returns graph's root nodes.\n\n @param [in] graph - instance of the graph to get the nodes.\n @param [out] pRootNodes - pointer to return the graph's root nodes.\n @param [out] pNumRootNodes - returns the number of graph's root nodes.\n @returns #hipSuccess, #hipErrorInvalidValue\n\n pRootNodes may be NULL, in which case this function will return the number of root nodes in\n pNumRootNodes. Otherwise, pNumRootNodes entries will be filled in. If pNumRootNodes is higher\n than the actual number of root nodes, the remaining entries in pRootNodes will be set to NULL,\n and the number of nodes actually obtained will be returned in pNumRootNodes.\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9440    pub unsafe fn hipGraphGetRootNodes(
9441        &self,
9442        graph: hipGraph_t,
9443        pRootNodes: *mut hipGraphNode_t,
9444        pNumRootNodes: *mut usize,
9445    ) -> hipError_t {
9446        (self
9447            .hipGraphGetRootNodes
9448            .as_ref()
9449            .expect("Expected function, got error."))(graph, pRootNodes, pNumRootNodes)
9450    }
9451    #[doc = " @brief Returns a node's dependencies.\n\n @param [in] node - graph node to get the dependencies from.\n @param [out] pDependencies - pointer to to return the dependencies.\n @param [out] pNumDependencies -  returns the number of graph node dependencies.\n @returns #hipSuccess, #hipErrorInvalidValue\n\n pDependencies may be NULL, in which case this function will return the number of dependencies in\n pNumDependencies. Otherwise, pNumDependencies entries will be filled in. If pNumDependencies is\n higher than the actual number of dependencies, the remaining entries in pDependencies will be set\n to NULL, and the number of nodes actually obtained will be returned in pNumDependencies.\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9452    pub unsafe fn hipGraphNodeGetDependencies(
9453        &self,
9454        node: hipGraphNode_t,
9455        pDependencies: *mut hipGraphNode_t,
9456        pNumDependencies: *mut usize,
9457    ) -> hipError_t {
9458        (self
9459            .hipGraphNodeGetDependencies
9460            .as_ref()
9461            .expect("Expected function, got error."))(node, pDependencies, pNumDependencies)
9462    }
9463    #[doc = " @brief Returns a node's dependent nodes.\n\n @param [in] node - graph node to get the Dependent nodes from.\n @param [out] pDependentNodes - pointer to return the graph dependent nodes.\n @param [out] pNumDependentNodes - returns the number of graph node dependent nodes.\n @returns #hipSuccess, #hipErrorInvalidValue\n\n DependentNodes may be NULL, in which case this function will return the number of dependent nodes\n in pNumDependentNodes. Otherwise, pNumDependentNodes entries will be filled in. If\n pNumDependentNodes is higher than the actual number of dependent nodes, the remaining entries in\n pDependentNodes will be set to NULL, and the number of nodes actually obtained will be returned\n in pNumDependentNodes.\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9464    pub unsafe fn hipGraphNodeGetDependentNodes(
9465        &self,
9466        node: hipGraphNode_t,
9467        pDependentNodes: *mut hipGraphNode_t,
9468        pNumDependentNodes: *mut usize,
9469    ) -> hipError_t {
9470        (self
9471            .hipGraphNodeGetDependentNodes
9472            .as_ref()
9473            .expect("Expected function, got error."))(
9474            node, pDependentNodes, pNumDependentNodes
9475        )
9476    }
9477    #[doc = " @brief Returns a node's type.\n\n @param [in] node - instance of the graph to add dependencies.\n @param [out] pType - pointer to the return the type\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9478    pub unsafe fn hipGraphNodeGetType(
9479        &self,
9480        node: hipGraphNode_t,
9481        pType: *mut hipGraphNodeType,
9482    ) -> hipError_t {
9483        (self
9484            .hipGraphNodeGetType
9485            .as_ref()
9486            .expect("Expected function, got error."))(node, pType)
9487    }
9488    #[doc = " @brief Remove a node from the graph.\n\n @param [in] node - graph node to remove\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9489    pub unsafe fn hipGraphDestroyNode(&self, node: hipGraphNode_t) -> hipError_t {
9490        (self
9491            .hipGraphDestroyNode
9492            .as_ref()
9493            .expect("Expected function, got error."))(node)
9494    }
9495    #[doc = " @brief Clones a graph.\n\n @param [out] pGraphClone - Returns newly created cloned graph.\n @param [in] originalGraph - original graph to clone from.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorMemoryAllocation\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9496    pub unsafe fn hipGraphClone(
9497        &self,
9498        pGraphClone: *mut hipGraph_t,
9499        originalGraph: hipGraph_t,
9500    ) -> hipError_t {
9501        (self
9502            .hipGraphClone
9503            .as_ref()
9504            .expect("Expected function, got error."))(pGraphClone, originalGraph)
9505    }
9506    #[doc = " @brief Finds a cloned version of a node.\n\n @param [out] pNode - Returns the cloned node.\n @param [in] originalNode - original node handle.\n @param [in] clonedGraph - Cloned graph to query.\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9507    pub unsafe fn hipGraphNodeFindInClone(
9508        &self,
9509        pNode: *mut hipGraphNode_t,
9510        originalNode: hipGraphNode_t,
9511        clonedGraph: hipGraph_t,
9512    ) -> hipError_t {
9513        (self
9514            .hipGraphNodeFindInClone
9515            .as_ref()
9516            .expect("Expected function, got error."))(pNode, originalNode, clonedGraph)
9517    }
9518    #[doc = " @brief Creates an executable graph from a graph\n\n @param [out] pGraphExec - pointer to instantiated executable graph that is created.\n @param [in] graph - instance of graph to instantiate.\n @param [out] pErrorNode - pointer to error node in case error occured in graph instantiation,\n  it could modify the correponding node.\n @param [out] pLogBuffer - pointer to log buffer.\n @param [out] bufferSize - the size of log buffer.\n\n @returns #hipSuccess, #hipErrorOutOfMemory\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9519    pub unsafe fn hipGraphInstantiate(
9520        &self,
9521        pGraphExec: *mut hipGraphExec_t,
9522        graph: hipGraph_t,
9523        pErrorNode: *mut hipGraphNode_t,
9524        pLogBuffer: *mut ::std::os::raw::c_char,
9525        bufferSize: usize,
9526    ) -> hipError_t {
9527        (self
9528            .hipGraphInstantiate
9529            .as_ref()
9530            .expect("Expected function, got error."))(
9531            pGraphExec, graph, pErrorNode, pLogBuffer, bufferSize,
9532        )
9533    }
9534    #[doc = " @brief Creates an executable graph from a graph.\n\n @param [out] pGraphExec - pointer to instantiated executable graph that is created.\n @param [in] graph - instance of graph to instantiate.\n @param [in] flags - Flags to control instantiation.\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues.\n"]
9535    pub unsafe fn hipGraphInstantiateWithFlags(
9536        &self,
9537        pGraphExec: *mut hipGraphExec_t,
9538        graph: hipGraph_t,
9539        flags: ::std::os::raw::c_ulonglong,
9540    ) -> hipError_t {
9541        (self
9542            .hipGraphInstantiateWithFlags
9543            .as_ref()
9544            .expect("Expected function, got error."))(pGraphExec, graph, flags)
9545    }
9546    #[doc = " @brief launches an executable graph in a stream\n\n @param [in] graphExec - instance of executable graph to launch.\n @param [in] stream - instance of stream in which to launch executable graph.\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9547    pub unsafe fn hipGraphLaunch(
9548        &self,
9549        graphExec: hipGraphExec_t,
9550        stream: hipStream_t,
9551    ) -> hipError_t {
9552        (self
9553            .hipGraphLaunch
9554            .as_ref()
9555            .expect("Expected function, got error."))(graphExec, stream)
9556    }
9557    #[doc = " @brief uploads an executable graph in a stream\n\n @param [in] graphExec - instance of executable graph to launch.\n @param [in] stream - instance of stream in which to launch executable graph.\n @returns #hipSuccess, #hipErrorInvalidValue\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9558    pub unsafe fn hipGraphUpload(
9559        &self,
9560        graphExec: hipGraphExec_t,
9561        stream: hipStream_t,
9562    ) -> hipError_t {
9563        (self
9564            .hipGraphUpload
9565            .as_ref()
9566            .expect("Expected function, got error."))(graphExec, stream)
9567    }
9568    #[doc = " @brief Destroys an executable graph\n\n @param [in] pGraphExec - instance of executable graph to destry.\n\n @returns #hipSuccess.\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9569    pub unsafe fn hipGraphExecDestroy(&self, graphExec: hipGraphExec_t) -> hipError_t {
9570        (self
9571            .hipGraphExecDestroy
9572            .as_ref()
9573            .expect("Expected function, got error."))(graphExec)
9574    }
9575    #[doc = " @brief Check whether an executable graph can be updated with a graph and perform the update if  *\n possible.\n\n @param [in] hGraphExec - instance of executable graph to update.\n @param [in] hGraph - graph that contains the updated parameters.\n @param [in] hErrorNode_out -  node which caused the permissibility check to forbid the update.\n @param [in] updateResult_out - Whether the graph update was permitted.\n @returns #hipSuccess, #hipErrorGraphExecUpdateFailure\n\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9576    pub unsafe fn hipGraphExecUpdate(
9577        &self,
9578        hGraphExec: hipGraphExec_t,
9579        hGraph: hipGraph_t,
9580        hErrorNode_out: *mut hipGraphNode_t,
9581        updateResult_out: *mut hipGraphExecUpdateResult,
9582    ) -> hipError_t {
9583        (self
9584            .hipGraphExecUpdate
9585            .as_ref()
9586            .expect("Expected function, got error."))(
9587            hGraphExec,
9588            hGraph,
9589            hErrorNode_out,
9590            updateResult_out,
9591        )
9592    }
9593    #[doc = " @brief Creates a kernel execution node and adds it to a graph.\n\n @param [out] pGraphNode - pointer to graph node to create.\n @param [in] graph - instance of graph to add the created node.\n @param [in] pDependencies - pointer to the dependencies on the kernel execution node.\n @param [in] numDependencies - the number of the dependencies.\n @param [in] pNodeParams - pointer to the parameters to the kernel execution node on the GPU.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidDeviceFunction\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9594    pub unsafe fn hipGraphAddKernelNode(
9595        &self,
9596        pGraphNode: *mut hipGraphNode_t,
9597        graph: hipGraph_t,
9598        pDependencies: *const hipGraphNode_t,
9599        numDependencies: usize,
9600        pNodeParams: *const hipKernelNodeParams,
9601    ) -> hipError_t {
9602        (self
9603            .hipGraphAddKernelNode
9604            .as_ref()
9605            .expect("Expected function, got error."))(
9606            pGraphNode,
9607            graph,
9608            pDependencies,
9609            numDependencies,
9610            pNodeParams,
9611        )
9612    }
9613    #[doc = " @brief Gets kernel node's parameters.\n\n @param [in] node - instance of the node to get parameters from.\n @param [out] pNodeParams - pointer to the parameters\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9614    pub unsafe fn hipGraphKernelNodeGetParams(
9615        &self,
9616        node: hipGraphNode_t,
9617        pNodeParams: *mut hipKernelNodeParams,
9618    ) -> hipError_t {
9619        (self
9620            .hipGraphKernelNodeGetParams
9621            .as_ref()
9622            .expect("Expected function, got error."))(node, pNodeParams)
9623    }
9624    #[doc = " @brief Sets a kernel node's parameters.\n\n @param [in] node - instance of the node to set parameters to.\n @param [in] pNodeParams - const pointer to the parameters.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9625    pub unsafe fn hipGraphKernelNodeSetParams(
9626        &self,
9627        node: hipGraphNode_t,
9628        pNodeParams: *const hipKernelNodeParams,
9629    ) -> hipError_t {
9630        (self
9631            .hipGraphKernelNodeSetParams
9632            .as_ref()
9633            .expect("Expected function, got error."))(node, pNodeParams)
9634    }
9635    #[doc = " @brief Sets the parameters for a kernel node in the given graphExec.\n\n @param [in] hGraphExec - instance of the executable graph with the node.\n @param [in] node - instance of the node to set parameters to.\n @param [in] pNodeParams - const pointer to the kernel node parameters.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9636    pub unsafe fn hipGraphExecKernelNodeSetParams(
9637        &self,
9638        hGraphExec: hipGraphExec_t,
9639        node: hipGraphNode_t,
9640        pNodeParams: *const hipKernelNodeParams,
9641    ) -> hipError_t {
9642        (self
9643            .hipGraphExecKernelNodeSetParams
9644            .as_ref()
9645            .expect("Expected function, got error."))(hGraphExec, node, pNodeParams)
9646    }
9647    #[doc = " @brief Creates a memcpy node and adds it to a graph.\n\n @param [out] pGraphNode - pointer to graph node to create.\n @param [in] graph - instance of graph to add the created node.\n @param [in] pDependencies - const pointer to the dependencies on the memcpy execution node.\n @param [in] numDependencies - the number of the dependencies.\n @param [in] pCopyParams - const pointer to the parameters for the memory copy.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9648    pub unsafe fn hipGraphAddMemcpyNode(
9649        &self,
9650        pGraphNode: *mut hipGraphNode_t,
9651        graph: hipGraph_t,
9652        pDependencies: *const hipGraphNode_t,
9653        numDependencies: usize,
9654        pCopyParams: *const hipMemcpy3DParms,
9655    ) -> hipError_t {
9656        (self
9657            .hipGraphAddMemcpyNode
9658            .as_ref()
9659            .expect("Expected function, got error."))(
9660            pGraphNode,
9661            graph,
9662            pDependencies,
9663            numDependencies,
9664            pCopyParams,
9665        )
9666    }
9667    #[doc = " @brief Gets a memcpy node's parameters.\n\n @param [in] node - instance of the node to get parameters from.\n @param [out] pNodeParams - pointer to the parameters.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9668    pub unsafe fn hipGraphMemcpyNodeGetParams(
9669        &self,
9670        node: hipGraphNode_t,
9671        pNodeParams: *mut hipMemcpy3DParms,
9672    ) -> hipError_t {
9673        (self
9674            .hipGraphMemcpyNodeGetParams
9675            .as_ref()
9676            .expect("Expected function, got error."))(node, pNodeParams)
9677    }
9678    #[doc = " @brief Sets a memcpy node's parameters.\n\n @param [in] node - instance of the node to set parameters to.\n @param [in] pNodeParams - const pointer to the parameters.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9679    pub unsafe fn hipGraphMemcpyNodeSetParams(
9680        &self,
9681        node: hipGraphNode_t,
9682        pNodeParams: *const hipMemcpy3DParms,
9683    ) -> hipError_t {
9684        (self
9685            .hipGraphMemcpyNodeSetParams
9686            .as_ref()
9687            .expect("Expected function, got error."))(node, pNodeParams)
9688    }
9689    #[doc = " @brief Sets a node attribute.\n\n @param [in] hNode - instance of the node to set parameters to.\n @param [in] attr - the attribute node is set to.\n @param [in] value - const pointer to the parameters.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9690    pub unsafe fn hipGraphKernelNodeSetAttribute(
9691        &self,
9692        hNode: hipGraphNode_t,
9693        attr: hipKernelNodeAttrID,
9694        value: *const hipKernelNodeAttrValue,
9695    ) -> hipError_t {
9696        (self
9697            .hipGraphKernelNodeSetAttribute
9698            .as_ref()
9699            .expect("Expected function, got error."))(hNode, attr, value)
9700    }
9701    #[doc = " @brief Gets a node attribute.\n\n @param [in] hNode - instance of the node to set parameters to.\n @param [in] attr - the attribute node is set to.\n @param [in] value - const pointer to the parameters.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9702    pub unsafe fn hipGraphKernelNodeGetAttribute(
9703        &self,
9704        hNode: hipGraphNode_t,
9705        attr: hipKernelNodeAttrID,
9706        value: *mut hipKernelNodeAttrValue,
9707    ) -> hipError_t {
9708        (self
9709            .hipGraphKernelNodeGetAttribute
9710            .as_ref()
9711            .expect("Expected function, got error."))(hNode, attr, value)
9712    }
9713    #[doc = " @brief Sets the parameters for a memcpy node in the given graphExec.\n\n @param [in] hGraphExec - instance of the executable graph with the node.\n @param [in] node - instance of the node to set parameters to.\n @param [in] pNodeParams - const pointer to the kernel node parameters.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9714    pub unsafe fn hipGraphExecMemcpyNodeSetParams(
9715        &self,
9716        hGraphExec: hipGraphExec_t,
9717        node: hipGraphNode_t,
9718        pNodeParams: *mut hipMemcpy3DParms,
9719    ) -> hipError_t {
9720        (self
9721            .hipGraphExecMemcpyNodeSetParams
9722            .as_ref()
9723            .expect("Expected function, got error."))(hGraphExec, node, pNodeParams)
9724    }
9725    #[doc = " @brief Creates a 1D memcpy node and adds it to a graph.\n\n @param [out] pGraphNode - pointer to graph node to create.\n @param [in] graph - instance of graph to add the created node.\n @param [in] pDependencies - const pointer to the dependencies on the memcpy execution node.\n @param [in] numDependencies - the number of the dependencies.\n @param [in] dst - pointer to memory address to the destination.\n @param [in] src - pointer to memory address to the source.\n @param [in] count - the size of the memory to copy.\n @param [in] kind - the type of memory copy.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9726    pub unsafe fn hipGraphAddMemcpyNode1D(
9727        &self,
9728        pGraphNode: *mut hipGraphNode_t,
9729        graph: hipGraph_t,
9730        pDependencies: *const hipGraphNode_t,
9731        numDependencies: usize,
9732        dst: *mut ::std::os::raw::c_void,
9733        src: *const ::std::os::raw::c_void,
9734        count: usize,
9735        kind: hipMemcpyKind,
9736    ) -> hipError_t {
9737        (self
9738            .hipGraphAddMemcpyNode1D
9739            .as_ref()
9740            .expect("Expected function, got error."))(
9741            pGraphNode,
9742            graph,
9743            pDependencies,
9744            numDependencies,
9745            dst,
9746            src,
9747            count,
9748            kind,
9749        )
9750    }
9751    #[doc = " @brief Sets a memcpy node's parameters to perform a 1-dimensional copy.\n\n @param [in] node - instance of the node to set parameters to.\n @param [in] dst - pointer to memory address to the destination.\n @param [in] src - pointer to memory address to the source.\n @param [in] count - the size of the memory to copy.\n @param [in] kind - the type of memory copy.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9752    pub unsafe fn hipGraphMemcpyNodeSetParams1D(
9753        &self,
9754        node: hipGraphNode_t,
9755        dst: *mut ::std::os::raw::c_void,
9756        src: *const ::std::os::raw::c_void,
9757        count: usize,
9758        kind: hipMemcpyKind,
9759    ) -> hipError_t {
9760        (self
9761            .hipGraphMemcpyNodeSetParams1D
9762            .as_ref()
9763            .expect("Expected function, got error."))(node, dst, src, count, kind)
9764    }
9765    #[doc = " @brief Sets the parameters for a memcpy node in the given graphExec to perform a 1-dimensional\n copy.\n\n @param [in] hGraphExec - instance of the executable graph with the node.\n @param [in] node - instance of the node to set parameters to.\n @param [in] dst - pointer to memory address to the destination.\n @param [in] src - pointer to memory address to the source.\n @param [in] count - the size of the memory to copy.\n @param [in] kind - the type of memory copy.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9766    pub unsafe fn hipGraphExecMemcpyNodeSetParams1D(
9767        &self,
9768        hGraphExec: hipGraphExec_t,
9769        node: hipGraphNode_t,
9770        dst: *mut ::std::os::raw::c_void,
9771        src: *const ::std::os::raw::c_void,
9772        count: usize,
9773        kind: hipMemcpyKind,
9774    ) -> hipError_t {
9775        (self
9776            .hipGraphExecMemcpyNodeSetParams1D
9777            .as_ref()
9778            .expect("Expected function, got error."))(
9779            hGraphExec, node, dst, src, count, kind
9780        )
9781    }
9782    #[doc = " @brief Creates a memcpy node to copy from a symbol on the device and adds it to a graph.\n\n @param [out] pGraphNode - pointer to graph node to create.\n @param [in] graph - instance of graph to add the created node.\n @param [in] pDependencies - const pointer to the dependencies on the memcpy execution node.\n @param [in] numDependencies - the number of the dependencies.\n @param [in] dst - pointer to memory address to the destination.\n @param [in] symbol - Device symbol address.\n @param [in] count - the size of the memory to copy.\n @param [in] offset - Offset from start of symbol in bytes.\n @param [in] kind - the type of memory copy.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9783    pub unsafe fn hipGraphAddMemcpyNodeFromSymbol(
9784        &self,
9785        pGraphNode: *mut hipGraphNode_t,
9786        graph: hipGraph_t,
9787        pDependencies: *const hipGraphNode_t,
9788        numDependencies: usize,
9789        dst: *mut ::std::os::raw::c_void,
9790        symbol: *const ::std::os::raw::c_void,
9791        count: usize,
9792        offset: usize,
9793        kind: hipMemcpyKind,
9794    ) -> hipError_t {
9795        (self
9796            .hipGraphAddMemcpyNodeFromSymbol
9797            .as_ref()
9798            .expect("Expected function, got error."))(
9799            pGraphNode,
9800            graph,
9801            pDependencies,
9802            numDependencies,
9803            dst,
9804            symbol,
9805            count,
9806            offset,
9807            kind,
9808        )
9809    }
9810    #[doc = " @brief Sets a memcpy node's parameters to copy from a symbol on the device.\n\n @param [in] node - instance of the node to set parameters to.\n @param [in] dst - pointer to memory address to the destination.\n @param [in] symbol - Device symbol address.\n @param [in] count - the size of the memory to copy.\n @param [in] offset - Offset from start of symbol in bytes.\n @param [in] kind - the type of memory copy.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9811    pub unsafe fn hipGraphMemcpyNodeSetParamsFromSymbol(
9812        &self,
9813        node: hipGraphNode_t,
9814        dst: *mut ::std::os::raw::c_void,
9815        symbol: *const ::std::os::raw::c_void,
9816        count: usize,
9817        offset: usize,
9818        kind: hipMemcpyKind,
9819    ) -> hipError_t {
9820        (self
9821            .hipGraphMemcpyNodeSetParamsFromSymbol
9822            .as_ref()
9823            .expect("Expected function, got error."))(node, dst, symbol, count, offset, kind)
9824    }
9825    #[doc = " @brief Sets the parameters for a memcpy node in the given graphExec to copy from a symbol on the\n * device.\n\n @param [in] hGraphExec - instance of the executable graph with the node.\n @param [in] node - instance of the node to set parameters to.\n @param [in] dst - pointer to memory address to the destination.\n @param [in] symbol - Device symbol address.\n @param [in] count - the size of the memory to copy.\n @param [in] offset - Offset from start of symbol in bytes.\n @param [in] kind - the type of memory copy.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9826    pub unsafe fn hipGraphExecMemcpyNodeSetParamsFromSymbol(
9827        &self,
9828        hGraphExec: hipGraphExec_t,
9829        node: hipGraphNode_t,
9830        dst: *mut ::std::os::raw::c_void,
9831        symbol: *const ::std::os::raw::c_void,
9832        count: usize,
9833        offset: usize,
9834        kind: hipMemcpyKind,
9835    ) -> hipError_t {
9836        (self
9837            .hipGraphExecMemcpyNodeSetParamsFromSymbol
9838            .as_ref()
9839            .expect("Expected function, got error."))(
9840            hGraphExec, node, dst, symbol, count, offset, kind,
9841        )
9842    }
9843    #[doc = " @brief Creates a memcpy node to copy to a symbol on the device and adds it to a graph.\n\n @param [out] pGraphNode - pointer to graph node to create.\n @param [in] graph - instance of graph to add the created node.\n @param [in] pDependencies - const pointer to the dependencies on the memcpy execution node.\n @param [in] numDependencies - the number of the dependencies.\n @param [in] symbol - Device symbol address.\n @param [in] src - pointer to memory address of the src.\n @param [in] count - the size of the memory to copy.\n @param [in] offset - Offset from start of symbol in bytes.\n @param [in] kind - the type of memory copy.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9844    pub unsafe fn hipGraphAddMemcpyNodeToSymbol(
9845        &self,
9846        pGraphNode: *mut hipGraphNode_t,
9847        graph: hipGraph_t,
9848        pDependencies: *const hipGraphNode_t,
9849        numDependencies: usize,
9850        symbol: *const ::std::os::raw::c_void,
9851        src: *const ::std::os::raw::c_void,
9852        count: usize,
9853        offset: usize,
9854        kind: hipMemcpyKind,
9855    ) -> hipError_t {
9856        (self
9857            .hipGraphAddMemcpyNodeToSymbol
9858            .as_ref()
9859            .expect("Expected function, got error."))(
9860            pGraphNode,
9861            graph,
9862            pDependencies,
9863            numDependencies,
9864            symbol,
9865            src,
9866            count,
9867            offset,
9868            kind,
9869        )
9870    }
9871    #[doc = " @brief Sets a memcpy node's parameters to copy to a symbol on the device.\n\n @param [in] node - instance of the node to set parameters to.\n @param [in] symbol - Device symbol address.\n @param [in] src - pointer to memory address of the src.\n @param [in] count - the size of the memory to copy.\n @param [in] offset - Offset from start of symbol in bytes.\n @param [in] kind - the type of memory copy.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9872    pub unsafe fn hipGraphMemcpyNodeSetParamsToSymbol(
9873        &self,
9874        node: hipGraphNode_t,
9875        symbol: *const ::std::os::raw::c_void,
9876        src: *const ::std::os::raw::c_void,
9877        count: usize,
9878        offset: usize,
9879        kind: hipMemcpyKind,
9880    ) -> hipError_t {
9881        (self
9882            .hipGraphMemcpyNodeSetParamsToSymbol
9883            .as_ref()
9884            .expect("Expected function, got error."))(node, symbol, src, count, offset, kind)
9885    }
9886    #[doc = " @brief Sets the parameters for a memcpy node in the given graphExec to copy to a symbol on the\n device.\n @param [in] hGraphExec - instance of the executable graph with the node.\n @param [in] node - instance of the node to set parameters to.\n @param [in] symbol - Device symbol address.\n @param [in] src - pointer to memory address of the src.\n @param [in] count - the size of the memory to copy.\n @param [in] offset - Offset from start of symbol in bytes.\n @param [in] kind - the type of memory copy.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9887    pub unsafe fn hipGraphExecMemcpyNodeSetParamsToSymbol(
9888        &self,
9889        hGraphExec: hipGraphExec_t,
9890        node: hipGraphNode_t,
9891        symbol: *const ::std::os::raw::c_void,
9892        src: *const ::std::os::raw::c_void,
9893        count: usize,
9894        offset: usize,
9895        kind: hipMemcpyKind,
9896    ) -> hipError_t {
9897        (self
9898            .hipGraphExecMemcpyNodeSetParamsToSymbol
9899            .as_ref()
9900            .expect("Expected function, got error."))(
9901            hGraphExec, node, symbol, src, count, offset, kind,
9902        )
9903    }
9904    #[doc = " @brief Creates a memset node and adds it to a graph.\n\n @param [out] pGraphNode - pointer to the graph node to create.\n @param [in] graph - instance of the graph to add the created node.\n @param [in] pDependencies - const pointer to the dependencies on the memset execution node.\n @param [in] numDependencies - the number of the dependencies.\n @param [in] pMemsetParams - const pointer to the parameters for the memory set.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9905    pub unsafe fn hipGraphAddMemsetNode(
9906        &self,
9907        pGraphNode: *mut hipGraphNode_t,
9908        graph: hipGraph_t,
9909        pDependencies: *const hipGraphNode_t,
9910        numDependencies: usize,
9911        pMemsetParams: *const hipMemsetParams,
9912    ) -> hipError_t {
9913        (self
9914            .hipGraphAddMemsetNode
9915            .as_ref()
9916            .expect("Expected function, got error."))(
9917            pGraphNode,
9918            graph,
9919            pDependencies,
9920            numDependencies,
9921            pMemsetParams,
9922        )
9923    }
9924    #[doc = " @brief Gets a memset node's parameters.\n\n @param [in] node - instane of the node to get parameters from.\n @param [out] pNodeParams - pointer to the parameters.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9925    pub unsafe fn hipGraphMemsetNodeGetParams(
9926        &self,
9927        node: hipGraphNode_t,
9928        pNodeParams: *mut hipMemsetParams,
9929    ) -> hipError_t {
9930        (self
9931            .hipGraphMemsetNodeGetParams
9932            .as_ref()
9933            .expect("Expected function, got error."))(node, pNodeParams)
9934    }
9935    #[doc = " @brief Sets a memset node's parameters.\n\n @param [in] node - instance of the node to set parameters to.\n @param [in] pNodeParams - pointer to the parameters.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9936    pub unsafe fn hipGraphMemsetNodeSetParams(
9937        &self,
9938        node: hipGraphNode_t,
9939        pNodeParams: *const hipMemsetParams,
9940    ) -> hipError_t {
9941        (self
9942            .hipGraphMemsetNodeSetParams
9943            .as_ref()
9944            .expect("Expected function, got error."))(node, pNodeParams)
9945    }
9946    #[doc = " @brief Sets the parameters for a memset node in the given graphExec.\n\n @param [in] hGraphExec - instance of the executable graph with the node.\n @param [in] node - instance of the node to set parameters to.\n @param [in] pNodeParams - pointer to the parameters.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9947    pub unsafe fn hipGraphExecMemsetNodeSetParams(
9948        &self,
9949        hGraphExec: hipGraphExec_t,
9950        node: hipGraphNode_t,
9951        pNodeParams: *const hipMemsetParams,
9952    ) -> hipError_t {
9953        (self
9954            .hipGraphExecMemsetNodeSetParams
9955            .as_ref()
9956            .expect("Expected function, got error."))(hGraphExec, node, pNodeParams)
9957    }
9958    #[doc = " @brief Creates a host execution node and adds it to a graph.\n\n @param [out] pGraphNode - pointer to the graph node to create.\n @param [in] graph - instance of the graph to add the created node.\n @param [in] pDependencies - const pointer to the dependencies on the memset execution node.\n @param [in] numDependencies - the number of the dependencies.\n @param [in] pNodeParams -pointer to the parameters.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9959    pub unsafe fn hipGraphAddHostNode(
9960        &self,
9961        pGraphNode: *mut hipGraphNode_t,
9962        graph: hipGraph_t,
9963        pDependencies: *const hipGraphNode_t,
9964        numDependencies: usize,
9965        pNodeParams: *const hipHostNodeParams,
9966    ) -> hipError_t {
9967        (self
9968            .hipGraphAddHostNode
9969            .as_ref()
9970            .expect("Expected function, got error."))(
9971            pGraphNode,
9972            graph,
9973            pDependencies,
9974            numDependencies,
9975            pNodeParams,
9976        )
9977    }
9978    #[doc = " @brief Returns a host node's parameters.\n\n @param [in] node - instane of the node to get parameters from.\n @param [out] pNodeParams - pointer to the parameters.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9979    pub unsafe fn hipGraphHostNodeGetParams(
9980        &self,
9981        node: hipGraphNode_t,
9982        pNodeParams: *mut hipHostNodeParams,
9983    ) -> hipError_t {
9984        (self
9985            .hipGraphHostNodeGetParams
9986            .as_ref()
9987            .expect("Expected function, got error."))(node, pNodeParams)
9988    }
9989    #[doc = " @brief Sets a host node's parameters.\n\n @param [in] node - instance of the node to set parameters to.\n @param [in] pNodeParams - pointer to the parameters.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
9990    pub unsafe fn hipGraphHostNodeSetParams(
9991        &self,
9992        node: hipGraphNode_t,
9993        pNodeParams: *const hipHostNodeParams,
9994    ) -> hipError_t {
9995        (self
9996            .hipGraphHostNodeSetParams
9997            .as_ref()
9998            .expect("Expected function, got error."))(node, pNodeParams)
9999    }
10000    #[doc = " @brief Sets the parameters for a host node in the given graphExec.\n\n @param [in] hGraphExec - instance of the executable graph with the node.\n @param [in] node - instance of the node to set parameters to.\n @param [in] pNodeParams - pointer to the parameters.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10001    pub unsafe fn hipGraphExecHostNodeSetParams(
10002        &self,
10003        hGraphExec: hipGraphExec_t,
10004        node: hipGraphNode_t,
10005        pNodeParams: *const hipHostNodeParams,
10006    ) -> hipError_t {
10007        (self
10008            .hipGraphExecHostNodeSetParams
10009            .as_ref()
10010            .expect("Expected function, got error."))(hGraphExec, node, pNodeParams)
10011    }
10012    #[doc = " @brief Creates a child graph node and adds it to a graph.\n\n @param [out] pGraphNode - pointer to the graph node to create.\n @param [in] graph - instance of the graph to add the created node.\n @param [in] pDependencies - const pointer to the dependencies on the memset execution node.\n @param [in] numDependencies - the number of the dependencies.\n @param [in] childGraph - the graph to clone into this node\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10013    pub unsafe fn hipGraphAddChildGraphNode(
10014        &self,
10015        pGraphNode: *mut hipGraphNode_t,
10016        graph: hipGraph_t,
10017        pDependencies: *const hipGraphNode_t,
10018        numDependencies: usize,
10019        childGraph: hipGraph_t,
10020    ) -> hipError_t {
10021        (self
10022            .hipGraphAddChildGraphNode
10023            .as_ref()
10024            .expect("Expected function, got error."))(
10025            pGraphNode,
10026            graph,
10027            pDependencies,
10028            numDependencies,
10029            childGraph,
10030        )
10031    }
10032    #[doc = " @brief Gets a handle to the embedded graph of a child graph node.\n\n @param [in] node - instane of the node to get child graph.\n @param [out] pGraph - pointer to get the graph.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10033    pub unsafe fn hipGraphChildGraphNodeGetGraph(
10034        &self,
10035        node: hipGraphNode_t,
10036        pGraph: *mut hipGraph_t,
10037    ) -> hipError_t {
10038        (self
10039            .hipGraphChildGraphNodeGetGraph
10040            .as_ref()
10041            .expect("Expected function, got error."))(node, pGraph)
10042    }
10043    #[doc = " @brief Updates node parameters in the child graph node in the given graphExec.\n\n @param [in] hGraphExec - instance of the executable graph with the node.\n @param [in] node - node from the graph which was used to instantiate graphExec.\n @param [in] childGraph - child graph with updated parameters.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10044    pub unsafe fn hipGraphExecChildGraphNodeSetParams(
10045        &self,
10046        hGraphExec: hipGraphExec_t,
10047        node: hipGraphNode_t,
10048        childGraph: hipGraph_t,
10049    ) -> hipError_t {
10050        (self
10051            .hipGraphExecChildGraphNodeSetParams
10052            .as_ref()
10053            .expect("Expected function, got error."))(hGraphExec, node, childGraph)
10054    }
10055    #[doc = " @brief Creates an empty node and adds it to a graph.\n\n @param [out] pGraphNode - pointer to the graph node to create and add to the graph.\n @param [in] graph - instane of the graph the node is add to.\n @param [in] pDependencies - const pointer to the node dependenties.\n @param [in] numDependencies - the number of dependencies.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10056    pub unsafe fn hipGraphAddEmptyNode(
10057        &self,
10058        pGraphNode: *mut hipGraphNode_t,
10059        graph: hipGraph_t,
10060        pDependencies: *const hipGraphNode_t,
10061        numDependencies: usize,
10062    ) -> hipError_t {
10063        (self
10064            .hipGraphAddEmptyNode
10065            .as_ref()
10066            .expect("Expected function, got error."))(
10067            pGraphNode,
10068            graph,
10069            pDependencies,
10070            numDependencies,
10071        )
10072    }
10073    #[doc = " @brief Creates an event record node and adds it to a graph.\n\n @param [out] pGraphNode - pointer to the graph node to create and add to the graph.\n @param [in] graph - instane of the graph the node to be added.\n @param [in] pDependencies - const pointer to the node dependenties.\n @param [in] numDependencies - the number of dependencies.\n @param [in] event - Event for the node.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10074    pub unsafe fn hipGraphAddEventRecordNode(
10075        &self,
10076        pGraphNode: *mut hipGraphNode_t,
10077        graph: hipGraph_t,
10078        pDependencies: *const hipGraphNode_t,
10079        numDependencies: usize,
10080        event: hipEvent_t,
10081    ) -> hipError_t {
10082        (self
10083            .hipGraphAddEventRecordNode
10084            .as_ref()
10085            .expect("Expected function, got error."))(
10086            pGraphNode,
10087            graph,
10088            pDependencies,
10089            numDependencies,
10090            event,
10091        )
10092    }
10093    #[doc = " @brief Returns the event associated with an event record node.\n\n @param [in] node -  instane of the node to get event from.\n @param [out] event_out - Pointer to return the event.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10094    pub unsafe fn hipGraphEventRecordNodeGetEvent(
10095        &self,
10096        node: hipGraphNode_t,
10097        event_out: *mut hipEvent_t,
10098    ) -> hipError_t {
10099        (self
10100            .hipGraphEventRecordNodeGetEvent
10101            .as_ref()
10102            .expect("Expected function, got error."))(node, event_out)
10103    }
10104    #[doc = " @brief Sets an event record node's event.\n\n @param [in] node - instane of the node to set event to.\n @param [in] event - pointer to the event.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10105    pub unsafe fn hipGraphEventRecordNodeSetEvent(
10106        &self,
10107        node: hipGraphNode_t,
10108        event: hipEvent_t,
10109    ) -> hipError_t {
10110        (self
10111            .hipGraphEventRecordNodeSetEvent
10112            .as_ref()
10113            .expect("Expected function, got error."))(node, event)
10114    }
10115    #[doc = " @brief Sets the event for an event record node in the given graphExec.\n\n @param [in] hGraphExec - instance of the executable graph with the node.\n @param [in] hNode - node from the graph which was used to instantiate graphExec.\n @param [in] event - pointer to the event.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10116    pub unsafe fn hipGraphExecEventRecordNodeSetEvent(
10117        &self,
10118        hGraphExec: hipGraphExec_t,
10119        hNode: hipGraphNode_t,
10120        event: hipEvent_t,
10121    ) -> hipError_t {
10122        (self
10123            .hipGraphExecEventRecordNodeSetEvent
10124            .as_ref()
10125            .expect("Expected function, got error."))(hGraphExec, hNode, event)
10126    }
10127    #[doc = " @brief Creates an event wait node and adds it to a graph.\n\n @param [out] pGraphNode - pointer to the graph node to create and add to the graph.\n @param [in] graph - instane of the graph the node to be added.\n @param [in] pDependencies - const pointer to the node dependenties.\n @param [in] numDependencies - the number of dependencies.\n @param [in] event - Event for the node.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10128    pub unsafe fn hipGraphAddEventWaitNode(
10129        &self,
10130        pGraphNode: *mut hipGraphNode_t,
10131        graph: hipGraph_t,
10132        pDependencies: *const hipGraphNode_t,
10133        numDependencies: usize,
10134        event: hipEvent_t,
10135    ) -> hipError_t {
10136        (self
10137            .hipGraphAddEventWaitNode
10138            .as_ref()
10139            .expect("Expected function, got error."))(
10140            pGraphNode,
10141            graph,
10142            pDependencies,
10143            numDependencies,
10144            event,
10145        )
10146    }
10147    #[doc = " @brief Returns the event associated with an event wait node.\n\n @param [in] node -  instane of the node to get event from.\n @param [out] event_out - Pointer to return the event.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10148    pub unsafe fn hipGraphEventWaitNodeGetEvent(
10149        &self,
10150        node: hipGraphNode_t,
10151        event_out: *mut hipEvent_t,
10152    ) -> hipError_t {
10153        (self
10154            .hipGraphEventWaitNodeGetEvent
10155            .as_ref()
10156            .expect("Expected function, got error."))(node, event_out)
10157    }
10158    #[doc = " @brief Sets an event wait node's event.\n\n @param [in] node - instane of the node to set event to.\n @param [in] event - pointer to the event.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10159    pub unsafe fn hipGraphEventWaitNodeSetEvent(
10160        &self,
10161        node: hipGraphNode_t,
10162        event: hipEvent_t,
10163    ) -> hipError_t {
10164        (self
10165            .hipGraphEventWaitNodeSetEvent
10166            .as_ref()
10167            .expect("Expected function, got error."))(node, event)
10168    }
10169    #[doc = " @brief Sets the event for an event record node in the given graphExec.\n\n @param [in] hGraphExec - instance of the executable graph with the node.\n @param [in] hNode - node from the graph which was used to instantiate graphExec.\n @param [in] event - pointer to the event.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10170    pub unsafe fn hipGraphExecEventWaitNodeSetEvent(
10171        &self,
10172        hGraphExec: hipGraphExec_t,
10173        hNode: hipGraphNode_t,
10174        event: hipEvent_t,
10175    ) -> hipError_t {
10176        (self
10177            .hipGraphExecEventWaitNodeSetEvent
10178            .as_ref()
10179            .expect("Expected function, got error."))(hGraphExec, hNode, event)
10180    }
10181    #[doc = " @brief Get the mem attribute for graphs.\n\n @param [in] device - device the attr is get for.\n @param [in] attr - attr to get.\n @param [out] value - value for specific attr.\n @returns #hipSuccess, #hipErrorInvalidDevice\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10182    pub unsafe fn hipDeviceGetGraphMemAttribute(
10183        &self,
10184        device: ::std::os::raw::c_int,
10185        attr: hipGraphMemAttributeType,
10186        value: *mut ::std::os::raw::c_void,
10187    ) -> hipError_t {
10188        (self
10189            .hipDeviceGetGraphMemAttribute
10190            .as_ref()
10191            .expect("Expected function, got error."))(device, attr, value)
10192    }
10193    #[doc = " @brief Set the mem attribute for graphs.\n\n @param [in] device - device the attr is set for.\n @param [in] attr - attr to set.\n @param [in] value - value for specific attr.\n @returns #hipSuccess, #hipErrorInvalidDevice\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10194    pub unsafe fn hipDeviceSetGraphMemAttribute(
10195        &self,
10196        device: ::std::os::raw::c_int,
10197        attr: hipGraphMemAttributeType,
10198        value: *mut ::std::os::raw::c_void,
10199    ) -> hipError_t {
10200        (self
10201            .hipDeviceSetGraphMemAttribute
10202            .as_ref()
10203            .expect("Expected function, got error."))(device, attr, value)
10204    }
10205    #[doc = " @brief Free unused memory on specific device used for graph back to OS.\n\n @param [in] device - device the memory is used for graphs\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10206    pub unsafe fn hipDeviceGraphMemTrim(&self, device: ::std::os::raw::c_int) -> hipError_t {
10207        (self
10208            .hipDeviceGraphMemTrim
10209            .as_ref()
10210            .expect("Expected function, got error."))(device)
10211    }
10212    #[doc = " @brief Create an instance of userObject to manage lifetime of a resource.\n\n @param [out] object_out - pointer to instace of userobj.\n @param [in] ptr - pointer to pass to destroy function.\n @param [in] destroy - destroy callback to remove resource.\n @param [in] initialRefcount - reference to resource.\n @param [in] flags - flags passed to API.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10213    pub unsafe fn hipUserObjectCreate(
10214        &self,
10215        object_out: *mut hipUserObject_t,
10216        ptr: *mut ::std::os::raw::c_void,
10217        destroy: hipHostFn_t,
10218        initialRefcount: ::std::os::raw::c_uint,
10219        flags: ::std::os::raw::c_uint,
10220    ) -> hipError_t {
10221        (self
10222            .hipUserObjectCreate
10223            .as_ref()
10224            .expect("Expected function, got error."))(
10225            object_out,
10226            ptr,
10227            destroy,
10228            initialRefcount,
10229            flags,
10230        )
10231    }
10232    #[doc = " @brief Release number of references to resource.\n\n @param [in] object - pointer to instace of userobj.\n @param [in] count - reference to resource to be retained.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10233    pub unsafe fn hipUserObjectRelease(
10234        &self,
10235        object: hipUserObject_t,
10236        count: ::std::os::raw::c_uint,
10237    ) -> hipError_t {
10238        (self
10239            .hipUserObjectRelease
10240            .as_ref()
10241            .expect("Expected function, got error."))(object, count)
10242    }
10243    #[doc = " @brief Retain number of references to resource.\n\n @param [in] object - pointer to instace of userobj.\n @param [in] count - reference to resource to be retained.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10244    pub unsafe fn hipUserObjectRetain(
10245        &self,
10246        object: hipUserObject_t,
10247        count: ::std::os::raw::c_uint,
10248    ) -> hipError_t {
10249        (self
10250            .hipUserObjectRetain
10251            .as_ref()
10252            .expect("Expected function, got error."))(object, count)
10253    }
10254    #[doc = " @brief Retain user object for graphs.\n\n @param [in] graph - pointer to graph to retain the user object for.\n @param [in] object - pointer to instace of userobj.\n @param [in] count - reference to resource to be retained.\n @param [in] flags - flags passed to API.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10255    pub unsafe fn hipGraphRetainUserObject(
10256        &self,
10257        graph: hipGraph_t,
10258        object: hipUserObject_t,
10259        count: ::std::os::raw::c_uint,
10260        flags: ::std::os::raw::c_uint,
10261    ) -> hipError_t {
10262        (self
10263            .hipGraphRetainUserObject
10264            .as_ref()
10265            .expect("Expected function, got error."))(graph, object, count, flags)
10266    }
10267    #[doc = " @brief Release user object from graphs.\n\n @param [in] graph - pointer to graph to retain the user object for.\n @param [in] object - pointer to instace of userobj.\n @param [in] count - reference to resource to be retained.\n @returns #hipSuccess, #hipErrorInvalidValue\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10268    pub unsafe fn hipGraphReleaseUserObject(
10269        &self,
10270        graph: hipGraph_t,
10271        object: hipUserObject_t,
10272        count: ::std::os::raw::c_uint,
10273    ) -> hipError_t {
10274        (self
10275            .hipGraphReleaseUserObject
10276            .as_ref()
10277            .expect("Expected function, got error."))(graph, object, count)
10278    }
10279    #[doc = " @brief Frees an address range reservation made via hipMemAddressReserve\n\n @param [in] devPtr - starting address of the range.\n @param [in] size - size of the range.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10280    pub unsafe fn hipMemAddressFree(
10281        &self,
10282        devPtr: *mut ::std::os::raw::c_void,
10283        size: usize,
10284    ) -> hipError_t {
10285        (self
10286            .hipMemAddressFree
10287            .as_ref()
10288            .expect("Expected function, got error."))(devPtr, size)
10289    }
10290    #[doc = " @brief Reserves an address range\n\n @param [out] ptr - starting address of the reserved range.\n @param [in] size - size of the reservation.\n @param [in] alignment - alignment of the address.\n @param [in] addr - requested starting address of the range.\n @param [in] flags - currently unused, must be zero.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10291    pub unsafe fn hipMemAddressReserve(
10292        &self,
10293        ptr: *mut *mut ::std::os::raw::c_void,
10294        size: usize,
10295        alignment: usize,
10296        addr: *mut ::std::os::raw::c_void,
10297        flags: ::std::os::raw::c_ulonglong,
10298    ) -> hipError_t {
10299        (self
10300            .hipMemAddressReserve
10301            .as_ref()
10302            .expect("Expected function, got error."))(ptr, size, alignment, addr, flags)
10303    }
10304    #[doc = " @brief Creates a memory allocation described by the properties and size\n\n @param [out] handle - value of the returned handle.\n @param [in] size - size of the allocation.\n @param [in] prop - properties of the allocation.\n @param [in] flags - currently unused, must be zero.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10305    pub unsafe fn hipMemCreate(
10306        &self,
10307        handle: *mut hipMemGenericAllocationHandle_t,
10308        size: usize,
10309        prop: *const hipMemAllocationProp,
10310        flags: ::std::os::raw::c_ulonglong,
10311    ) -> hipError_t {
10312        (self
10313            .hipMemCreate
10314            .as_ref()
10315            .expect("Expected function, got error."))(handle, size, prop, flags)
10316    }
10317    #[doc = " @brief Exports an allocation to a requested shareable handle type.\n\n @param [out] shareableHandle - value of the returned handle.\n @param [in] handle - handle to share.\n @param [in] handleType - type of the shareable handle.\n @param [in] flags - currently unused, must be zero.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10318    pub unsafe fn hipMemExportToShareableHandle(
10319        &self,
10320        shareableHandle: *mut ::std::os::raw::c_void,
10321        handle: hipMemGenericAllocationHandle_t,
10322        handleType: hipMemAllocationHandleType,
10323        flags: ::std::os::raw::c_ulonglong,
10324    ) -> hipError_t {
10325        (self
10326            .hipMemExportToShareableHandle
10327            .as_ref()
10328            .expect("Expected function, got error."))(
10329            shareableHandle, handle, handleType, flags
10330        )
10331    }
10332    #[doc = " @brief Get the access flags set for the given location and ptr.\n\n @param [out] flags - flags for this location.\n @param [in] location - target location.\n @param [in] ptr - address to check the access flags.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10333    pub unsafe fn hipMemGetAccess(
10334        &self,
10335        flags: *mut ::std::os::raw::c_ulonglong,
10336        location: *const hipMemLocation,
10337        ptr: *mut ::std::os::raw::c_void,
10338    ) -> hipError_t {
10339        (self
10340            .hipMemGetAccess
10341            .as_ref()
10342            .expect("Expected function, got error."))(flags, location, ptr)
10343    }
10344    #[doc = " @brief Calculates either the minimal or recommended granularity.\n\n @param [out] granularity - returned granularity.\n @param [in] prop - location properties.\n @param [in] option - determines which granularity to return.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10345    pub unsafe fn hipMemGetAllocationGranularity(
10346        &self,
10347        granularity: *mut usize,
10348        prop: *const hipMemAllocationProp,
10349        option: hipMemAllocationGranularity_flags,
10350    ) -> hipError_t {
10351        (self
10352            .hipMemGetAllocationGranularity
10353            .as_ref()
10354            .expect("Expected function, got error."))(granularity, prop, option)
10355    }
10356    #[doc = " @brief Retrieve the property structure of the given handle.\n\n @param [out] prop - properties of the given handle.\n @param [in] handle - handle to perform the query on.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10357    pub unsafe fn hipMemGetAllocationPropertiesFromHandle(
10358        &self,
10359        prop: *mut hipMemAllocationProp,
10360        handle: hipMemGenericAllocationHandle_t,
10361    ) -> hipError_t {
10362        (self
10363            .hipMemGetAllocationPropertiesFromHandle
10364            .as_ref()
10365            .expect("Expected function, got error."))(prop, handle)
10366    }
10367    #[doc = " @brief Imports an allocation from a requested shareable handle type.\n\n @param [out] handle - returned value.\n @param [in] osHandle - shareable handle representing the memory allocation.\n @param [in] shHandleType - handle type.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10368    pub unsafe fn hipMemImportFromShareableHandle(
10369        &self,
10370        handle: *mut hipMemGenericAllocationHandle_t,
10371        osHandle: *mut ::std::os::raw::c_void,
10372        shHandleType: hipMemAllocationHandleType,
10373    ) -> hipError_t {
10374        (self
10375            .hipMemImportFromShareableHandle
10376            .as_ref()
10377            .expect("Expected function, got error."))(handle, osHandle, shHandleType)
10378    }
10379    #[doc = " @brief Maps an allocation handle to a reserved virtual address range.\n\n @param [in] ptr - address where the memory will be mapped.\n @param [in] size - size of the mapping.\n @param [in] offset - offset into the memory, currently must be zero.\n @param [in] handle - memory allocation to be mapped.\n @param [in] flags - currently unused, must be zero.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10380    pub unsafe fn hipMemMap(
10381        &self,
10382        ptr: *mut ::std::os::raw::c_void,
10383        size: usize,
10384        offset: usize,
10385        handle: hipMemGenericAllocationHandle_t,
10386        flags: ::std::os::raw::c_ulonglong,
10387    ) -> hipError_t {
10388        (self
10389            .hipMemMap
10390            .as_ref()
10391            .expect("Expected function, got error."))(ptr, size, offset, handle, flags)
10392    }
10393    #[doc = " @brief Maps or unmaps subregions of sparse HIP arrays and sparse HIP mipmapped arrays.\n\n @param [in] mapInfoList - list of hipArrayMapInfo.\n @param [in] count - number of hipArrayMapInfo in mapInfoList.\n @param [in] stream - stream identifier for the stream to use for map or unmap operations.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10394    pub unsafe fn hipMemMapArrayAsync(
10395        &self,
10396        mapInfoList: *mut hipArrayMapInfo,
10397        count: ::std::os::raw::c_uint,
10398        stream: hipStream_t,
10399    ) -> hipError_t {
10400        (self
10401            .hipMemMapArrayAsync
10402            .as_ref()
10403            .expect("Expected function, got error."))(mapInfoList, count, stream)
10404    }
10405    #[doc = " @brief Release a memory handle representing a memory allocation which was previously allocated through hipMemCreate.\n\n @param [in] handle - handle of the memory allocation.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10406    pub unsafe fn hipMemRelease(&self, handle: hipMemGenericAllocationHandle_t) -> hipError_t {
10407        (self
10408            .hipMemRelease
10409            .as_ref()
10410            .expect("Expected function, got error."))(handle)
10411    }
10412    #[doc = " @brief Returns the allocation handle of the backing memory allocation given the address.\n\n @param [out] handle - handle representing addr.\n @param [in] addr - address to look up.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10413    pub unsafe fn hipMemRetainAllocationHandle(
10414        &self,
10415        handle: *mut hipMemGenericAllocationHandle_t,
10416        addr: *mut ::std::os::raw::c_void,
10417    ) -> hipError_t {
10418        (self
10419            .hipMemRetainAllocationHandle
10420            .as_ref()
10421            .expect("Expected function, got error."))(handle, addr)
10422    }
10423    #[doc = " @brief Set the access flags for each location specified in desc for the given virtual address range.\n\n @param [in] ptr - starting address of the virtual address range.\n @param [in] size - size of the range.\n @param [in] desc - array of hipMemAccessDesc.\n @param [in] count - number of hipMemAccessDesc in desc.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10424    pub unsafe fn hipMemSetAccess(
10425        &self,
10426        ptr: *mut ::std::os::raw::c_void,
10427        size: usize,
10428        desc: *const hipMemAccessDesc,
10429        count: usize,
10430    ) -> hipError_t {
10431        (self
10432            .hipMemSetAccess
10433            .as_ref()
10434            .expect("Expected function, got error."))(ptr, size, desc, count)
10435    }
10436    #[doc = " @brief Unmap memory allocation of a given address range.\n\n @param [in] ptr - starting address of the range to unmap.\n @param [in] size - size of the virtual address range.\n @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorNotSupported\n @warning : This API is marked as beta, meaning, while this is feature complete,\n it is still open to changes and may have outstanding issues."]
10437    pub unsafe fn hipMemUnmap(&self, ptr: *mut ::std::os::raw::c_void, size: usize) -> hipError_t {
10438        (self
10439            .hipMemUnmap
10440            .as_ref()
10441            .expect("Expected function, got error."))(ptr, size)
10442    }
10443    pub unsafe fn hipGLGetDevices(
10444        &self,
10445        pHipDeviceCount: *mut ::std::os::raw::c_uint,
10446        pHipDevices: *mut ::std::os::raw::c_int,
10447        hipDeviceCount: ::std::os::raw::c_uint,
10448        deviceList: hipGLDeviceList,
10449    ) -> hipError_t {
10450        (self
10451            .hipGLGetDevices
10452            .as_ref()
10453            .expect("Expected function, got error."))(
10454            pHipDeviceCount,
10455            pHipDevices,
10456            hipDeviceCount,
10457            deviceList,
10458        )
10459    }
10460    pub unsafe fn hipGraphicsGLRegisterBuffer(
10461        &self,
10462        resource: *mut *mut hipGraphicsResource,
10463        buffer: GLuint,
10464        flags: ::std::os::raw::c_uint,
10465    ) -> hipError_t {
10466        (self
10467            .hipGraphicsGLRegisterBuffer
10468            .as_ref()
10469            .expect("Expected function, got error."))(resource, buffer, flags)
10470    }
10471    pub unsafe fn hipGraphicsGLRegisterImage(
10472        &self,
10473        resource: *mut *mut hipGraphicsResource,
10474        image: GLuint,
10475        target: GLenum,
10476        flags: ::std::os::raw::c_uint,
10477    ) -> hipError_t {
10478        (self
10479            .hipGraphicsGLRegisterImage
10480            .as_ref()
10481            .expect("Expected function, got error."))(resource, image, target, flags)
10482    }
10483    pub unsafe fn hipGraphicsMapResources(
10484        &self,
10485        count: ::std::os::raw::c_int,
10486        resources: *mut hipGraphicsResource_t,
10487        stream: hipStream_t,
10488    ) -> hipError_t {
10489        (self
10490            .hipGraphicsMapResources
10491            .as_ref()
10492            .expect("Expected function, got error."))(count, resources, stream)
10493    }
10494    pub unsafe fn hipGraphicsSubResourceGetMappedArray(
10495        &self,
10496        array: *mut hipArray_t,
10497        resource: hipGraphicsResource_t,
10498        arrayIndex: ::std::os::raw::c_uint,
10499        mipLevel: ::std::os::raw::c_uint,
10500    ) -> hipError_t {
10501        (self
10502            .hipGraphicsSubResourceGetMappedArray
10503            .as_ref()
10504            .expect("Expected function, got error."))(array, resource, arrayIndex, mipLevel)
10505    }
10506    pub unsafe fn hipGraphicsResourceGetMappedPointer(
10507        &self,
10508        devPtr: *mut *mut ::std::os::raw::c_void,
10509        size: *mut usize,
10510        resource: hipGraphicsResource_t,
10511    ) -> hipError_t {
10512        (self
10513            .hipGraphicsResourceGetMappedPointer
10514            .as_ref()
10515            .expect("Expected function, got error."))(devPtr, size, resource)
10516    }
10517    pub unsafe fn hipGraphicsUnmapResources(
10518        &self,
10519        count: ::std::os::raw::c_int,
10520        resources: *mut hipGraphicsResource_t,
10521        stream: hipStream_t,
10522    ) -> hipError_t {
10523        (self
10524            .hipGraphicsUnmapResources
10525            .as_ref()
10526            .expect("Expected function, got error."))(count, resources, stream)
10527    }
10528    pub unsafe fn hipGraphicsUnregisterResource(
10529        &self,
10530        resource: hipGraphicsResource_t,
10531    ) -> hipError_t {
10532        (self
10533            .hipGraphicsUnregisterResource
10534            .as_ref()
10535            .expect("Expected function, got error."))(resource)
10536    }
10537    pub unsafe fn hipMemcpy_spt(
10538        &self,
10539        dst: *mut ::std::os::raw::c_void,
10540        src: *const ::std::os::raw::c_void,
10541        sizeBytes: usize,
10542        kind: hipMemcpyKind,
10543    ) -> hipError_t {
10544        (self
10545            .hipMemcpy_spt
10546            .as_ref()
10547            .expect("Expected function, got error."))(dst, src, sizeBytes, kind)
10548    }
10549    pub unsafe fn hipMemcpyToSymbol_spt(
10550        &self,
10551        symbol: *const ::std::os::raw::c_void,
10552        src: *const ::std::os::raw::c_void,
10553        sizeBytes: usize,
10554        offset: usize,
10555        kind: hipMemcpyKind,
10556    ) -> hipError_t {
10557        (self
10558            .hipMemcpyToSymbol_spt
10559            .as_ref()
10560            .expect("Expected function, got error."))(symbol, src, sizeBytes, offset, kind)
10561    }
10562    pub unsafe fn hipMemcpyFromSymbol_spt(
10563        &self,
10564        dst: *mut ::std::os::raw::c_void,
10565        symbol: *const ::std::os::raw::c_void,
10566        sizeBytes: usize,
10567        offset: usize,
10568        kind: hipMemcpyKind,
10569    ) -> hipError_t {
10570        (self
10571            .hipMemcpyFromSymbol_spt
10572            .as_ref()
10573            .expect("Expected function, got error."))(dst, symbol, sizeBytes, offset, kind)
10574    }
10575    pub unsafe fn hipMemcpy2D_spt(
10576        &self,
10577        dst: *mut ::std::os::raw::c_void,
10578        dpitch: usize,
10579        src: *const ::std::os::raw::c_void,
10580        spitch: usize,
10581        width: usize,
10582        height: usize,
10583        kind: hipMemcpyKind,
10584    ) -> hipError_t {
10585        (self
10586            .hipMemcpy2D_spt
10587            .as_ref()
10588            .expect("Expected function, got error."))(
10589            dst, dpitch, src, spitch, width, height, kind
10590        )
10591    }
10592    pub unsafe fn hipMemcpy2DFromArray_spt(
10593        &self,
10594        dst: *mut ::std::os::raw::c_void,
10595        dpitch: usize,
10596        src: hipArray_const_t,
10597        wOffset: usize,
10598        hOffset: usize,
10599        width: usize,
10600        height: usize,
10601        kind: hipMemcpyKind,
10602    ) -> hipError_t {
10603        (self
10604            .hipMemcpy2DFromArray_spt
10605            .as_ref()
10606            .expect("Expected function, got error."))(
10607            dst, dpitch, src, wOffset, hOffset, width, height, kind,
10608        )
10609    }
10610    pub unsafe fn hipMemcpy3D_spt(&self, p: *const hipMemcpy3DParms) -> hipError_t {
10611        (self
10612            .hipMemcpy3D_spt
10613            .as_ref()
10614            .expect("Expected function, got error."))(p)
10615    }
10616    pub unsafe fn hipMemset_spt(
10617        &self,
10618        dst: *mut ::std::os::raw::c_void,
10619        value: ::std::os::raw::c_int,
10620        sizeBytes: usize,
10621    ) -> hipError_t {
10622        (self
10623            .hipMemset_spt
10624            .as_ref()
10625            .expect("Expected function, got error."))(dst, value, sizeBytes)
10626    }
10627    pub unsafe fn hipMemsetAsync_spt(
10628        &self,
10629        dst: *mut ::std::os::raw::c_void,
10630        value: ::std::os::raw::c_int,
10631        sizeBytes: usize,
10632        stream: hipStream_t,
10633    ) -> hipError_t {
10634        (self
10635            .hipMemsetAsync_spt
10636            .as_ref()
10637            .expect("Expected function, got error."))(dst, value, sizeBytes, stream)
10638    }
10639    pub unsafe fn hipMemset2D_spt(
10640        &self,
10641        dst: *mut ::std::os::raw::c_void,
10642        pitch: usize,
10643        value: ::std::os::raw::c_int,
10644        width: usize,
10645        height: usize,
10646    ) -> hipError_t {
10647        (self
10648            .hipMemset2D_spt
10649            .as_ref()
10650            .expect("Expected function, got error."))(dst, pitch, value, width, height)
10651    }
10652    pub unsafe fn hipMemset2DAsync_spt(
10653        &self,
10654        dst: *mut ::std::os::raw::c_void,
10655        pitch: usize,
10656        value: ::std::os::raw::c_int,
10657        width: usize,
10658        height: usize,
10659        stream: hipStream_t,
10660    ) -> hipError_t {
10661        (self
10662            .hipMemset2DAsync_spt
10663            .as_ref()
10664            .expect("Expected function, got error."))(
10665            dst, pitch, value, width, height, stream
10666        )
10667    }
10668    pub unsafe fn hipMemset3DAsync_spt(
10669        &self,
10670        pitchedDevPtr: hipPitchedPtr,
10671        value: ::std::os::raw::c_int,
10672        extent: hipExtent,
10673        stream: hipStream_t,
10674    ) -> hipError_t {
10675        (self
10676            .hipMemset3DAsync_spt
10677            .as_ref()
10678            .expect("Expected function, got error."))(pitchedDevPtr, value, extent, stream)
10679    }
10680    pub unsafe fn hipMemset3D_spt(
10681        &self,
10682        pitchedDevPtr: hipPitchedPtr,
10683        value: ::std::os::raw::c_int,
10684        extent: hipExtent,
10685    ) -> hipError_t {
10686        (self
10687            .hipMemset3D_spt
10688            .as_ref()
10689            .expect("Expected function, got error."))(pitchedDevPtr, value, extent)
10690    }
10691    pub unsafe fn hipMemcpyAsync_spt(
10692        &self,
10693        dst: *mut ::std::os::raw::c_void,
10694        src: *const ::std::os::raw::c_void,
10695        sizeBytes: usize,
10696        kind: hipMemcpyKind,
10697        stream: hipStream_t,
10698    ) -> hipError_t {
10699        (self
10700            .hipMemcpyAsync_spt
10701            .as_ref()
10702            .expect("Expected function, got error."))(dst, src, sizeBytes, kind, stream)
10703    }
10704    pub unsafe fn hipMemcpy3DAsync_spt(
10705        &self,
10706        p: *const hipMemcpy3DParms,
10707        stream: hipStream_t,
10708    ) -> hipError_t {
10709        (self
10710            .hipMemcpy3DAsync_spt
10711            .as_ref()
10712            .expect("Expected function, got error."))(p, stream)
10713    }
10714    pub unsafe fn hipMemcpy2DAsync_spt(
10715        &self,
10716        dst: *mut ::std::os::raw::c_void,
10717        dpitch: usize,
10718        src: *const ::std::os::raw::c_void,
10719        spitch: usize,
10720        width: usize,
10721        height: usize,
10722        kind: hipMemcpyKind,
10723        stream: hipStream_t,
10724    ) -> hipError_t {
10725        (self
10726            .hipMemcpy2DAsync_spt
10727            .as_ref()
10728            .expect("Expected function, got error."))(
10729            dst, dpitch, src, spitch, width, height, kind, stream,
10730        )
10731    }
10732    pub unsafe fn hipMemcpyFromSymbolAsync_spt(
10733        &self,
10734        dst: *mut ::std::os::raw::c_void,
10735        symbol: *const ::std::os::raw::c_void,
10736        sizeBytes: usize,
10737        offset: usize,
10738        kind: hipMemcpyKind,
10739        stream: hipStream_t,
10740    ) -> hipError_t {
10741        (self
10742            .hipMemcpyFromSymbolAsync_spt
10743            .as_ref()
10744            .expect("Expected function, got error."))(
10745            dst, symbol, sizeBytes, offset, kind, stream
10746        )
10747    }
10748    pub unsafe fn hipMemcpyToSymbolAsync_spt(
10749        &self,
10750        symbol: *const ::std::os::raw::c_void,
10751        src: *const ::std::os::raw::c_void,
10752        sizeBytes: usize,
10753        offset: usize,
10754        kind: hipMemcpyKind,
10755        stream: hipStream_t,
10756    ) -> hipError_t {
10757        (self
10758            .hipMemcpyToSymbolAsync_spt
10759            .as_ref()
10760            .expect("Expected function, got error."))(
10761            symbol, src, sizeBytes, offset, kind, stream
10762        )
10763    }
10764    pub unsafe fn hipMemcpyFromArray_spt(
10765        &self,
10766        dst: *mut ::std::os::raw::c_void,
10767        src: hipArray_const_t,
10768        wOffsetSrc: usize,
10769        hOffset: usize,
10770        count: usize,
10771        kind: hipMemcpyKind,
10772    ) -> hipError_t {
10773        (self
10774            .hipMemcpyFromArray_spt
10775            .as_ref()
10776            .expect("Expected function, got error."))(
10777            dst, src, wOffsetSrc, hOffset, count, kind
10778        )
10779    }
10780    pub unsafe fn hipMemcpy2DToArray_spt(
10781        &self,
10782        dst: *mut hipArray,
10783        wOffset: usize,
10784        hOffset: usize,
10785        src: *const ::std::os::raw::c_void,
10786        spitch: usize,
10787        width: usize,
10788        height: usize,
10789        kind: hipMemcpyKind,
10790    ) -> hipError_t {
10791        (self
10792            .hipMemcpy2DToArray_spt
10793            .as_ref()
10794            .expect("Expected function, got error."))(
10795            dst, wOffset, hOffset, src, spitch, width, height, kind,
10796        )
10797    }
10798    pub unsafe fn hipMemcpy2DFromArrayAsync_spt(
10799        &self,
10800        dst: *mut ::std::os::raw::c_void,
10801        dpitch: usize,
10802        src: hipArray_const_t,
10803        wOffsetSrc: usize,
10804        hOffsetSrc: usize,
10805        width: usize,
10806        height: usize,
10807        kind: hipMemcpyKind,
10808        stream: hipStream_t,
10809    ) -> hipError_t {
10810        (self
10811            .hipMemcpy2DFromArrayAsync_spt
10812            .as_ref()
10813            .expect("Expected function, got error."))(
10814            dst, dpitch, src, wOffsetSrc, hOffsetSrc, width, height, kind, stream,
10815        )
10816    }
10817    pub unsafe fn hipMemcpy2DToArrayAsync_spt(
10818        &self,
10819        dst: *mut hipArray,
10820        wOffset: usize,
10821        hOffset: usize,
10822        src: *const ::std::os::raw::c_void,
10823        spitch: usize,
10824        width: usize,
10825        height: usize,
10826        kind: hipMemcpyKind,
10827        stream: hipStream_t,
10828    ) -> hipError_t {
10829        (self
10830            .hipMemcpy2DToArrayAsync_spt
10831            .as_ref()
10832            .expect("Expected function, got error."))(
10833            dst, wOffset, hOffset, src, spitch, width, height, kind, stream,
10834        )
10835    }
10836    pub unsafe fn hipStreamQuery_spt(&self, stream: hipStream_t) -> hipError_t {
10837        (self
10838            .hipStreamQuery_spt
10839            .as_ref()
10840            .expect("Expected function, got error."))(stream)
10841    }
10842    pub unsafe fn hipStreamSynchronize_spt(&self, stream: hipStream_t) -> hipError_t {
10843        (self
10844            .hipStreamSynchronize_spt
10845            .as_ref()
10846            .expect("Expected function, got error."))(stream)
10847    }
10848    pub unsafe fn hipStreamGetPriority_spt(
10849        &self,
10850        stream: hipStream_t,
10851        priority: *mut ::std::os::raw::c_int,
10852    ) -> hipError_t {
10853        (self
10854            .hipStreamGetPriority_spt
10855            .as_ref()
10856            .expect("Expected function, got error."))(stream, priority)
10857    }
10858    pub unsafe fn hipStreamWaitEvent_spt(
10859        &self,
10860        stream: hipStream_t,
10861        event: hipEvent_t,
10862        flags: ::std::os::raw::c_uint,
10863    ) -> hipError_t {
10864        (self
10865            .hipStreamWaitEvent_spt
10866            .as_ref()
10867            .expect("Expected function, got error."))(stream, event, flags)
10868    }
10869    pub unsafe fn hipStreamGetFlags_spt(
10870        &self,
10871        stream: hipStream_t,
10872        flags: *mut ::std::os::raw::c_uint,
10873    ) -> hipError_t {
10874        (self
10875            .hipStreamGetFlags_spt
10876            .as_ref()
10877            .expect("Expected function, got error."))(stream, flags)
10878    }
10879    pub unsafe fn hipStreamAddCallback_spt(
10880        &self,
10881        stream: hipStream_t,
10882        callback: hipStreamCallback_t,
10883        userData: *mut ::std::os::raw::c_void,
10884        flags: ::std::os::raw::c_uint,
10885    ) -> hipError_t {
10886        (self
10887            .hipStreamAddCallback_spt
10888            .as_ref()
10889            .expect("Expected function, got error."))(stream, callback, userData, flags)
10890    }
10891    pub unsafe fn hipEventRecord_spt(&self, event: hipEvent_t, stream: hipStream_t) -> hipError_t {
10892        (self
10893            .hipEventRecord_spt
10894            .as_ref()
10895            .expect("Expected function, got error."))(event, stream)
10896    }
10897    pub unsafe fn hipLaunchCooperativeKernel_spt(
10898        &self,
10899        f: *const ::std::os::raw::c_void,
10900        gridDim: dim3,
10901        blockDim: dim3,
10902        kernelParams: *mut *mut ::std::os::raw::c_void,
10903        sharedMemBytes: u32,
10904        hStream: hipStream_t,
10905    ) -> hipError_t {
10906        (self
10907            .hipLaunchCooperativeKernel_spt
10908            .as_ref()
10909            .expect("Expected function, got error."))(
10910            f,
10911            gridDim,
10912            blockDim,
10913            kernelParams,
10914            sharedMemBytes,
10915            hStream,
10916        )
10917    }
10918    pub unsafe fn hipLaunchKernel_spt(
10919        &self,
10920        function_address: *const ::std::os::raw::c_void,
10921        numBlocks: dim3,
10922        dimBlocks: dim3,
10923        args: *mut *mut ::std::os::raw::c_void,
10924        sharedMemBytes: usize,
10925        stream: hipStream_t,
10926    ) -> hipError_t {
10927        (self
10928            .hipLaunchKernel_spt
10929            .as_ref()
10930            .expect("Expected function, got error."))(
10931            function_address,
10932            numBlocks,
10933            dimBlocks,
10934            args,
10935            sharedMemBytes,
10936            stream,
10937        )
10938    }
10939    pub unsafe fn hipGraphLaunch_spt(
10940        &self,
10941        graphExec: hipGraphExec_t,
10942        stream: hipStream_t,
10943    ) -> hipError_t {
10944        (self
10945            .hipGraphLaunch_spt
10946            .as_ref()
10947            .expect("Expected function, got error."))(graphExec, stream)
10948    }
10949    pub unsafe fn hipStreamBeginCapture_spt(
10950        &self,
10951        stream: hipStream_t,
10952        mode: hipStreamCaptureMode,
10953    ) -> hipError_t {
10954        (self
10955            .hipStreamBeginCapture_spt
10956            .as_ref()
10957            .expect("Expected function, got error."))(stream, mode)
10958    }
10959    pub unsafe fn hipStreamEndCapture_spt(
10960        &self,
10961        stream: hipStream_t,
10962        pGraph: *mut hipGraph_t,
10963    ) -> hipError_t {
10964        (self
10965            .hipStreamEndCapture_spt
10966            .as_ref()
10967            .expect("Expected function, got error."))(stream, pGraph)
10968    }
10969    pub unsafe fn hipStreamIsCapturing_spt(
10970        &self,
10971        stream: hipStream_t,
10972        pCaptureStatus: *mut hipStreamCaptureStatus,
10973    ) -> hipError_t {
10974        (self
10975            .hipStreamIsCapturing_spt
10976            .as_ref()
10977            .expect("Expected function, got error."))(stream, pCaptureStatus)
10978    }
10979    pub unsafe fn hipStreamGetCaptureInfo_spt(
10980        &self,
10981        stream: hipStream_t,
10982        pCaptureStatus: *mut hipStreamCaptureStatus,
10983        pId: *mut ::std::os::raw::c_ulonglong,
10984    ) -> hipError_t {
10985        (self
10986            .hipStreamGetCaptureInfo_spt
10987            .as_ref()
10988            .expect("Expected function, got error."))(stream, pCaptureStatus, pId)
10989    }
10990    pub unsafe fn hipStreamGetCaptureInfo_v2_spt(
10991        &self,
10992        stream: hipStream_t,
10993        captureStatus_out: *mut hipStreamCaptureStatus,
10994        id_out: *mut ::std::os::raw::c_ulonglong,
10995        graph_out: *mut hipGraph_t,
10996        dependencies_out: *mut *const hipGraphNode_t,
10997        numDependencies_out: *mut usize,
10998    ) -> hipError_t {
10999        (self
11000            .hipStreamGetCaptureInfo_v2_spt
11001            .as_ref()
11002            .expect("Expected function, got error."))(
11003            stream,
11004            captureStatus_out,
11005            id_out,
11006            graph_out,
11007            dependencies_out,
11008            numDependencies_out,
11009        )
11010    }
11011    pub unsafe fn hipLaunchHostFunc_spt(
11012        &self,
11013        stream: hipStream_t,
11014        fn_: hipHostFn_t,
11015        userData: *mut ::std::os::raw::c_void,
11016    ) -> hipError_t {
11017        (self
11018            .hipLaunchHostFunc_spt
11019            .as_ref()
11020            .expect("Expected function, got error."))(stream, fn_, userData)
11021    }
11022}