1bf215546Sopenharmony_ci/*******************************************************************************
2bf215546Sopenharmony_ci * Copyright (c) 2008-2020 The Khronos Group Inc.
3bf215546Sopenharmony_ci *
4bf215546Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
5bf215546Sopenharmony_ci * you may not use this file except in compliance with the License.
6bf215546Sopenharmony_ci * You may obtain a copy of the License at
7bf215546Sopenharmony_ci *
8bf215546Sopenharmony_ci *    http://www.apache.org/licenses/LICENSE-2.0
9bf215546Sopenharmony_ci *
10bf215546Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
11bf215546Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
12bf215546Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bf215546Sopenharmony_ci * See the License for the specific language governing permissions and
14bf215546Sopenharmony_ci * limitations under the License.
15bf215546Sopenharmony_ci ******************************************************************************/
16bf215546Sopenharmony_ci
17bf215546Sopenharmony_ci#ifndef __OPENCL_CL_H
18bf215546Sopenharmony_ci#define __OPENCL_CL_H
19bf215546Sopenharmony_ci
20bf215546Sopenharmony_ci#include <CL/cl_version.h>
21bf215546Sopenharmony_ci#include <CL/cl_platform.h>
22bf215546Sopenharmony_ci
23bf215546Sopenharmony_ci#ifdef __cplusplus
24bf215546Sopenharmony_ciextern "C" {
25bf215546Sopenharmony_ci#endif
26bf215546Sopenharmony_ci
27bf215546Sopenharmony_ci/******************************************************************************/
28bf215546Sopenharmony_ci
29bf215546Sopenharmony_citypedef struct _cl_platform_id *    cl_platform_id;
30bf215546Sopenharmony_citypedef struct _cl_device_id *      cl_device_id;
31bf215546Sopenharmony_citypedef struct _cl_context *        cl_context;
32bf215546Sopenharmony_citypedef struct _cl_command_queue *  cl_command_queue;
33bf215546Sopenharmony_citypedef struct _cl_mem *            cl_mem;
34bf215546Sopenharmony_citypedef struct _cl_program *        cl_program;
35bf215546Sopenharmony_citypedef struct _cl_kernel *         cl_kernel;
36bf215546Sopenharmony_citypedef struct _cl_event *          cl_event;
37bf215546Sopenharmony_citypedef struct _cl_sampler *        cl_sampler;
38bf215546Sopenharmony_ci
39bf215546Sopenharmony_citypedef cl_uint             cl_bool;                     /* WARNING!  Unlike cl_ types in cl_platform.h, cl_bool is not guaranteed to be the same size as the bool in kernels. */
40bf215546Sopenharmony_citypedef cl_ulong            cl_bitfield;
41bf215546Sopenharmony_citypedef cl_ulong            cl_properties;
42bf215546Sopenharmony_citypedef cl_bitfield         cl_device_type;
43bf215546Sopenharmony_citypedef cl_uint             cl_platform_info;
44bf215546Sopenharmony_citypedef cl_uint             cl_device_info;
45bf215546Sopenharmony_citypedef cl_bitfield         cl_device_fp_config;
46bf215546Sopenharmony_citypedef cl_uint             cl_device_mem_cache_type;
47bf215546Sopenharmony_citypedef cl_uint             cl_device_local_mem_type;
48bf215546Sopenharmony_citypedef cl_bitfield         cl_device_exec_capabilities;
49bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
50bf215546Sopenharmony_citypedef cl_bitfield         cl_device_svm_capabilities;
51bf215546Sopenharmony_ci#endif
52bf215546Sopenharmony_citypedef cl_bitfield         cl_command_queue_properties;
53bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
54bf215546Sopenharmony_citypedef intptr_t            cl_device_partition_property;
55bf215546Sopenharmony_citypedef cl_bitfield         cl_device_affinity_domain;
56bf215546Sopenharmony_ci#endif
57bf215546Sopenharmony_ci
58bf215546Sopenharmony_citypedef intptr_t            cl_context_properties;
59bf215546Sopenharmony_citypedef cl_uint             cl_context_info;
60bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
61bf215546Sopenharmony_citypedef cl_properties       cl_queue_properties;
62bf215546Sopenharmony_ci#endif
63bf215546Sopenharmony_citypedef cl_uint             cl_command_queue_info;
64bf215546Sopenharmony_citypedef cl_uint             cl_channel_order;
65bf215546Sopenharmony_citypedef cl_uint             cl_channel_type;
66bf215546Sopenharmony_citypedef cl_bitfield         cl_mem_flags;
67bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
68bf215546Sopenharmony_citypedef cl_bitfield         cl_svm_mem_flags;
69bf215546Sopenharmony_ci#endif
70bf215546Sopenharmony_citypedef cl_uint             cl_mem_object_type;
71bf215546Sopenharmony_citypedef cl_uint             cl_mem_info;
72bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
73bf215546Sopenharmony_citypedef cl_bitfield         cl_mem_migration_flags;
74bf215546Sopenharmony_ci#endif
75bf215546Sopenharmony_citypedef cl_uint             cl_image_info;
76bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
77bf215546Sopenharmony_citypedef cl_uint             cl_buffer_create_type;
78bf215546Sopenharmony_ci#endif
79bf215546Sopenharmony_citypedef cl_uint             cl_addressing_mode;
80bf215546Sopenharmony_citypedef cl_uint             cl_filter_mode;
81bf215546Sopenharmony_citypedef cl_uint             cl_sampler_info;
82bf215546Sopenharmony_citypedef cl_bitfield         cl_map_flags;
83bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
84bf215546Sopenharmony_citypedef intptr_t            cl_pipe_properties;
85bf215546Sopenharmony_citypedef cl_uint             cl_pipe_info;
86bf215546Sopenharmony_ci#endif
87bf215546Sopenharmony_citypedef cl_uint             cl_program_info;
88bf215546Sopenharmony_citypedef cl_uint             cl_program_build_info;
89bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
90bf215546Sopenharmony_citypedef cl_uint             cl_program_binary_type;
91bf215546Sopenharmony_ci#endif
92bf215546Sopenharmony_citypedef cl_int              cl_build_status;
93bf215546Sopenharmony_citypedef cl_uint             cl_kernel_info;
94bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
95bf215546Sopenharmony_citypedef cl_uint             cl_kernel_arg_info;
96bf215546Sopenharmony_citypedef cl_uint             cl_kernel_arg_address_qualifier;
97bf215546Sopenharmony_citypedef cl_uint             cl_kernel_arg_access_qualifier;
98bf215546Sopenharmony_citypedef cl_bitfield         cl_kernel_arg_type_qualifier;
99bf215546Sopenharmony_ci#endif
100bf215546Sopenharmony_citypedef cl_uint             cl_kernel_work_group_info;
101bf215546Sopenharmony_ci#ifdef CL_VERSION_2_1
102bf215546Sopenharmony_citypedef cl_uint             cl_kernel_sub_group_info;
103bf215546Sopenharmony_ci#endif
104bf215546Sopenharmony_citypedef cl_uint             cl_event_info;
105bf215546Sopenharmony_citypedef cl_uint             cl_command_type;
106bf215546Sopenharmony_citypedef cl_uint             cl_profiling_info;
107bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
108bf215546Sopenharmony_citypedef cl_properties       cl_sampler_properties;
109bf215546Sopenharmony_citypedef cl_uint             cl_kernel_exec_info;
110bf215546Sopenharmony_ci#endif
111bf215546Sopenharmony_ci#ifdef CL_VERSION_3_0
112bf215546Sopenharmony_citypedef cl_bitfield         cl_device_atomic_capabilities;
113bf215546Sopenharmony_citypedef cl_bitfield         cl_device_device_enqueue_capabilities;
114bf215546Sopenharmony_citypedef cl_uint             cl_khronos_vendor_id;
115bf215546Sopenharmony_citypedef cl_properties       cl_mem_properties;
116bf215546Sopenharmony_citypedef cl_uint             cl_version;
117bf215546Sopenharmony_ci#endif
118bf215546Sopenharmony_ci
119bf215546Sopenharmony_citypedef struct _cl_image_format {
120bf215546Sopenharmony_ci    cl_channel_order        image_channel_order;
121bf215546Sopenharmony_ci    cl_channel_type         image_channel_data_type;
122bf215546Sopenharmony_ci} cl_image_format;
123bf215546Sopenharmony_ci
124bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
125bf215546Sopenharmony_ci
126bf215546Sopenharmony_citypedef struct _cl_image_desc {
127bf215546Sopenharmony_ci    cl_mem_object_type      image_type;
128bf215546Sopenharmony_ci    size_t                  image_width;
129bf215546Sopenharmony_ci    size_t                  image_height;
130bf215546Sopenharmony_ci    size_t                  image_depth;
131bf215546Sopenharmony_ci    size_t                  image_array_size;
132bf215546Sopenharmony_ci    size_t                  image_row_pitch;
133bf215546Sopenharmony_ci    size_t                  image_slice_pitch;
134bf215546Sopenharmony_ci    cl_uint                 num_mip_levels;
135bf215546Sopenharmony_ci    cl_uint                 num_samples;
136bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
137bf215546Sopenharmony_ci#if __CL_HAS_ANON_STRUCT__
138bf215546Sopenharmony_ci#ifdef _MSC_VER
139bf215546Sopenharmony_ci#if _MSC_VER >= 1500
140bf215546Sopenharmony_ci#pragma warning( push )
141bf215546Sopenharmony_ci#pragma warning( disable : 4201 ) /* Prevents warning about nameless struct/union in /W4 /Za builds */
142bf215546Sopenharmony_ci#endif
143bf215546Sopenharmony_ci#endif
144bf215546Sopenharmony_ci    __CL_ANON_STRUCT__
145bf215546Sopenharmony_ci    union {
146bf215546Sopenharmony_ci#endif
147bf215546Sopenharmony_ci#endif
148bf215546Sopenharmony_ci      cl_mem                  buffer;
149bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
150bf215546Sopenharmony_ci#if __CL_HAS_ANON_STRUCT__
151bf215546Sopenharmony_ci      cl_mem                  mem_object;
152bf215546Sopenharmony_ci    };
153bf215546Sopenharmony_ci#ifdef _MSC_VER
154bf215546Sopenharmony_ci#if _MSC_VER >= 1500
155bf215546Sopenharmony_ci#pragma warning( pop )
156bf215546Sopenharmony_ci#endif
157bf215546Sopenharmony_ci#endif
158bf215546Sopenharmony_ci#endif
159bf215546Sopenharmony_ci#endif
160bf215546Sopenharmony_ci} cl_image_desc;
161bf215546Sopenharmony_ci
162bf215546Sopenharmony_ci#endif
163bf215546Sopenharmony_ci
164bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
165bf215546Sopenharmony_ci
166bf215546Sopenharmony_citypedef struct _cl_buffer_region {
167bf215546Sopenharmony_ci    size_t                  origin;
168bf215546Sopenharmony_ci    size_t                  size;
169bf215546Sopenharmony_ci} cl_buffer_region;
170bf215546Sopenharmony_ci
171bf215546Sopenharmony_ci#endif
172bf215546Sopenharmony_ci
173bf215546Sopenharmony_ci#ifdef CL_VERSION_3_0
174bf215546Sopenharmony_ci
175bf215546Sopenharmony_ci#define CL_NAME_VERSION_MAX_NAME_SIZE 64
176bf215546Sopenharmony_ci
177bf215546Sopenharmony_citypedef struct _cl_name_version {
178bf215546Sopenharmony_ci    cl_version              version;
179bf215546Sopenharmony_ci    char                    name[CL_NAME_VERSION_MAX_NAME_SIZE];
180bf215546Sopenharmony_ci} cl_name_version;
181bf215546Sopenharmony_ci
182bf215546Sopenharmony_ci#endif
183bf215546Sopenharmony_ci
184bf215546Sopenharmony_ci/******************************************************************************/
185bf215546Sopenharmony_ci
186bf215546Sopenharmony_ci/* Error Codes */
187bf215546Sopenharmony_ci#define CL_SUCCESS                                  0
188bf215546Sopenharmony_ci#define CL_DEVICE_NOT_FOUND                         -1
189bf215546Sopenharmony_ci#define CL_DEVICE_NOT_AVAILABLE                     -2
190bf215546Sopenharmony_ci#define CL_COMPILER_NOT_AVAILABLE                   -3
191bf215546Sopenharmony_ci#define CL_MEM_OBJECT_ALLOCATION_FAILURE            -4
192bf215546Sopenharmony_ci#define CL_OUT_OF_RESOURCES                         -5
193bf215546Sopenharmony_ci#define CL_OUT_OF_HOST_MEMORY                       -6
194bf215546Sopenharmony_ci#define CL_PROFILING_INFO_NOT_AVAILABLE             -7
195bf215546Sopenharmony_ci#define CL_MEM_COPY_OVERLAP                         -8
196bf215546Sopenharmony_ci#define CL_IMAGE_FORMAT_MISMATCH                    -9
197bf215546Sopenharmony_ci#define CL_IMAGE_FORMAT_NOT_SUPPORTED               -10
198bf215546Sopenharmony_ci#define CL_BUILD_PROGRAM_FAILURE                    -11
199bf215546Sopenharmony_ci#define CL_MAP_FAILURE                              -12
200bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
201bf215546Sopenharmony_ci#define CL_MISALIGNED_SUB_BUFFER_OFFSET             -13
202bf215546Sopenharmony_ci#define CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST -14
203bf215546Sopenharmony_ci#endif
204bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
205bf215546Sopenharmony_ci#define CL_COMPILE_PROGRAM_FAILURE                  -15
206bf215546Sopenharmony_ci#define CL_LINKER_NOT_AVAILABLE                     -16
207bf215546Sopenharmony_ci#define CL_LINK_PROGRAM_FAILURE                     -17
208bf215546Sopenharmony_ci#define CL_DEVICE_PARTITION_FAILED                  -18
209bf215546Sopenharmony_ci#define CL_KERNEL_ARG_INFO_NOT_AVAILABLE            -19
210bf215546Sopenharmony_ci#endif
211bf215546Sopenharmony_ci
212bf215546Sopenharmony_ci#define CL_INVALID_VALUE                            -30
213bf215546Sopenharmony_ci#define CL_INVALID_DEVICE_TYPE                      -31
214bf215546Sopenharmony_ci#define CL_INVALID_PLATFORM                         -32
215bf215546Sopenharmony_ci#define CL_INVALID_DEVICE                           -33
216bf215546Sopenharmony_ci#define CL_INVALID_CONTEXT                          -34
217bf215546Sopenharmony_ci#define CL_INVALID_QUEUE_PROPERTIES                 -35
218bf215546Sopenharmony_ci#define CL_INVALID_COMMAND_QUEUE                    -36
219bf215546Sopenharmony_ci#define CL_INVALID_HOST_PTR                         -37
220bf215546Sopenharmony_ci#define CL_INVALID_MEM_OBJECT                       -38
221bf215546Sopenharmony_ci#define CL_INVALID_IMAGE_FORMAT_DESCRIPTOR          -39
222bf215546Sopenharmony_ci#define CL_INVALID_IMAGE_SIZE                       -40
223bf215546Sopenharmony_ci#define CL_INVALID_SAMPLER                          -41
224bf215546Sopenharmony_ci#define CL_INVALID_BINARY                           -42
225bf215546Sopenharmony_ci#define CL_INVALID_BUILD_OPTIONS                    -43
226bf215546Sopenharmony_ci#define CL_INVALID_PROGRAM                          -44
227bf215546Sopenharmony_ci#define CL_INVALID_PROGRAM_EXECUTABLE               -45
228bf215546Sopenharmony_ci#define CL_INVALID_KERNEL_NAME                      -46
229bf215546Sopenharmony_ci#define CL_INVALID_KERNEL_DEFINITION                -47
230bf215546Sopenharmony_ci#define CL_INVALID_KERNEL                           -48
231bf215546Sopenharmony_ci#define CL_INVALID_ARG_INDEX                        -49
232bf215546Sopenharmony_ci#define CL_INVALID_ARG_VALUE                        -50
233bf215546Sopenharmony_ci#define CL_INVALID_ARG_SIZE                         -51
234bf215546Sopenharmony_ci#define CL_INVALID_KERNEL_ARGS                      -52
235bf215546Sopenharmony_ci#define CL_INVALID_WORK_DIMENSION                   -53
236bf215546Sopenharmony_ci#define CL_INVALID_WORK_GROUP_SIZE                  -54
237bf215546Sopenharmony_ci#define CL_INVALID_WORK_ITEM_SIZE                   -55
238bf215546Sopenharmony_ci#define CL_INVALID_GLOBAL_OFFSET                    -56
239bf215546Sopenharmony_ci#define CL_INVALID_EVENT_WAIT_LIST                  -57
240bf215546Sopenharmony_ci#define CL_INVALID_EVENT                            -58
241bf215546Sopenharmony_ci#define CL_INVALID_OPERATION                        -59
242bf215546Sopenharmony_ci#define CL_INVALID_GL_OBJECT                        -60
243bf215546Sopenharmony_ci#define CL_INVALID_BUFFER_SIZE                      -61
244bf215546Sopenharmony_ci#define CL_INVALID_MIP_LEVEL                        -62
245bf215546Sopenharmony_ci#define CL_INVALID_GLOBAL_WORK_SIZE                 -63
246bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
247bf215546Sopenharmony_ci#define CL_INVALID_PROPERTY                         -64
248bf215546Sopenharmony_ci#endif
249bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
250bf215546Sopenharmony_ci#define CL_INVALID_IMAGE_DESCRIPTOR                 -65
251bf215546Sopenharmony_ci#define CL_INVALID_COMPILER_OPTIONS                 -66
252bf215546Sopenharmony_ci#define CL_INVALID_LINKER_OPTIONS                   -67
253bf215546Sopenharmony_ci#define CL_INVALID_DEVICE_PARTITION_COUNT           -68
254bf215546Sopenharmony_ci#endif
255bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
256bf215546Sopenharmony_ci#define CL_INVALID_PIPE_SIZE                        -69
257bf215546Sopenharmony_ci#define CL_INVALID_DEVICE_QUEUE                     -70
258bf215546Sopenharmony_ci#endif
259bf215546Sopenharmony_ci#ifdef CL_VERSION_2_2
260bf215546Sopenharmony_ci#define CL_INVALID_SPEC_ID                          -71
261bf215546Sopenharmony_ci#define CL_MAX_SIZE_RESTRICTION_EXCEEDED            -72
262bf215546Sopenharmony_ci#endif
263bf215546Sopenharmony_ci
264bf215546Sopenharmony_ci
265bf215546Sopenharmony_ci/* cl_bool */
266bf215546Sopenharmony_ci#define CL_FALSE                                    0
267bf215546Sopenharmony_ci#define CL_TRUE                                     1
268bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
269bf215546Sopenharmony_ci#define CL_BLOCKING                                 CL_TRUE
270bf215546Sopenharmony_ci#define CL_NON_BLOCKING                             CL_FALSE
271bf215546Sopenharmony_ci#endif
272bf215546Sopenharmony_ci
273bf215546Sopenharmony_ci/* cl_platform_info */
274bf215546Sopenharmony_ci#define CL_PLATFORM_PROFILE                         0x0900
275bf215546Sopenharmony_ci#define CL_PLATFORM_VERSION                         0x0901
276bf215546Sopenharmony_ci#define CL_PLATFORM_NAME                            0x0902
277bf215546Sopenharmony_ci#define CL_PLATFORM_VENDOR                          0x0903
278bf215546Sopenharmony_ci#define CL_PLATFORM_EXTENSIONS                      0x0904
279bf215546Sopenharmony_ci#ifdef CL_VERSION_2_1
280bf215546Sopenharmony_ci#define CL_PLATFORM_HOST_TIMER_RESOLUTION           0x0905
281bf215546Sopenharmony_ci#endif
282bf215546Sopenharmony_ci#ifdef CL_VERSION_3_0
283bf215546Sopenharmony_ci#define CL_PLATFORM_NUMERIC_VERSION                 0x0906
284bf215546Sopenharmony_ci#define CL_PLATFORM_EXTENSIONS_WITH_VERSION         0x0907
285bf215546Sopenharmony_ci#endif
286bf215546Sopenharmony_ci
287bf215546Sopenharmony_ci/* cl_device_type - bitfield */
288bf215546Sopenharmony_ci#define CL_DEVICE_TYPE_DEFAULT                      (1 << 0)
289bf215546Sopenharmony_ci#define CL_DEVICE_TYPE_CPU                          (1 << 1)
290bf215546Sopenharmony_ci#define CL_DEVICE_TYPE_GPU                          (1 << 2)
291bf215546Sopenharmony_ci#define CL_DEVICE_TYPE_ACCELERATOR                  (1 << 3)
292bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
293bf215546Sopenharmony_ci#define CL_DEVICE_TYPE_CUSTOM                       (1 << 4)
294bf215546Sopenharmony_ci#endif
295bf215546Sopenharmony_ci#define CL_DEVICE_TYPE_ALL                          0xFFFFFFFF
296bf215546Sopenharmony_ci
297bf215546Sopenharmony_ci/* cl_device_info */
298bf215546Sopenharmony_ci#define CL_DEVICE_TYPE                                   0x1000
299bf215546Sopenharmony_ci#define CL_DEVICE_VENDOR_ID                              0x1001
300bf215546Sopenharmony_ci#define CL_DEVICE_MAX_COMPUTE_UNITS                      0x1002
301bf215546Sopenharmony_ci#define CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS               0x1003
302bf215546Sopenharmony_ci#define CL_DEVICE_MAX_WORK_GROUP_SIZE                    0x1004
303bf215546Sopenharmony_ci#define CL_DEVICE_MAX_WORK_ITEM_SIZES                    0x1005
304bf215546Sopenharmony_ci#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR            0x1006
305bf215546Sopenharmony_ci#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT           0x1007
306bf215546Sopenharmony_ci#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT             0x1008
307bf215546Sopenharmony_ci#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG            0x1009
308bf215546Sopenharmony_ci#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT           0x100A
309bf215546Sopenharmony_ci#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE          0x100B
310bf215546Sopenharmony_ci#define CL_DEVICE_MAX_CLOCK_FREQUENCY                    0x100C
311bf215546Sopenharmony_ci#define CL_DEVICE_ADDRESS_BITS                           0x100D
312bf215546Sopenharmony_ci#define CL_DEVICE_MAX_READ_IMAGE_ARGS                    0x100E
313bf215546Sopenharmony_ci#define CL_DEVICE_MAX_WRITE_IMAGE_ARGS                   0x100F
314bf215546Sopenharmony_ci#define CL_DEVICE_MAX_MEM_ALLOC_SIZE                     0x1010
315bf215546Sopenharmony_ci#define CL_DEVICE_IMAGE2D_MAX_WIDTH                      0x1011
316bf215546Sopenharmony_ci#define CL_DEVICE_IMAGE2D_MAX_HEIGHT                     0x1012
317bf215546Sopenharmony_ci#define CL_DEVICE_IMAGE3D_MAX_WIDTH                      0x1013
318bf215546Sopenharmony_ci#define CL_DEVICE_IMAGE3D_MAX_HEIGHT                     0x1014
319bf215546Sopenharmony_ci#define CL_DEVICE_IMAGE3D_MAX_DEPTH                      0x1015
320bf215546Sopenharmony_ci#define CL_DEVICE_IMAGE_SUPPORT                          0x1016
321bf215546Sopenharmony_ci#define CL_DEVICE_MAX_PARAMETER_SIZE                     0x1017
322bf215546Sopenharmony_ci#define CL_DEVICE_MAX_SAMPLERS                           0x1018
323bf215546Sopenharmony_ci#define CL_DEVICE_MEM_BASE_ADDR_ALIGN                    0x1019
324bf215546Sopenharmony_ci#define CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE               0x101A
325bf215546Sopenharmony_ci#define CL_DEVICE_SINGLE_FP_CONFIG                       0x101B
326bf215546Sopenharmony_ci#define CL_DEVICE_GLOBAL_MEM_CACHE_TYPE                  0x101C
327bf215546Sopenharmony_ci#define CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE              0x101D
328bf215546Sopenharmony_ci#define CL_DEVICE_GLOBAL_MEM_CACHE_SIZE                  0x101E
329bf215546Sopenharmony_ci#define CL_DEVICE_GLOBAL_MEM_SIZE                        0x101F
330bf215546Sopenharmony_ci#define CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE               0x1020
331bf215546Sopenharmony_ci#define CL_DEVICE_MAX_CONSTANT_ARGS                      0x1021
332bf215546Sopenharmony_ci#define CL_DEVICE_LOCAL_MEM_TYPE                         0x1022
333bf215546Sopenharmony_ci#define CL_DEVICE_LOCAL_MEM_SIZE                         0x1023
334bf215546Sopenharmony_ci#define CL_DEVICE_ERROR_CORRECTION_SUPPORT               0x1024
335bf215546Sopenharmony_ci#define CL_DEVICE_PROFILING_TIMER_RESOLUTION             0x1025
336bf215546Sopenharmony_ci#define CL_DEVICE_ENDIAN_LITTLE                          0x1026
337bf215546Sopenharmony_ci#define CL_DEVICE_AVAILABLE                              0x1027
338bf215546Sopenharmony_ci#define CL_DEVICE_COMPILER_AVAILABLE                     0x1028
339bf215546Sopenharmony_ci#define CL_DEVICE_EXECUTION_CAPABILITIES                 0x1029
340bf215546Sopenharmony_ci#define CL_DEVICE_QUEUE_PROPERTIES                       0x102A    /* deprecated */
341bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
342bf215546Sopenharmony_ci#define CL_DEVICE_QUEUE_ON_HOST_PROPERTIES               0x102A
343bf215546Sopenharmony_ci#endif
344bf215546Sopenharmony_ci#define CL_DEVICE_NAME                                   0x102B
345bf215546Sopenharmony_ci#define CL_DEVICE_VENDOR                                 0x102C
346bf215546Sopenharmony_ci#define CL_DRIVER_VERSION                                0x102D
347bf215546Sopenharmony_ci#define CL_DEVICE_PROFILE                                0x102E
348bf215546Sopenharmony_ci#define CL_DEVICE_VERSION                                0x102F
349bf215546Sopenharmony_ci#define CL_DEVICE_EXTENSIONS                             0x1030
350bf215546Sopenharmony_ci#define CL_DEVICE_PLATFORM                               0x1031
351bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
352bf215546Sopenharmony_ci#define CL_DEVICE_DOUBLE_FP_CONFIG                       0x1032
353bf215546Sopenharmony_ci#endif
354bf215546Sopenharmony_ci/* 0x1033 reserved for CL_DEVICE_HALF_FP_CONFIG which is already defined in "cl_ext.h" */
355bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
356bf215546Sopenharmony_ci#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF            0x1034
357bf215546Sopenharmony_ci#define CL_DEVICE_HOST_UNIFIED_MEMORY                    0x1035   /* deprecated */
358bf215546Sopenharmony_ci#define CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR               0x1036
359bf215546Sopenharmony_ci#define CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT              0x1037
360bf215546Sopenharmony_ci#define CL_DEVICE_NATIVE_VECTOR_WIDTH_INT                0x1038
361bf215546Sopenharmony_ci#define CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG               0x1039
362bf215546Sopenharmony_ci#define CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT              0x103A
363bf215546Sopenharmony_ci#define CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE             0x103B
364bf215546Sopenharmony_ci#define CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF               0x103C
365bf215546Sopenharmony_ci#define CL_DEVICE_OPENCL_C_VERSION                       0x103D
366bf215546Sopenharmony_ci#endif
367bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
368bf215546Sopenharmony_ci#define CL_DEVICE_LINKER_AVAILABLE                       0x103E
369bf215546Sopenharmony_ci#define CL_DEVICE_BUILT_IN_KERNELS                       0x103F
370bf215546Sopenharmony_ci#define CL_DEVICE_IMAGE_MAX_BUFFER_SIZE                  0x1040
371bf215546Sopenharmony_ci#define CL_DEVICE_IMAGE_MAX_ARRAY_SIZE                   0x1041
372bf215546Sopenharmony_ci#define CL_DEVICE_PARENT_DEVICE                          0x1042
373bf215546Sopenharmony_ci#define CL_DEVICE_PARTITION_MAX_SUB_DEVICES              0x1043
374bf215546Sopenharmony_ci#define CL_DEVICE_PARTITION_PROPERTIES                   0x1044
375bf215546Sopenharmony_ci#define CL_DEVICE_PARTITION_AFFINITY_DOMAIN              0x1045
376bf215546Sopenharmony_ci#define CL_DEVICE_PARTITION_TYPE                         0x1046
377bf215546Sopenharmony_ci#define CL_DEVICE_REFERENCE_COUNT                        0x1047
378bf215546Sopenharmony_ci#define CL_DEVICE_PREFERRED_INTEROP_USER_SYNC            0x1048
379bf215546Sopenharmony_ci#define CL_DEVICE_PRINTF_BUFFER_SIZE                     0x1049
380bf215546Sopenharmony_ci#endif
381bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
382bf215546Sopenharmony_ci#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT                  0x104A
383bf215546Sopenharmony_ci#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT           0x104B
384bf215546Sopenharmony_ci#define CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS              0x104C
385bf215546Sopenharmony_ci#define CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE               0x104D
386bf215546Sopenharmony_ci#define CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES             0x104E
387bf215546Sopenharmony_ci#define CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE         0x104F
388bf215546Sopenharmony_ci#define CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE               0x1050
389bf215546Sopenharmony_ci#define CL_DEVICE_MAX_ON_DEVICE_QUEUES                   0x1051
390bf215546Sopenharmony_ci#define CL_DEVICE_MAX_ON_DEVICE_EVENTS                   0x1052
391bf215546Sopenharmony_ci#define CL_DEVICE_SVM_CAPABILITIES                       0x1053
392bf215546Sopenharmony_ci#define CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE   0x1054
393bf215546Sopenharmony_ci#define CL_DEVICE_MAX_PIPE_ARGS                          0x1055
394bf215546Sopenharmony_ci#define CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS           0x1056
395bf215546Sopenharmony_ci#define CL_DEVICE_PIPE_MAX_PACKET_SIZE                   0x1057
396bf215546Sopenharmony_ci#define CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT    0x1058
397bf215546Sopenharmony_ci#define CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT      0x1059
398bf215546Sopenharmony_ci#define CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT       0x105A
399bf215546Sopenharmony_ci#endif
400bf215546Sopenharmony_ci#ifdef CL_VERSION_2_1
401bf215546Sopenharmony_ci#define CL_DEVICE_IL_VERSION                             0x105B
402bf215546Sopenharmony_ci#define CL_DEVICE_MAX_NUM_SUB_GROUPS                     0x105C
403bf215546Sopenharmony_ci#define CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS 0x105D
404bf215546Sopenharmony_ci#endif
405bf215546Sopenharmony_ci#ifdef CL_VERSION_3_0
406bf215546Sopenharmony_ci#define CL_DEVICE_NUMERIC_VERSION                        0x105E
407bf215546Sopenharmony_ci#define CL_DEVICE_EXTENSIONS_WITH_VERSION                0x1060
408bf215546Sopenharmony_ci#define CL_DEVICE_ILS_WITH_VERSION                       0x1061
409bf215546Sopenharmony_ci#define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION          0x1062
410bf215546Sopenharmony_ci#define CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES             0x1063
411bf215546Sopenharmony_ci#define CL_DEVICE_ATOMIC_FENCE_CAPABILITIES              0x1064
412bf215546Sopenharmony_ci#define CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT         0x1065
413bf215546Sopenharmony_ci#define CL_DEVICE_OPENCL_C_ALL_VERSIONS                  0x1066
414bf215546Sopenharmony_ci#define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE     0x1067
415bf215546Sopenharmony_ci#define CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT 0x1068
416bf215546Sopenharmony_ci#define CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT          0x1069
417bf215546Sopenharmony_ci/* 0x106A to 0x106E - Reserved for upcoming KHR extension */
418bf215546Sopenharmony_ci#define CL_DEVICE_OPENCL_C_FEATURES                      0x106F
419bf215546Sopenharmony_ci#define CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES            0x1070
420bf215546Sopenharmony_ci#define CL_DEVICE_PIPE_SUPPORT                           0x1071
421bf215546Sopenharmony_ci#define CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED      0x1072
422bf215546Sopenharmony_ci#endif
423bf215546Sopenharmony_ci
424bf215546Sopenharmony_ci/* cl_device_fp_config - bitfield */
425bf215546Sopenharmony_ci#define CL_FP_DENORM                                (1 << 0)
426bf215546Sopenharmony_ci#define CL_FP_INF_NAN                               (1 << 1)
427bf215546Sopenharmony_ci#define CL_FP_ROUND_TO_NEAREST                      (1 << 2)
428bf215546Sopenharmony_ci#define CL_FP_ROUND_TO_ZERO                         (1 << 3)
429bf215546Sopenharmony_ci#define CL_FP_ROUND_TO_INF                          (1 << 4)
430bf215546Sopenharmony_ci#define CL_FP_FMA                                   (1 << 5)
431bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
432bf215546Sopenharmony_ci#define CL_FP_SOFT_FLOAT                            (1 << 6)
433bf215546Sopenharmony_ci#endif
434bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
435bf215546Sopenharmony_ci#define CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT         (1 << 7)
436bf215546Sopenharmony_ci#endif
437bf215546Sopenharmony_ci
438bf215546Sopenharmony_ci/* cl_device_mem_cache_type */
439bf215546Sopenharmony_ci#define CL_NONE                                     0x0
440bf215546Sopenharmony_ci#define CL_READ_ONLY_CACHE                          0x1
441bf215546Sopenharmony_ci#define CL_READ_WRITE_CACHE                         0x2
442bf215546Sopenharmony_ci
443bf215546Sopenharmony_ci/* cl_device_local_mem_type */
444bf215546Sopenharmony_ci#define CL_LOCAL                                    0x1
445bf215546Sopenharmony_ci#define CL_GLOBAL                                   0x2
446bf215546Sopenharmony_ci
447bf215546Sopenharmony_ci/* cl_device_exec_capabilities - bitfield */
448bf215546Sopenharmony_ci#define CL_EXEC_KERNEL                              (1 << 0)
449bf215546Sopenharmony_ci#define CL_EXEC_NATIVE_KERNEL                       (1 << 1)
450bf215546Sopenharmony_ci
451bf215546Sopenharmony_ci/* cl_command_queue_properties - bitfield */
452bf215546Sopenharmony_ci#define CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE      (1 << 0)
453bf215546Sopenharmony_ci#define CL_QUEUE_PROFILING_ENABLE                   (1 << 1)
454bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
455bf215546Sopenharmony_ci#define CL_QUEUE_ON_DEVICE                          (1 << 2)
456bf215546Sopenharmony_ci#define CL_QUEUE_ON_DEVICE_DEFAULT                  (1 << 3)
457bf215546Sopenharmony_ci#endif
458bf215546Sopenharmony_ci
459bf215546Sopenharmony_ci/* cl_context_info */
460bf215546Sopenharmony_ci#define CL_CONTEXT_REFERENCE_COUNT                  0x1080
461bf215546Sopenharmony_ci#define CL_CONTEXT_DEVICES                          0x1081
462bf215546Sopenharmony_ci#define CL_CONTEXT_PROPERTIES                       0x1082
463bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
464bf215546Sopenharmony_ci#define CL_CONTEXT_NUM_DEVICES                      0x1083
465bf215546Sopenharmony_ci#endif
466bf215546Sopenharmony_ci
467bf215546Sopenharmony_ci/* cl_context_properties */
468bf215546Sopenharmony_ci#define CL_CONTEXT_PLATFORM                         0x1084
469bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
470bf215546Sopenharmony_ci#define CL_CONTEXT_INTEROP_USER_SYNC                0x1085
471bf215546Sopenharmony_ci#endif
472bf215546Sopenharmony_ci
473bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
474bf215546Sopenharmony_ci
475bf215546Sopenharmony_ci/* cl_device_partition_property */
476bf215546Sopenharmony_ci#define CL_DEVICE_PARTITION_EQUALLY                 0x1086
477bf215546Sopenharmony_ci#define CL_DEVICE_PARTITION_BY_COUNTS               0x1087
478bf215546Sopenharmony_ci#define CL_DEVICE_PARTITION_BY_COUNTS_LIST_END      0x0
479bf215546Sopenharmony_ci#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN      0x1088
480bf215546Sopenharmony_ci
481bf215546Sopenharmony_ci#endif
482bf215546Sopenharmony_ci
483bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
484bf215546Sopenharmony_ci
485bf215546Sopenharmony_ci/* cl_device_affinity_domain */
486bf215546Sopenharmony_ci#define CL_DEVICE_AFFINITY_DOMAIN_NUMA               (1 << 0)
487bf215546Sopenharmony_ci#define CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE           (1 << 1)
488bf215546Sopenharmony_ci#define CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE           (1 << 2)
489bf215546Sopenharmony_ci#define CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE           (1 << 3)
490bf215546Sopenharmony_ci#define CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE           (1 << 4)
491bf215546Sopenharmony_ci#define CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE (1 << 5)
492bf215546Sopenharmony_ci
493bf215546Sopenharmony_ci#endif
494bf215546Sopenharmony_ci
495bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
496bf215546Sopenharmony_ci
497bf215546Sopenharmony_ci/* cl_device_svm_capabilities */
498bf215546Sopenharmony_ci#define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER           (1 << 0)
499bf215546Sopenharmony_ci#define CL_DEVICE_SVM_FINE_GRAIN_BUFFER             (1 << 1)
500bf215546Sopenharmony_ci#define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM             (1 << 2)
501bf215546Sopenharmony_ci#define CL_DEVICE_SVM_ATOMICS                       (1 << 3)
502bf215546Sopenharmony_ci
503bf215546Sopenharmony_ci#endif
504bf215546Sopenharmony_ci
505bf215546Sopenharmony_ci/* cl_command_queue_info */
506bf215546Sopenharmony_ci#define CL_QUEUE_CONTEXT                            0x1090
507bf215546Sopenharmony_ci#define CL_QUEUE_DEVICE                             0x1091
508bf215546Sopenharmony_ci#define CL_QUEUE_REFERENCE_COUNT                    0x1092
509bf215546Sopenharmony_ci#define CL_QUEUE_PROPERTIES                         0x1093
510bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
511bf215546Sopenharmony_ci#define CL_QUEUE_SIZE                               0x1094
512bf215546Sopenharmony_ci#endif
513bf215546Sopenharmony_ci#ifdef CL_VERSION_2_1
514bf215546Sopenharmony_ci#define CL_QUEUE_DEVICE_DEFAULT                     0x1095
515bf215546Sopenharmony_ci#endif
516bf215546Sopenharmony_ci#ifdef CL_VERSION_3_0
517bf215546Sopenharmony_ci#define CL_QUEUE_PROPERTIES_ARRAY                   0x1098
518bf215546Sopenharmony_ci#endif
519bf215546Sopenharmony_ci
520bf215546Sopenharmony_ci/* cl_mem_flags and cl_svm_mem_flags - bitfield */
521bf215546Sopenharmony_ci#define CL_MEM_READ_WRITE                           (1 << 0)
522bf215546Sopenharmony_ci#define CL_MEM_WRITE_ONLY                           (1 << 1)
523bf215546Sopenharmony_ci#define CL_MEM_READ_ONLY                            (1 << 2)
524bf215546Sopenharmony_ci#define CL_MEM_USE_HOST_PTR                         (1 << 3)
525bf215546Sopenharmony_ci#define CL_MEM_ALLOC_HOST_PTR                       (1 << 4)
526bf215546Sopenharmony_ci#define CL_MEM_COPY_HOST_PTR                        (1 << 5)
527bf215546Sopenharmony_ci/* reserved                                         (1 << 6)    */
528bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
529bf215546Sopenharmony_ci#define CL_MEM_HOST_WRITE_ONLY                      (1 << 7)
530bf215546Sopenharmony_ci#define CL_MEM_HOST_READ_ONLY                       (1 << 8)
531bf215546Sopenharmony_ci#define CL_MEM_HOST_NO_ACCESS                       (1 << 9)
532bf215546Sopenharmony_ci#endif
533bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
534bf215546Sopenharmony_ci#define CL_MEM_SVM_FINE_GRAIN_BUFFER                (1 << 10)   /* used by cl_svm_mem_flags only */
535bf215546Sopenharmony_ci#define CL_MEM_SVM_ATOMICS                          (1 << 11)   /* used by cl_svm_mem_flags only */
536bf215546Sopenharmony_ci#define CL_MEM_KERNEL_READ_AND_WRITE                (1 << 12)
537bf215546Sopenharmony_ci#endif
538bf215546Sopenharmony_ci
539bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
540bf215546Sopenharmony_ci
541bf215546Sopenharmony_ci/* cl_mem_migration_flags - bitfield */
542bf215546Sopenharmony_ci#define CL_MIGRATE_MEM_OBJECT_HOST                  (1 << 0)
543bf215546Sopenharmony_ci#define CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED     (1 << 1)
544bf215546Sopenharmony_ci
545bf215546Sopenharmony_ci#endif
546bf215546Sopenharmony_ci
547bf215546Sopenharmony_ci/* cl_channel_order */
548bf215546Sopenharmony_ci#define CL_R                                        0x10B0
549bf215546Sopenharmony_ci#define CL_A                                        0x10B1
550bf215546Sopenharmony_ci#define CL_RG                                       0x10B2
551bf215546Sopenharmony_ci#define CL_RA                                       0x10B3
552bf215546Sopenharmony_ci#define CL_RGB                                      0x10B4
553bf215546Sopenharmony_ci#define CL_RGBA                                     0x10B5
554bf215546Sopenharmony_ci#define CL_BGRA                                     0x10B6
555bf215546Sopenharmony_ci#define CL_ARGB                                     0x10B7
556bf215546Sopenharmony_ci#define CL_INTENSITY                                0x10B8
557bf215546Sopenharmony_ci#define CL_LUMINANCE                                0x10B9
558bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
559bf215546Sopenharmony_ci#define CL_Rx                                       0x10BA
560bf215546Sopenharmony_ci#define CL_RGx                                      0x10BB
561bf215546Sopenharmony_ci#define CL_RGBx                                     0x10BC
562bf215546Sopenharmony_ci#endif
563bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
564bf215546Sopenharmony_ci#define CL_DEPTH                                    0x10BD
565bf215546Sopenharmony_ci#define CL_DEPTH_STENCIL                            0x10BE
566bf215546Sopenharmony_ci#endif
567bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
568bf215546Sopenharmony_ci#define CL_sRGB                                     0x10BF
569bf215546Sopenharmony_ci#define CL_sRGBx                                    0x10C0
570bf215546Sopenharmony_ci#define CL_sRGBA                                    0x10C1
571bf215546Sopenharmony_ci#define CL_sBGRA                                    0x10C2
572bf215546Sopenharmony_ci#define CL_ABGR                                     0x10C3
573bf215546Sopenharmony_ci#endif
574bf215546Sopenharmony_ci
575bf215546Sopenharmony_ci/* cl_channel_type */
576bf215546Sopenharmony_ci#define CL_SNORM_INT8                               0x10D0
577bf215546Sopenharmony_ci#define CL_SNORM_INT16                              0x10D1
578bf215546Sopenharmony_ci#define CL_UNORM_INT8                               0x10D2
579bf215546Sopenharmony_ci#define CL_UNORM_INT16                              0x10D3
580bf215546Sopenharmony_ci#define CL_UNORM_SHORT_565                          0x10D4
581bf215546Sopenharmony_ci#define CL_UNORM_SHORT_555                          0x10D5
582bf215546Sopenharmony_ci#define CL_UNORM_INT_101010                         0x10D6
583bf215546Sopenharmony_ci#define CL_SIGNED_INT8                              0x10D7
584bf215546Sopenharmony_ci#define CL_SIGNED_INT16                             0x10D8
585bf215546Sopenharmony_ci#define CL_SIGNED_INT32                             0x10D9
586bf215546Sopenharmony_ci#define CL_UNSIGNED_INT8                            0x10DA
587bf215546Sopenharmony_ci#define CL_UNSIGNED_INT16                           0x10DB
588bf215546Sopenharmony_ci#define CL_UNSIGNED_INT32                           0x10DC
589bf215546Sopenharmony_ci#define CL_HALF_FLOAT                               0x10DD
590bf215546Sopenharmony_ci#define CL_FLOAT                                    0x10DE
591bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
592bf215546Sopenharmony_ci#define CL_UNORM_INT24                              0x10DF
593bf215546Sopenharmony_ci#endif
594bf215546Sopenharmony_ci#ifdef CL_VERSION_2_1
595bf215546Sopenharmony_ci#define CL_UNORM_INT_101010_2                       0x10E0
596bf215546Sopenharmony_ci#endif
597bf215546Sopenharmony_ci
598bf215546Sopenharmony_ci/* cl_mem_object_type */
599bf215546Sopenharmony_ci#define CL_MEM_OBJECT_BUFFER                        0x10F0
600bf215546Sopenharmony_ci#define CL_MEM_OBJECT_IMAGE2D                       0x10F1
601bf215546Sopenharmony_ci#define CL_MEM_OBJECT_IMAGE3D                       0x10F2
602bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
603bf215546Sopenharmony_ci#define CL_MEM_OBJECT_IMAGE2D_ARRAY                 0x10F3
604bf215546Sopenharmony_ci#define CL_MEM_OBJECT_IMAGE1D                       0x10F4
605bf215546Sopenharmony_ci#define CL_MEM_OBJECT_IMAGE1D_ARRAY                 0x10F5
606bf215546Sopenharmony_ci#define CL_MEM_OBJECT_IMAGE1D_BUFFER                0x10F6
607bf215546Sopenharmony_ci#endif
608bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
609bf215546Sopenharmony_ci#define CL_MEM_OBJECT_PIPE                          0x10F7
610bf215546Sopenharmony_ci#endif
611bf215546Sopenharmony_ci
612bf215546Sopenharmony_ci/* cl_mem_info */
613bf215546Sopenharmony_ci#define CL_MEM_TYPE                                 0x1100
614bf215546Sopenharmony_ci#define CL_MEM_FLAGS                                0x1101
615bf215546Sopenharmony_ci#define CL_MEM_SIZE                                 0x1102
616bf215546Sopenharmony_ci#define CL_MEM_HOST_PTR                             0x1103
617bf215546Sopenharmony_ci#define CL_MEM_MAP_COUNT                            0x1104
618bf215546Sopenharmony_ci#define CL_MEM_REFERENCE_COUNT                      0x1105
619bf215546Sopenharmony_ci#define CL_MEM_CONTEXT                              0x1106
620bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
621bf215546Sopenharmony_ci#define CL_MEM_ASSOCIATED_MEMOBJECT                 0x1107
622bf215546Sopenharmony_ci#define CL_MEM_OFFSET                               0x1108
623bf215546Sopenharmony_ci#endif
624bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
625bf215546Sopenharmony_ci#define CL_MEM_USES_SVM_POINTER                     0x1109
626bf215546Sopenharmony_ci#endif
627bf215546Sopenharmony_ci#ifdef CL_VERSION_3_0
628bf215546Sopenharmony_ci#define CL_MEM_PROPERTIES                           0x110A
629bf215546Sopenharmony_ci#endif
630bf215546Sopenharmony_ci
631bf215546Sopenharmony_ci/* cl_image_info */
632bf215546Sopenharmony_ci#define CL_IMAGE_FORMAT                             0x1110
633bf215546Sopenharmony_ci#define CL_IMAGE_ELEMENT_SIZE                       0x1111
634bf215546Sopenharmony_ci#define CL_IMAGE_ROW_PITCH                          0x1112
635bf215546Sopenharmony_ci#define CL_IMAGE_SLICE_PITCH                        0x1113
636bf215546Sopenharmony_ci#define CL_IMAGE_WIDTH                              0x1114
637bf215546Sopenharmony_ci#define CL_IMAGE_HEIGHT                             0x1115
638bf215546Sopenharmony_ci#define CL_IMAGE_DEPTH                              0x1116
639bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
640bf215546Sopenharmony_ci#define CL_IMAGE_ARRAY_SIZE                         0x1117
641bf215546Sopenharmony_ci#define CL_IMAGE_BUFFER                             0x1118
642bf215546Sopenharmony_ci#define CL_IMAGE_NUM_MIP_LEVELS                     0x1119
643bf215546Sopenharmony_ci#define CL_IMAGE_NUM_SAMPLES                        0x111A
644bf215546Sopenharmony_ci#endif
645bf215546Sopenharmony_ci
646bf215546Sopenharmony_ci
647bf215546Sopenharmony_ci/* cl_pipe_info */
648bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
649bf215546Sopenharmony_ci#define CL_PIPE_PACKET_SIZE                         0x1120
650bf215546Sopenharmony_ci#define CL_PIPE_MAX_PACKETS                         0x1121
651bf215546Sopenharmony_ci#endif
652bf215546Sopenharmony_ci#ifdef CL_VERSION_3_0
653bf215546Sopenharmony_ci#define CL_PIPE_PROPERTIES                          0x1122
654bf215546Sopenharmony_ci#endif
655bf215546Sopenharmony_ci
656bf215546Sopenharmony_ci/* cl_addressing_mode */
657bf215546Sopenharmony_ci#define CL_ADDRESS_NONE                             0x1130
658bf215546Sopenharmony_ci#define CL_ADDRESS_CLAMP_TO_EDGE                    0x1131
659bf215546Sopenharmony_ci#define CL_ADDRESS_CLAMP                            0x1132
660bf215546Sopenharmony_ci#define CL_ADDRESS_REPEAT                           0x1133
661bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
662bf215546Sopenharmony_ci#define CL_ADDRESS_MIRRORED_REPEAT                  0x1134
663bf215546Sopenharmony_ci#endif
664bf215546Sopenharmony_ci
665bf215546Sopenharmony_ci/* cl_filter_mode */
666bf215546Sopenharmony_ci#define CL_FILTER_NEAREST                           0x1140
667bf215546Sopenharmony_ci#define CL_FILTER_LINEAR                            0x1141
668bf215546Sopenharmony_ci
669bf215546Sopenharmony_ci/* cl_sampler_info */
670bf215546Sopenharmony_ci#define CL_SAMPLER_REFERENCE_COUNT                  0x1150
671bf215546Sopenharmony_ci#define CL_SAMPLER_CONTEXT                          0x1151
672bf215546Sopenharmony_ci#define CL_SAMPLER_NORMALIZED_COORDS                0x1152
673bf215546Sopenharmony_ci#define CL_SAMPLER_ADDRESSING_MODE                  0x1153
674bf215546Sopenharmony_ci#define CL_SAMPLER_FILTER_MODE                      0x1154
675bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
676bf215546Sopenharmony_ci/* These enumerants are for the cl_khr_mipmap_image extension.
677bf215546Sopenharmony_ci   They have since been added to cl_ext.h with an appropriate
678bf215546Sopenharmony_ci   KHR suffix, but are left here for backwards compatibility. */
679bf215546Sopenharmony_ci#define CL_SAMPLER_MIP_FILTER_MODE                  0x1155
680bf215546Sopenharmony_ci#define CL_SAMPLER_LOD_MIN                          0x1156
681bf215546Sopenharmony_ci#define CL_SAMPLER_LOD_MAX                          0x1157
682bf215546Sopenharmony_ci#endif
683bf215546Sopenharmony_ci#ifdef CL_VERSION_3_0
684bf215546Sopenharmony_ci#define CL_SAMPLER_PROPERTIES                       0x1158
685bf215546Sopenharmony_ci#endif
686bf215546Sopenharmony_ci
687bf215546Sopenharmony_ci/* cl_map_flags - bitfield */
688bf215546Sopenharmony_ci#define CL_MAP_READ                                 (1 << 0)
689bf215546Sopenharmony_ci#define CL_MAP_WRITE                                (1 << 1)
690bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
691bf215546Sopenharmony_ci#define CL_MAP_WRITE_INVALIDATE_REGION              (1 << 2)
692bf215546Sopenharmony_ci#endif
693bf215546Sopenharmony_ci
694bf215546Sopenharmony_ci/* cl_program_info */
695bf215546Sopenharmony_ci#define CL_PROGRAM_REFERENCE_COUNT                  0x1160
696bf215546Sopenharmony_ci#define CL_PROGRAM_CONTEXT                          0x1161
697bf215546Sopenharmony_ci#define CL_PROGRAM_NUM_DEVICES                      0x1162
698bf215546Sopenharmony_ci#define CL_PROGRAM_DEVICES                          0x1163
699bf215546Sopenharmony_ci#define CL_PROGRAM_SOURCE                           0x1164
700bf215546Sopenharmony_ci#define CL_PROGRAM_BINARY_SIZES                     0x1165
701bf215546Sopenharmony_ci#define CL_PROGRAM_BINARIES                         0x1166
702bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
703bf215546Sopenharmony_ci#define CL_PROGRAM_NUM_KERNELS                      0x1167
704bf215546Sopenharmony_ci#define CL_PROGRAM_KERNEL_NAMES                     0x1168
705bf215546Sopenharmony_ci#endif
706bf215546Sopenharmony_ci#ifdef CL_VERSION_2_1
707bf215546Sopenharmony_ci#define CL_PROGRAM_IL                               0x1169
708bf215546Sopenharmony_ci#endif
709bf215546Sopenharmony_ci#ifdef CL_VERSION_2_2
710bf215546Sopenharmony_ci#define CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT       0x116A
711bf215546Sopenharmony_ci#define CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT       0x116B
712bf215546Sopenharmony_ci#endif
713bf215546Sopenharmony_ci
714bf215546Sopenharmony_ci/* cl_program_build_info */
715bf215546Sopenharmony_ci#define CL_PROGRAM_BUILD_STATUS                     0x1181
716bf215546Sopenharmony_ci#define CL_PROGRAM_BUILD_OPTIONS                    0x1182
717bf215546Sopenharmony_ci#define CL_PROGRAM_BUILD_LOG                        0x1183
718bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
719bf215546Sopenharmony_ci#define CL_PROGRAM_BINARY_TYPE                      0x1184
720bf215546Sopenharmony_ci#endif
721bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
722bf215546Sopenharmony_ci#define CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE 0x1185
723bf215546Sopenharmony_ci#endif
724bf215546Sopenharmony_ci
725bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
726bf215546Sopenharmony_ci
727bf215546Sopenharmony_ci/* cl_program_binary_type */
728bf215546Sopenharmony_ci#define CL_PROGRAM_BINARY_TYPE_NONE                 0x0
729bf215546Sopenharmony_ci#define CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT      0x1
730bf215546Sopenharmony_ci#define CL_PROGRAM_BINARY_TYPE_LIBRARY              0x2
731bf215546Sopenharmony_ci#define CL_PROGRAM_BINARY_TYPE_EXECUTABLE           0x4
732bf215546Sopenharmony_ci
733bf215546Sopenharmony_ci#endif
734bf215546Sopenharmony_ci
735bf215546Sopenharmony_ci/* cl_build_status */
736bf215546Sopenharmony_ci#define CL_BUILD_SUCCESS                            0
737bf215546Sopenharmony_ci#define CL_BUILD_NONE                               -1
738bf215546Sopenharmony_ci#define CL_BUILD_ERROR                              -2
739bf215546Sopenharmony_ci#define CL_BUILD_IN_PROGRESS                        -3
740bf215546Sopenharmony_ci
741bf215546Sopenharmony_ci/* cl_kernel_info */
742bf215546Sopenharmony_ci#define CL_KERNEL_FUNCTION_NAME                     0x1190
743bf215546Sopenharmony_ci#define CL_KERNEL_NUM_ARGS                          0x1191
744bf215546Sopenharmony_ci#define CL_KERNEL_REFERENCE_COUNT                   0x1192
745bf215546Sopenharmony_ci#define CL_KERNEL_CONTEXT                           0x1193
746bf215546Sopenharmony_ci#define CL_KERNEL_PROGRAM                           0x1194
747bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
748bf215546Sopenharmony_ci#define CL_KERNEL_ATTRIBUTES                        0x1195
749bf215546Sopenharmony_ci#endif
750bf215546Sopenharmony_ci
751bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
752bf215546Sopenharmony_ci
753bf215546Sopenharmony_ci/* cl_kernel_arg_info */
754bf215546Sopenharmony_ci#define CL_KERNEL_ARG_ADDRESS_QUALIFIER             0x1196
755bf215546Sopenharmony_ci#define CL_KERNEL_ARG_ACCESS_QUALIFIER              0x1197
756bf215546Sopenharmony_ci#define CL_KERNEL_ARG_TYPE_NAME                     0x1198
757bf215546Sopenharmony_ci#define CL_KERNEL_ARG_TYPE_QUALIFIER                0x1199
758bf215546Sopenharmony_ci#define CL_KERNEL_ARG_NAME                          0x119A
759bf215546Sopenharmony_ci
760bf215546Sopenharmony_ci#endif
761bf215546Sopenharmony_ci
762bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
763bf215546Sopenharmony_ci
764bf215546Sopenharmony_ci/* cl_kernel_arg_address_qualifier */
765bf215546Sopenharmony_ci#define CL_KERNEL_ARG_ADDRESS_GLOBAL                0x119B
766bf215546Sopenharmony_ci#define CL_KERNEL_ARG_ADDRESS_LOCAL                 0x119C
767bf215546Sopenharmony_ci#define CL_KERNEL_ARG_ADDRESS_CONSTANT              0x119D
768bf215546Sopenharmony_ci#define CL_KERNEL_ARG_ADDRESS_PRIVATE               0x119E
769bf215546Sopenharmony_ci
770bf215546Sopenharmony_ci#endif
771bf215546Sopenharmony_ci
772bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
773bf215546Sopenharmony_ci
774bf215546Sopenharmony_ci/* cl_kernel_arg_access_qualifier */
775bf215546Sopenharmony_ci#define CL_KERNEL_ARG_ACCESS_READ_ONLY              0x11A0
776bf215546Sopenharmony_ci#define CL_KERNEL_ARG_ACCESS_WRITE_ONLY             0x11A1
777bf215546Sopenharmony_ci#define CL_KERNEL_ARG_ACCESS_READ_WRITE             0x11A2
778bf215546Sopenharmony_ci#define CL_KERNEL_ARG_ACCESS_NONE                   0x11A3
779bf215546Sopenharmony_ci
780bf215546Sopenharmony_ci#endif
781bf215546Sopenharmony_ci
782bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
783bf215546Sopenharmony_ci
784bf215546Sopenharmony_ci/* cl_kernel_arg_type_qualifier */
785bf215546Sopenharmony_ci#define CL_KERNEL_ARG_TYPE_NONE                     0
786bf215546Sopenharmony_ci#define CL_KERNEL_ARG_TYPE_CONST                    (1 << 0)
787bf215546Sopenharmony_ci#define CL_KERNEL_ARG_TYPE_RESTRICT                 (1 << 1)
788bf215546Sopenharmony_ci#define CL_KERNEL_ARG_TYPE_VOLATILE                 (1 << 2)
789bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
790bf215546Sopenharmony_ci#define CL_KERNEL_ARG_TYPE_PIPE                     (1 << 3)
791bf215546Sopenharmony_ci#endif
792bf215546Sopenharmony_ci
793bf215546Sopenharmony_ci#endif
794bf215546Sopenharmony_ci
795bf215546Sopenharmony_ci/* cl_kernel_work_group_info */
796bf215546Sopenharmony_ci#define CL_KERNEL_WORK_GROUP_SIZE                   0x11B0
797bf215546Sopenharmony_ci#define CL_KERNEL_COMPILE_WORK_GROUP_SIZE           0x11B1
798bf215546Sopenharmony_ci#define CL_KERNEL_LOCAL_MEM_SIZE                    0x11B2
799bf215546Sopenharmony_ci#define CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE 0x11B3
800bf215546Sopenharmony_ci#define CL_KERNEL_PRIVATE_MEM_SIZE                  0x11B4
801bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
802bf215546Sopenharmony_ci#define CL_KERNEL_GLOBAL_WORK_SIZE                  0x11B5
803bf215546Sopenharmony_ci#endif
804bf215546Sopenharmony_ci
805bf215546Sopenharmony_ci#ifdef CL_VERSION_2_1
806bf215546Sopenharmony_ci
807bf215546Sopenharmony_ci/* cl_kernel_sub_group_info */
808bf215546Sopenharmony_ci#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE    0x2033
809bf215546Sopenharmony_ci#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE       0x2034
810bf215546Sopenharmony_ci#define CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT    0x11B8
811bf215546Sopenharmony_ci#define CL_KERNEL_MAX_NUM_SUB_GROUPS                0x11B9
812bf215546Sopenharmony_ci#define CL_KERNEL_COMPILE_NUM_SUB_GROUPS            0x11BA
813bf215546Sopenharmony_ci
814bf215546Sopenharmony_ci#endif
815bf215546Sopenharmony_ci
816bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
817bf215546Sopenharmony_ci
818bf215546Sopenharmony_ci/* cl_kernel_exec_info */
819bf215546Sopenharmony_ci#define CL_KERNEL_EXEC_INFO_SVM_PTRS                0x11B6
820bf215546Sopenharmony_ci#define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM   0x11B7
821bf215546Sopenharmony_ci
822bf215546Sopenharmony_ci#endif
823bf215546Sopenharmony_ci
824bf215546Sopenharmony_ci/* cl_event_info */
825bf215546Sopenharmony_ci#define CL_EVENT_COMMAND_QUEUE                      0x11D0
826bf215546Sopenharmony_ci#define CL_EVENT_COMMAND_TYPE                       0x11D1
827bf215546Sopenharmony_ci#define CL_EVENT_REFERENCE_COUNT                    0x11D2
828bf215546Sopenharmony_ci#define CL_EVENT_COMMAND_EXECUTION_STATUS           0x11D3
829bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
830bf215546Sopenharmony_ci#define CL_EVENT_CONTEXT                            0x11D4
831bf215546Sopenharmony_ci#endif
832bf215546Sopenharmony_ci
833bf215546Sopenharmony_ci/* cl_command_type */
834bf215546Sopenharmony_ci#define CL_COMMAND_NDRANGE_KERNEL                   0x11F0
835bf215546Sopenharmony_ci#define CL_COMMAND_TASK                             0x11F1
836bf215546Sopenharmony_ci#define CL_COMMAND_NATIVE_KERNEL                    0x11F2
837bf215546Sopenharmony_ci#define CL_COMMAND_READ_BUFFER                      0x11F3
838bf215546Sopenharmony_ci#define CL_COMMAND_WRITE_BUFFER                     0x11F4
839bf215546Sopenharmony_ci#define CL_COMMAND_COPY_BUFFER                      0x11F5
840bf215546Sopenharmony_ci#define CL_COMMAND_READ_IMAGE                       0x11F6
841bf215546Sopenharmony_ci#define CL_COMMAND_WRITE_IMAGE                      0x11F7
842bf215546Sopenharmony_ci#define CL_COMMAND_COPY_IMAGE                       0x11F8
843bf215546Sopenharmony_ci#define CL_COMMAND_COPY_IMAGE_TO_BUFFER             0x11F9
844bf215546Sopenharmony_ci#define CL_COMMAND_COPY_BUFFER_TO_IMAGE             0x11FA
845bf215546Sopenharmony_ci#define CL_COMMAND_MAP_BUFFER                       0x11FB
846bf215546Sopenharmony_ci#define CL_COMMAND_MAP_IMAGE                        0x11FC
847bf215546Sopenharmony_ci#define CL_COMMAND_UNMAP_MEM_OBJECT                 0x11FD
848bf215546Sopenharmony_ci#define CL_COMMAND_MARKER                           0x11FE
849bf215546Sopenharmony_ci#define CL_COMMAND_ACQUIRE_GL_OBJECTS               0x11FF
850bf215546Sopenharmony_ci#define CL_COMMAND_RELEASE_GL_OBJECTS               0x1200
851bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
852bf215546Sopenharmony_ci#define CL_COMMAND_READ_BUFFER_RECT                 0x1201
853bf215546Sopenharmony_ci#define CL_COMMAND_WRITE_BUFFER_RECT                0x1202
854bf215546Sopenharmony_ci#define CL_COMMAND_COPY_BUFFER_RECT                 0x1203
855bf215546Sopenharmony_ci#define CL_COMMAND_USER                             0x1204
856bf215546Sopenharmony_ci#endif
857bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
858bf215546Sopenharmony_ci#define CL_COMMAND_BARRIER                          0x1205
859bf215546Sopenharmony_ci#define CL_COMMAND_MIGRATE_MEM_OBJECTS              0x1206
860bf215546Sopenharmony_ci#define CL_COMMAND_FILL_BUFFER                      0x1207
861bf215546Sopenharmony_ci#define CL_COMMAND_FILL_IMAGE                       0x1208
862bf215546Sopenharmony_ci#endif
863bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
864bf215546Sopenharmony_ci#define CL_COMMAND_SVM_FREE                         0x1209
865bf215546Sopenharmony_ci#define CL_COMMAND_SVM_MEMCPY                       0x120A
866bf215546Sopenharmony_ci#define CL_COMMAND_SVM_MEMFILL                      0x120B
867bf215546Sopenharmony_ci#define CL_COMMAND_SVM_MAP                          0x120C
868bf215546Sopenharmony_ci#define CL_COMMAND_SVM_UNMAP                        0x120D
869bf215546Sopenharmony_ci#endif
870bf215546Sopenharmony_ci#ifdef CL_VERSION_3_0
871bf215546Sopenharmony_ci#define CL_COMMAND_SVM_MIGRATE_MEM                  0x120E
872bf215546Sopenharmony_ci#endif
873bf215546Sopenharmony_ci
874bf215546Sopenharmony_ci/* command execution status */
875bf215546Sopenharmony_ci#define CL_COMPLETE                                 0x0
876bf215546Sopenharmony_ci#define CL_RUNNING                                  0x1
877bf215546Sopenharmony_ci#define CL_SUBMITTED                                0x2
878bf215546Sopenharmony_ci#define CL_QUEUED                                   0x3
879bf215546Sopenharmony_ci
880bf215546Sopenharmony_ci/* cl_buffer_create_type */
881bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
882bf215546Sopenharmony_ci#define CL_BUFFER_CREATE_TYPE_REGION                0x1220
883bf215546Sopenharmony_ci#endif
884bf215546Sopenharmony_ci
885bf215546Sopenharmony_ci/* cl_profiling_info */
886bf215546Sopenharmony_ci#define CL_PROFILING_COMMAND_QUEUED                 0x1280
887bf215546Sopenharmony_ci#define CL_PROFILING_COMMAND_SUBMIT                 0x1281
888bf215546Sopenharmony_ci#define CL_PROFILING_COMMAND_START                  0x1282
889bf215546Sopenharmony_ci#define CL_PROFILING_COMMAND_END                    0x1283
890bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
891bf215546Sopenharmony_ci#define CL_PROFILING_COMMAND_COMPLETE               0x1284
892bf215546Sopenharmony_ci#endif
893bf215546Sopenharmony_ci
894bf215546Sopenharmony_ci/* cl_device_atomic_capabilities - bitfield */
895bf215546Sopenharmony_ci#ifdef CL_VERSION_3_0
896bf215546Sopenharmony_ci#define CL_DEVICE_ATOMIC_ORDER_RELAXED          (1 << 0)
897bf215546Sopenharmony_ci#define CL_DEVICE_ATOMIC_ORDER_ACQ_REL          (1 << 1)
898bf215546Sopenharmony_ci#define CL_DEVICE_ATOMIC_ORDER_SEQ_CST          (1 << 2)
899bf215546Sopenharmony_ci#define CL_DEVICE_ATOMIC_SCOPE_WORK_ITEM        (1 << 3)
900bf215546Sopenharmony_ci#define CL_DEVICE_ATOMIC_SCOPE_WORK_GROUP       (1 << 4)
901bf215546Sopenharmony_ci#define CL_DEVICE_ATOMIC_SCOPE_DEVICE           (1 << 5)
902bf215546Sopenharmony_ci#define CL_DEVICE_ATOMIC_SCOPE_ALL_DEVICES      (1 << 6)
903bf215546Sopenharmony_ci#endif
904bf215546Sopenharmony_ci
905bf215546Sopenharmony_ci/* cl_device_device_enqueue_capabilities - bitfield */
906bf215546Sopenharmony_ci#ifdef CL_VERSION_3_0
907bf215546Sopenharmony_ci#define CL_DEVICE_QUEUE_SUPPORTED               (1 << 0)
908bf215546Sopenharmony_ci#define CL_DEVICE_QUEUE_REPLACEABLE_DEFAULT     (1 << 1)
909bf215546Sopenharmony_ci#endif
910bf215546Sopenharmony_ci
911bf215546Sopenharmony_ci/* cl_khronos_vendor_id */
912bf215546Sopenharmony_ci#define CL_KHRONOS_VENDOR_ID_CODEPLAY               0x10004
913bf215546Sopenharmony_ci
914bf215546Sopenharmony_ci#ifdef CL_VERSION_3_0
915bf215546Sopenharmony_ci
916bf215546Sopenharmony_ci/* cl_version */
917bf215546Sopenharmony_ci#define CL_VERSION_MAJOR_BITS (10)
918bf215546Sopenharmony_ci#define CL_VERSION_MINOR_BITS (10)
919bf215546Sopenharmony_ci#define CL_VERSION_PATCH_BITS (12)
920bf215546Sopenharmony_ci
921bf215546Sopenharmony_ci#define CL_VERSION_MAJOR_MASK ((1 << CL_VERSION_MAJOR_BITS) - 1)
922bf215546Sopenharmony_ci#define CL_VERSION_MINOR_MASK ((1 << CL_VERSION_MINOR_BITS) - 1)
923bf215546Sopenharmony_ci#define CL_VERSION_PATCH_MASK ((1 << CL_VERSION_PATCH_BITS) - 1)
924bf215546Sopenharmony_ci
925bf215546Sopenharmony_ci#define CL_VERSION_MAJOR(version) \
926bf215546Sopenharmony_ci  ((version) >> (CL_VERSION_MINOR_BITS + CL_VERSION_PATCH_BITS))
927bf215546Sopenharmony_ci
928bf215546Sopenharmony_ci#define CL_VERSION_MINOR(version) \
929bf215546Sopenharmony_ci  (((version) >> CL_VERSION_PATCH_BITS) & CL_VERSION_MINOR_MASK)
930bf215546Sopenharmony_ci
931bf215546Sopenharmony_ci#define CL_VERSION_PATCH(version) ((version) & CL_VERSION_PATCH_MASK)
932bf215546Sopenharmony_ci
933bf215546Sopenharmony_ci#define CL_MAKE_VERSION(major, minor, patch)                      \
934bf215546Sopenharmony_ci  ((((major) & CL_VERSION_MAJOR_MASK)                             \
935bf215546Sopenharmony_ci       << (CL_VERSION_MINOR_BITS + CL_VERSION_PATCH_BITS)) |      \
936bf215546Sopenharmony_ci   (((minor) & CL_VERSION_MINOR_MASK) << CL_VERSION_PATCH_BITS) | \
937bf215546Sopenharmony_ci   ((patch) & CL_VERSION_PATCH_MASK))
938bf215546Sopenharmony_ci
939bf215546Sopenharmony_ci#endif
940bf215546Sopenharmony_ci
941bf215546Sopenharmony_ci/********************************************************************************************************/
942bf215546Sopenharmony_ci
943bf215546Sopenharmony_ci/* Platform API */
944bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
945bf215546Sopenharmony_ciclGetPlatformIDs(cl_uint          num_entries,
946bf215546Sopenharmony_ci                 cl_platform_id * platforms,
947bf215546Sopenharmony_ci                 cl_uint *        num_platforms) CL_API_SUFFIX__VERSION_1_0;
948bf215546Sopenharmony_ci
949bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
950bf215546Sopenharmony_ciclGetPlatformInfo(cl_platform_id   platform,
951bf215546Sopenharmony_ci                  cl_platform_info param_name,
952bf215546Sopenharmony_ci                  size_t           param_value_size,
953bf215546Sopenharmony_ci                  void *           param_value,
954bf215546Sopenharmony_ci                  size_t *         param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
955bf215546Sopenharmony_ci
956bf215546Sopenharmony_ci/* Device APIs */
957bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
958bf215546Sopenharmony_ciclGetDeviceIDs(cl_platform_id   platform,
959bf215546Sopenharmony_ci               cl_device_type   device_type,
960bf215546Sopenharmony_ci               cl_uint          num_entries,
961bf215546Sopenharmony_ci               cl_device_id *   devices,
962bf215546Sopenharmony_ci               cl_uint *        num_devices) CL_API_SUFFIX__VERSION_1_0;
963bf215546Sopenharmony_ci
964bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
965bf215546Sopenharmony_ciclGetDeviceInfo(cl_device_id    device,
966bf215546Sopenharmony_ci                cl_device_info  param_name,
967bf215546Sopenharmony_ci                size_t          param_value_size,
968bf215546Sopenharmony_ci                void *          param_value,
969bf215546Sopenharmony_ci                size_t *        param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
970bf215546Sopenharmony_ci
971bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
972bf215546Sopenharmony_ci
973bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
974bf215546Sopenharmony_ciclCreateSubDevices(cl_device_id                         in_device,
975bf215546Sopenharmony_ci                   const cl_device_partition_property * properties,
976bf215546Sopenharmony_ci                   cl_uint                              num_devices,
977bf215546Sopenharmony_ci                   cl_device_id *                       out_devices,
978bf215546Sopenharmony_ci                   cl_uint *                            num_devices_ret) CL_API_SUFFIX__VERSION_1_2;
979bf215546Sopenharmony_ci
980bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
981bf215546Sopenharmony_ciclRetainDevice(cl_device_id device) CL_API_SUFFIX__VERSION_1_2;
982bf215546Sopenharmony_ci
983bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
984bf215546Sopenharmony_ciclReleaseDevice(cl_device_id device) CL_API_SUFFIX__VERSION_1_2;
985bf215546Sopenharmony_ci
986bf215546Sopenharmony_ci#endif
987bf215546Sopenharmony_ci
988bf215546Sopenharmony_ci#ifdef CL_VERSION_2_1
989bf215546Sopenharmony_ci
990bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
991bf215546Sopenharmony_ciclSetDefaultDeviceCommandQueue(cl_context           context,
992bf215546Sopenharmony_ci                               cl_device_id         device,
993bf215546Sopenharmony_ci                               cl_command_queue     command_queue) CL_API_SUFFIX__VERSION_2_1;
994bf215546Sopenharmony_ci
995bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
996bf215546Sopenharmony_ciclGetDeviceAndHostTimer(cl_device_id    device,
997bf215546Sopenharmony_ci                        cl_ulong*       device_timestamp,
998bf215546Sopenharmony_ci                        cl_ulong*       host_timestamp) CL_API_SUFFIX__VERSION_2_1;
999bf215546Sopenharmony_ci
1000bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1001bf215546Sopenharmony_ciclGetHostTimer(cl_device_id device,
1002bf215546Sopenharmony_ci               cl_ulong *   host_timestamp) CL_API_SUFFIX__VERSION_2_1;
1003bf215546Sopenharmony_ci
1004bf215546Sopenharmony_ci#endif
1005bf215546Sopenharmony_ci
1006bf215546Sopenharmony_ci/* Context APIs */
1007bf215546Sopenharmony_ciextern CL_API_ENTRY cl_context CL_API_CALL
1008bf215546Sopenharmony_ciclCreateContext(const cl_context_properties * properties,
1009bf215546Sopenharmony_ci                cl_uint              num_devices,
1010bf215546Sopenharmony_ci                const cl_device_id * devices,
1011bf215546Sopenharmony_ci                void (CL_CALLBACK * pfn_notify)(const char * errinfo,
1012bf215546Sopenharmony_ci                                                const void * private_info,
1013bf215546Sopenharmony_ci                                                size_t       cb,
1014bf215546Sopenharmony_ci                                                void *       user_data),
1015bf215546Sopenharmony_ci                void *               user_data,
1016bf215546Sopenharmony_ci                cl_int *             errcode_ret) CL_API_SUFFIX__VERSION_1_0;
1017bf215546Sopenharmony_ci
1018bf215546Sopenharmony_ciextern CL_API_ENTRY cl_context CL_API_CALL
1019bf215546Sopenharmony_ciclCreateContextFromType(const cl_context_properties * properties,
1020bf215546Sopenharmony_ci                        cl_device_type      device_type,
1021bf215546Sopenharmony_ci                        void (CL_CALLBACK * pfn_notify)(const char * errinfo,
1022bf215546Sopenharmony_ci                                                        const void * private_info,
1023bf215546Sopenharmony_ci                                                        size_t       cb,
1024bf215546Sopenharmony_ci                                                        void *       user_data),
1025bf215546Sopenharmony_ci                        void *              user_data,
1026bf215546Sopenharmony_ci                        cl_int *            errcode_ret) CL_API_SUFFIX__VERSION_1_0;
1027bf215546Sopenharmony_ci
1028bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1029bf215546Sopenharmony_ciclRetainContext(cl_context context) CL_API_SUFFIX__VERSION_1_0;
1030bf215546Sopenharmony_ci
1031bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1032bf215546Sopenharmony_ciclReleaseContext(cl_context context) CL_API_SUFFIX__VERSION_1_0;
1033bf215546Sopenharmony_ci
1034bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1035bf215546Sopenharmony_ciclGetContextInfo(cl_context         context,
1036bf215546Sopenharmony_ci                 cl_context_info    param_name,
1037bf215546Sopenharmony_ci                 size_t             param_value_size,
1038bf215546Sopenharmony_ci                 void *             param_value,
1039bf215546Sopenharmony_ci                 size_t *           param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
1040bf215546Sopenharmony_ci
1041bf215546Sopenharmony_ci#ifdef CL_VERSION_3_0
1042bf215546Sopenharmony_ci
1043bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1044bf215546Sopenharmony_ciclSetContextDestructorCallback(cl_context         context,
1045bf215546Sopenharmony_ci                               void (CL_CALLBACK* pfn_notify)(cl_context context,
1046bf215546Sopenharmony_ci                                                              void* user_data),
1047bf215546Sopenharmony_ci                               void*              user_data) CL_API_SUFFIX__VERSION_3_0;
1048bf215546Sopenharmony_ci
1049bf215546Sopenharmony_ci#endif
1050bf215546Sopenharmony_ci
1051bf215546Sopenharmony_ci/* Command Queue APIs */
1052bf215546Sopenharmony_ci
1053bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
1054bf215546Sopenharmony_ci
1055bf215546Sopenharmony_ciextern CL_API_ENTRY cl_command_queue CL_API_CALL
1056bf215546Sopenharmony_ciclCreateCommandQueueWithProperties(cl_context               context,
1057bf215546Sopenharmony_ci                                   cl_device_id             device,
1058bf215546Sopenharmony_ci                                   const cl_queue_properties *    properties,
1059bf215546Sopenharmony_ci                                   cl_int *                 errcode_ret) CL_API_SUFFIX__VERSION_2_0;
1060bf215546Sopenharmony_ci
1061bf215546Sopenharmony_ci#endif
1062bf215546Sopenharmony_ci
1063bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1064bf215546Sopenharmony_ciclRetainCommandQueue(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0;
1065bf215546Sopenharmony_ci
1066bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1067bf215546Sopenharmony_ciclReleaseCommandQueue(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0;
1068bf215546Sopenharmony_ci
1069bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1070bf215546Sopenharmony_ciclGetCommandQueueInfo(cl_command_queue      command_queue,
1071bf215546Sopenharmony_ci                      cl_command_queue_info param_name,
1072bf215546Sopenharmony_ci                      size_t                param_value_size,
1073bf215546Sopenharmony_ci                      void *                param_value,
1074bf215546Sopenharmony_ci                      size_t *              param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
1075bf215546Sopenharmony_ci
1076bf215546Sopenharmony_ci/* Memory Object APIs */
1077bf215546Sopenharmony_ciextern CL_API_ENTRY cl_mem CL_API_CALL
1078bf215546Sopenharmony_ciclCreateBuffer(cl_context   context,
1079bf215546Sopenharmony_ci               cl_mem_flags flags,
1080bf215546Sopenharmony_ci               size_t       size,
1081bf215546Sopenharmony_ci               void *       host_ptr,
1082bf215546Sopenharmony_ci               cl_int *     errcode_ret) CL_API_SUFFIX__VERSION_1_0;
1083bf215546Sopenharmony_ci
1084bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
1085bf215546Sopenharmony_ci
1086bf215546Sopenharmony_ciextern CL_API_ENTRY cl_mem CL_API_CALL
1087bf215546Sopenharmony_ciclCreateSubBuffer(cl_mem                   buffer,
1088bf215546Sopenharmony_ci                  cl_mem_flags             flags,
1089bf215546Sopenharmony_ci                  cl_buffer_create_type    buffer_create_type,
1090bf215546Sopenharmony_ci                  const void *             buffer_create_info,
1091bf215546Sopenharmony_ci                  cl_int *                 errcode_ret) CL_API_SUFFIX__VERSION_1_1;
1092bf215546Sopenharmony_ci
1093bf215546Sopenharmony_ci#endif
1094bf215546Sopenharmony_ci
1095bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
1096bf215546Sopenharmony_ci
1097bf215546Sopenharmony_ciextern CL_API_ENTRY cl_mem CL_API_CALL
1098bf215546Sopenharmony_ciclCreateImage(cl_context              context,
1099bf215546Sopenharmony_ci              cl_mem_flags            flags,
1100bf215546Sopenharmony_ci              const cl_image_format * image_format,
1101bf215546Sopenharmony_ci              const cl_image_desc *   image_desc,
1102bf215546Sopenharmony_ci              void *                  host_ptr,
1103bf215546Sopenharmony_ci              cl_int *                errcode_ret) CL_API_SUFFIX__VERSION_1_2;
1104bf215546Sopenharmony_ci
1105bf215546Sopenharmony_ci#endif
1106bf215546Sopenharmony_ci
1107bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
1108bf215546Sopenharmony_ci
1109bf215546Sopenharmony_ciextern CL_API_ENTRY cl_mem CL_API_CALL
1110bf215546Sopenharmony_ciclCreatePipe(cl_context                 context,
1111bf215546Sopenharmony_ci             cl_mem_flags               flags,
1112bf215546Sopenharmony_ci             cl_uint                    pipe_packet_size,
1113bf215546Sopenharmony_ci             cl_uint                    pipe_max_packets,
1114bf215546Sopenharmony_ci             const cl_pipe_properties * properties,
1115bf215546Sopenharmony_ci             cl_int *                   errcode_ret) CL_API_SUFFIX__VERSION_2_0;
1116bf215546Sopenharmony_ci
1117bf215546Sopenharmony_ci#endif
1118bf215546Sopenharmony_ci
1119bf215546Sopenharmony_ci#ifdef CL_VERSION_3_0
1120bf215546Sopenharmony_ci
1121bf215546Sopenharmony_ciextern CL_API_ENTRY cl_mem CL_API_CALL
1122bf215546Sopenharmony_ciclCreateBufferWithProperties(cl_context                context,
1123bf215546Sopenharmony_ci                             const cl_mem_properties * properties,
1124bf215546Sopenharmony_ci                             cl_mem_flags              flags,
1125bf215546Sopenharmony_ci                             size_t                    size,
1126bf215546Sopenharmony_ci                             void *                    host_ptr,
1127bf215546Sopenharmony_ci                             cl_int *                  errcode_ret) CL_API_SUFFIX__VERSION_3_0;
1128bf215546Sopenharmony_ci
1129bf215546Sopenharmony_ciextern CL_API_ENTRY cl_mem CL_API_CALL
1130bf215546Sopenharmony_ciclCreateImageWithProperties(cl_context                context,
1131bf215546Sopenharmony_ci                            const cl_mem_properties * properties,
1132bf215546Sopenharmony_ci                            cl_mem_flags              flags,
1133bf215546Sopenharmony_ci                            const cl_image_format *   image_format,
1134bf215546Sopenharmony_ci                            const cl_image_desc *     image_desc,
1135bf215546Sopenharmony_ci                            void *                    host_ptr,
1136bf215546Sopenharmony_ci                            cl_int *                  errcode_ret) CL_API_SUFFIX__VERSION_3_0;
1137bf215546Sopenharmony_ci
1138bf215546Sopenharmony_ci#endif
1139bf215546Sopenharmony_ci
1140bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1141bf215546Sopenharmony_ciclRetainMemObject(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0;
1142bf215546Sopenharmony_ci
1143bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1144bf215546Sopenharmony_ciclReleaseMemObject(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0;
1145bf215546Sopenharmony_ci
1146bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1147bf215546Sopenharmony_ciclGetSupportedImageFormats(cl_context           context,
1148bf215546Sopenharmony_ci                           cl_mem_flags         flags,
1149bf215546Sopenharmony_ci                           cl_mem_object_type   image_type,
1150bf215546Sopenharmony_ci                           cl_uint              num_entries,
1151bf215546Sopenharmony_ci                           cl_image_format *    image_formats,
1152bf215546Sopenharmony_ci                           cl_uint *            num_image_formats) CL_API_SUFFIX__VERSION_1_0;
1153bf215546Sopenharmony_ci
1154bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1155bf215546Sopenharmony_ciclGetMemObjectInfo(cl_mem           memobj,
1156bf215546Sopenharmony_ci                   cl_mem_info      param_name,
1157bf215546Sopenharmony_ci                   size_t           param_value_size,
1158bf215546Sopenharmony_ci                   void *           param_value,
1159bf215546Sopenharmony_ci                   size_t *         param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
1160bf215546Sopenharmony_ci
1161bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1162bf215546Sopenharmony_ciclGetImageInfo(cl_mem           image,
1163bf215546Sopenharmony_ci               cl_image_info    param_name,
1164bf215546Sopenharmony_ci               size_t           param_value_size,
1165bf215546Sopenharmony_ci               void *           param_value,
1166bf215546Sopenharmony_ci               size_t *         param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
1167bf215546Sopenharmony_ci
1168bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
1169bf215546Sopenharmony_ci
1170bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1171bf215546Sopenharmony_ciclGetPipeInfo(cl_mem           pipe,
1172bf215546Sopenharmony_ci              cl_pipe_info     param_name,
1173bf215546Sopenharmony_ci              size_t           param_value_size,
1174bf215546Sopenharmony_ci              void *           param_value,
1175bf215546Sopenharmony_ci              size_t *         param_value_size_ret) CL_API_SUFFIX__VERSION_2_0;
1176bf215546Sopenharmony_ci
1177bf215546Sopenharmony_ci#endif
1178bf215546Sopenharmony_ci
1179bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
1180bf215546Sopenharmony_ci
1181bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1182bf215546Sopenharmony_ciclSetMemObjectDestructorCallback(cl_mem memobj,
1183bf215546Sopenharmony_ci                                 void (CL_CALLBACK * pfn_notify)(cl_mem memobj,
1184bf215546Sopenharmony_ci                                                                 void * user_data),
1185bf215546Sopenharmony_ci                                 void * user_data) CL_API_SUFFIX__VERSION_1_1;
1186bf215546Sopenharmony_ci
1187bf215546Sopenharmony_ci#endif
1188bf215546Sopenharmony_ci
1189bf215546Sopenharmony_ci/* SVM Allocation APIs */
1190bf215546Sopenharmony_ci
1191bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
1192bf215546Sopenharmony_ci
1193bf215546Sopenharmony_ciextern CL_API_ENTRY void * CL_API_CALL
1194bf215546Sopenharmony_ciclSVMAlloc(cl_context       context,
1195bf215546Sopenharmony_ci           cl_svm_mem_flags flags,
1196bf215546Sopenharmony_ci           size_t           size,
1197bf215546Sopenharmony_ci           cl_uint          alignment) CL_API_SUFFIX__VERSION_2_0;
1198bf215546Sopenharmony_ci
1199bf215546Sopenharmony_ciextern CL_API_ENTRY void CL_API_CALL
1200bf215546Sopenharmony_ciclSVMFree(cl_context        context,
1201bf215546Sopenharmony_ci          void *            svm_pointer) CL_API_SUFFIX__VERSION_2_0;
1202bf215546Sopenharmony_ci
1203bf215546Sopenharmony_ci#endif
1204bf215546Sopenharmony_ci
1205bf215546Sopenharmony_ci/* Sampler APIs */
1206bf215546Sopenharmony_ci
1207bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
1208bf215546Sopenharmony_ci
1209bf215546Sopenharmony_ciextern CL_API_ENTRY cl_sampler CL_API_CALL
1210bf215546Sopenharmony_ciclCreateSamplerWithProperties(cl_context                     context,
1211bf215546Sopenharmony_ci                              const cl_sampler_properties *  sampler_properties,
1212bf215546Sopenharmony_ci                              cl_int *                       errcode_ret) CL_API_SUFFIX__VERSION_2_0;
1213bf215546Sopenharmony_ci
1214bf215546Sopenharmony_ci#endif
1215bf215546Sopenharmony_ci
1216bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1217bf215546Sopenharmony_ciclRetainSampler(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0;
1218bf215546Sopenharmony_ci
1219bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1220bf215546Sopenharmony_ciclReleaseSampler(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0;
1221bf215546Sopenharmony_ci
1222bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1223bf215546Sopenharmony_ciclGetSamplerInfo(cl_sampler         sampler,
1224bf215546Sopenharmony_ci                 cl_sampler_info    param_name,
1225bf215546Sopenharmony_ci                 size_t             param_value_size,
1226bf215546Sopenharmony_ci                 void *             param_value,
1227bf215546Sopenharmony_ci                 size_t *           param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
1228bf215546Sopenharmony_ci
1229bf215546Sopenharmony_ci/* Program Object APIs */
1230bf215546Sopenharmony_ciextern CL_API_ENTRY cl_program CL_API_CALL
1231bf215546Sopenharmony_ciclCreateProgramWithSource(cl_context        context,
1232bf215546Sopenharmony_ci                          cl_uint           count,
1233bf215546Sopenharmony_ci                          const char **     strings,
1234bf215546Sopenharmony_ci                          const size_t *    lengths,
1235bf215546Sopenharmony_ci                          cl_int *          errcode_ret) CL_API_SUFFIX__VERSION_1_0;
1236bf215546Sopenharmony_ci
1237bf215546Sopenharmony_ciextern CL_API_ENTRY cl_program CL_API_CALL
1238bf215546Sopenharmony_ciclCreateProgramWithBinary(cl_context                     context,
1239bf215546Sopenharmony_ci                          cl_uint                        num_devices,
1240bf215546Sopenharmony_ci                          const cl_device_id *           device_list,
1241bf215546Sopenharmony_ci                          const size_t *                 lengths,
1242bf215546Sopenharmony_ci                          const unsigned char **         binaries,
1243bf215546Sopenharmony_ci                          cl_int *                       binary_status,
1244bf215546Sopenharmony_ci                          cl_int *                       errcode_ret) CL_API_SUFFIX__VERSION_1_0;
1245bf215546Sopenharmony_ci
1246bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
1247bf215546Sopenharmony_ci
1248bf215546Sopenharmony_ciextern CL_API_ENTRY cl_program CL_API_CALL
1249bf215546Sopenharmony_ciclCreateProgramWithBuiltInKernels(cl_context            context,
1250bf215546Sopenharmony_ci                                  cl_uint               num_devices,
1251bf215546Sopenharmony_ci                                  const cl_device_id *  device_list,
1252bf215546Sopenharmony_ci                                  const char *          kernel_names,
1253bf215546Sopenharmony_ci                                  cl_int *              errcode_ret) CL_API_SUFFIX__VERSION_1_2;
1254bf215546Sopenharmony_ci
1255bf215546Sopenharmony_ci#endif
1256bf215546Sopenharmony_ci
1257bf215546Sopenharmony_ci#ifdef CL_VERSION_2_1
1258bf215546Sopenharmony_ci
1259bf215546Sopenharmony_ciextern CL_API_ENTRY cl_program CL_API_CALL
1260bf215546Sopenharmony_ciclCreateProgramWithIL(cl_context    context,
1261bf215546Sopenharmony_ci                     const void*    il,
1262bf215546Sopenharmony_ci                     size_t         length,
1263bf215546Sopenharmony_ci                     cl_int*        errcode_ret) CL_API_SUFFIX__VERSION_2_1;
1264bf215546Sopenharmony_ci
1265bf215546Sopenharmony_ci#endif
1266bf215546Sopenharmony_ci
1267bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1268bf215546Sopenharmony_ciclRetainProgram(cl_program program) CL_API_SUFFIX__VERSION_1_0;
1269bf215546Sopenharmony_ci
1270bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1271bf215546Sopenharmony_ciclReleaseProgram(cl_program program) CL_API_SUFFIX__VERSION_1_0;
1272bf215546Sopenharmony_ci
1273bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1274bf215546Sopenharmony_ciclBuildProgram(cl_program           program,
1275bf215546Sopenharmony_ci               cl_uint              num_devices,
1276bf215546Sopenharmony_ci               const cl_device_id * device_list,
1277bf215546Sopenharmony_ci               const char *         options,
1278bf215546Sopenharmony_ci               void (CL_CALLBACK *  pfn_notify)(cl_program program,
1279bf215546Sopenharmony_ci                                                void * user_data),
1280bf215546Sopenharmony_ci               void *               user_data) CL_API_SUFFIX__VERSION_1_0;
1281bf215546Sopenharmony_ci
1282bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
1283bf215546Sopenharmony_ci
1284bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1285bf215546Sopenharmony_ciclCompileProgram(cl_program           program,
1286bf215546Sopenharmony_ci                 cl_uint              num_devices,
1287bf215546Sopenharmony_ci                 const cl_device_id * device_list,
1288bf215546Sopenharmony_ci                 const char *         options,
1289bf215546Sopenharmony_ci                 cl_uint              num_input_headers,
1290bf215546Sopenharmony_ci                 const cl_program *   input_headers,
1291bf215546Sopenharmony_ci                 const char **        header_include_names,
1292bf215546Sopenharmony_ci                 void (CL_CALLBACK *  pfn_notify)(cl_program program,
1293bf215546Sopenharmony_ci                                                  void * user_data),
1294bf215546Sopenharmony_ci                 void *               user_data) CL_API_SUFFIX__VERSION_1_2;
1295bf215546Sopenharmony_ci
1296bf215546Sopenharmony_ciextern CL_API_ENTRY cl_program CL_API_CALL
1297bf215546Sopenharmony_ciclLinkProgram(cl_context           context,
1298bf215546Sopenharmony_ci              cl_uint              num_devices,
1299bf215546Sopenharmony_ci              const cl_device_id * device_list,
1300bf215546Sopenharmony_ci              const char *         options,
1301bf215546Sopenharmony_ci              cl_uint              num_input_programs,
1302bf215546Sopenharmony_ci              const cl_program *   input_programs,
1303bf215546Sopenharmony_ci              void (CL_CALLBACK *  pfn_notify)(cl_program program,
1304bf215546Sopenharmony_ci                                               void * user_data),
1305bf215546Sopenharmony_ci              void *               user_data,
1306bf215546Sopenharmony_ci              cl_int *             errcode_ret) CL_API_SUFFIX__VERSION_1_2;
1307bf215546Sopenharmony_ci
1308bf215546Sopenharmony_ci#endif
1309bf215546Sopenharmony_ci
1310bf215546Sopenharmony_ci#ifdef CL_VERSION_2_2
1311bf215546Sopenharmony_ci
1312bf215546Sopenharmony_ciextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_2_2_DEPRECATED cl_int CL_API_CALL
1313bf215546Sopenharmony_ciclSetProgramReleaseCallback(cl_program          program,
1314bf215546Sopenharmony_ci                            void (CL_CALLBACK * pfn_notify)(cl_program program,
1315bf215546Sopenharmony_ci                                                            void * user_data),
1316bf215546Sopenharmony_ci                            void *              user_data) CL_EXT_SUFFIX__VERSION_2_2_DEPRECATED;
1317bf215546Sopenharmony_ci
1318bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1319bf215546Sopenharmony_ciclSetProgramSpecializationConstant(cl_program  program,
1320bf215546Sopenharmony_ci                                   cl_uint     spec_id,
1321bf215546Sopenharmony_ci                                   size_t      spec_size,
1322bf215546Sopenharmony_ci                                   const void* spec_value) CL_API_SUFFIX__VERSION_2_2;
1323bf215546Sopenharmony_ci
1324bf215546Sopenharmony_ci#endif
1325bf215546Sopenharmony_ci
1326bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
1327bf215546Sopenharmony_ci
1328bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1329bf215546Sopenharmony_ciclUnloadPlatformCompiler(cl_platform_id platform) CL_API_SUFFIX__VERSION_1_2;
1330bf215546Sopenharmony_ci
1331bf215546Sopenharmony_ci#endif
1332bf215546Sopenharmony_ci
1333bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1334bf215546Sopenharmony_ciclGetProgramInfo(cl_program         program,
1335bf215546Sopenharmony_ci                 cl_program_info    param_name,
1336bf215546Sopenharmony_ci                 size_t             param_value_size,
1337bf215546Sopenharmony_ci                 void *             param_value,
1338bf215546Sopenharmony_ci                 size_t *           param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
1339bf215546Sopenharmony_ci
1340bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1341bf215546Sopenharmony_ciclGetProgramBuildInfo(cl_program            program,
1342bf215546Sopenharmony_ci                      cl_device_id          device,
1343bf215546Sopenharmony_ci                      cl_program_build_info param_name,
1344bf215546Sopenharmony_ci                      size_t                param_value_size,
1345bf215546Sopenharmony_ci                      void *                param_value,
1346bf215546Sopenharmony_ci                      size_t *              param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
1347bf215546Sopenharmony_ci
1348bf215546Sopenharmony_ci/* Kernel Object APIs */
1349bf215546Sopenharmony_ciextern CL_API_ENTRY cl_kernel CL_API_CALL
1350bf215546Sopenharmony_ciclCreateKernel(cl_program      program,
1351bf215546Sopenharmony_ci               const char *    kernel_name,
1352bf215546Sopenharmony_ci               cl_int *        errcode_ret) CL_API_SUFFIX__VERSION_1_0;
1353bf215546Sopenharmony_ci
1354bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1355bf215546Sopenharmony_ciclCreateKernelsInProgram(cl_program     program,
1356bf215546Sopenharmony_ci                         cl_uint        num_kernels,
1357bf215546Sopenharmony_ci                         cl_kernel *    kernels,
1358bf215546Sopenharmony_ci                         cl_uint *      num_kernels_ret) CL_API_SUFFIX__VERSION_1_0;
1359bf215546Sopenharmony_ci
1360bf215546Sopenharmony_ci#ifdef CL_VERSION_2_1
1361bf215546Sopenharmony_ci
1362bf215546Sopenharmony_ciextern CL_API_ENTRY cl_kernel CL_API_CALL
1363bf215546Sopenharmony_ciclCloneKernel(cl_kernel     source_kernel,
1364bf215546Sopenharmony_ci              cl_int*       errcode_ret) CL_API_SUFFIX__VERSION_2_1;
1365bf215546Sopenharmony_ci
1366bf215546Sopenharmony_ci#endif
1367bf215546Sopenharmony_ci
1368bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1369bf215546Sopenharmony_ciclRetainKernel(cl_kernel    kernel) CL_API_SUFFIX__VERSION_1_0;
1370bf215546Sopenharmony_ci
1371bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1372bf215546Sopenharmony_ciclReleaseKernel(cl_kernel   kernel) CL_API_SUFFIX__VERSION_1_0;
1373bf215546Sopenharmony_ci
1374bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1375bf215546Sopenharmony_ciclSetKernelArg(cl_kernel    kernel,
1376bf215546Sopenharmony_ci               cl_uint      arg_index,
1377bf215546Sopenharmony_ci               size_t       arg_size,
1378bf215546Sopenharmony_ci               const void * arg_value) CL_API_SUFFIX__VERSION_1_0;
1379bf215546Sopenharmony_ci
1380bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
1381bf215546Sopenharmony_ci
1382bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1383bf215546Sopenharmony_ciclSetKernelArgSVMPointer(cl_kernel    kernel,
1384bf215546Sopenharmony_ci                         cl_uint      arg_index,
1385bf215546Sopenharmony_ci                         const void * arg_value) CL_API_SUFFIX__VERSION_2_0;
1386bf215546Sopenharmony_ci
1387bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1388bf215546Sopenharmony_ciclSetKernelExecInfo(cl_kernel            kernel,
1389bf215546Sopenharmony_ci                    cl_kernel_exec_info  param_name,
1390bf215546Sopenharmony_ci                    size_t               param_value_size,
1391bf215546Sopenharmony_ci                    const void *         param_value) CL_API_SUFFIX__VERSION_2_0;
1392bf215546Sopenharmony_ci
1393bf215546Sopenharmony_ci#endif
1394bf215546Sopenharmony_ci
1395bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1396bf215546Sopenharmony_ciclGetKernelInfo(cl_kernel       kernel,
1397bf215546Sopenharmony_ci                cl_kernel_info  param_name,
1398bf215546Sopenharmony_ci                size_t          param_value_size,
1399bf215546Sopenharmony_ci                void *          param_value,
1400bf215546Sopenharmony_ci                size_t *        param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
1401bf215546Sopenharmony_ci
1402bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
1403bf215546Sopenharmony_ci
1404bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1405bf215546Sopenharmony_ciclGetKernelArgInfo(cl_kernel       kernel,
1406bf215546Sopenharmony_ci                   cl_uint         arg_indx,
1407bf215546Sopenharmony_ci                   cl_kernel_arg_info  param_name,
1408bf215546Sopenharmony_ci                   size_t          param_value_size,
1409bf215546Sopenharmony_ci                   void *          param_value,
1410bf215546Sopenharmony_ci                   size_t *        param_value_size_ret) CL_API_SUFFIX__VERSION_1_2;
1411bf215546Sopenharmony_ci
1412bf215546Sopenharmony_ci#endif
1413bf215546Sopenharmony_ci
1414bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1415bf215546Sopenharmony_ciclGetKernelWorkGroupInfo(cl_kernel                  kernel,
1416bf215546Sopenharmony_ci                         cl_device_id               device,
1417bf215546Sopenharmony_ci                         cl_kernel_work_group_info  param_name,
1418bf215546Sopenharmony_ci                         size_t                     param_value_size,
1419bf215546Sopenharmony_ci                         void *                     param_value,
1420bf215546Sopenharmony_ci                         size_t *                   param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
1421bf215546Sopenharmony_ci
1422bf215546Sopenharmony_ci#ifdef CL_VERSION_2_1
1423bf215546Sopenharmony_ci
1424bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1425bf215546Sopenharmony_ciclGetKernelSubGroupInfo(cl_kernel                   kernel,
1426bf215546Sopenharmony_ci                        cl_device_id                device,
1427bf215546Sopenharmony_ci                        cl_kernel_sub_group_info    param_name,
1428bf215546Sopenharmony_ci                        size_t                      input_value_size,
1429bf215546Sopenharmony_ci                        const void*                 input_value,
1430bf215546Sopenharmony_ci                        size_t                      param_value_size,
1431bf215546Sopenharmony_ci                        void*                       param_value,
1432bf215546Sopenharmony_ci                        size_t*                     param_value_size_ret) CL_API_SUFFIX__VERSION_2_1;
1433bf215546Sopenharmony_ci
1434bf215546Sopenharmony_ci#endif
1435bf215546Sopenharmony_ci
1436bf215546Sopenharmony_ci/* Event Object APIs */
1437bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1438bf215546Sopenharmony_ciclWaitForEvents(cl_uint             num_events,
1439bf215546Sopenharmony_ci                const cl_event *    event_list) CL_API_SUFFIX__VERSION_1_0;
1440bf215546Sopenharmony_ci
1441bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1442bf215546Sopenharmony_ciclGetEventInfo(cl_event         event,
1443bf215546Sopenharmony_ci               cl_event_info    param_name,
1444bf215546Sopenharmony_ci               size_t           param_value_size,
1445bf215546Sopenharmony_ci               void *           param_value,
1446bf215546Sopenharmony_ci               size_t *         param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
1447bf215546Sopenharmony_ci
1448bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
1449bf215546Sopenharmony_ci
1450bf215546Sopenharmony_ciextern CL_API_ENTRY cl_event CL_API_CALL
1451bf215546Sopenharmony_ciclCreateUserEvent(cl_context    context,
1452bf215546Sopenharmony_ci                  cl_int *      errcode_ret) CL_API_SUFFIX__VERSION_1_1;
1453bf215546Sopenharmony_ci
1454bf215546Sopenharmony_ci#endif
1455bf215546Sopenharmony_ci
1456bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1457bf215546Sopenharmony_ciclRetainEvent(cl_event event) CL_API_SUFFIX__VERSION_1_0;
1458bf215546Sopenharmony_ci
1459bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1460bf215546Sopenharmony_ciclReleaseEvent(cl_event event) CL_API_SUFFIX__VERSION_1_0;
1461bf215546Sopenharmony_ci
1462bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
1463bf215546Sopenharmony_ci
1464bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1465bf215546Sopenharmony_ciclSetUserEventStatus(cl_event   event,
1466bf215546Sopenharmony_ci                     cl_int     execution_status) CL_API_SUFFIX__VERSION_1_1;
1467bf215546Sopenharmony_ci
1468bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1469bf215546Sopenharmony_ciclSetEventCallback(cl_event    event,
1470bf215546Sopenharmony_ci                   cl_int      command_exec_callback_type,
1471bf215546Sopenharmony_ci                   void (CL_CALLBACK * pfn_notify)(cl_event event,
1472bf215546Sopenharmony_ci                                                   cl_int   event_command_status,
1473bf215546Sopenharmony_ci                                                   void *   user_data),
1474bf215546Sopenharmony_ci                   void *      user_data) CL_API_SUFFIX__VERSION_1_1;
1475bf215546Sopenharmony_ci
1476bf215546Sopenharmony_ci#endif
1477bf215546Sopenharmony_ci
1478bf215546Sopenharmony_ci/* Profiling APIs */
1479bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1480bf215546Sopenharmony_ciclGetEventProfilingInfo(cl_event            event,
1481bf215546Sopenharmony_ci                        cl_profiling_info   param_name,
1482bf215546Sopenharmony_ci                        size_t              param_value_size,
1483bf215546Sopenharmony_ci                        void *              param_value,
1484bf215546Sopenharmony_ci                        size_t *            param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
1485bf215546Sopenharmony_ci
1486bf215546Sopenharmony_ci/* Flush and Finish APIs */
1487bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1488bf215546Sopenharmony_ciclFlush(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0;
1489bf215546Sopenharmony_ci
1490bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1491bf215546Sopenharmony_ciclFinish(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0;
1492bf215546Sopenharmony_ci
1493bf215546Sopenharmony_ci/* Enqueued Commands APIs */
1494bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1495bf215546Sopenharmony_ciclEnqueueReadBuffer(cl_command_queue    command_queue,
1496bf215546Sopenharmony_ci                    cl_mem              buffer,
1497bf215546Sopenharmony_ci                    cl_bool             blocking_read,
1498bf215546Sopenharmony_ci                    size_t              offset,
1499bf215546Sopenharmony_ci                    size_t              size,
1500bf215546Sopenharmony_ci                    void *              ptr,
1501bf215546Sopenharmony_ci                    cl_uint             num_events_in_wait_list,
1502bf215546Sopenharmony_ci                    const cl_event *    event_wait_list,
1503bf215546Sopenharmony_ci                    cl_event *          event) CL_API_SUFFIX__VERSION_1_0;
1504bf215546Sopenharmony_ci
1505bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
1506bf215546Sopenharmony_ci
1507bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1508bf215546Sopenharmony_ciclEnqueueReadBufferRect(cl_command_queue    command_queue,
1509bf215546Sopenharmony_ci                        cl_mem              buffer,
1510bf215546Sopenharmony_ci                        cl_bool             blocking_read,
1511bf215546Sopenharmony_ci                        const size_t *      buffer_offset,
1512bf215546Sopenharmony_ci                        const size_t *      host_offset,
1513bf215546Sopenharmony_ci                        const size_t *      region,
1514bf215546Sopenharmony_ci                        size_t              buffer_row_pitch,
1515bf215546Sopenharmony_ci                        size_t              buffer_slice_pitch,
1516bf215546Sopenharmony_ci                        size_t              host_row_pitch,
1517bf215546Sopenharmony_ci                        size_t              host_slice_pitch,
1518bf215546Sopenharmony_ci                        void *              ptr,
1519bf215546Sopenharmony_ci                        cl_uint             num_events_in_wait_list,
1520bf215546Sopenharmony_ci                        const cl_event *    event_wait_list,
1521bf215546Sopenharmony_ci                        cl_event *          event) CL_API_SUFFIX__VERSION_1_1;
1522bf215546Sopenharmony_ci
1523bf215546Sopenharmony_ci#endif
1524bf215546Sopenharmony_ci
1525bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1526bf215546Sopenharmony_ciclEnqueueWriteBuffer(cl_command_queue   command_queue,
1527bf215546Sopenharmony_ci                     cl_mem             buffer,
1528bf215546Sopenharmony_ci                     cl_bool            blocking_write,
1529bf215546Sopenharmony_ci                     size_t             offset,
1530bf215546Sopenharmony_ci                     size_t             size,
1531bf215546Sopenharmony_ci                     const void *       ptr,
1532bf215546Sopenharmony_ci                     cl_uint            num_events_in_wait_list,
1533bf215546Sopenharmony_ci                     const cl_event *   event_wait_list,
1534bf215546Sopenharmony_ci                     cl_event *         event) CL_API_SUFFIX__VERSION_1_0;
1535bf215546Sopenharmony_ci
1536bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
1537bf215546Sopenharmony_ci
1538bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1539bf215546Sopenharmony_ciclEnqueueWriteBufferRect(cl_command_queue    command_queue,
1540bf215546Sopenharmony_ci                         cl_mem              buffer,
1541bf215546Sopenharmony_ci                         cl_bool             blocking_write,
1542bf215546Sopenharmony_ci                         const size_t *      buffer_offset,
1543bf215546Sopenharmony_ci                         const size_t *      host_offset,
1544bf215546Sopenharmony_ci                         const size_t *      region,
1545bf215546Sopenharmony_ci                         size_t              buffer_row_pitch,
1546bf215546Sopenharmony_ci                         size_t              buffer_slice_pitch,
1547bf215546Sopenharmony_ci                         size_t              host_row_pitch,
1548bf215546Sopenharmony_ci                         size_t              host_slice_pitch,
1549bf215546Sopenharmony_ci                         const void *        ptr,
1550bf215546Sopenharmony_ci                         cl_uint             num_events_in_wait_list,
1551bf215546Sopenharmony_ci                         const cl_event *    event_wait_list,
1552bf215546Sopenharmony_ci                         cl_event *          event) CL_API_SUFFIX__VERSION_1_1;
1553bf215546Sopenharmony_ci
1554bf215546Sopenharmony_ci#endif
1555bf215546Sopenharmony_ci
1556bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
1557bf215546Sopenharmony_ci
1558bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1559bf215546Sopenharmony_ciclEnqueueFillBuffer(cl_command_queue   command_queue,
1560bf215546Sopenharmony_ci                    cl_mem             buffer,
1561bf215546Sopenharmony_ci                    const void *       pattern,
1562bf215546Sopenharmony_ci                    size_t             pattern_size,
1563bf215546Sopenharmony_ci                    size_t             offset,
1564bf215546Sopenharmony_ci                    size_t             size,
1565bf215546Sopenharmony_ci                    cl_uint            num_events_in_wait_list,
1566bf215546Sopenharmony_ci                    const cl_event *   event_wait_list,
1567bf215546Sopenharmony_ci                    cl_event *         event) CL_API_SUFFIX__VERSION_1_2;
1568bf215546Sopenharmony_ci
1569bf215546Sopenharmony_ci#endif
1570bf215546Sopenharmony_ci
1571bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1572bf215546Sopenharmony_ciclEnqueueCopyBuffer(cl_command_queue    command_queue,
1573bf215546Sopenharmony_ci                    cl_mem              src_buffer,
1574bf215546Sopenharmony_ci                    cl_mem              dst_buffer,
1575bf215546Sopenharmony_ci                    size_t              src_offset,
1576bf215546Sopenharmony_ci                    size_t              dst_offset,
1577bf215546Sopenharmony_ci                    size_t              size,
1578bf215546Sopenharmony_ci                    cl_uint             num_events_in_wait_list,
1579bf215546Sopenharmony_ci                    const cl_event *    event_wait_list,
1580bf215546Sopenharmony_ci                    cl_event *          event) CL_API_SUFFIX__VERSION_1_0;
1581bf215546Sopenharmony_ci
1582bf215546Sopenharmony_ci#ifdef CL_VERSION_1_1
1583bf215546Sopenharmony_ci
1584bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1585bf215546Sopenharmony_ciclEnqueueCopyBufferRect(cl_command_queue    command_queue,
1586bf215546Sopenharmony_ci                        cl_mem              src_buffer,
1587bf215546Sopenharmony_ci                        cl_mem              dst_buffer,
1588bf215546Sopenharmony_ci                        const size_t *      src_origin,
1589bf215546Sopenharmony_ci                        const size_t *      dst_origin,
1590bf215546Sopenharmony_ci                        const size_t *      region,
1591bf215546Sopenharmony_ci                        size_t              src_row_pitch,
1592bf215546Sopenharmony_ci                        size_t              src_slice_pitch,
1593bf215546Sopenharmony_ci                        size_t              dst_row_pitch,
1594bf215546Sopenharmony_ci                        size_t              dst_slice_pitch,
1595bf215546Sopenharmony_ci                        cl_uint             num_events_in_wait_list,
1596bf215546Sopenharmony_ci                        const cl_event *    event_wait_list,
1597bf215546Sopenharmony_ci                        cl_event *          event) CL_API_SUFFIX__VERSION_1_1;
1598bf215546Sopenharmony_ci
1599bf215546Sopenharmony_ci#endif
1600bf215546Sopenharmony_ci
1601bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1602bf215546Sopenharmony_ciclEnqueueReadImage(cl_command_queue     command_queue,
1603bf215546Sopenharmony_ci                   cl_mem               image,
1604bf215546Sopenharmony_ci                   cl_bool              blocking_read,
1605bf215546Sopenharmony_ci                   const size_t *       origin,
1606bf215546Sopenharmony_ci                   const size_t *       region,
1607bf215546Sopenharmony_ci                   size_t               row_pitch,
1608bf215546Sopenharmony_ci                   size_t               slice_pitch,
1609bf215546Sopenharmony_ci                   void *               ptr,
1610bf215546Sopenharmony_ci                   cl_uint              num_events_in_wait_list,
1611bf215546Sopenharmony_ci                   const cl_event *     event_wait_list,
1612bf215546Sopenharmony_ci                   cl_event *           event) CL_API_SUFFIX__VERSION_1_0;
1613bf215546Sopenharmony_ci
1614bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1615bf215546Sopenharmony_ciclEnqueueWriteImage(cl_command_queue    command_queue,
1616bf215546Sopenharmony_ci                    cl_mem              image,
1617bf215546Sopenharmony_ci                    cl_bool             blocking_write,
1618bf215546Sopenharmony_ci                    const size_t *      origin,
1619bf215546Sopenharmony_ci                    const size_t *      region,
1620bf215546Sopenharmony_ci                    size_t              input_row_pitch,
1621bf215546Sopenharmony_ci                    size_t              input_slice_pitch,
1622bf215546Sopenharmony_ci                    const void *        ptr,
1623bf215546Sopenharmony_ci                    cl_uint             num_events_in_wait_list,
1624bf215546Sopenharmony_ci                    const cl_event *    event_wait_list,
1625bf215546Sopenharmony_ci                    cl_event *          event) CL_API_SUFFIX__VERSION_1_0;
1626bf215546Sopenharmony_ci
1627bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
1628bf215546Sopenharmony_ci
1629bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1630bf215546Sopenharmony_ciclEnqueueFillImage(cl_command_queue   command_queue,
1631bf215546Sopenharmony_ci                   cl_mem             image,
1632bf215546Sopenharmony_ci                   const void *       fill_color,
1633bf215546Sopenharmony_ci                   const size_t *     origin,
1634bf215546Sopenharmony_ci                   const size_t *     region,
1635bf215546Sopenharmony_ci                   cl_uint            num_events_in_wait_list,
1636bf215546Sopenharmony_ci                   const cl_event *   event_wait_list,
1637bf215546Sopenharmony_ci                   cl_event *         event) CL_API_SUFFIX__VERSION_1_2;
1638bf215546Sopenharmony_ci
1639bf215546Sopenharmony_ci#endif
1640bf215546Sopenharmony_ci
1641bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1642bf215546Sopenharmony_ciclEnqueueCopyImage(cl_command_queue     command_queue,
1643bf215546Sopenharmony_ci                   cl_mem               src_image,
1644bf215546Sopenharmony_ci                   cl_mem               dst_image,
1645bf215546Sopenharmony_ci                   const size_t *       src_origin,
1646bf215546Sopenharmony_ci                   const size_t *       dst_origin,
1647bf215546Sopenharmony_ci                   const size_t *       region,
1648bf215546Sopenharmony_ci                   cl_uint              num_events_in_wait_list,
1649bf215546Sopenharmony_ci                   const cl_event *     event_wait_list,
1650bf215546Sopenharmony_ci                   cl_event *           event) CL_API_SUFFIX__VERSION_1_0;
1651bf215546Sopenharmony_ci
1652bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1653bf215546Sopenharmony_ciclEnqueueCopyImageToBuffer(cl_command_queue command_queue,
1654bf215546Sopenharmony_ci                           cl_mem           src_image,
1655bf215546Sopenharmony_ci                           cl_mem           dst_buffer,
1656bf215546Sopenharmony_ci                           const size_t *   src_origin,
1657bf215546Sopenharmony_ci                           const size_t *   region,
1658bf215546Sopenharmony_ci                           size_t           dst_offset,
1659bf215546Sopenharmony_ci                           cl_uint          num_events_in_wait_list,
1660bf215546Sopenharmony_ci                           const cl_event * event_wait_list,
1661bf215546Sopenharmony_ci                           cl_event *       event) CL_API_SUFFIX__VERSION_1_0;
1662bf215546Sopenharmony_ci
1663bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1664bf215546Sopenharmony_ciclEnqueueCopyBufferToImage(cl_command_queue command_queue,
1665bf215546Sopenharmony_ci                           cl_mem           src_buffer,
1666bf215546Sopenharmony_ci                           cl_mem           dst_image,
1667bf215546Sopenharmony_ci                           size_t           src_offset,
1668bf215546Sopenharmony_ci                           const size_t *   dst_origin,
1669bf215546Sopenharmony_ci                           const size_t *   region,
1670bf215546Sopenharmony_ci                           cl_uint          num_events_in_wait_list,
1671bf215546Sopenharmony_ci                           const cl_event * event_wait_list,
1672bf215546Sopenharmony_ci                           cl_event *       event) CL_API_SUFFIX__VERSION_1_0;
1673bf215546Sopenharmony_ci
1674bf215546Sopenharmony_ciextern CL_API_ENTRY void * CL_API_CALL
1675bf215546Sopenharmony_ciclEnqueueMapBuffer(cl_command_queue command_queue,
1676bf215546Sopenharmony_ci                   cl_mem           buffer,
1677bf215546Sopenharmony_ci                   cl_bool          blocking_map,
1678bf215546Sopenharmony_ci                   cl_map_flags     map_flags,
1679bf215546Sopenharmony_ci                   size_t           offset,
1680bf215546Sopenharmony_ci                   size_t           size,
1681bf215546Sopenharmony_ci                   cl_uint          num_events_in_wait_list,
1682bf215546Sopenharmony_ci                   const cl_event * event_wait_list,
1683bf215546Sopenharmony_ci                   cl_event *       event,
1684bf215546Sopenharmony_ci                   cl_int *         errcode_ret) CL_API_SUFFIX__VERSION_1_0;
1685bf215546Sopenharmony_ci
1686bf215546Sopenharmony_ciextern CL_API_ENTRY void * CL_API_CALL
1687bf215546Sopenharmony_ciclEnqueueMapImage(cl_command_queue  command_queue,
1688bf215546Sopenharmony_ci                  cl_mem            image,
1689bf215546Sopenharmony_ci                  cl_bool           blocking_map,
1690bf215546Sopenharmony_ci                  cl_map_flags      map_flags,
1691bf215546Sopenharmony_ci                  const size_t *    origin,
1692bf215546Sopenharmony_ci                  const size_t *    region,
1693bf215546Sopenharmony_ci                  size_t *          image_row_pitch,
1694bf215546Sopenharmony_ci                  size_t *          image_slice_pitch,
1695bf215546Sopenharmony_ci                  cl_uint           num_events_in_wait_list,
1696bf215546Sopenharmony_ci                  const cl_event *  event_wait_list,
1697bf215546Sopenharmony_ci                  cl_event *        event,
1698bf215546Sopenharmony_ci                  cl_int *          errcode_ret) CL_API_SUFFIX__VERSION_1_0;
1699bf215546Sopenharmony_ci
1700bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1701bf215546Sopenharmony_ciclEnqueueUnmapMemObject(cl_command_queue command_queue,
1702bf215546Sopenharmony_ci                        cl_mem           memobj,
1703bf215546Sopenharmony_ci                        void *           mapped_ptr,
1704bf215546Sopenharmony_ci                        cl_uint          num_events_in_wait_list,
1705bf215546Sopenharmony_ci                        const cl_event * event_wait_list,
1706bf215546Sopenharmony_ci                        cl_event *       event) CL_API_SUFFIX__VERSION_1_0;
1707bf215546Sopenharmony_ci
1708bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
1709bf215546Sopenharmony_ci
1710bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1711bf215546Sopenharmony_ciclEnqueueMigrateMemObjects(cl_command_queue       command_queue,
1712bf215546Sopenharmony_ci                           cl_uint                num_mem_objects,
1713bf215546Sopenharmony_ci                           const cl_mem *         mem_objects,
1714bf215546Sopenharmony_ci                           cl_mem_migration_flags flags,
1715bf215546Sopenharmony_ci                           cl_uint                num_events_in_wait_list,
1716bf215546Sopenharmony_ci                           const cl_event *       event_wait_list,
1717bf215546Sopenharmony_ci                           cl_event *             event) CL_API_SUFFIX__VERSION_1_2;
1718bf215546Sopenharmony_ci
1719bf215546Sopenharmony_ci#endif
1720bf215546Sopenharmony_ci
1721bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1722bf215546Sopenharmony_ciclEnqueueNDRangeKernel(cl_command_queue command_queue,
1723bf215546Sopenharmony_ci                       cl_kernel        kernel,
1724bf215546Sopenharmony_ci                       cl_uint          work_dim,
1725bf215546Sopenharmony_ci                       const size_t *   global_work_offset,
1726bf215546Sopenharmony_ci                       const size_t *   global_work_size,
1727bf215546Sopenharmony_ci                       const size_t *   local_work_size,
1728bf215546Sopenharmony_ci                       cl_uint          num_events_in_wait_list,
1729bf215546Sopenharmony_ci                       const cl_event * event_wait_list,
1730bf215546Sopenharmony_ci                       cl_event *       event) CL_API_SUFFIX__VERSION_1_0;
1731bf215546Sopenharmony_ci
1732bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1733bf215546Sopenharmony_ciclEnqueueNativeKernel(cl_command_queue  command_queue,
1734bf215546Sopenharmony_ci                      void (CL_CALLBACK * user_func)(void *),
1735bf215546Sopenharmony_ci                      void *            args,
1736bf215546Sopenharmony_ci                      size_t            cb_args,
1737bf215546Sopenharmony_ci                      cl_uint           num_mem_objects,
1738bf215546Sopenharmony_ci                      const cl_mem *    mem_list,
1739bf215546Sopenharmony_ci                      const void **     args_mem_loc,
1740bf215546Sopenharmony_ci                      cl_uint           num_events_in_wait_list,
1741bf215546Sopenharmony_ci                      const cl_event *  event_wait_list,
1742bf215546Sopenharmony_ci                      cl_event *        event) CL_API_SUFFIX__VERSION_1_0;
1743bf215546Sopenharmony_ci
1744bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
1745bf215546Sopenharmony_ci
1746bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1747bf215546Sopenharmony_ciclEnqueueMarkerWithWaitList(cl_command_queue  command_queue,
1748bf215546Sopenharmony_ci                            cl_uint           num_events_in_wait_list,
1749bf215546Sopenharmony_ci                            const cl_event *  event_wait_list,
1750bf215546Sopenharmony_ci                            cl_event *        event) CL_API_SUFFIX__VERSION_1_2;
1751bf215546Sopenharmony_ci
1752bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1753bf215546Sopenharmony_ciclEnqueueBarrierWithWaitList(cl_command_queue  command_queue,
1754bf215546Sopenharmony_ci                             cl_uint           num_events_in_wait_list,
1755bf215546Sopenharmony_ci                             const cl_event *  event_wait_list,
1756bf215546Sopenharmony_ci                             cl_event *        event) CL_API_SUFFIX__VERSION_1_2;
1757bf215546Sopenharmony_ci
1758bf215546Sopenharmony_ci#endif
1759bf215546Sopenharmony_ci
1760bf215546Sopenharmony_ci#ifdef CL_VERSION_2_0
1761bf215546Sopenharmony_ci
1762bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1763bf215546Sopenharmony_ciclEnqueueSVMFree(cl_command_queue  command_queue,
1764bf215546Sopenharmony_ci                 cl_uint           num_svm_pointers,
1765bf215546Sopenharmony_ci                 void *            svm_pointers[],
1766bf215546Sopenharmony_ci                 void (CL_CALLBACK * pfn_free_func)(cl_command_queue queue,
1767bf215546Sopenharmony_ci                                                    cl_uint          num_svm_pointers,
1768bf215546Sopenharmony_ci                                                    void *           svm_pointers[],
1769bf215546Sopenharmony_ci                                                    void *           user_data),
1770bf215546Sopenharmony_ci                 void *            user_data,
1771bf215546Sopenharmony_ci                 cl_uint           num_events_in_wait_list,
1772bf215546Sopenharmony_ci                 const cl_event *  event_wait_list,
1773bf215546Sopenharmony_ci                 cl_event *        event) CL_API_SUFFIX__VERSION_2_0;
1774bf215546Sopenharmony_ci
1775bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1776bf215546Sopenharmony_ciclEnqueueSVMMemcpy(cl_command_queue  command_queue,
1777bf215546Sopenharmony_ci                   cl_bool           blocking_copy,
1778bf215546Sopenharmony_ci                   void *            dst_ptr,
1779bf215546Sopenharmony_ci                   const void *      src_ptr,
1780bf215546Sopenharmony_ci                   size_t            size,
1781bf215546Sopenharmony_ci                   cl_uint           num_events_in_wait_list,
1782bf215546Sopenharmony_ci                   const cl_event *  event_wait_list,
1783bf215546Sopenharmony_ci                   cl_event *        event) CL_API_SUFFIX__VERSION_2_0;
1784bf215546Sopenharmony_ci
1785bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1786bf215546Sopenharmony_ciclEnqueueSVMMemFill(cl_command_queue  command_queue,
1787bf215546Sopenharmony_ci                    void *            svm_ptr,
1788bf215546Sopenharmony_ci                    const void *      pattern,
1789bf215546Sopenharmony_ci                    size_t            pattern_size,
1790bf215546Sopenharmony_ci                    size_t            size,
1791bf215546Sopenharmony_ci                    cl_uint           num_events_in_wait_list,
1792bf215546Sopenharmony_ci                    const cl_event *  event_wait_list,
1793bf215546Sopenharmony_ci                    cl_event *        event) CL_API_SUFFIX__VERSION_2_0;
1794bf215546Sopenharmony_ci
1795bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1796bf215546Sopenharmony_ciclEnqueueSVMMap(cl_command_queue  command_queue,
1797bf215546Sopenharmony_ci                cl_bool           blocking_map,
1798bf215546Sopenharmony_ci                cl_map_flags      flags,
1799bf215546Sopenharmony_ci                void *            svm_ptr,
1800bf215546Sopenharmony_ci                size_t            size,
1801bf215546Sopenharmony_ci                cl_uint           num_events_in_wait_list,
1802bf215546Sopenharmony_ci                const cl_event *  event_wait_list,
1803bf215546Sopenharmony_ci                cl_event *        event) CL_API_SUFFIX__VERSION_2_0;
1804bf215546Sopenharmony_ci
1805bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1806bf215546Sopenharmony_ciclEnqueueSVMUnmap(cl_command_queue  command_queue,
1807bf215546Sopenharmony_ci                  void *            svm_ptr,
1808bf215546Sopenharmony_ci                  cl_uint           num_events_in_wait_list,
1809bf215546Sopenharmony_ci                  const cl_event *  event_wait_list,
1810bf215546Sopenharmony_ci                  cl_event *        event) CL_API_SUFFIX__VERSION_2_0;
1811bf215546Sopenharmony_ci
1812bf215546Sopenharmony_ci#endif
1813bf215546Sopenharmony_ci
1814bf215546Sopenharmony_ci#ifdef CL_VERSION_2_1
1815bf215546Sopenharmony_ci
1816bf215546Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
1817bf215546Sopenharmony_ciclEnqueueSVMMigrateMem(cl_command_queue         command_queue,
1818bf215546Sopenharmony_ci                       cl_uint                  num_svm_pointers,
1819bf215546Sopenharmony_ci                       const void **            svm_pointers,
1820bf215546Sopenharmony_ci                       const size_t *           sizes,
1821bf215546Sopenharmony_ci                       cl_mem_migration_flags   flags,
1822bf215546Sopenharmony_ci                       cl_uint                  num_events_in_wait_list,
1823bf215546Sopenharmony_ci                       const cl_event *         event_wait_list,
1824bf215546Sopenharmony_ci                       cl_event *               event) CL_API_SUFFIX__VERSION_2_1;
1825bf215546Sopenharmony_ci
1826bf215546Sopenharmony_ci#endif
1827bf215546Sopenharmony_ci
1828bf215546Sopenharmony_ci#ifdef CL_VERSION_1_2
1829bf215546Sopenharmony_ci
1830bf215546Sopenharmony_ci/* Extension function access
1831bf215546Sopenharmony_ci *
1832bf215546Sopenharmony_ci * Returns the extension function address for the given function name,
1833bf215546Sopenharmony_ci * or NULL if a valid function can not be found.  The client must
1834bf215546Sopenharmony_ci * check to make sure the address is not NULL, before using or
1835bf215546Sopenharmony_ci * calling the returned function address.
1836bf215546Sopenharmony_ci */
1837bf215546Sopenharmony_ciextern CL_API_ENTRY void * CL_API_CALL
1838bf215546Sopenharmony_ciclGetExtensionFunctionAddressForPlatform(cl_platform_id platform,
1839bf215546Sopenharmony_ci                                         const char *   func_name) CL_API_SUFFIX__VERSION_1_2;
1840bf215546Sopenharmony_ci
1841bf215546Sopenharmony_ci#endif
1842bf215546Sopenharmony_ci
1843bf215546Sopenharmony_ci#ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS
1844bf215546Sopenharmony_ci    /*
1845bf215546Sopenharmony_ci     *  WARNING:
1846bf215546Sopenharmony_ci     *     This API introduces mutable state into the OpenCL implementation. It has been REMOVED
1847bf215546Sopenharmony_ci     *  to better facilitate thread safety.  The 1.0 API is not thread safe. It is not tested by the
1848bf215546Sopenharmony_ci     *  OpenCL 1.1 conformance test, and consequently may not work or may not work dependably.
1849bf215546Sopenharmony_ci     *  It is likely to be non-performant. Use of this API is not advised. Use at your own risk.
1850bf215546Sopenharmony_ci     *
1851bf215546Sopenharmony_ci     *  Software developers previously relying on this API are instructed to set the command queue
1852bf215546Sopenharmony_ci     *  properties when creating the queue, instead.
1853bf215546Sopenharmony_ci     */
1854bf215546Sopenharmony_ci    extern CL_API_ENTRY cl_int CL_API_CALL
1855bf215546Sopenharmony_ci    clSetCommandQueueProperty(cl_command_queue              command_queue,
1856bf215546Sopenharmony_ci                              cl_command_queue_properties   properties,
1857bf215546Sopenharmony_ci                              cl_bool                       enable,
1858bf215546Sopenharmony_ci                              cl_command_queue_properties * old_properties) CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED;
1859bf215546Sopenharmony_ci#endif /* CL_USE_DEPRECATED_OPENCL_1_0_APIS */
1860bf215546Sopenharmony_ci
1861bf215546Sopenharmony_ci/* Deprecated OpenCL 1.1 APIs */
1862bf215546Sopenharmony_ciextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
1863bf215546Sopenharmony_ciclCreateImage2D(cl_context              context,
1864bf215546Sopenharmony_ci                cl_mem_flags            flags,
1865bf215546Sopenharmony_ci                const cl_image_format * image_format,
1866bf215546Sopenharmony_ci                size_t                  image_width,
1867bf215546Sopenharmony_ci                size_t                  image_height,
1868bf215546Sopenharmony_ci                size_t                  image_row_pitch,
1869bf215546Sopenharmony_ci                void *                  host_ptr,
1870bf215546Sopenharmony_ci                cl_int *                errcode_ret) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
1871bf215546Sopenharmony_ci
1872bf215546Sopenharmony_ciextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
1873bf215546Sopenharmony_ciclCreateImage3D(cl_context              context,
1874bf215546Sopenharmony_ci                cl_mem_flags            flags,
1875bf215546Sopenharmony_ci                const cl_image_format * image_format,
1876bf215546Sopenharmony_ci                size_t                  image_width,
1877bf215546Sopenharmony_ci                size_t                  image_height,
1878bf215546Sopenharmony_ci                size_t                  image_depth,
1879bf215546Sopenharmony_ci                size_t                  image_row_pitch,
1880bf215546Sopenharmony_ci                size_t                  image_slice_pitch,
1881bf215546Sopenharmony_ci                void *                  host_ptr,
1882bf215546Sopenharmony_ci                cl_int *                errcode_ret) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
1883bf215546Sopenharmony_ci
1884bf215546Sopenharmony_ciextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL
1885bf215546Sopenharmony_ciclEnqueueMarker(cl_command_queue    command_queue,
1886bf215546Sopenharmony_ci                cl_event *          event) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
1887bf215546Sopenharmony_ci
1888bf215546Sopenharmony_ciextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL
1889bf215546Sopenharmony_ciclEnqueueWaitForEvents(cl_command_queue  command_queue,
1890bf215546Sopenharmony_ci                        cl_uint          num_events,
1891bf215546Sopenharmony_ci                        const cl_event * event_list) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
1892bf215546Sopenharmony_ci
1893bf215546Sopenharmony_ciextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL
1894bf215546Sopenharmony_ciclEnqueueBarrier(cl_command_queue command_queue) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
1895bf215546Sopenharmony_ci
1896bf215546Sopenharmony_ciextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL
1897bf215546Sopenharmony_ciclUnloadCompiler(void) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
1898bf215546Sopenharmony_ci
1899bf215546Sopenharmony_ciextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED void * CL_API_CALL
1900bf215546Sopenharmony_ciclGetExtensionFunctionAddress(const char * func_name) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
1901bf215546Sopenharmony_ci
1902bf215546Sopenharmony_ci/* Deprecated OpenCL 2.0 APIs */
1903bf215546Sopenharmony_ciextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_command_queue CL_API_CALL
1904bf215546Sopenharmony_ciclCreateCommandQueue(cl_context                     context,
1905bf215546Sopenharmony_ci                     cl_device_id                   device,
1906bf215546Sopenharmony_ci                     cl_command_queue_properties    properties,
1907bf215546Sopenharmony_ci                     cl_int *                       errcode_ret) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED;
1908bf215546Sopenharmony_ci
1909bf215546Sopenharmony_ciextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_sampler CL_API_CALL
1910bf215546Sopenharmony_ciclCreateSampler(cl_context          context,
1911bf215546Sopenharmony_ci                cl_bool             normalized_coords,
1912bf215546Sopenharmony_ci                cl_addressing_mode  addressing_mode,
1913bf215546Sopenharmony_ci                cl_filter_mode      filter_mode,
1914bf215546Sopenharmony_ci                cl_int *            errcode_ret) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED;
1915bf215546Sopenharmony_ci
1916bf215546Sopenharmony_ciextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_int CL_API_CALL
1917bf215546Sopenharmony_ciclEnqueueTask(cl_command_queue  command_queue,
1918bf215546Sopenharmony_ci              cl_kernel         kernel,
1919bf215546Sopenharmony_ci              cl_uint           num_events_in_wait_list,
1920bf215546Sopenharmony_ci              const cl_event *  event_wait_list,
1921bf215546Sopenharmony_ci              cl_event *        event) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED;
1922bf215546Sopenharmony_ci
1923bf215546Sopenharmony_ci#ifdef __cplusplus
1924bf215546Sopenharmony_ci}
1925bf215546Sopenharmony_ci#endif
1926bf215546Sopenharmony_ci
1927bf215546Sopenharmony_ci#endif  /* __OPENCL_CL_H */
1928