Skip to main content

onednnl_sys/bindings/
ocl_bindings.rs

1/* automatically generated by rust-bindgen 0.71.1 */
2
3use crate::*;
4
5pub const CL_TARGET_OPENCL_VERSION: u32 = 120;
6pub const CL_VERSION_1_2: u32 = 1;
7pub const CL_VERSION_1_1: u32 = 1;
8pub const CL_VERSION_1_0: u32 = 1;
9pub const CL_CHAR_BIT: u32 = 8;
10pub const CL_SCHAR_MAX: u32 = 127;
11pub const CL_SCHAR_MIN: i32 = -128;
12pub const CL_CHAR_MAX: u32 = 127;
13pub const CL_CHAR_MIN: i32 = -128;
14pub const CL_UCHAR_MAX: u32 = 255;
15pub const CL_SHRT_MAX: u32 = 32767;
16pub const CL_SHRT_MIN: i32 = -32768;
17pub const CL_USHRT_MAX: u32 = 65535;
18pub const CL_INT_MAX: u32 = 2147483647;
19pub const CL_INT_MIN: i32 = -2147483648;
20pub const CL_UINT_MAX: u32 = 4294967295;
21pub const CL_FLT_DIG: u32 = 6;
22pub const CL_FLT_MANT_DIG: u32 = 24;
23pub const CL_FLT_MAX_10_EXP: u32 = 38;
24pub const CL_FLT_MAX_EXP: u32 = 128;
25pub const CL_FLT_MIN_10_EXP: i32 = -37;
26pub const CL_FLT_MIN_EXP: i32 = -125;
27pub const CL_FLT_RADIX: u32 = 2;
28pub const CL_FLT_MAX: f64 = 340282346638528860000000000000000000000.0;
29pub const CL_HALF_DIG: u32 = 3;
30pub const CL_HALF_MANT_DIG: u32 = 11;
31pub const CL_HALF_MAX_10_EXP: u32 = 4;
32pub const CL_HALF_MAX_EXP: u32 = 16;
33pub const CL_HALF_MIN_10_EXP: i32 = -4;
34pub const CL_HALF_MIN_EXP: i32 = -13;
35pub const CL_HALF_RADIX: u32 = 2;
36pub const CL_HALF_MAX: f64 = 65504.0;
37pub const CL_DBL_DIG: u32 = 15;
38pub const CL_DBL_MANT_DIG: u32 = 53;
39pub const CL_DBL_MAX_10_EXP: u32 = 308;
40pub const CL_DBL_MAX_EXP: u32 = 1024;
41pub const CL_DBL_MIN_10_EXP: i32 = -307;
42pub const CL_DBL_MIN_EXP: i32 = -1021;
43pub const CL_DBL_RADIX: u32 = 2;
44pub const CL_DBL_MAX : f64 = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0 ;
45pub const CL_M_E: f64 = 2.718281828459045;
46pub const CL_M_LOG2E: f64 = 1.4426950408889634;
47pub const CL_M_LOG10E: f64 = 0.4342944819032518;
48pub const CL_M_LN2: f64 = 0.6931471805599453;
49pub const CL_M_LN10: f64 = 2.302585092994046;
50pub const CL_M_PI: f64 = 3.141592653589793;
51pub const CL_M_PI_2: f64 = 1.5707963267948966;
52pub const CL_M_PI_4: f64 = 0.7853981633974483;
53pub const CL_M_1_PI: f64 = 0.3183098861837907;
54pub const CL_M_2_PI: f64 = 0.6366197723675814;
55pub const CL_M_2_SQRTPI: f64 = 1.1283791670955126;
56pub const CL_M_SQRT2: f64 = 1.4142135623730951;
57pub const CL_M_SQRT1_2: f64 = 0.7071067811865476;
58pub const CL_M_E_F: f64 = 2.718281828;
59pub const CL_M_LOG2E_F: f64 = 1.442695041;
60pub const CL_M_LOG10E_F: f64 = 0.434294482;
61pub const CL_M_LN2_F: f64 = 0.693147181;
62pub const CL_M_LN10_F: f64 = 2.302585093;
63pub const CL_M_PI_F: f64 = 3.141592654;
64pub const CL_M_PI_2_F: f64 = 1.570796327;
65pub const CL_M_PI_4_F: f64 = 0.785398163;
66pub const CL_M_1_PI_F: f64 = 0.318309886;
67pub const CL_M_2_PI_F: f64 = 0.636619772;
68pub const CL_M_2_SQRTPI_F: f64 = 1.128379167;
69pub const CL_M_SQRT2_F: f64 = 1.414213562;
70pub const CL_M_SQRT1_2_F: f64 = 0.707106781;
71pub const CL_MAXFLOAT: f64 = 340282346638528860000000000000000000000.0;
72pub const CL_HAS_NAMED_VECTOR_FIELDS: u32 = 1;
73pub const CL_HAS_HI_LO_VECTOR_FIELDS: u32 = 1;
74pub const CL_SUCCESS: u32 = 0;
75pub const CL_DEVICE_NOT_FOUND: i32 = -1;
76pub const CL_DEVICE_NOT_AVAILABLE: i32 = -2;
77pub const CL_COMPILER_NOT_AVAILABLE: i32 = -3;
78pub const CL_MEM_OBJECT_ALLOCATION_FAILURE: i32 = -4;
79pub const CL_OUT_OF_RESOURCES: i32 = -5;
80pub const CL_OUT_OF_HOST_MEMORY: i32 = -6;
81pub const CL_PROFILING_INFO_NOT_AVAILABLE: i32 = -7;
82pub const CL_MEM_COPY_OVERLAP: i32 = -8;
83pub const CL_IMAGE_FORMAT_MISMATCH: i32 = -9;
84pub const CL_IMAGE_FORMAT_NOT_SUPPORTED: i32 = -10;
85pub const CL_BUILD_PROGRAM_FAILURE: i32 = -11;
86pub const CL_MAP_FAILURE: i32 = -12;
87pub const CL_MISALIGNED_SUB_BUFFER_OFFSET: i32 = -13;
88pub const CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST: i32 = -14;
89pub const CL_COMPILE_PROGRAM_FAILURE: i32 = -15;
90pub const CL_LINKER_NOT_AVAILABLE: i32 = -16;
91pub const CL_LINK_PROGRAM_FAILURE: i32 = -17;
92pub const CL_DEVICE_PARTITION_FAILED: i32 = -18;
93pub const CL_KERNEL_ARG_INFO_NOT_AVAILABLE: i32 = -19;
94pub const CL_INVALID_VALUE: i32 = -30;
95pub const CL_INVALID_DEVICE_TYPE: i32 = -31;
96pub const CL_INVALID_PLATFORM: i32 = -32;
97pub const CL_INVALID_DEVICE: i32 = -33;
98pub const CL_INVALID_CONTEXT: i32 = -34;
99pub const CL_INVALID_QUEUE_PROPERTIES: i32 = -35;
100pub const CL_INVALID_COMMAND_QUEUE: i32 = -36;
101pub const CL_INVALID_HOST_PTR: i32 = -37;
102pub const CL_INVALID_MEM_OBJECT: i32 = -38;
103pub const CL_INVALID_IMAGE_FORMAT_DESCRIPTOR: i32 = -39;
104pub const CL_INVALID_IMAGE_SIZE: i32 = -40;
105pub const CL_INVALID_SAMPLER: i32 = -41;
106pub const CL_INVALID_BINARY: i32 = -42;
107pub const CL_INVALID_BUILD_OPTIONS: i32 = -43;
108pub const CL_INVALID_PROGRAM: i32 = -44;
109pub const CL_INVALID_PROGRAM_EXECUTABLE: i32 = -45;
110pub const CL_INVALID_KERNEL_NAME: i32 = -46;
111pub const CL_INVALID_KERNEL_DEFINITION: i32 = -47;
112pub const CL_INVALID_KERNEL: i32 = -48;
113pub const CL_INVALID_ARG_INDEX: i32 = -49;
114pub const CL_INVALID_ARG_VALUE: i32 = -50;
115pub const CL_INVALID_ARG_SIZE: i32 = -51;
116pub const CL_INVALID_KERNEL_ARGS: i32 = -52;
117pub const CL_INVALID_WORK_DIMENSION: i32 = -53;
118pub const CL_INVALID_WORK_GROUP_SIZE: i32 = -54;
119pub const CL_INVALID_WORK_ITEM_SIZE: i32 = -55;
120pub const CL_INVALID_GLOBAL_OFFSET: i32 = -56;
121pub const CL_INVALID_EVENT_WAIT_LIST: i32 = -57;
122pub const CL_INVALID_EVENT: i32 = -58;
123pub const CL_INVALID_OPERATION: i32 = -59;
124pub const CL_INVALID_GL_OBJECT: i32 = -60;
125pub const CL_INVALID_BUFFER_SIZE: i32 = -61;
126pub const CL_INVALID_MIP_LEVEL: i32 = -62;
127pub const CL_INVALID_GLOBAL_WORK_SIZE: i32 = -63;
128pub const CL_INVALID_PROPERTY: i32 = -64;
129pub const CL_INVALID_IMAGE_DESCRIPTOR: i32 = -65;
130pub const CL_INVALID_COMPILER_OPTIONS: i32 = -66;
131pub const CL_INVALID_LINKER_OPTIONS: i32 = -67;
132pub const CL_INVALID_DEVICE_PARTITION_COUNT: i32 = -68;
133pub const CL_FALSE: u32 = 0;
134pub const CL_TRUE: u32 = 1;
135pub const CL_BLOCKING: u32 = 1;
136pub const CL_NON_BLOCKING: u32 = 0;
137pub const CL_PLATFORM_PROFILE: u32 = 2304;
138pub const CL_PLATFORM_VERSION: u32 = 2305;
139pub const CL_PLATFORM_NAME: u32 = 2306;
140pub const CL_PLATFORM_VENDOR: u32 = 2307;
141pub const CL_PLATFORM_EXTENSIONS: u32 = 2308;
142pub const CL_DEVICE_TYPE_DEFAULT: u32 = 1;
143pub const CL_DEVICE_TYPE_CPU: u32 = 2;
144pub const CL_DEVICE_TYPE_GPU: u32 = 4;
145pub const CL_DEVICE_TYPE_ACCELERATOR: u32 = 8;
146pub const CL_DEVICE_TYPE_CUSTOM: u32 = 16;
147pub const CL_DEVICE_TYPE_ALL: u32 = 4294967295;
148pub const CL_DEVICE_TYPE: u32 = 4096;
149pub const CL_DEVICE_VENDOR_ID: u32 = 4097;
150pub const CL_DEVICE_MAX_COMPUTE_UNITS: u32 = 4098;
151pub const CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS: u32 = 4099;
152pub const CL_DEVICE_MAX_WORK_GROUP_SIZE: u32 = 4100;
153pub const CL_DEVICE_MAX_WORK_ITEM_SIZES: u32 = 4101;
154pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR: u32 = 4102;
155pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT: u32 = 4103;
156pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT: u32 = 4104;
157pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG: u32 = 4105;
158pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT: u32 = 4106;
159pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE: u32 = 4107;
160pub const CL_DEVICE_MAX_CLOCK_FREQUENCY: u32 = 4108;
161pub const CL_DEVICE_ADDRESS_BITS: u32 = 4109;
162pub const CL_DEVICE_MAX_READ_IMAGE_ARGS: u32 = 4110;
163pub const CL_DEVICE_MAX_WRITE_IMAGE_ARGS: u32 = 4111;
164pub const CL_DEVICE_MAX_MEM_ALLOC_SIZE: u32 = 4112;
165pub const CL_DEVICE_IMAGE2D_MAX_WIDTH: u32 = 4113;
166pub const CL_DEVICE_IMAGE2D_MAX_HEIGHT: u32 = 4114;
167pub const CL_DEVICE_IMAGE3D_MAX_WIDTH: u32 = 4115;
168pub const CL_DEVICE_IMAGE3D_MAX_HEIGHT: u32 = 4116;
169pub const CL_DEVICE_IMAGE3D_MAX_DEPTH: u32 = 4117;
170pub const CL_DEVICE_IMAGE_SUPPORT: u32 = 4118;
171pub const CL_DEVICE_MAX_PARAMETER_SIZE: u32 = 4119;
172pub const CL_DEVICE_MAX_SAMPLERS: u32 = 4120;
173pub const CL_DEVICE_MEM_BASE_ADDR_ALIGN: u32 = 4121;
174pub const CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE: u32 = 4122;
175pub const CL_DEVICE_SINGLE_FP_CONFIG: u32 = 4123;
176pub const CL_DEVICE_GLOBAL_MEM_CACHE_TYPE: u32 = 4124;
177pub const CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE: u32 = 4125;
178pub const CL_DEVICE_GLOBAL_MEM_CACHE_SIZE: u32 = 4126;
179pub const CL_DEVICE_GLOBAL_MEM_SIZE: u32 = 4127;
180pub const CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE: u32 = 4128;
181pub const CL_DEVICE_MAX_CONSTANT_ARGS: u32 = 4129;
182pub const CL_DEVICE_LOCAL_MEM_TYPE: u32 = 4130;
183pub const CL_DEVICE_LOCAL_MEM_SIZE: u32 = 4131;
184pub const CL_DEVICE_ERROR_CORRECTION_SUPPORT: u32 = 4132;
185pub const CL_DEVICE_PROFILING_TIMER_RESOLUTION: u32 = 4133;
186pub const CL_DEVICE_ENDIAN_LITTLE: u32 = 4134;
187pub const CL_DEVICE_AVAILABLE: u32 = 4135;
188pub const CL_DEVICE_COMPILER_AVAILABLE: u32 = 4136;
189pub const CL_DEVICE_EXECUTION_CAPABILITIES: u32 = 4137;
190pub const CL_DEVICE_QUEUE_PROPERTIES: u32 = 4138;
191pub const CL_DEVICE_NAME: u32 = 4139;
192pub const CL_DEVICE_VENDOR: u32 = 4140;
193pub const CL_DRIVER_VERSION: u32 = 4141;
194pub const CL_DEVICE_PROFILE: u32 = 4142;
195pub const CL_DEVICE_VERSION: u32 = 4143;
196pub const CL_DEVICE_EXTENSIONS: u32 = 4144;
197pub const CL_DEVICE_PLATFORM: u32 = 4145;
198pub const CL_DEVICE_DOUBLE_FP_CONFIG: u32 = 4146;
199pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF: u32 = 4148;
200pub const CL_DEVICE_HOST_UNIFIED_MEMORY: u32 = 4149;
201pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR: u32 = 4150;
202pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT: u32 = 4151;
203pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_INT: u32 = 4152;
204pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG: u32 = 4153;
205pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT: u32 = 4154;
206pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE: u32 = 4155;
207pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF: u32 = 4156;
208pub const CL_DEVICE_OPENCL_C_VERSION: u32 = 4157;
209pub const CL_DEVICE_LINKER_AVAILABLE: u32 = 4158;
210pub const CL_DEVICE_BUILT_IN_KERNELS: u32 = 4159;
211pub const CL_DEVICE_IMAGE_MAX_BUFFER_SIZE: u32 = 4160;
212pub const CL_DEVICE_IMAGE_MAX_ARRAY_SIZE: u32 = 4161;
213pub const CL_DEVICE_PARENT_DEVICE: u32 = 4162;
214pub const CL_DEVICE_PARTITION_MAX_SUB_DEVICES: u32 = 4163;
215pub const CL_DEVICE_PARTITION_PROPERTIES: u32 = 4164;
216pub const CL_DEVICE_PARTITION_AFFINITY_DOMAIN: u32 = 4165;
217pub const CL_DEVICE_PARTITION_TYPE: u32 = 4166;
218pub const CL_DEVICE_REFERENCE_COUNT: u32 = 4167;
219pub const CL_DEVICE_PREFERRED_INTEROP_USER_SYNC: u32 = 4168;
220pub const CL_DEVICE_PRINTF_BUFFER_SIZE: u32 = 4169;
221pub const CL_FP_DENORM: u32 = 1;
222pub const CL_FP_INF_NAN: u32 = 2;
223pub const CL_FP_ROUND_TO_NEAREST: u32 = 4;
224pub const CL_FP_ROUND_TO_ZERO: u32 = 8;
225pub const CL_FP_ROUND_TO_INF: u32 = 16;
226pub const CL_FP_FMA: u32 = 32;
227pub const CL_FP_SOFT_FLOAT: u32 = 64;
228pub const CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT: u32 = 128;
229pub const CL_NONE: u32 = 0;
230pub const CL_READ_ONLY_CACHE: u32 = 1;
231pub const CL_READ_WRITE_CACHE: u32 = 2;
232pub const CL_LOCAL: u32 = 1;
233pub const CL_GLOBAL: u32 = 2;
234pub const CL_EXEC_KERNEL: u32 = 1;
235pub const CL_EXEC_NATIVE_KERNEL: u32 = 2;
236pub const CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE: u32 = 1;
237pub const CL_QUEUE_PROFILING_ENABLE: u32 = 2;
238pub const CL_CONTEXT_REFERENCE_COUNT: u32 = 4224;
239pub const CL_CONTEXT_DEVICES: u32 = 4225;
240pub const CL_CONTEXT_PROPERTIES: u32 = 4226;
241pub const CL_CONTEXT_NUM_DEVICES: u32 = 4227;
242pub const CL_CONTEXT_PLATFORM: u32 = 4228;
243pub const CL_CONTEXT_INTEROP_USER_SYNC: u32 = 4229;
244pub const CL_DEVICE_PARTITION_EQUALLY: u32 = 4230;
245pub const CL_DEVICE_PARTITION_BY_COUNTS: u32 = 4231;
246pub const CL_DEVICE_PARTITION_BY_COUNTS_LIST_END: u32 = 0;
247pub const CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN: u32 = 4232;
248pub const CL_DEVICE_AFFINITY_DOMAIN_NUMA: u32 = 1;
249pub const CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE: u32 = 2;
250pub const CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE: u32 = 4;
251pub const CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE: u32 = 8;
252pub const CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE: u32 = 16;
253pub const CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE: u32 = 32;
254pub const CL_QUEUE_CONTEXT: u32 = 4240;
255pub const CL_QUEUE_DEVICE: u32 = 4241;
256pub const CL_QUEUE_REFERENCE_COUNT: u32 = 4242;
257pub const CL_QUEUE_PROPERTIES: u32 = 4243;
258pub const CL_MEM_READ_WRITE: u32 = 1;
259pub const CL_MEM_WRITE_ONLY: u32 = 2;
260pub const CL_MEM_READ_ONLY: u32 = 4;
261pub const CL_MEM_USE_HOST_PTR: u32 = 8;
262pub const CL_MEM_ALLOC_HOST_PTR: u32 = 16;
263pub const CL_MEM_COPY_HOST_PTR: u32 = 32;
264pub const CL_MEM_HOST_WRITE_ONLY: u32 = 128;
265pub const CL_MEM_HOST_READ_ONLY: u32 = 256;
266pub const CL_MEM_HOST_NO_ACCESS: u32 = 512;
267pub const CL_MIGRATE_MEM_OBJECT_HOST: u32 = 1;
268pub const CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED: u32 = 2;
269pub const CL_R: u32 = 4272;
270pub const CL_A: u32 = 4273;
271pub const CL_RG: u32 = 4274;
272pub const CL_RA: u32 = 4275;
273pub const CL_RGB: u32 = 4276;
274pub const CL_RGBA: u32 = 4277;
275pub const CL_BGRA: u32 = 4278;
276pub const CL_ARGB: u32 = 4279;
277pub const CL_INTENSITY: u32 = 4280;
278pub const CL_LUMINANCE: u32 = 4281;
279pub const CL_Rx: u32 = 4282;
280pub const CL_RGx: u32 = 4283;
281pub const CL_RGBx: u32 = 4284;
282pub const CL_SNORM_INT8: u32 = 4304;
283pub const CL_SNORM_INT16: u32 = 4305;
284pub const CL_UNORM_INT8: u32 = 4306;
285pub const CL_UNORM_INT16: u32 = 4307;
286pub const CL_UNORM_SHORT_565: u32 = 4308;
287pub const CL_UNORM_SHORT_555: u32 = 4309;
288pub const CL_UNORM_INT_101010: u32 = 4310;
289pub const CL_SIGNED_INT8: u32 = 4311;
290pub const CL_SIGNED_INT16: u32 = 4312;
291pub const CL_SIGNED_INT32: u32 = 4313;
292pub const CL_UNSIGNED_INT8: u32 = 4314;
293pub const CL_UNSIGNED_INT16: u32 = 4315;
294pub const CL_UNSIGNED_INT32: u32 = 4316;
295pub const CL_HALF_FLOAT: u32 = 4317;
296pub const CL_FLOAT: u32 = 4318;
297pub const CL_MEM_OBJECT_BUFFER: u32 = 4336;
298pub const CL_MEM_OBJECT_IMAGE2D: u32 = 4337;
299pub const CL_MEM_OBJECT_IMAGE3D: u32 = 4338;
300pub const CL_MEM_OBJECT_IMAGE2D_ARRAY: u32 = 4339;
301pub const CL_MEM_OBJECT_IMAGE1D: u32 = 4340;
302pub const CL_MEM_OBJECT_IMAGE1D_ARRAY: u32 = 4341;
303pub const CL_MEM_OBJECT_IMAGE1D_BUFFER: u32 = 4342;
304pub const CL_MEM_TYPE: u32 = 4352;
305pub const CL_MEM_FLAGS: u32 = 4353;
306pub const CL_MEM_SIZE: u32 = 4354;
307pub const CL_MEM_HOST_PTR: u32 = 4355;
308pub const CL_MEM_MAP_COUNT: u32 = 4356;
309pub const CL_MEM_REFERENCE_COUNT: u32 = 4357;
310pub const CL_MEM_CONTEXT: u32 = 4358;
311pub const CL_MEM_ASSOCIATED_MEMOBJECT: u32 = 4359;
312pub const CL_MEM_OFFSET: u32 = 4360;
313pub const CL_IMAGE_FORMAT: u32 = 4368;
314pub const CL_IMAGE_ELEMENT_SIZE: u32 = 4369;
315pub const CL_IMAGE_ROW_PITCH: u32 = 4370;
316pub const CL_IMAGE_SLICE_PITCH: u32 = 4371;
317pub const CL_IMAGE_WIDTH: u32 = 4372;
318pub const CL_IMAGE_HEIGHT: u32 = 4373;
319pub const CL_IMAGE_DEPTH: u32 = 4374;
320pub const CL_IMAGE_ARRAY_SIZE: u32 = 4375;
321pub const CL_IMAGE_BUFFER: u32 = 4376;
322pub const CL_IMAGE_NUM_MIP_LEVELS: u32 = 4377;
323pub const CL_IMAGE_NUM_SAMPLES: u32 = 4378;
324pub const CL_ADDRESS_NONE: u32 = 4400;
325pub const CL_ADDRESS_CLAMP_TO_EDGE: u32 = 4401;
326pub const CL_ADDRESS_CLAMP: u32 = 4402;
327pub const CL_ADDRESS_REPEAT: u32 = 4403;
328pub const CL_ADDRESS_MIRRORED_REPEAT: u32 = 4404;
329pub const CL_FILTER_NEAREST: u32 = 4416;
330pub const CL_FILTER_LINEAR: u32 = 4417;
331pub const CL_SAMPLER_REFERENCE_COUNT: u32 = 4432;
332pub const CL_SAMPLER_CONTEXT: u32 = 4433;
333pub const CL_SAMPLER_NORMALIZED_COORDS: u32 = 4434;
334pub const CL_SAMPLER_ADDRESSING_MODE: u32 = 4435;
335pub const CL_SAMPLER_FILTER_MODE: u32 = 4436;
336pub const CL_MAP_READ: u32 = 1;
337pub const CL_MAP_WRITE: u32 = 2;
338pub const CL_MAP_WRITE_INVALIDATE_REGION: u32 = 4;
339pub const CL_PROGRAM_REFERENCE_COUNT: u32 = 4448;
340pub const CL_PROGRAM_CONTEXT: u32 = 4449;
341pub const CL_PROGRAM_NUM_DEVICES: u32 = 4450;
342pub const CL_PROGRAM_DEVICES: u32 = 4451;
343pub const CL_PROGRAM_SOURCE: u32 = 4452;
344pub const CL_PROGRAM_BINARY_SIZES: u32 = 4453;
345pub const CL_PROGRAM_BINARIES: u32 = 4454;
346pub const CL_PROGRAM_NUM_KERNELS: u32 = 4455;
347pub const CL_PROGRAM_KERNEL_NAMES: u32 = 4456;
348pub const CL_PROGRAM_BUILD_STATUS: u32 = 4481;
349pub const CL_PROGRAM_BUILD_OPTIONS: u32 = 4482;
350pub const CL_PROGRAM_BUILD_LOG: u32 = 4483;
351pub const CL_PROGRAM_BINARY_TYPE: u32 = 4484;
352pub const CL_PROGRAM_BINARY_TYPE_NONE: u32 = 0;
353pub const CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT: u32 = 1;
354pub const CL_PROGRAM_BINARY_TYPE_LIBRARY: u32 = 2;
355pub const CL_PROGRAM_BINARY_TYPE_EXECUTABLE: u32 = 4;
356pub const CL_BUILD_SUCCESS: u32 = 0;
357pub const CL_BUILD_NONE: i32 = -1;
358pub const CL_BUILD_ERROR: i32 = -2;
359pub const CL_BUILD_IN_PROGRESS: i32 = -3;
360pub const CL_KERNEL_FUNCTION_NAME: u32 = 4496;
361pub const CL_KERNEL_NUM_ARGS: u32 = 4497;
362pub const CL_KERNEL_REFERENCE_COUNT: u32 = 4498;
363pub const CL_KERNEL_CONTEXT: u32 = 4499;
364pub const CL_KERNEL_PROGRAM: u32 = 4500;
365pub const CL_KERNEL_ATTRIBUTES: u32 = 4501;
366pub const CL_KERNEL_ARG_ADDRESS_QUALIFIER: u32 = 4502;
367pub const CL_KERNEL_ARG_ACCESS_QUALIFIER: u32 = 4503;
368pub const CL_KERNEL_ARG_TYPE_NAME: u32 = 4504;
369pub const CL_KERNEL_ARG_TYPE_QUALIFIER: u32 = 4505;
370pub const CL_KERNEL_ARG_NAME: u32 = 4506;
371pub const CL_KERNEL_ARG_ADDRESS_GLOBAL: u32 = 4507;
372pub const CL_KERNEL_ARG_ADDRESS_LOCAL: u32 = 4508;
373pub const CL_KERNEL_ARG_ADDRESS_CONSTANT: u32 = 4509;
374pub const CL_KERNEL_ARG_ADDRESS_PRIVATE: u32 = 4510;
375pub const CL_KERNEL_ARG_ACCESS_READ_ONLY: u32 = 4512;
376pub const CL_KERNEL_ARG_ACCESS_WRITE_ONLY: u32 = 4513;
377pub const CL_KERNEL_ARG_ACCESS_READ_WRITE: u32 = 4514;
378pub const CL_KERNEL_ARG_ACCESS_NONE: u32 = 4515;
379pub const CL_KERNEL_ARG_TYPE_NONE: u32 = 0;
380pub const CL_KERNEL_ARG_TYPE_CONST: u32 = 1;
381pub const CL_KERNEL_ARG_TYPE_RESTRICT: u32 = 2;
382pub const CL_KERNEL_ARG_TYPE_VOLATILE: u32 = 4;
383pub const CL_KERNEL_WORK_GROUP_SIZE: u32 = 4528;
384pub const CL_KERNEL_COMPILE_WORK_GROUP_SIZE: u32 = 4529;
385pub const CL_KERNEL_LOCAL_MEM_SIZE: u32 = 4530;
386pub const CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE: u32 = 4531;
387pub const CL_KERNEL_PRIVATE_MEM_SIZE: u32 = 4532;
388pub const CL_KERNEL_GLOBAL_WORK_SIZE: u32 = 4533;
389pub const CL_EVENT_COMMAND_QUEUE: u32 = 4560;
390pub const CL_EVENT_COMMAND_TYPE: u32 = 4561;
391pub const CL_EVENT_REFERENCE_COUNT: u32 = 4562;
392pub const CL_EVENT_COMMAND_EXECUTION_STATUS: u32 = 4563;
393pub const CL_EVENT_CONTEXT: u32 = 4564;
394pub const CL_COMMAND_NDRANGE_KERNEL: u32 = 4592;
395pub const CL_COMMAND_TASK: u32 = 4593;
396pub const CL_COMMAND_NATIVE_KERNEL: u32 = 4594;
397pub const CL_COMMAND_READ_BUFFER: u32 = 4595;
398pub const CL_COMMAND_WRITE_BUFFER: u32 = 4596;
399pub const CL_COMMAND_COPY_BUFFER: u32 = 4597;
400pub const CL_COMMAND_READ_IMAGE: u32 = 4598;
401pub const CL_COMMAND_WRITE_IMAGE: u32 = 4599;
402pub const CL_COMMAND_COPY_IMAGE: u32 = 4600;
403pub const CL_COMMAND_COPY_IMAGE_TO_BUFFER: u32 = 4601;
404pub const CL_COMMAND_COPY_BUFFER_TO_IMAGE: u32 = 4602;
405pub const CL_COMMAND_MAP_BUFFER: u32 = 4603;
406pub const CL_COMMAND_MAP_IMAGE: u32 = 4604;
407pub const CL_COMMAND_UNMAP_MEM_OBJECT: u32 = 4605;
408pub const CL_COMMAND_MARKER: u32 = 4606;
409pub const CL_COMMAND_ACQUIRE_GL_OBJECTS: u32 = 4607;
410pub const CL_COMMAND_RELEASE_GL_OBJECTS: u32 = 4608;
411pub const CL_COMMAND_READ_BUFFER_RECT: u32 = 4609;
412pub const CL_COMMAND_WRITE_BUFFER_RECT: u32 = 4610;
413pub const CL_COMMAND_COPY_BUFFER_RECT: u32 = 4611;
414pub const CL_COMMAND_USER: u32 = 4612;
415pub const CL_COMMAND_BARRIER: u32 = 4613;
416pub const CL_COMMAND_MIGRATE_MEM_OBJECTS: u32 = 4614;
417pub const CL_COMMAND_FILL_BUFFER: u32 = 4615;
418pub const CL_COMMAND_FILL_IMAGE: u32 = 4616;
419pub const CL_COMPLETE: u32 = 0;
420pub const CL_RUNNING: u32 = 1;
421pub const CL_SUBMITTED: u32 = 2;
422pub const CL_QUEUED: u32 = 3;
423pub const CL_BUFFER_CREATE_TYPE_REGION: u32 = 4640;
424pub const CL_PROFILING_COMMAND_QUEUED: u32 = 4736;
425pub const CL_PROFILING_COMMAND_SUBMIT: u32 = 4737;
426pub const CL_PROFILING_COMMAND_START: u32 = 4738;
427pub const CL_PROFILING_COMMAND_END: u32 = 4739;
428pub const CL_KHRONOS_VENDOR_ID_CODEPLAY: u32 = 65540;
429pub mod dnnl_ocl_interop_memory_kind_t {
430    #[doc = " Memory allocation kind."]
431    pub type Type = ::std::os::raw::c_uint;
432    #[doc = " USM (device, shared, host, or unknown) memory allocation kind."]
433    pub const dnnl_ocl_interop_usm: Type = 0;
434    #[doc = " Buffer memory allocation kind - default."]
435    pub const dnnl_ocl_interop_buffer: Type = 1;
436}
437pub type cl_int = i32;
438pub type cl_uint = u32;
439pub type cl_ulong = u64;
440#[repr(C)]
441#[derive(Debug, Copy, Clone)]
442pub struct _cl_platform_id {
443    _unused: [u8; 0],
444}
445pub type cl_platform_id = *mut _cl_platform_id;
446#[repr(C)]
447#[derive(Debug, Copy, Clone)]
448pub struct _cl_device_id {
449    _unused: [u8; 0],
450}
451pub type cl_device_id = *mut _cl_device_id;
452#[repr(C)]
453#[derive(Debug, Copy, Clone)]
454pub struct _cl_context {
455    _unused: [u8; 0],
456}
457pub type cl_context = *mut _cl_context;
458#[repr(C)]
459#[derive(Debug, Copy, Clone)]
460pub struct _cl_command_queue {
461    _unused: [u8; 0],
462}
463pub type cl_command_queue = *mut _cl_command_queue;
464#[repr(C)]
465#[derive(Debug, Copy, Clone)]
466pub struct _cl_mem {
467    _unused: [u8; 0],
468}
469pub type cl_mem = *mut _cl_mem;
470#[repr(C)]
471#[derive(Debug, Copy, Clone)]
472pub struct _cl_event {
473    _unused: [u8; 0],
474}
475pub type cl_event = *mut _cl_event;
476pub type cl_bool = cl_uint;
477pub type cl_bitfield = cl_ulong;
478pub type cl_device_type = cl_bitfield;
479pub type cl_platform_info = cl_uint;
480pub type cl_device_info = cl_uint;
481pub type cl_command_queue_properties = cl_bitfield;
482pub type cl_context_properties = isize;
483pub type cl_channel_order = cl_uint;
484pub type cl_channel_type = cl_uint;
485pub type cl_mem_flags = cl_bitfield;
486pub type cl_buffer_create_type = cl_uint;
487pub type cl_map_flags = cl_bitfield;
488#[repr(C)]
489#[derive(Debug, Copy, Clone)]
490pub struct _cl_image_format {
491    pub image_channel_order: cl_channel_order,
492    pub image_channel_data_type: cl_channel_type,
493}
494#[allow(clippy::unnecessary_operation, clippy::identity_op)]
495const _: () = {
496    ["Size of _cl_image_format"][::std::mem::size_of::<_cl_image_format>() - 8usize];
497    ["Alignment of _cl_image_format"][::std::mem::align_of::<_cl_image_format>() - 4usize];
498    ["Offset of field: _cl_image_format::image_channel_order"]
499        [::std::mem::offset_of!(_cl_image_format, image_channel_order) - 0usize];
500    ["Offset of field: _cl_image_format::image_channel_data_type"]
501        [::std::mem::offset_of!(_cl_image_format, image_channel_data_type) - 4usize];
502};
503pub type cl_image_format = _cl_image_format;
504unsafe extern "C" {
505    pub fn clGetPlatformIDs(
506        num_entries: cl_uint,
507        platforms: *mut cl_platform_id,
508        num_platforms: *mut cl_uint,
509    ) -> cl_int;
510}
511unsafe extern "C" {
512    pub fn clGetPlatformInfo(
513        platform: cl_platform_id,
514        param_name: cl_platform_info,
515        param_value_size: usize,
516        param_value: *mut ::std::os::raw::c_void,
517        param_value_size_ret: *mut usize,
518    ) -> cl_int;
519}
520unsafe extern "C" {
521    pub fn clGetDeviceIDs(
522        platform: cl_platform_id,
523        device_type: cl_device_type,
524        num_entries: cl_uint,
525        devices: *mut cl_device_id,
526        num_devices: *mut cl_uint,
527    ) -> cl_int;
528}
529unsafe extern "C" {
530    pub fn clGetDeviceInfo(
531        device: cl_device_id,
532        param_name: cl_device_info,
533        param_value_size: usize,
534        param_value: *mut ::std::os::raw::c_void,
535        param_value_size_ret: *mut usize,
536    ) -> cl_int;
537}
538unsafe extern "C" {
539    pub fn clCreateContext(
540        properties: *const cl_context_properties,
541        num_devices: cl_uint,
542        devices: *const cl_device_id,
543        pfn_notify: ::std::option::Option<
544            unsafe extern "C" fn(
545                errinfo: *const ::std::os::raw::c_char,
546                private_info: *const ::std::os::raw::c_void,
547                cb: usize,
548                user_data: *mut ::std::os::raw::c_void,
549            ),
550        >,
551        user_data: *mut ::std::os::raw::c_void,
552        errcode_ret: *mut cl_int,
553    ) -> cl_context;
554}
555unsafe extern "C" {
556    pub fn clRetainContext(context: cl_context) -> cl_int;
557}
558unsafe extern "C" {
559    pub fn clReleaseContext(context: cl_context) -> cl_int;
560}
561unsafe extern "C" {
562    pub fn clRetainCommandQueue(command_queue: cl_command_queue) -> cl_int;
563}
564unsafe extern "C" {
565    pub fn clReleaseCommandQueue(command_queue: cl_command_queue) -> cl_int;
566}
567unsafe extern "C" {
568    pub fn clCreateBuffer(
569        context: cl_context,
570        flags: cl_mem_flags,
571        size: usize,
572        host_ptr: *mut ::std::os::raw::c_void,
573        errcode_ret: *mut cl_int,
574    ) -> cl_mem;
575}
576unsafe extern "C" {
577    pub fn clCreateSubBuffer(
578        buffer: cl_mem,
579        flags: cl_mem_flags,
580        buffer_create_type: cl_buffer_create_type,
581        buffer_create_info: *const ::std::os::raw::c_void,
582        errcode_ret: *mut cl_int,
583    ) -> cl_mem;
584}
585unsafe extern "C" {
586    pub fn clEnqueueReadBuffer(
587        command_queue: cl_command_queue,
588        buffer: cl_mem,
589        blocking_read: cl_bool,
590        offset: usize,
591        size: usize,
592        ptr: *mut ::std::os::raw::c_void,
593        num_events_in_wait_list: cl_uint,
594        event_wait_list: *const cl_event,
595        event: *mut cl_event,
596    ) -> cl_int;
597}
598unsafe extern "C" {
599    pub fn clEnqueueWriteBuffer(
600        command_queue: cl_command_queue,
601        buffer: cl_mem,
602        blocking_write: cl_bool,
603        offset: usize,
604        size: usize,
605        ptr: *const ::std::os::raw::c_void,
606        num_events_in_wait_list: cl_uint,
607        event_wait_list: *const cl_event,
608        event: *mut cl_event,
609    ) -> cl_int;
610}
611unsafe extern "C" {
612    pub fn clEnqueueFillBuffer(
613        command_queue: cl_command_queue,
614        buffer: cl_mem,
615        pattern: *const ::std::os::raw::c_void,
616        pattern_size: usize,
617        offset: usize,
618        size: usize,
619        num_events_in_wait_list: cl_uint,
620        event_wait_list: *const cl_event,
621        event: *mut cl_event,
622    ) -> cl_int;
623}
624unsafe extern "C" {
625    pub fn clEnqueueCopyBuffer(
626        command_queue: cl_command_queue,
627        src_buffer: cl_mem,
628        dst_buffer: cl_mem,
629        src_offset: usize,
630        dst_offset: usize,
631        size: usize,
632        num_events_in_wait_list: cl_uint,
633        event_wait_list: *const cl_event,
634        event: *mut cl_event,
635    ) -> cl_int;
636}
637unsafe extern "C" {
638    pub fn clEnqueueCopyImageToBuffer(
639        command_queue: cl_command_queue,
640        src_image: cl_mem,
641        dst_buffer: cl_mem,
642        src_origin: *const usize,
643        region: *const usize,
644        dst_offset: usize,
645        num_events_in_wait_list: cl_uint,
646        event_wait_list: *const cl_event,
647        event: *mut cl_event,
648    ) -> cl_int;
649}
650unsafe extern "C" {
651    pub fn clEnqueueMapBuffer(
652        command_queue: cl_command_queue,
653        buffer: cl_mem,
654        blocking_map: cl_bool,
655        map_flags: cl_map_flags,
656        offset: usize,
657        size: usize,
658        num_events_in_wait_list: cl_uint,
659        event_wait_list: *const cl_event,
660        event: *mut cl_event,
661        errcode_ret: *mut cl_int,
662    ) -> *mut ::std::os::raw::c_void;
663}
664unsafe extern "C" {
665    pub fn clCreateImage2D(
666        context: cl_context,
667        flags: cl_mem_flags,
668        image_format: *const cl_image_format,
669        image_width: usize,
670        image_height: usize,
671        image_row_pitch: usize,
672        host_ptr: *mut ::std::os::raw::c_void,
673        errcode_ret: *mut cl_int,
674    ) -> cl_mem;
675}
676unsafe extern "C" {
677    pub fn clCreateImage3D(
678        context: cl_context,
679        flags: cl_mem_flags,
680        image_format: *const cl_image_format,
681        image_width: usize,
682        image_height: usize,
683        image_depth: usize,
684        image_row_pitch: usize,
685        image_slice_pitch: usize,
686        host_ptr: *mut ::std::os::raw::c_void,
687        errcode_ret: *mut cl_int,
688    ) -> cl_mem;
689}
690unsafe extern "C" {
691    pub fn clCreateCommandQueue(
692        context: cl_context,
693        device: cl_device_id,
694        properties: cl_command_queue_properties,
695        errcode_ret: *mut cl_int,
696    ) -> cl_command_queue;
697}
698unsafe extern "C" {
699    #[doc = " Creates a memory object.\n\n Unless @p handle is equal to DNNL_MEMORY_NONE or DNNL_MEMORY_ALLOCATE, the\n constructed memory object will have the underlying buffer set. In this\n case, the buffer will be initialized as if:\n - dnnl_memory_set_data_handle() has been called, if @p memory_kind is equal\n   to dnnl_ocl_interop_usm, or\n - dnnl_ocl_interop_memory_set_mem_object() has been called, if @p memory_kind\n   is equal to dnnl_ocl_interop_buffer.\n\n @param memory Output memory object.\n @param memory_desc Memory descriptor.\n @param engine Engine to use.\n @param memory_kind Memory allocation kind to specify the type of handle.\n @param handle Handle of the memory buffer to use as an underlying storage.\n     - A USM pointer to the user-allocated buffer. In this case the library\n       doesn't own the buffer. Requires @p memory_kind to be equal to\n       dnnl_ocl_interop_usm.\n     - An OpenCL buffer. In this case the library doesn't own the buffer.\n       Requires @p memory_kind be equal to be equal to dnnl_ocl_interop_buffer.\n     - The DNNL_MEMORY_ALLOCATE special value. Instructs the library to\n       allocate the buffer that corresponds to the memory allocation kind\n       @p memory_kind for the memory object. In this case the library\n       owns the buffer.\n     - The DNNL_MEMORY_NONE specific value. Instructs the library to\n       create memory object without an underlying buffer.\n @returns #dnnl_success on success and a status describing the error\n     otherwise."]
700    pub fn dnnl_ocl_interop_memory_create(
701        memory: *mut dnnl_memory_t,
702        memory_desc: const_dnnl_memory_desc_t,
703        engine: dnnl_engine_t,
704        memory_kind: dnnl_ocl_interop_memory_kind_t::Type,
705        handle: *mut ::std::os::raw::c_void,
706    ) -> dnnl_status_t::Type;
707}
708unsafe extern "C" {
709    #[doc = " Returns the memory allocation kind associated with a memory object.\n\n @param memory Memory to query.\n @param memory_kind Output underlying memory allocation kind of the memory\n     object.\n @returns #dnnl_success on success and a status describing the error\n     otherwise."]
710    pub fn dnnl_ocl_interop_memory_get_memory_kind(
711        memory: const_dnnl_memory_t,
712        memory_kind: *mut dnnl_ocl_interop_memory_kind_t::Type,
713    ) -> dnnl_status_t::Type;
714}
715unsafe extern "C" {
716    #[doc = " Returns an OpenCL memory object associated with a memory object.\n\n @param memory Memory object.\n @param mem_object Output OpenCL memory object.\n @returns #dnnl_success on success and a status describing the error\n     otherwise."]
717    pub fn dnnl_ocl_interop_memory_get_mem_object(
718        memory: const_dnnl_memory_t,
719        mem_object: *mut cl_mem,
720    ) -> dnnl_status_t::Type;
721}
722unsafe extern "C" {
723    #[doc = " Sets OpenCL memory object associated with a memory object.\n\n For behavioral details, see dnnl_memory_set_data_handle().\n\n @param memory Memory object.\n @param mem_object OpenCL memory object.\n @returns #dnnl_success on success and a status describing the error\n     otherwise."]
724    pub fn dnnl_ocl_interop_memory_set_mem_object(
725        memory: dnnl_memory_t,
726        mem_object: cl_mem,
727    ) -> dnnl_status_t::Type;
728}
729unsafe extern "C" {
730    #[doc = " Retrieves a cache blob ID for the OpenCL device.\n\n @warning\n     This API is intended to be used with\n     #dnnl_ocl_interop_engine_get_cache_blob() and\n     #dnnl_ocl_interop_engine_create_from_cache_blob(). The returned cache\n     blob ID can only be used as an ID of the cache blob returned by\n     #dnnl_ocl_interop_engine_get_cache_blob().\n\n @note The cache blob ID can be empty (@p size will be 0 and\n     @p cache_blob_id will be nullptr) if oneDNN doesn't have anything to\n     put in the cache blob. (#dnnl_ocl_interop_engine_get_cache_blob will\n     return an empty cache blob).\n\n @param device An OpenCL device.\n @param size Size of the cache blob ID in bytes.\n @param cache_blob_id Cache blob id of size @p size. If\n     the @p cache_blob_id is nullptr then the size of the cache blob ID is\n     returned in @p size.\n @returns #dnnl_success on success and a status describing the error\n     otherwise."]
731    pub fn dnnl_ocl_interop_engine_get_cache_blob_id(
732        device: cl_device_id,
733        size: *mut usize,
734        cache_blob_id: *mut u8,
735    ) -> dnnl_status_t::Type;
736}
737unsafe extern "C" {
738    #[doc = " Retrieves a cache blob associated with the given engine.\n\n @note The cache blob can be empty (@p size will be 0 and @p cache_blob\n     will be nullptr) if oneDNN doesn't have anything to put in the cache\n     blob. It's the user's responsibility to check whether it's empty\n     prior to passing it to\n     #dnnl_ocl_interop_engine_create_from_cache_blob().\n\n @param engine Engine to query for the cache blob.\n @param size Size of the cache blob in bytes.\n @param cache_blob Cache blob of size @p size. If the @p cache_blob is\n     nullptr then the size of the cache blob is returned in @p size.\n @returns #dnnl_success on success and a status describing the error\n     otherwise."]
739    pub fn dnnl_ocl_interop_engine_get_cache_blob(
740        engine: dnnl_engine_t,
741        size: *mut usize,
742        cache_blob: *mut u8,
743    ) -> dnnl_status_t::Type;
744}
745unsafe extern "C" {
746    #[doc = " Creates an engine from the given cache blob.\n\n @param engine Output engine.\n @param device The OpenCL device that this engine will encapsulate.\n @param context The OpenCL context (containing the device) that this\n     engine will use for all operations.\n @param size Size of the cache blob in bytes.\n @param cache_blob Cache blob of size @p size.\n @returns #dnnl_success on success and a status describing the error\n     otherwise."]
747    pub fn dnnl_ocl_interop_engine_create_from_cache_blob(
748        engine: *mut dnnl_engine_t,
749        device: cl_device_id,
750        context: cl_context,
751        size: usize,
752        cache_blob: *const u8,
753    ) -> dnnl_status_t::Type;
754}
755unsafe extern "C" {
756    #[doc = " Creates an engine associated with an OpenCL device and an OpenCL context.\n\n @param engine Output engine.\n @param device Underlying OpenCL device to use for the engine.\n @param context Underlying OpenCL context to use for the engine.\n @returns #dnnl_success on success and a status describing the error\n     otherwise."]
757    pub fn dnnl_ocl_interop_engine_create(
758        engine: *mut dnnl_engine_t,
759        device: cl_device_id,
760        context: cl_context,
761    ) -> dnnl_status_t::Type;
762}
763unsafe extern "C" {
764    #[doc = " Returns the OpenCL context associated with an engine.\n\n @param engine Engine to query.\n @param context Output underlying OpenCL context of the engine.\n @returns #dnnl_success on success and a status describing the error\n     otherwise."]
765    pub fn dnnl_ocl_interop_engine_get_context(
766        engine: dnnl_engine_t,
767        context: *mut cl_context,
768    ) -> dnnl_status_t::Type;
769}
770unsafe extern "C" {
771    #[doc = " Returns the OpenCL device associated with an engine.\n\n @param engine Engine to query.\n @param device Output underlying OpenCL device of the engine.\n @returns #dnnl_success on success and a status describing the error\n     otherwise."]
772    pub fn dnnl_ocl_interop_get_device(
773        engine: dnnl_engine_t,
774        device: *mut cl_device_id,
775    ) -> dnnl_status_t::Type;
776}
777unsafe extern "C" {
778    #[doc = " Creates an execution stream for a given engine associated with\n an OpenCL command queue.\n\n @param stream Output execution stream.\n @param engine Engine to create the execution stream on.\n @param queue OpenCL command queue to use.\n @returns #dnnl_success on success and a status describing the error\n     otherwise."]
779    pub fn dnnl_ocl_interop_stream_create(
780        stream: *mut dnnl_stream_t,
781        engine: dnnl_engine_t,
782        queue: cl_command_queue,
783    ) -> dnnl_status_t::Type;
784}
785unsafe extern "C" {
786    #[doc = " Returns the OpenCL command queue associated with an execution stream.\n\n @param stream Execution stream to query.\n @param queue Output OpenCL command queue.\n @returns #dnnl_success on success and a status describing the error\n     otherwise."]
787    pub fn dnnl_ocl_interop_stream_get_command_queue(
788        stream: dnnl_stream_t,
789        queue: *mut cl_command_queue,
790    ) -> dnnl_status_t::Type;
791}
792unsafe extern "C" {
793    #[doc = " Executes computations specified by the primitive in a specified stream and\n returns an OpenCL event.\n\n @param primitive Primitive to execute.\n @param stream Stream to use.\n @param nargs Number of arguments.\n @param args Array of arguments. Each argument is an\n     <index, #dnnl_memory_t> pair. The index is one of the `DNNL_ARG_*`\n     values such as `DNNL_ARG_SRC`. Unless runtime shapes are used (see\n     #DNNL_RUNTIME_DIM_VAL), the memory object must have the same memory\n     descriptor as that returned by\n     #dnnl_primitive_desc_query_md(#dnnl_query_exec_arg_md, index).\n @param deps A pointer to a vector of size @p ndeps that contains\n     dependencies.\n @param ndeps Number of dependencies.\n @param return_event Output event. It's the user's responsibility to\n     manage lifetime of the event. Can be NULL. When @p stream is in-order\n     NULL will be returned.\n @returns #dnnl_success on success and a status describing the error\n     otherwise."]
794    pub fn dnnl_ocl_interop_primitive_execute(
795        primitive: const_dnnl_primitive_t,
796        stream: dnnl_stream_t,
797        nargs: ::std::os::raw::c_int,
798        args: *const dnnl_exec_arg_t,
799        deps: *const cl_event,
800        ndeps: ::std::os::raw::c_int,
801        return_event: *mut cl_event,
802    ) -> dnnl_status_t::Type;
803}