cl.h revision 848b8605
1848b8605Smrg/*******************************************************************************
2848b8605Smrg * Copyright (c) 2008 - 2012 The Khronos Group Inc.
3848b8605Smrg *
4848b8605Smrg * Permission is hereby granted, free of charge, to any person obtaining a
5848b8605Smrg * copy of this software and/or associated documentation files (the
6848b8605Smrg * "Materials"), to deal in the Materials without restriction, including
7848b8605Smrg * without limitation the rights to use, copy, modify, merge, publish,
8848b8605Smrg * distribute, sublicense, and/or sell copies of the Materials, and to
9848b8605Smrg * permit persons to whom the Materials are furnished to do so, subject to
10848b8605Smrg * the following conditions:
11848b8605Smrg *
12848b8605Smrg * The above copyright notice and this permission notice shall be included
13848b8605Smrg * in all copies or substantial portions of the Materials.
14848b8605Smrg *
15848b8605Smrg * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16848b8605Smrg * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17848b8605Smrg * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18848b8605Smrg * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19848b8605Smrg * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20848b8605Smrg * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21848b8605Smrg * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
22848b8605Smrg ******************************************************************************/
23848b8605Smrg
24848b8605Smrg#ifndef __OPENCL_CL_H
25848b8605Smrg#define __OPENCL_CL_H
26848b8605Smrg
27848b8605Smrg#ifdef __APPLE__
28848b8605Smrg#include <OpenCL/cl_platform.h>
29848b8605Smrg#else
30848b8605Smrg#include <CL/cl_platform.h>
31848b8605Smrg#endif
32848b8605Smrg
33848b8605Smrg#ifdef __cplusplus
34848b8605Smrgextern "C" {
35848b8605Smrg#endif
36848b8605Smrg
37848b8605Smrg/******************************************************************************/
38848b8605Smrg
39848b8605Smrgtypedef struct _cl_platform_id *    cl_platform_id;
40848b8605Smrgtypedef struct _cl_device_id *      cl_device_id;
41848b8605Smrgtypedef struct _cl_context *        cl_context;
42848b8605Smrgtypedef struct _cl_command_queue *  cl_command_queue;
43848b8605Smrgtypedef struct _cl_mem *            cl_mem;
44848b8605Smrgtypedef struct _cl_program *        cl_program;
45848b8605Smrgtypedef struct _cl_kernel *         cl_kernel;
46848b8605Smrgtypedef struct _cl_event *          cl_event;
47848b8605Smrgtypedef struct _cl_sampler *        cl_sampler;
48848b8605Smrg
49848b8605Smrgtypedef 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. */
50848b8605Smrgtypedef cl_ulong            cl_bitfield;
51848b8605Smrgtypedef cl_bitfield         cl_device_type;
52848b8605Smrgtypedef cl_uint             cl_platform_info;
53848b8605Smrgtypedef cl_uint             cl_device_info;
54848b8605Smrgtypedef cl_bitfield         cl_device_fp_config;
55848b8605Smrgtypedef cl_uint             cl_device_mem_cache_type;
56848b8605Smrgtypedef cl_uint             cl_device_local_mem_type;
57848b8605Smrgtypedef cl_bitfield         cl_device_exec_capabilities;
58848b8605Smrgtypedef cl_bitfield         cl_command_queue_properties;
59848b8605Smrgtypedef intptr_t            cl_device_partition_property;
60848b8605Smrgtypedef cl_bitfield         cl_device_affinity_domain;
61848b8605Smrg
62848b8605Smrgtypedef intptr_t            cl_context_properties;
63848b8605Smrgtypedef cl_uint             cl_context_info;
64848b8605Smrgtypedef cl_uint             cl_command_queue_info;
65848b8605Smrgtypedef cl_uint             cl_channel_order;
66848b8605Smrgtypedef cl_uint             cl_channel_type;
67848b8605Smrgtypedef cl_bitfield         cl_mem_flags;
68848b8605Smrgtypedef cl_uint             cl_mem_object_type;
69848b8605Smrgtypedef cl_uint             cl_mem_info;
70848b8605Smrgtypedef cl_bitfield         cl_mem_migration_flags;
71848b8605Smrgtypedef cl_uint             cl_image_info;
72848b8605Smrgtypedef cl_uint             cl_buffer_create_type;
73848b8605Smrgtypedef cl_uint             cl_addressing_mode;
74848b8605Smrgtypedef cl_uint             cl_filter_mode;
75848b8605Smrgtypedef cl_uint             cl_sampler_info;
76848b8605Smrgtypedef cl_bitfield         cl_map_flags;
77848b8605Smrgtypedef cl_uint             cl_program_info;
78848b8605Smrgtypedef cl_uint             cl_program_build_info;
79848b8605Smrgtypedef cl_uint             cl_program_binary_type;
80848b8605Smrgtypedef cl_int              cl_build_status;
81848b8605Smrgtypedef cl_uint             cl_kernel_info;
82848b8605Smrgtypedef cl_uint             cl_kernel_arg_info;
83848b8605Smrgtypedef cl_uint             cl_kernel_arg_address_qualifier;
84848b8605Smrgtypedef cl_uint             cl_kernel_arg_access_qualifier;
85848b8605Smrgtypedef cl_bitfield         cl_kernel_arg_type_qualifier;
86848b8605Smrgtypedef cl_uint             cl_kernel_work_group_info;
87848b8605Smrgtypedef cl_uint             cl_event_info;
88848b8605Smrgtypedef cl_uint             cl_command_type;
89848b8605Smrgtypedef cl_uint             cl_profiling_info;
90848b8605Smrg
91848b8605Smrg
92848b8605Smrgtypedef struct _cl_image_format {
93848b8605Smrg    cl_channel_order        image_channel_order;
94848b8605Smrg    cl_channel_type         image_channel_data_type;
95848b8605Smrg} cl_image_format;
96848b8605Smrg
97848b8605Smrgtypedef struct _cl_image_desc {
98848b8605Smrg    cl_mem_object_type      image_type;
99848b8605Smrg    size_t                  image_width;
100848b8605Smrg    size_t                  image_height;
101848b8605Smrg    size_t                  image_depth;
102848b8605Smrg    size_t                  image_array_size;
103848b8605Smrg    size_t                  image_row_pitch;
104848b8605Smrg    size_t                  image_slice_pitch;
105848b8605Smrg    cl_uint                 num_mip_levels;
106848b8605Smrg    cl_uint                 num_samples;
107848b8605Smrg    cl_mem                  buffer;
108848b8605Smrg} cl_image_desc;
109848b8605Smrg
110848b8605Smrgtypedef struct _cl_buffer_region {
111848b8605Smrg    size_t                  origin;
112848b8605Smrg    size_t                  size;
113848b8605Smrg} cl_buffer_region;
114848b8605Smrg
115848b8605Smrg
116848b8605Smrg/******************************************************************************/
117848b8605Smrg
118848b8605Smrg/* Error Codes */
119848b8605Smrg#define CL_SUCCESS                                  0
120848b8605Smrg#define CL_DEVICE_NOT_FOUND                         -1
121848b8605Smrg#define CL_DEVICE_NOT_AVAILABLE                     -2
122848b8605Smrg#define CL_COMPILER_NOT_AVAILABLE                   -3
123848b8605Smrg#define CL_MEM_OBJECT_ALLOCATION_FAILURE            -4
124848b8605Smrg#define CL_OUT_OF_RESOURCES                         -5
125848b8605Smrg#define CL_OUT_OF_HOST_MEMORY                       -6
126848b8605Smrg#define CL_PROFILING_INFO_NOT_AVAILABLE             -7
127848b8605Smrg#define CL_MEM_COPY_OVERLAP                         -8
128848b8605Smrg#define CL_IMAGE_FORMAT_MISMATCH                    -9
129848b8605Smrg#define CL_IMAGE_FORMAT_NOT_SUPPORTED               -10
130848b8605Smrg#define CL_BUILD_PROGRAM_FAILURE                    -11
131848b8605Smrg#define CL_MAP_FAILURE                              -12
132848b8605Smrg#define CL_MISALIGNED_SUB_BUFFER_OFFSET             -13
133848b8605Smrg#define CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST -14
134848b8605Smrg#define CL_COMPILE_PROGRAM_FAILURE                  -15
135848b8605Smrg#define CL_LINKER_NOT_AVAILABLE                     -16
136848b8605Smrg#define CL_LINK_PROGRAM_FAILURE                     -17
137848b8605Smrg#define CL_DEVICE_PARTITION_FAILED                  -18
138848b8605Smrg#define CL_KERNEL_ARG_INFO_NOT_AVAILABLE            -19
139848b8605Smrg
140848b8605Smrg#define CL_INVALID_VALUE                            -30
141848b8605Smrg#define CL_INVALID_DEVICE_TYPE                      -31
142848b8605Smrg#define CL_INVALID_PLATFORM                         -32
143848b8605Smrg#define CL_INVALID_DEVICE                           -33
144848b8605Smrg#define CL_INVALID_CONTEXT                          -34
145848b8605Smrg#define CL_INVALID_QUEUE_PROPERTIES                 -35
146848b8605Smrg#define CL_INVALID_COMMAND_QUEUE                    -36
147848b8605Smrg#define CL_INVALID_HOST_PTR                         -37
148848b8605Smrg#define CL_INVALID_MEM_OBJECT                       -38
149848b8605Smrg#define CL_INVALID_IMAGE_FORMAT_DESCRIPTOR          -39
150848b8605Smrg#define CL_INVALID_IMAGE_SIZE                       -40
151848b8605Smrg#define CL_INVALID_SAMPLER                          -41
152848b8605Smrg#define CL_INVALID_BINARY                           -42
153848b8605Smrg#define CL_INVALID_BUILD_OPTIONS                    -43
154848b8605Smrg#define CL_INVALID_PROGRAM                          -44
155848b8605Smrg#define CL_INVALID_PROGRAM_EXECUTABLE               -45
156848b8605Smrg#define CL_INVALID_KERNEL_NAME                      -46
157848b8605Smrg#define CL_INVALID_KERNEL_DEFINITION                -47
158848b8605Smrg#define CL_INVALID_KERNEL                           -48
159848b8605Smrg#define CL_INVALID_ARG_INDEX                        -49
160848b8605Smrg#define CL_INVALID_ARG_VALUE                        -50
161848b8605Smrg#define CL_INVALID_ARG_SIZE                         -51
162848b8605Smrg#define CL_INVALID_KERNEL_ARGS                      -52
163848b8605Smrg#define CL_INVALID_WORK_DIMENSION                   -53
164848b8605Smrg#define CL_INVALID_WORK_GROUP_SIZE                  -54
165848b8605Smrg#define CL_INVALID_WORK_ITEM_SIZE                   -55
166848b8605Smrg#define CL_INVALID_GLOBAL_OFFSET                    -56
167848b8605Smrg#define CL_INVALID_EVENT_WAIT_LIST                  -57
168848b8605Smrg#define CL_INVALID_EVENT                            -58
169848b8605Smrg#define CL_INVALID_OPERATION                        -59
170848b8605Smrg#define CL_INVALID_GL_OBJECT                        -60
171848b8605Smrg#define CL_INVALID_BUFFER_SIZE                      -61
172848b8605Smrg#define CL_INVALID_MIP_LEVEL                        -62
173848b8605Smrg#define CL_INVALID_GLOBAL_WORK_SIZE                 -63
174848b8605Smrg#define CL_INVALID_PROPERTY                         -64
175848b8605Smrg#define CL_INVALID_IMAGE_DESCRIPTOR                 -65
176848b8605Smrg#define CL_INVALID_COMPILER_OPTIONS                 -66
177848b8605Smrg#define CL_INVALID_LINKER_OPTIONS                   -67
178848b8605Smrg#define CL_INVALID_DEVICE_PARTITION_COUNT           -68
179848b8605Smrg
180848b8605Smrg/* OpenCL Version */
181848b8605Smrg#define CL_VERSION_1_0                              1
182848b8605Smrg#define CL_VERSION_1_1                              1
183848b8605Smrg#define CL_VERSION_1_2                              1
184848b8605Smrg
185848b8605Smrg/* cl_bool */
186848b8605Smrg#define CL_FALSE                                    0
187848b8605Smrg#define CL_TRUE                                     1
188848b8605Smrg#define CL_BLOCKING                                 CL_TRUE
189848b8605Smrg#define CL_NON_BLOCKING                             CL_FALSE
190848b8605Smrg
191848b8605Smrg/* cl_platform_info */
192848b8605Smrg#define CL_PLATFORM_PROFILE                         0x0900
193848b8605Smrg#define CL_PLATFORM_VERSION                         0x0901
194848b8605Smrg#define CL_PLATFORM_NAME                            0x0902
195848b8605Smrg#define CL_PLATFORM_VENDOR                          0x0903
196848b8605Smrg#define CL_PLATFORM_EXTENSIONS                      0x0904
197848b8605Smrg
198848b8605Smrg/* cl_device_type - bitfield */
199848b8605Smrg#define CL_DEVICE_TYPE_DEFAULT                      (1 << 0)
200848b8605Smrg#define CL_DEVICE_TYPE_CPU                          (1 << 1)
201848b8605Smrg#define CL_DEVICE_TYPE_GPU                          (1 << 2)
202848b8605Smrg#define CL_DEVICE_TYPE_ACCELERATOR                  (1 << 3)
203848b8605Smrg#define CL_DEVICE_TYPE_CUSTOM                       (1 << 4)
204848b8605Smrg#define CL_DEVICE_TYPE_ALL                          0xFFFFFFFF
205848b8605Smrg
206848b8605Smrg/* cl_device_info */
207848b8605Smrg#define CL_DEVICE_TYPE                              0x1000
208848b8605Smrg#define CL_DEVICE_VENDOR_ID                         0x1001
209848b8605Smrg#define CL_DEVICE_MAX_COMPUTE_UNITS                 0x1002
210848b8605Smrg#define CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS          0x1003
211848b8605Smrg#define CL_DEVICE_MAX_WORK_GROUP_SIZE               0x1004
212848b8605Smrg#define CL_DEVICE_MAX_WORK_ITEM_SIZES               0x1005
213848b8605Smrg#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR       0x1006
214848b8605Smrg#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT      0x1007
215848b8605Smrg#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT        0x1008
216848b8605Smrg#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG       0x1009
217848b8605Smrg#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT      0x100A
218848b8605Smrg#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE     0x100B
219848b8605Smrg#define CL_DEVICE_MAX_CLOCK_FREQUENCY               0x100C
220848b8605Smrg#define CL_DEVICE_ADDRESS_BITS                      0x100D
221848b8605Smrg#define CL_DEVICE_MAX_READ_IMAGE_ARGS               0x100E
222848b8605Smrg#define CL_DEVICE_MAX_WRITE_IMAGE_ARGS              0x100F
223848b8605Smrg#define CL_DEVICE_MAX_MEM_ALLOC_SIZE                0x1010
224848b8605Smrg#define CL_DEVICE_IMAGE2D_MAX_WIDTH                 0x1011
225848b8605Smrg#define CL_DEVICE_IMAGE2D_MAX_HEIGHT                0x1012
226848b8605Smrg#define CL_DEVICE_IMAGE3D_MAX_WIDTH                 0x1013
227848b8605Smrg#define CL_DEVICE_IMAGE3D_MAX_HEIGHT                0x1014
228848b8605Smrg#define CL_DEVICE_IMAGE3D_MAX_DEPTH                 0x1015
229848b8605Smrg#define CL_DEVICE_IMAGE_SUPPORT                     0x1016
230848b8605Smrg#define CL_DEVICE_MAX_PARAMETER_SIZE                0x1017
231848b8605Smrg#define CL_DEVICE_MAX_SAMPLERS                      0x1018
232848b8605Smrg#define CL_DEVICE_MEM_BASE_ADDR_ALIGN               0x1019
233848b8605Smrg#define CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE          0x101A
234848b8605Smrg#define CL_DEVICE_SINGLE_FP_CONFIG                  0x101B
235848b8605Smrg#define CL_DEVICE_GLOBAL_MEM_CACHE_TYPE             0x101C
236848b8605Smrg#define CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE         0x101D
237848b8605Smrg#define CL_DEVICE_GLOBAL_MEM_CACHE_SIZE             0x101E
238848b8605Smrg#define CL_DEVICE_GLOBAL_MEM_SIZE                   0x101F
239848b8605Smrg#define CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE          0x1020
240848b8605Smrg#define CL_DEVICE_MAX_CONSTANT_ARGS                 0x1021
241848b8605Smrg#define CL_DEVICE_LOCAL_MEM_TYPE                    0x1022
242848b8605Smrg#define CL_DEVICE_LOCAL_MEM_SIZE                    0x1023
243848b8605Smrg#define CL_DEVICE_ERROR_CORRECTION_SUPPORT          0x1024
244848b8605Smrg#define CL_DEVICE_PROFILING_TIMER_RESOLUTION        0x1025
245848b8605Smrg#define CL_DEVICE_ENDIAN_LITTLE                     0x1026
246848b8605Smrg#define CL_DEVICE_AVAILABLE                         0x1027
247848b8605Smrg#define CL_DEVICE_COMPILER_AVAILABLE                0x1028
248848b8605Smrg#define CL_DEVICE_EXECUTION_CAPABILITIES            0x1029
249848b8605Smrg#define CL_DEVICE_QUEUE_PROPERTIES                  0x102A
250848b8605Smrg#define CL_DEVICE_NAME                              0x102B
251848b8605Smrg#define CL_DEVICE_VENDOR                            0x102C
252848b8605Smrg#define CL_DRIVER_VERSION                           0x102D
253848b8605Smrg#define CL_DEVICE_PROFILE                           0x102E
254848b8605Smrg#define CL_DEVICE_VERSION                           0x102F
255848b8605Smrg#define CL_DEVICE_EXTENSIONS                        0x1030
256848b8605Smrg#define CL_DEVICE_PLATFORM                          0x1031
257848b8605Smrg#define CL_DEVICE_DOUBLE_FP_CONFIG                  0x1032
258848b8605Smrg/* 0x1033 reserved for CL_DEVICE_HALF_FP_CONFIG */
259848b8605Smrg#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF       0x1034
260848b8605Smrg#define CL_DEVICE_HOST_UNIFIED_MEMORY               0x1035
261848b8605Smrg#define CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR          0x1036
262848b8605Smrg#define CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT         0x1037
263848b8605Smrg#define CL_DEVICE_NATIVE_VECTOR_WIDTH_INT           0x1038
264848b8605Smrg#define CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG          0x1039
265848b8605Smrg#define CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT         0x103A
266848b8605Smrg#define CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE        0x103B
267848b8605Smrg#define CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF          0x103C
268848b8605Smrg#define CL_DEVICE_OPENCL_C_VERSION                  0x103D
269848b8605Smrg#define CL_DEVICE_LINKER_AVAILABLE                  0x103E
270848b8605Smrg#define CL_DEVICE_BUILT_IN_KERNELS                  0x103F
271848b8605Smrg#define CL_DEVICE_IMAGE_MAX_BUFFER_SIZE             0x1040
272848b8605Smrg#define CL_DEVICE_IMAGE_MAX_ARRAY_SIZE              0x1041
273848b8605Smrg#define CL_DEVICE_PARENT_DEVICE                     0x1042
274848b8605Smrg#define CL_DEVICE_PARTITION_MAX_SUB_DEVICES         0x1043
275848b8605Smrg#define CL_DEVICE_PARTITION_PROPERTIES              0x1044
276848b8605Smrg#define CL_DEVICE_PARTITION_AFFINITY_DOMAIN         0x1045
277848b8605Smrg#define CL_DEVICE_PARTITION_TYPE                    0x1046
278848b8605Smrg#define CL_DEVICE_REFERENCE_COUNT                   0x1047
279848b8605Smrg#define CL_DEVICE_PREFERRED_INTEROP_USER_SYNC       0x1048
280848b8605Smrg#define CL_DEVICE_PRINTF_BUFFER_SIZE                0x1049
281848b8605Smrg#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT             0x104A
282848b8605Smrg#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT      0x104B
283848b8605Smrg
284848b8605Smrg/* cl_device_fp_config - bitfield */
285848b8605Smrg#define CL_FP_DENORM                                (1 << 0)
286848b8605Smrg#define CL_FP_INF_NAN                               (1 << 1)
287848b8605Smrg#define CL_FP_ROUND_TO_NEAREST                      (1 << 2)
288848b8605Smrg#define CL_FP_ROUND_TO_ZERO                         (1 << 3)
289848b8605Smrg#define CL_FP_ROUND_TO_INF                          (1 << 4)
290848b8605Smrg#define CL_FP_FMA                                   (1 << 5)
291848b8605Smrg#define CL_FP_SOFT_FLOAT                            (1 << 6)
292848b8605Smrg#define CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT         (1 << 7)
293848b8605Smrg
294848b8605Smrg/* cl_device_mem_cache_type */
295848b8605Smrg#define CL_NONE                                     0x0
296848b8605Smrg#define CL_READ_ONLY_CACHE                          0x1
297848b8605Smrg#define CL_READ_WRITE_CACHE                         0x2
298848b8605Smrg
299848b8605Smrg/* cl_device_local_mem_type */
300848b8605Smrg#define CL_LOCAL                                    0x1
301848b8605Smrg#define CL_GLOBAL                                   0x2
302848b8605Smrg
303848b8605Smrg/* cl_device_exec_capabilities - bitfield */
304848b8605Smrg#define CL_EXEC_KERNEL                              (1 << 0)
305848b8605Smrg#define CL_EXEC_NATIVE_KERNEL                       (1 << 1)
306848b8605Smrg
307848b8605Smrg/* cl_command_queue_properties - bitfield */
308848b8605Smrg#define CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE      (1 << 0)
309848b8605Smrg#define CL_QUEUE_PROFILING_ENABLE                   (1 << 1)
310848b8605Smrg
311848b8605Smrg/* cl_context_info  */
312848b8605Smrg#define CL_CONTEXT_REFERENCE_COUNT                  0x1080
313848b8605Smrg#define CL_CONTEXT_DEVICES                          0x1081
314848b8605Smrg#define CL_CONTEXT_PROPERTIES                       0x1082
315848b8605Smrg#define CL_CONTEXT_NUM_DEVICES                      0x1083
316848b8605Smrg
317848b8605Smrg/* cl_context_properties */
318848b8605Smrg#define CL_CONTEXT_PLATFORM                         0x1084
319848b8605Smrg#define CL_CONTEXT_INTEROP_USER_SYNC                0x1085
320848b8605Smrg
321848b8605Smrg/* cl_device_partition_property */
322848b8605Smrg#define CL_DEVICE_PARTITION_EQUALLY                 0x1086
323848b8605Smrg#define CL_DEVICE_PARTITION_BY_COUNTS               0x1087
324848b8605Smrg#define CL_DEVICE_PARTITION_BY_COUNTS_LIST_END      0x0
325848b8605Smrg#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN      0x1088
326848b8605Smrg
327848b8605Smrg/* cl_device_affinity_domain */
328848b8605Smrg#define CL_DEVICE_AFFINITY_DOMAIN_NUMA                     (1 << 0)
329848b8605Smrg#define CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE                 (1 << 1)
330848b8605Smrg#define CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE                 (1 << 2)
331848b8605Smrg#define CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE                 (1 << 3)
332848b8605Smrg#define CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE                 (1 << 4)
333848b8605Smrg#define CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE       (1 << 5)
334848b8605Smrg
335848b8605Smrg/* cl_command_queue_info */
336848b8605Smrg#define CL_QUEUE_CONTEXT                            0x1090
337848b8605Smrg#define CL_QUEUE_DEVICE                             0x1091
338848b8605Smrg#define CL_QUEUE_REFERENCE_COUNT                    0x1092
339848b8605Smrg#define CL_QUEUE_PROPERTIES                         0x1093
340848b8605Smrg
341848b8605Smrg/* cl_mem_flags - bitfield */
342848b8605Smrg#define CL_MEM_READ_WRITE                           (1 << 0)
343848b8605Smrg#define CL_MEM_WRITE_ONLY                           (1 << 1)
344848b8605Smrg#define CL_MEM_READ_ONLY                            (1 << 2)
345848b8605Smrg#define CL_MEM_USE_HOST_PTR                         (1 << 3)
346848b8605Smrg#define CL_MEM_ALLOC_HOST_PTR                       (1 << 4)
347848b8605Smrg#define CL_MEM_COPY_HOST_PTR                        (1 << 5)
348848b8605Smrg/* reserved                                         (1 << 6)    */
349848b8605Smrg#define CL_MEM_HOST_WRITE_ONLY                      (1 << 7)
350848b8605Smrg#define CL_MEM_HOST_READ_ONLY                       (1 << 8)
351848b8605Smrg#define CL_MEM_HOST_NO_ACCESS                       (1 << 9)
352848b8605Smrg
353848b8605Smrg/* cl_mem_migration_flags - bitfield */
354848b8605Smrg#define CL_MIGRATE_MEM_OBJECT_HOST                  (1 << 0)
355848b8605Smrg#define CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED     (1 << 1)
356848b8605Smrg
357848b8605Smrg/* cl_channel_order */
358848b8605Smrg#define CL_R                                        0x10B0
359848b8605Smrg#define CL_A                                        0x10B1
360848b8605Smrg#define CL_RG                                       0x10B2
361848b8605Smrg#define CL_RA                                       0x10B3
362848b8605Smrg#define CL_RGB                                      0x10B4
363848b8605Smrg#define CL_RGBA                                     0x10B5
364848b8605Smrg#define CL_BGRA                                     0x10B6
365848b8605Smrg#define CL_ARGB                                     0x10B7
366848b8605Smrg#define CL_INTENSITY                                0x10B8
367848b8605Smrg#define CL_LUMINANCE                                0x10B9
368848b8605Smrg#define CL_Rx                                       0x10BA
369848b8605Smrg#define CL_RGx                                      0x10BB
370848b8605Smrg#define CL_RGBx                                     0x10BC
371848b8605Smrg#define CL_DEPTH                                    0x10BD
372848b8605Smrg#define CL_DEPTH_STENCIL                            0x10BE
373848b8605Smrg
374848b8605Smrg/* cl_channel_type */
375848b8605Smrg#define CL_SNORM_INT8                               0x10D0
376848b8605Smrg#define CL_SNORM_INT16                              0x10D1
377848b8605Smrg#define CL_UNORM_INT8                               0x10D2
378848b8605Smrg#define CL_UNORM_INT16                              0x10D3
379848b8605Smrg#define CL_UNORM_SHORT_565                          0x10D4
380848b8605Smrg#define CL_UNORM_SHORT_555                          0x10D5
381848b8605Smrg#define CL_UNORM_INT_101010                         0x10D6
382848b8605Smrg#define CL_SIGNED_INT8                              0x10D7
383848b8605Smrg#define CL_SIGNED_INT16                             0x10D8
384848b8605Smrg#define CL_SIGNED_INT32                             0x10D9
385848b8605Smrg#define CL_UNSIGNED_INT8                            0x10DA
386848b8605Smrg#define CL_UNSIGNED_INT16                           0x10DB
387848b8605Smrg#define CL_UNSIGNED_INT32                           0x10DC
388848b8605Smrg#define CL_HALF_FLOAT                               0x10DD
389848b8605Smrg#define CL_FLOAT                                    0x10DE
390848b8605Smrg#define CL_UNORM_INT24                              0x10DF
391848b8605Smrg
392848b8605Smrg/* cl_mem_object_type */
393848b8605Smrg#define CL_MEM_OBJECT_BUFFER                        0x10F0
394848b8605Smrg#define CL_MEM_OBJECT_IMAGE2D                       0x10F1
395848b8605Smrg#define CL_MEM_OBJECT_IMAGE3D                       0x10F2
396848b8605Smrg#define CL_MEM_OBJECT_IMAGE2D_ARRAY                 0x10F3
397848b8605Smrg#define CL_MEM_OBJECT_IMAGE1D                       0x10F4
398848b8605Smrg#define CL_MEM_OBJECT_IMAGE1D_ARRAY                 0x10F5
399848b8605Smrg#define CL_MEM_OBJECT_IMAGE1D_BUFFER                0x10F6
400848b8605Smrg
401848b8605Smrg/* cl_mem_info */
402848b8605Smrg#define CL_MEM_TYPE                                 0x1100
403848b8605Smrg#define CL_MEM_FLAGS                                0x1101
404848b8605Smrg#define CL_MEM_SIZE                                 0x1102
405848b8605Smrg#define CL_MEM_HOST_PTR                             0x1103
406848b8605Smrg#define CL_MEM_MAP_COUNT                            0x1104
407848b8605Smrg#define CL_MEM_REFERENCE_COUNT                      0x1105
408848b8605Smrg#define CL_MEM_CONTEXT                              0x1106
409848b8605Smrg#define CL_MEM_ASSOCIATED_MEMOBJECT                 0x1107
410848b8605Smrg#define CL_MEM_OFFSET                               0x1108
411848b8605Smrg
412848b8605Smrg/* cl_image_info */
413848b8605Smrg#define CL_IMAGE_FORMAT                             0x1110
414848b8605Smrg#define CL_IMAGE_ELEMENT_SIZE                       0x1111
415848b8605Smrg#define CL_IMAGE_ROW_PITCH                          0x1112
416848b8605Smrg#define CL_IMAGE_SLICE_PITCH                        0x1113
417848b8605Smrg#define CL_IMAGE_WIDTH                              0x1114
418848b8605Smrg#define CL_IMAGE_HEIGHT                             0x1115
419848b8605Smrg#define CL_IMAGE_DEPTH                              0x1116
420848b8605Smrg#define CL_IMAGE_ARRAY_SIZE                         0x1117
421848b8605Smrg#define CL_IMAGE_BUFFER                             0x1118
422848b8605Smrg#define CL_IMAGE_NUM_MIP_LEVELS                     0x1119
423848b8605Smrg#define CL_IMAGE_NUM_SAMPLES                        0x111A
424848b8605Smrg
425848b8605Smrg/* cl_addressing_mode */
426848b8605Smrg#define CL_ADDRESS_NONE                             0x1130
427848b8605Smrg#define CL_ADDRESS_CLAMP_TO_EDGE                    0x1131
428848b8605Smrg#define CL_ADDRESS_CLAMP                            0x1132
429848b8605Smrg#define CL_ADDRESS_REPEAT                           0x1133
430848b8605Smrg#define CL_ADDRESS_MIRRORED_REPEAT                  0x1134
431848b8605Smrg
432848b8605Smrg/* cl_filter_mode */
433848b8605Smrg#define CL_FILTER_NEAREST                           0x1140
434848b8605Smrg#define CL_FILTER_LINEAR                            0x1141
435848b8605Smrg
436848b8605Smrg/* cl_sampler_info */
437848b8605Smrg#define CL_SAMPLER_REFERENCE_COUNT                  0x1150
438848b8605Smrg#define CL_SAMPLER_CONTEXT                          0x1151
439848b8605Smrg#define CL_SAMPLER_NORMALIZED_COORDS                0x1152
440848b8605Smrg#define CL_SAMPLER_ADDRESSING_MODE                  0x1153
441848b8605Smrg#define CL_SAMPLER_FILTER_MODE                      0x1154
442848b8605Smrg
443848b8605Smrg/* cl_map_flags - bitfield */
444848b8605Smrg#define CL_MAP_READ                                 (1 << 0)
445848b8605Smrg#define CL_MAP_WRITE                                (1 << 1)
446848b8605Smrg#define CL_MAP_WRITE_INVALIDATE_REGION              (1 << 2)
447848b8605Smrg
448848b8605Smrg/* cl_program_info */
449848b8605Smrg#define CL_PROGRAM_REFERENCE_COUNT                  0x1160
450848b8605Smrg#define CL_PROGRAM_CONTEXT                          0x1161
451848b8605Smrg#define CL_PROGRAM_NUM_DEVICES                      0x1162
452848b8605Smrg#define CL_PROGRAM_DEVICES                          0x1163
453848b8605Smrg#define CL_PROGRAM_SOURCE                           0x1164
454848b8605Smrg#define CL_PROGRAM_BINARY_SIZES                     0x1165
455848b8605Smrg#define CL_PROGRAM_BINARIES                         0x1166
456848b8605Smrg#define CL_PROGRAM_NUM_KERNELS                      0x1167
457848b8605Smrg#define CL_PROGRAM_KERNEL_NAMES                     0x1168
458848b8605Smrg
459848b8605Smrg/* cl_program_build_info */
460848b8605Smrg#define CL_PROGRAM_BUILD_STATUS                     0x1181
461848b8605Smrg#define CL_PROGRAM_BUILD_OPTIONS                    0x1182
462848b8605Smrg#define CL_PROGRAM_BUILD_LOG                        0x1183
463848b8605Smrg#define CL_PROGRAM_BINARY_TYPE                      0x1184
464848b8605Smrg
465848b8605Smrg/* cl_program_binary_type */
466848b8605Smrg#define CL_PROGRAM_BINARY_TYPE_NONE                 0x0
467848b8605Smrg#define CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT      0x1
468848b8605Smrg#define CL_PROGRAM_BINARY_TYPE_LIBRARY              0x2
469848b8605Smrg#define CL_PROGRAM_BINARY_TYPE_EXECUTABLE           0x4
470848b8605Smrg
471848b8605Smrg/* cl_build_status */
472848b8605Smrg#define CL_BUILD_SUCCESS                            0
473848b8605Smrg#define CL_BUILD_NONE                               -1
474848b8605Smrg#define CL_BUILD_ERROR                              -2
475848b8605Smrg#define CL_BUILD_IN_PROGRESS                        -3
476848b8605Smrg
477848b8605Smrg/* cl_kernel_info */
478848b8605Smrg#define CL_KERNEL_FUNCTION_NAME                     0x1190
479848b8605Smrg#define CL_KERNEL_NUM_ARGS                          0x1191
480848b8605Smrg#define CL_KERNEL_REFERENCE_COUNT                   0x1192
481848b8605Smrg#define CL_KERNEL_CONTEXT                           0x1193
482848b8605Smrg#define CL_KERNEL_PROGRAM                           0x1194
483848b8605Smrg#define CL_KERNEL_ATTRIBUTES                        0x1195
484848b8605Smrg
485848b8605Smrg/* cl_kernel_arg_info */
486848b8605Smrg#define CL_KERNEL_ARG_ADDRESS_QUALIFIER             0x1196
487848b8605Smrg#define CL_KERNEL_ARG_ACCESS_QUALIFIER              0x1197
488848b8605Smrg#define CL_KERNEL_ARG_TYPE_NAME                     0x1198
489848b8605Smrg#define CL_KERNEL_ARG_TYPE_QUALIFIER                0x1199
490848b8605Smrg#define CL_KERNEL_ARG_NAME                          0x119A
491848b8605Smrg
492848b8605Smrg/* cl_kernel_arg_address_qualifier */
493848b8605Smrg#define CL_KERNEL_ARG_ADDRESS_GLOBAL                0x119B
494848b8605Smrg#define CL_KERNEL_ARG_ADDRESS_LOCAL                 0x119C
495848b8605Smrg#define CL_KERNEL_ARG_ADDRESS_CONSTANT              0x119D
496848b8605Smrg#define CL_KERNEL_ARG_ADDRESS_PRIVATE               0x119E
497848b8605Smrg
498848b8605Smrg/* cl_kernel_arg_access_qualifier */
499848b8605Smrg#define CL_KERNEL_ARG_ACCESS_READ_ONLY              0x11A0
500848b8605Smrg#define CL_KERNEL_ARG_ACCESS_WRITE_ONLY             0x11A1
501848b8605Smrg#define CL_KERNEL_ARG_ACCESS_READ_WRITE             0x11A2
502848b8605Smrg#define CL_KERNEL_ARG_ACCESS_NONE                   0x11A3
503848b8605Smrg
504848b8605Smrg/* cl_kernel_arg_type_qualifer */
505848b8605Smrg#define CL_KERNEL_ARG_TYPE_NONE                     0
506848b8605Smrg#define CL_KERNEL_ARG_TYPE_CONST                    (1 << 0)
507848b8605Smrg#define CL_KERNEL_ARG_TYPE_RESTRICT                 (1 << 1)
508848b8605Smrg#define CL_KERNEL_ARG_TYPE_VOLATILE                 (1 << 2)
509848b8605Smrg
510848b8605Smrg/* cl_kernel_work_group_info */
511848b8605Smrg#define CL_KERNEL_WORK_GROUP_SIZE                   0x11B0
512848b8605Smrg#define CL_KERNEL_COMPILE_WORK_GROUP_SIZE           0x11B1
513848b8605Smrg#define CL_KERNEL_LOCAL_MEM_SIZE                    0x11B2
514848b8605Smrg#define CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE 0x11B3
515848b8605Smrg#define CL_KERNEL_PRIVATE_MEM_SIZE                  0x11B4
516848b8605Smrg#define CL_KERNEL_GLOBAL_WORK_SIZE                  0x11B5
517848b8605Smrg
518848b8605Smrg/* cl_event_info  */
519848b8605Smrg#define CL_EVENT_COMMAND_QUEUE                      0x11D0
520848b8605Smrg#define CL_EVENT_COMMAND_TYPE                       0x11D1
521848b8605Smrg#define CL_EVENT_REFERENCE_COUNT                    0x11D2
522848b8605Smrg#define CL_EVENT_COMMAND_EXECUTION_STATUS           0x11D3
523848b8605Smrg#define CL_EVENT_CONTEXT                            0x11D4
524848b8605Smrg
525848b8605Smrg/* cl_command_type */
526848b8605Smrg#define CL_COMMAND_NDRANGE_KERNEL                   0x11F0
527848b8605Smrg#define CL_COMMAND_TASK                             0x11F1
528848b8605Smrg#define CL_COMMAND_NATIVE_KERNEL                    0x11F2
529848b8605Smrg#define CL_COMMAND_READ_BUFFER                      0x11F3
530848b8605Smrg#define CL_COMMAND_WRITE_BUFFER                     0x11F4
531848b8605Smrg#define CL_COMMAND_COPY_BUFFER                      0x11F5
532848b8605Smrg#define CL_COMMAND_READ_IMAGE                       0x11F6
533848b8605Smrg#define CL_COMMAND_WRITE_IMAGE                      0x11F7
534848b8605Smrg#define CL_COMMAND_COPY_IMAGE                       0x11F8
535848b8605Smrg#define CL_COMMAND_COPY_IMAGE_TO_BUFFER             0x11F9
536848b8605Smrg#define CL_COMMAND_COPY_BUFFER_TO_IMAGE             0x11FA
537848b8605Smrg#define CL_COMMAND_MAP_BUFFER                       0x11FB
538848b8605Smrg#define CL_COMMAND_MAP_IMAGE                        0x11FC
539848b8605Smrg#define CL_COMMAND_UNMAP_MEM_OBJECT                 0x11FD
540848b8605Smrg#define CL_COMMAND_MARKER                           0x11FE
541848b8605Smrg#define CL_COMMAND_ACQUIRE_GL_OBJECTS               0x11FF
542848b8605Smrg#define CL_COMMAND_RELEASE_GL_OBJECTS               0x1200
543848b8605Smrg#define CL_COMMAND_READ_BUFFER_RECT                 0x1201
544848b8605Smrg#define CL_COMMAND_WRITE_BUFFER_RECT                0x1202
545848b8605Smrg#define CL_COMMAND_COPY_BUFFER_RECT                 0x1203
546848b8605Smrg#define CL_COMMAND_USER                             0x1204
547848b8605Smrg#define CL_COMMAND_BARRIER                          0x1205
548848b8605Smrg#define CL_COMMAND_MIGRATE_MEM_OBJECTS              0x1206
549848b8605Smrg#define CL_COMMAND_FILL_BUFFER                      0x1207
550848b8605Smrg#define CL_COMMAND_FILL_IMAGE                       0x1208
551848b8605Smrg
552848b8605Smrg/* command execution status */
553848b8605Smrg#define CL_COMPLETE                                 0x0
554848b8605Smrg#define CL_RUNNING                                  0x1
555848b8605Smrg#define CL_SUBMITTED                                0x2
556848b8605Smrg#define CL_QUEUED                                   0x3
557848b8605Smrg
558848b8605Smrg/* cl_buffer_create_type  */
559848b8605Smrg#define CL_BUFFER_CREATE_TYPE_REGION                0x1220
560848b8605Smrg
561848b8605Smrg/* cl_profiling_info  */
562848b8605Smrg#define CL_PROFILING_COMMAND_QUEUED                 0x1280
563848b8605Smrg#define CL_PROFILING_COMMAND_SUBMIT                 0x1281
564848b8605Smrg#define CL_PROFILING_COMMAND_START                  0x1282
565848b8605Smrg#define CL_PROFILING_COMMAND_END                    0x1283
566848b8605Smrg
567848b8605Smrg/********************************************************************************************************/
568848b8605Smrg
569848b8605Smrg/* Platform API */
570848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
571848b8605SmrgclGetPlatformIDs(cl_uint          /* num_entries */,
572848b8605Smrg                 cl_platform_id * /* platforms */,
573848b8605Smrg                 cl_uint *        /* num_platforms */) CL_API_SUFFIX__VERSION_1_0;
574848b8605Smrg
575848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
576848b8605SmrgclGetPlatformInfo(cl_platform_id   /* platform */,
577848b8605Smrg                  cl_platform_info /* param_name */,
578848b8605Smrg                  size_t           /* param_value_size */,
579848b8605Smrg                  void *           /* param_value */,
580848b8605Smrg                  size_t *         /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
581848b8605Smrg
582848b8605Smrg/* Device APIs */
583848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
584848b8605SmrgclGetDeviceIDs(cl_platform_id   /* platform */,
585848b8605Smrg               cl_device_type   /* device_type */,
586848b8605Smrg               cl_uint          /* num_entries */,
587848b8605Smrg               cl_device_id *   /* devices */,
588848b8605Smrg               cl_uint *        /* num_devices */) CL_API_SUFFIX__VERSION_1_0;
589848b8605Smrg
590848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
591848b8605SmrgclGetDeviceInfo(cl_device_id    /* device */,
592848b8605Smrg                cl_device_info  /* param_name */,
593848b8605Smrg                size_t          /* param_value_size */,
594848b8605Smrg                void *          /* param_value */,
595848b8605Smrg                size_t *        /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
596848b8605Smrg
597848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
598848b8605SmrgclCreateSubDevices(cl_device_id                         /* in_device */,
599848b8605Smrg                   const cl_device_partition_property * /* properties */,
600848b8605Smrg                   cl_uint                              /* num_devices */,
601848b8605Smrg                   cl_device_id *                       /* out_devices */,
602848b8605Smrg                   cl_uint *                            /* num_devices_ret */) CL_API_SUFFIX__VERSION_1_2;
603848b8605Smrg
604848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
605848b8605SmrgclRetainDevice(cl_device_id /* device */) CL_API_SUFFIX__VERSION_1_2;
606848b8605Smrg
607848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
608848b8605SmrgclReleaseDevice(cl_device_id /* device */) CL_API_SUFFIX__VERSION_1_2;
609848b8605Smrg
610848b8605Smrg/* Context APIs  */
611848b8605Smrgextern CL_API_ENTRY cl_context CL_API_CALL
612848b8605SmrgclCreateContext(const cl_context_properties * /* properties */,
613848b8605Smrg                cl_uint                 /* num_devices */,
614848b8605Smrg                const cl_device_id *    /* devices */,
615848b8605Smrg                void (CL_CALLBACK * /* pfn_notify */)(const char *, const void *, size_t, void *),
616848b8605Smrg                void *                  /* user_data */,
617848b8605Smrg                cl_int *                /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
618848b8605Smrg
619848b8605Smrgextern CL_API_ENTRY cl_context CL_API_CALL
620848b8605SmrgclCreateContextFromType(const cl_context_properties * /* properties */,
621848b8605Smrg                        cl_device_type          /* device_type */,
622848b8605Smrg                        void (CL_CALLBACK *     /* pfn_notify*/ )(const char *, const void *, size_t, void *),
623848b8605Smrg                        void *                  /* user_data */,
624848b8605Smrg                        cl_int *                /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
625848b8605Smrg
626848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
627848b8605SmrgclRetainContext(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0;
628848b8605Smrg
629848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
630848b8605SmrgclReleaseContext(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0;
631848b8605Smrg
632848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
633848b8605SmrgclGetContextInfo(cl_context         /* context */,
634848b8605Smrg                 cl_context_info    /* param_name */,
635848b8605Smrg                 size_t             /* param_value_size */,
636848b8605Smrg                 void *             /* param_value */,
637848b8605Smrg                 size_t *           /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
638848b8605Smrg
639848b8605Smrg/* Command Queue APIs */
640848b8605Smrgextern CL_API_ENTRY cl_command_queue CL_API_CALL
641848b8605SmrgclCreateCommandQueue(cl_context                     /* context */,
642848b8605Smrg                     cl_device_id                   /* device */,
643848b8605Smrg                     cl_command_queue_properties    /* properties */,
644848b8605Smrg                     cl_int *                       /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
645848b8605Smrg
646848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
647848b8605SmrgclRetainCommandQueue(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;
648848b8605Smrg
649848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
650848b8605SmrgclReleaseCommandQueue(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;
651848b8605Smrg
652848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
653848b8605SmrgclGetCommandQueueInfo(cl_command_queue      /* command_queue */,
654848b8605Smrg                      cl_command_queue_info /* param_name */,
655848b8605Smrg                      size_t                /* param_value_size */,
656848b8605Smrg                      void *                /* param_value */,
657848b8605Smrg                      size_t *              /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
658848b8605Smrg
659848b8605Smrg/* Memory Object APIs */
660848b8605Smrgextern CL_API_ENTRY cl_mem CL_API_CALL
661848b8605SmrgclCreateBuffer(cl_context   /* context */,
662848b8605Smrg               cl_mem_flags /* flags */,
663848b8605Smrg               size_t       /* size */,
664848b8605Smrg               void *       /* host_ptr */,
665848b8605Smrg               cl_int *     /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
666848b8605Smrg
667848b8605Smrgextern CL_API_ENTRY cl_mem CL_API_CALL
668848b8605SmrgclCreateSubBuffer(cl_mem                   /* buffer */,
669848b8605Smrg                  cl_mem_flags             /* flags */,
670848b8605Smrg                  cl_buffer_create_type    /* buffer_create_type */,
671848b8605Smrg                  const void *             /* buffer_create_info */,
672848b8605Smrg                  cl_int *                 /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1;
673848b8605Smrg
674848b8605Smrgextern CL_API_ENTRY cl_mem CL_API_CALL
675848b8605SmrgclCreateImage(cl_context              /* context */,
676848b8605Smrg              cl_mem_flags            /* flags */,
677848b8605Smrg              const cl_image_format * /* image_format */,
678848b8605Smrg              const cl_image_desc *   /* image_desc */,
679848b8605Smrg              void *                  /* host_ptr */,
680848b8605Smrg              cl_int *                /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2;
681848b8605Smrg
682848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
683848b8605SmrgclRetainMemObject(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0;
684848b8605Smrg
685848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
686848b8605SmrgclReleaseMemObject(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0;
687848b8605Smrg
688848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
689848b8605SmrgclGetSupportedImageFormats(cl_context           /* context */,
690848b8605Smrg                           cl_mem_flags         /* flags */,
691848b8605Smrg                           cl_mem_object_type   /* image_type */,
692848b8605Smrg                           cl_uint              /* num_entries */,
693848b8605Smrg                           cl_image_format *    /* image_formats */,
694848b8605Smrg                           cl_uint *            /* num_image_formats */) CL_API_SUFFIX__VERSION_1_0;
695848b8605Smrg
696848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
697848b8605SmrgclGetMemObjectInfo(cl_mem           /* memobj */,
698848b8605Smrg                   cl_mem_info      /* param_name */,
699848b8605Smrg                   size_t           /* param_value_size */,
700848b8605Smrg                   void *           /* param_value */,
701848b8605Smrg                   size_t *         /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
702848b8605Smrg
703848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
704848b8605SmrgclGetImageInfo(cl_mem           /* image */,
705848b8605Smrg               cl_image_info    /* param_name */,
706848b8605Smrg               size_t           /* param_value_size */,
707848b8605Smrg               void *           /* param_value */,
708848b8605Smrg               size_t *         /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
709848b8605Smrg
710848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
711848b8605SmrgclSetMemObjectDestructorCallback(  cl_mem /* memobj */,
712848b8605Smrg                                    void (CL_CALLBACK * /*pfn_notify*/)( cl_mem /* memobj */, void* /*user_data*/),
713848b8605Smrg                                    void * /*user_data */ )             CL_API_SUFFIX__VERSION_1_1;
714848b8605Smrg
715848b8605Smrg/* Sampler APIs */
716848b8605Smrgextern CL_API_ENTRY cl_sampler CL_API_CALL
717848b8605SmrgclCreateSampler(cl_context          /* context */,
718848b8605Smrg                cl_bool             /* normalized_coords */,
719848b8605Smrg                cl_addressing_mode  /* addressing_mode */,
720848b8605Smrg                cl_filter_mode      /* filter_mode */,
721848b8605Smrg                cl_int *            /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
722848b8605Smrg
723848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
724848b8605SmrgclRetainSampler(cl_sampler /* sampler */) CL_API_SUFFIX__VERSION_1_0;
725848b8605Smrg
726848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
727848b8605SmrgclReleaseSampler(cl_sampler /* sampler */) CL_API_SUFFIX__VERSION_1_0;
728848b8605Smrg
729848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
730848b8605SmrgclGetSamplerInfo(cl_sampler         /* sampler */,
731848b8605Smrg                 cl_sampler_info    /* param_name */,
732848b8605Smrg                 size_t             /* param_value_size */,
733848b8605Smrg                 void *             /* param_value */,
734848b8605Smrg                 size_t *           /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
735848b8605Smrg
736848b8605Smrg/* Program Object APIs  */
737848b8605Smrgextern CL_API_ENTRY cl_program CL_API_CALL
738848b8605SmrgclCreateProgramWithSource(cl_context        /* context */,
739848b8605Smrg                          cl_uint           /* count */,
740848b8605Smrg                          const char **     /* strings */,
741848b8605Smrg                          const size_t *    /* lengths */,
742848b8605Smrg                          cl_int *          /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
743848b8605Smrg
744848b8605Smrgextern CL_API_ENTRY cl_program CL_API_CALL
745848b8605SmrgclCreateProgramWithBinary(cl_context                     /* context */,
746848b8605Smrg                          cl_uint                        /* num_devices */,
747848b8605Smrg                          const cl_device_id *           /* device_list */,
748848b8605Smrg                          const size_t *                 /* lengths */,
749848b8605Smrg                          const unsigned char **         /* binaries */,
750848b8605Smrg                          cl_int *                       /* binary_status */,
751848b8605Smrg                          cl_int *                       /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
752848b8605Smrg
753848b8605Smrgextern CL_API_ENTRY cl_program CL_API_CALL
754848b8605SmrgclCreateProgramWithBuiltInKernels(cl_context            /* context */,
755848b8605Smrg                                  cl_uint               /* num_devices */,
756848b8605Smrg                                  const cl_device_id *  /* device_list */,
757848b8605Smrg                                  const char *          /* kernel_names */,
758848b8605Smrg                                  cl_int *              /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2;
759848b8605Smrg
760848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
761848b8605SmrgclRetainProgram(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0;
762848b8605Smrg
763848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
764848b8605SmrgclReleaseProgram(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0;
765848b8605Smrg
766848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
767848b8605SmrgclBuildProgram(cl_program           /* program */,
768848b8605Smrg               cl_uint              /* num_devices */,
769848b8605Smrg               const cl_device_id * /* device_list */,
770848b8605Smrg               const char *         /* options */,
771848b8605Smrg               void (CL_CALLBACK *  /* pfn_notify */)(cl_program /* program */, void * /* user_data */),
772848b8605Smrg               void *               /* user_data */) CL_API_SUFFIX__VERSION_1_0;
773848b8605Smrg
774848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
775848b8605SmrgclCompileProgram(cl_program           /* program */,
776848b8605Smrg                 cl_uint              /* num_devices */,
777848b8605Smrg                 const cl_device_id * /* device_list */,
778848b8605Smrg                 const char *         /* options */,
779848b8605Smrg                 cl_uint              /* num_input_headers */,
780848b8605Smrg                 const cl_program *   /* input_headers */,
781848b8605Smrg                 const char **        /* header_include_names */,
782848b8605Smrg                 void (CL_CALLBACK *  /* pfn_notify */)(cl_program /* program */, void * /* user_data */),
783848b8605Smrg                 void *               /* user_data */) CL_API_SUFFIX__VERSION_1_2;
784848b8605Smrg
785848b8605Smrgextern CL_API_ENTRY cl_program CL_API_CALL
786848b8605SmrgclLinkProgram(cl_context           /* context */,
787848b8605Smrg              cl_uint              /* num_devices */,
788848b8605Smrg              const cl_device_id * /* device_list */,
789848b8605Smrg              const char *         /* options */,
790848b8605Smrg              cl_uint              /* num_input_programs */,
791848b8605Smrg              const cl_program *   /* input_programs */,
792848b8605Smrg              void (CL_CALLBACK *  /* pfn_notify */)(cl_program /* program */, void * /* user_data */),
793848b8605Smrg              void *               /* user_data */,
794848b8605Smrg              cl_int *             /* errcode_ret */ ) CL_API_SUFFIX__VERSION_1_2;
795848b8605Smrg
796848b8605Smrg
797848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
798848b8605SmrgclUnloadPlatformCompiler(cl_platform_id /* platform */) CL_API_SUFFIX__VERSION_1_2;
799848b8605Smrg
800848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
801848b8605SmrgclGetProgramInfo(cl_program         /* program */,
802848b8605Smrg                 cl_program_info    /* param_name */,
803848b8605Smrg                 size_t             /* param_value_size */,
804848b8605Smrg                 void *             /* param_value */,
805848b8605Smrg                 size_t *           /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
806848b8605Smrg
807848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
808848b8605SmrgclGetProgramBuildInfo(cl_program            /* program */,
809848b8605Smrg                      cl_device_id          /* device */,
810848b8605Smrg                      cl_program_build_info /* param_name */,
811848b8605Smrg                      size_t                /* param_value_size */,
812848b8605Smrg                      void *                /* param_value */,
813848b8605Smrg                      size_t *              /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
814848b8605Smrg
815848b8605Smrg/* Kernel Object APIs */
816848b8605Smrgextern CL_API_ENTRY cl_kernel CL_API_CALL
817848b8605SmrgclCreateKernel(cl_program      /* program */,
818848b8605Smrg               const char *    /* kernel_name */,
819848b8605Smrg               cl_int *        /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
820848b8605Smrg
821848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
822848b8605SmrgclCreateKernelsInProgram(cl_program     /* program */,
823848b8605Smrg                         cl_uint        /* num_kernels */,
824848b8605Smrg                         cl_kernel *    /* kernels */,
825848b8605Smrg                         cl_uint *      /* num_kernels_ret */) CL_API_SUFFIX__VERSION_1_0;
826848b8605Smrg
827848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
828848b8605SmrgclRetainKernel(cl_kernel    /* kernel */) CL_API_SUFFIX__VERSION_1_0;
829848b8605Smrg
830848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
831848b8605SmrgclReleaseKernel(cl_kernel   /* kernel */) CL_API_SUFFIX__VERSION_1_0;
832848b8605Smrg
833848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
834848b8605SmrgclSetKernelArg(cl_kernel    /* kernel */,
835848b8605Smrg               cl_uint      /* arg_index */,
836848b8605Smrg               size_t       /* arg_size */,
837848b8605Smrg               const void * /* arg_value */) CL_API_SUFFIX__VERSION_1_0;
838848b8605Smrg
839848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
840848b8605SmrgclGetKernelInfo(cl_kernel       /* kernel */,
841848b8605Smrg                cl_kernel_info  /* param_name */,
842848b8605Smrg                size_t          /* param_value_size */,
843848b8605Smrg                void *          /* param_value */,
844848b8605Smrg                size_t *        /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
845848b8605Smrg
846848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
847848b8605SmrgclGetKernelArgInfo(cl_kernel       /* kernel */,
848848b8605Smrg                   cl_uint         /* arg_indx */,
849848b8605Smrg                   cl_kernel_arg_info  /* param_name */,
850848b8605Smrg                   size_t          /* param_value_size */,
851848b8605Smrg                   void *          /* param_value */,
852848b8605Smrg                   size_t *        /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_2;
853848b8605Smrg
854848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
855848b8605SmrgclGetKernelWorkGroupInfo(cl_kernel                  /* kernel */,
856848b8605Smrg                         cl_device_id               /* device */,
857848b8605Smrg                         cl_kernel_work_group_info  /* param_name */,
858848b8605Smrg                         size_t                     /* param_value_size */,
859848b8605Smrg                         void *                     /* param_value */,
860848b8605Smrg                         size_t *                   /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
861848b8605Smrg
862848b8605Smrg/* Event Object APIs */
863848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
864848b8605SmrgclWaitForEvents(cl_uint             /* num_events */,
865848b8605Smrg                const cl_event *    /* event_list */) CL_API_SUFFIX__VERSION_1_0;
866848b8605Smrg
867848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
868848b8605SmrgclGetEventInfo(cl_event         /* event */,
869848b8605Smrg               cl_event_info    /* param_name */,
870848b8605Smrg               size_t           /* param_value_size */,
871848b8605Smrg               void *           /* param_value */,
872848b8605Smrg               size_t *         /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
873848b8605Smrg
874848b8605Smrgextern CL_API_ENTRY cl_event CL_API_CALL
875848b8605SmrgclCreateUserEvent(cl_context    /* context */,
876848b8605Smrg                  cl_int *      /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1;
877848b8605Smrg
878848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
879848b8605SmrgclRetainEvent(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0;
880848b8605Smrg
881848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
882848b8605SmrgclReleaseEvent(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0;
883848b8605Smrg
884848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
885848b8605SmrgclSetUserEventStatus(cl_event   /* event */,
886848b8605Smrg                     cl_int     /* execution_status */) CL_API_SUFFIX__VERSION_1_1;
887848b8605Smrg
888848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
889848b8605SmrgclSetEventCallback( cl_event    /* event */,
890848b8605Smrg                    cl_int      /* command_exec_callback_type */,
891848b8605Smrg                    void (CL_CALLBACK * /* pfn_notify */)(cl_event, cl_int, void *),
892848b8605Smrg                    void *      /* user_data */) CL_API_SUFFIX__VERSION_1_1;
893848b8605Smrg
894848b8605Smrg/* Profiling APIs */
895848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
896848b8605SmrgclGetEventProfilingInfo(cl_event            /* event */,
897848b8605Smrg                        cl_profiling_info   /* param_name */,
898848b8605Smrg                        size_t              /* param_value_size */,
899848b8605Smrg                        void *              /* param_value */,
900848b8605Smrg                        size_t *            /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
901848b8605Smrg
902848b8605Smrg/* Flush and Finish APIs */
903848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
904848b8605SmrgclFlush(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;
905848b8605Smrg
906848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
907848b8605SmrgclFinish(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;
908848b8605Smrg
909848b8605Smrg/* Enqueued Commands APIs */
910848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
911848b8605SmrgclEnqueueReadBuffer(cl_command_queue    /* command_queue */,
912848b8605Smrg                    cl_mem              /* buffer */,
913848b8605Smrg                    cl_bool             /* blocking_read */,
914848b8605Smrg                    size_t              /* offset */,
915848b8605Smrg                    size_t              /* size */,
916848b8605Smrg                    void *              /* ptr */,
917848b8605Smrg                    cl_uint             /* num_events_in_wait_list */,
918848b8605Smrg                    const cl_event *    /* event_wait_list */,
919848b8605Smrg                    cl_event *          /* event */) CL_API_SUFFIX__VERSION_1_0;
920848b8605Smrg
921848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
922848b8605SmrgclEnqueueReadBufferRect(cl_command_queue    /* command_queue */,
923848b8605Smrg                        cl_mem              /* buffer */,
924848b8605Smrg                        cl_bool             /* blocking_read */,
925848b8605Smrg                        const size_t *      /* buffer_offset */,
926848b8605Smrg                        const size_t *      /* host_offset */,
927848b8605Smrg                        const size_t *      /* region */,
928848b8605Smrg                        size_t              /* buffer_row_pitch */,
929848b8605Smrg                        size_t              /* buffer_slice_pitch */,
930848b8605Smrg                        size_t              /* host_row_pitch */,
931848b8605Smrg                        size_t              /* host_slice_pitch */,
932848b8605Smrg                        void *              /* ptr */,
933848b8605Smrg                        cl_uint             /* num_events_in_wait_list */,
934848b8605Smrg                        const cl_event *    /* event_wait_list */,
935848b8605Smrg                        cl_event *          /* event */) CL_API_SUFFIX__VERSION_1_1;
936848b8605Smrg
937848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
938848b8605SmrgclEnqueueWriteBuffer(cl_command_queue   /* command_queue */,
939848b8605Smrg                     cl_mem             /* buffer */,
940848b8605Smrg                     cl_bool            /* blocking_write */,
941848b8605Smrg                     size_t             /* offset */,
942848b8605Smrg                     size_t             /* size */,
943848b8605Smrg                     const void *       /* ptr */,
944848b8605Smrg                     cl_uint            /* num_events_in_wait_list */,
945848b8605Smrg                     const cl_event *   /* event_wait_list */,
946848b8605Smrg                     cl_event *         /* event */) CL_API_SUFFIX__VERSION_1_0;
947848b8605Smrg
948848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
949848b8605SmrgclEnqueueWriteBufferRect(cl_command_queue    /* command_queue */,
950848b8605Smrg                         cl_mem              /* buffer */,
951848b8605Smrg                         cl_bool             /* blocking_write */,
952848b8605Smrg                         const size_t *      /* buffer_offset */,
953848b8605Smrg                         const size_t *      /* host_offset */,
954848b8605Smrg                         const size_t *      /* region */,
955848b8605Smrg                         size_t              /* buffer_row_pitch */,
956848b8605Smrg                         size_t              /* buffer_slice_pitch */,
957848b8605Smrg                         size_t              /* host_row_pitch */,
958848b8605Smrg                         size_t              /* host_slice_pitch */,
959848b8605Smrg                         const void *        /* ptr */,
960848b8605Smrg                         cl_uint             /* num_events_in_wait_list */,
961848b8605Smrg                         const cl_event *    /* event_wait_list */,
962848b8605Smrg                         cl_event *          /* event */) CL_API_SUFFIX__VERSION_1_1;
963848b8605Smrg
964848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
965848b8605SmrgclEnqueueFillBuffer(cl_command_queue   /* command_queue */,
966848b8605Smrg                    cl_mem             /* buffer */,
967848b8605Smrg                    const void *       /* pattern */,
968848b8605Smrg                    size_t             /* pattern_size */,
969848b8605Smrg                    size_t             /* offset */,
970848b8605Smrg                    size_t             /* size */,
971848b8605Smrg                    cl_uint            /* num_events_in_wait_list */,
972848b8605Smrg                    const cl_event *   /* event_wait_list */,
973848b8605Smrg                    cl_event *         /* event */) CL_API_SUFFIX__VERSION_1_2;
974848b8605Smrg
975848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
976848b8605SmrgclEnqueueCopyBuffer(cl_command_queue    /* command_queue */,
977848b8605Smrg                    cl_mem              /* src_buffer */,
978848b8605Smrg                    cl_mem              /* dst_buffer */,
979848b8605Smrg                    size_t              /* src_offset */,
980848b8605Smrg                    size_t              /* dst_offset */,
981848b8605Smrg                    size_t              /* size */,
982848b8605Smrg                    cl_uint             /* num_events_in_wait_list */,
983848b8605Smrg                    const cl_event *    /* event_wait_list */,
984848b8605Smrg                    cl_event *          /* event */) CL_API_SUFFIX__VERSION_1_0;
985848b8605Smrg
986848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
987848b8605SmrgclEnqueueCopyBufferRect(cl_command_queue    /* command_queue */,
988848b8605Smrg                        cl_mem              /* src_buffer */,
989848b8605Smrg                        cl_mem              /* dst_buffer */,
990848b8605Smrg                        const size_t *      /* src_origin */,
991848b8605Smrg                        const size_t *      /* dst_origin */,
992848b8605Smrg                        const size_t *      /* region */,
993848b8605Smrg                        size_t              /* src_row_pitch */,
994848b8605Smrg                        size_t              /* src_slice_pitch */,
995848b8605Smrg                        size_t              /* dst_row_pitch */,
996848b8605Smrg                        size_t              /* dst_slice_pitch */,
997848b8605Smrg                        cl_uint             /* num_events_in_wait_list */,
998848b8605Smrg                        const cl_event *    /* event_wait_list */,
999848b8605Smrg                        cl_event *          /* event */) CL_API_SUFFIX__VERSION_1_1;
1000848b8605Smrg
1001848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
1002848b8605SmrgclEnqueueReadImage(cl_command_queue     /* command_queue */,
1003848b8605Smrg                   cl_mem               /* image */,
1004848b8605Smrg                   cl_bool              /* blocking_read */,
1005848b8605Smrg                   const size_t *       /* origin[3] */,
1006848b8605Smrg                   const size_t *       /* region[3] */,
1007848b8605Smrg                   size_t               /* row_pitch */,
1008848b8605Smrg                   size_t               /* slice_pitch */,
1009848b8605Smrg                   void *               /* ptr */,
1010848b8605Smrg                   cl_uint              /* num_events_in_wait_list */,
1011848b8605Smrg                   const cl_event *     /* event_wait_list */,
1012848b8605Smrg                   cl_event *           /* event */) CL_API_SUFFIX__VERSION_1_0;
1013848b8605Smrg
1014848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
1015848b8605SmrgclEnqueueWriteImage(cl_command_queue    /* command_queue */,
1016848b8605Smrg                    cl_mem              /* image */,
1017848b8605Smrg                    cl_bool             /* blocking_write */,
1018848b8605Smrg                    const size_t *      /* origin[3] */,
1019848b8605Smrg                    const size_t *      /* region[3] */,
1020848b8605Smrg                    size_t              /* input_row_pitch */,
1021848b8605Smrg                    size_t              /* input_slice_pitch */,
1022848b8605Smrg                    const void *        /* ptr */,
1023848b8605Smrg                    cl_uint             /* num_events_in_wait_list */,
1024848b8605Smrg                    const cl_event *    /* event_wait_list */,
1025848b8605Smrg                    cl_event *          /* event */) CL_API_SUFFIX__VERSION_1_0;
1026848b8605Smrg
1027848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
1028848b8605SmrgclEnqueueFillImage(cl_command_queue   /* command_queue */,
1029848b8605Smrg                   cl_mem             /* image */,
1030848b8605Smrg                   const void *       /* fill_color */,
1031848b8605Smrg                   const size_t *     /* origin[3] */,
1032848b8605Smrg                   const size_t *     /* region[3] */,
1033848b8605Smrg                   cl_uint            /* num_events_in_wait_list */,
1034848b8605Smrg                   const cl_event *   /* event_wait_list */,
1035848b8605Smrg                   cl_event *         /* event */) CL_API_SUFFIX__VERSION_1_2;
1036848b8605Smrg
1037848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
1038848b8605SmrgclEnqueueCopyImage(cl_command_queue     /* command_queue */,
1039848b8605Smrg                   cl_mem               /* src_image */,
1040848b8605Smrg                   cl_mem               /* dst_image */,
1041848b8605Smrg                   const size_t *       /* src_origin[3] */,
1042848b8605Smrg                   const size_t *       /* dst_origin[3] */,
1043848b8605Smrg                   const size_t *       /* region[3] */,
1044848b8605Smrg                   cl_uint              /* num_events_in_wait_list */,
1045848b8605Smrg                   const cl_event *     /* event_wait_list */,
1046848b8605Smrg                   cl_event *           /* event */) CL_API_SUFFIX__VERSION_1_0;
1047848b8605Smrg
1048848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
1049848b8605SmrgclEnqueueCopyImageToBuffer(cl_command_queue /* command_queue */,
1050848b8605Smrg                           cl_mem           /* src_image */,
1051848b8605Smrg                           cl_mem           /* dst_buffer */,
1052848b8605Smrg                           const size_t *   /* src_origin[3] */,
1053848b8605Smrg                           const size_t *   /* region[3] */,
1054848b8605Smrg                           size_t           /* dst_offset */,
1055848b8605Smrg                           cl_uint          /* num_events_in_wait_list */,
1056848b8605Smrg                           const cl_event * /* event_wait_list */,
1057848b8605Smrg                           cl_event *       /* event */) CL_API_SUFFIX__VERSION_1_0;
1058848b8605Smrg
1059848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
1060848b8605SmrgclEnqueueCopyBufferToImage(cl_command_queue /* command_queue */,
1061848b8605Smrg                           cl_mem           /* src_buffer */,
1062848b8605Smrg                           cl_mem           /* dst_image */,
1063848b8605Smrg                           size_t           /* src_offset */,
1064848b8605Smrg                           const size_t *   /* dst_origin[3] */,
1065848b8605Smrg                           const size_t *   /* region[3] */,
1066848b8605Smrg                           cl_uint          /* num_events_in_wait_list */,
1067848b8605Smrg                           const cl_event * /* event_wait_list */,
1068848b8605Smrg                           cl_event *       /* event */) CL_API_SUFFIX__VERSION_1_0;
1069848b8605Smrg
1070848b8605Smrgextern CL_API_ENTRY void * CL_API_CALL
1071848b8605SmrgclEnqueueMapBuffer(cl_command_queue /* command_queue */,
1072848b8605Smrg                   cl_mem           /* buffer */,
1073848b8605Smrg                   cl_bool          /* blocking_map */,
1074848b8605Smrg                   cl_map_flags     /* map_flags */,
1075848b8605Smrg                   size_t           /* offset */,
1076848b8605Smrg                   size_t           /* size */,
1077848b8605Smrg                   cl_uint          /* num_events_in_wait_list */,
1078848b8605Smrg                   const cl_event * /* event_wait_list */,
1079848b8605Smrg                   cl_event *       /* event */,
1080848b8605Smrg                   cl_int *         /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
1081848b8605Smrg
1082848b8605Smrgextern CL_API_ENTRY void * CL_API_CALL
1083848b8605SmrgclEnqueueMapImage(cl_command_queue  /* command_queue */,
1084848b8605Smrg                  cl_mem            /* image */,
1085848b8605Smrg                  cl_bool           /* blocking_map */,
1086848b8605Smrg                  cl_map_flags      /* map_flags */,
1087848b8605Smrg                  const size_t *    /* origin[3] */,
1088848b8605Smrg                  const size_t *    /* region[3] */,
1089848b8605Smrg                  size_t *          /* image_row_pitch */,
1090848b8605Smrg                  size_t *          /* image_slice_pitch */,
1091848b8605Smrg                  cl_uint           /* num_events_in_wait_list */,
1092848b8605Smrg                  const cl_event *  /* event_wait_list */,
1093848b8605Smrg                  cl_event *        /* event */,
1094848b8605Smrg                  cl_int *          /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
1095848b8605Smrg
1096848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
1097848b8605SmrgclEnqueueUnmapMemObject(cl_command_queue /* command_queue */,
1098848b8605Smrg                        cl_mem           /* memobj */,
1099848b8605Smrg                        void *           /* mapped_ptr */,
1100848b8605Smrg                        cl_uint          /* num_events_in_wait_list */,
1101848b8605Smrg                        const cl_event *  /* event_wait_list */,
1102848b8605Smrg                        cl_event *        /* event */) CL_API_SUFFIX__VERSION_1_0;
1103848b8605Smrg
1104848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
1105848b8605SmrgclEnqueueMigrateMemObjects(cl_command_queue       /* command_queue */,
1106848b8605Smrg                           cl_uint                /* num_mem_objects */,
1107848b8605Smrg                           const cl_mem *         /* mem_objects */,
1108848b8605Smrg                           cl_mem_migration_flags /* flags */,
1109848b8605Smrg                           cl_uint                /* num_events_in_wait_list */,
1110848b8605Smrg                           const cl_event *       /* event_wait_list */,
1111848b8605Smrg                           cl_event *             /* event */) CL_API_SUFFIX__VERSION_1_2;
1112848b8605Smrg
1113848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
1114848b8605SmrgclEnqueueNDRangeKernel(cl_command_queue /* command_queue */,
1115848b8605Smrg                       cl_kernel        /* kernel */,
1116848b8605Smrg                       cl_uint          /* work_dim */,
1117848b8605Smrg                       const size_t *   /* global_work_offset */,
1118848b8605Smrg                       const size_t *   /* global_work_size */,
1119848b8605Smrg                       const size_t *   /* local_work_size */,
1120848b8605Smrg                       cl_uint          /* num_events_in_wait_list */,
1121848b8605Smrg                       const cl_event * /* event_wait_list */,
1122848b8605Smrg                       cl_event *       /* event */) CL_API_SUFFIX__VERSION_1_0;
1123848b8605Smrg
1124848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
1125848b8605SmrgclEnqueueTask(cl_command_queue  /* command_queue */,
1126848b8605Smrg              cl_kernel         /* kernel */,
1127848b8605Smrg              cl_uint           /* num_events_in_wait_list */,
1128848b8605Smrg              const cl_event *  /* event_wait_list */,
1129848b8605Smrg              cl_event *        /* event */) CL_API_SUFFIX__VERSION_1_0;
1130848b8605Smrg
1131848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
1132848b8605SmrgclEnqueueNativeKernel(cl_command_queue  /* command_queue */,
1133848b8605Smrg					  void (CL_CALLBACK * /*user_func*/)(void *),
1134848b8605Smrg                      void *            /* args */,
1135848b8605Smrg                      size_t            /* cb_args */,
1136848b8605Smrg                      cl_uint           /* num_mem_objects */,
1137848b8605Smrg                      const cl_mem *    /* mem_list */,
1138848b8605Smrg                      const void **     /* args_mem_loc */,
1139848b8605Smrg                      cl_uint           /* num_events_in_wait_list */,
1140848b8605Smrg                      const cl_event *  /* event_wait_list */,
1141848b8605Smrg                      cl_event *        /* event */) CL_API_SUFFIX__VERSION_1_0;
1142848b8605Smrg
1143848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
1144848b8605SmrgclEnqueueMarkerWithWaitList(cl_command_queue /* command_queue */,
1145848b8605Smrg                            cl_uint           /* num_events_in_wait_list */,
1146848b8605Smrg                            const cl_event *  /* event_wait_list */,
1147848b8605Smrg                            cl_event *        /* event */) CL_API_SUFFIX__VERSION_1_2;
1148848b8605Smrg
1149848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL
1150848b8605SmrgclEnqueueBarrierWithWaitList(cl_command_queue /* command_queue */,
1151848b8605Smrg                             cl_uint           /* num_events_in_wait_list */,
1152848b8605Smrg                             const cl_event *  /* event_wait_list */,
1153848b8605Smrg                             cl_event *        /* event */) CL_API_SUFFIX__VERSION_1_2;
1154848b8605Smrg
1155848b8605Smrg
1156848b8605Smrg/* Extension function access
1157848b8605Smrg *
1158848b8605Smrg * Returns the extension function address for the given function name,
1159848b8605Smrg * or NULL if a valid function can not be found.  The client must
1160848b8605Smrg * check to make sure the address is not NULL, before using or
1161848b8605Smrg * calling the returned function address.
1162848b8605Smrg */
1163848b8605Smrgextern CL_API_ENTRY void * CL_API_CALL
1164848b8605SmrgclGetExtensionFunctionAddressForPlatform(cl_platform_id /* platform */,
1165848b8605Smrg                                         const char *   /* func_name */) CL_API_SUFFIX__VERSION_1_2;
1166848b8605Smrg
1167848b8605Smrg
1168848b8605Smrg/* Deprecated OpenCL 1.1 APIs */
1169848b8605Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
1170848b8605SmrgclCreateImage2D(cl_context              /* context */,
1171848b8605Smrg                cl_mem_flags            /* flags */,
1172848b8605Smrg                const cl_image_format * /* image_format */,
1173848b8605Smrg                size_t                  /* image_width */,
1174848b8605Smrg                size_t                  /* image_height */,
1175848b8605Smrg                size_t                  /* image_row_pitch */,
1176848b8605Smrg                void *                  /* host_ptr */,
1177848b8605Smrg                cl_int *                /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
1178848b8605Smrg
1179848b8605Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
1180848b8605SmrgclCreateImage3D(cl_context              /* context */,
1181848b8605Smrg                cl_mem_flags            /* flags */,
1182848b8605Smrg                const cl_image_format * /* image_format */,
1183848b8605Smrg                size_t                  /* image_width */,
1184848b8605Smrg                size_t                  /* image_height */,
1185848b8605Smrg                size_t                  /* image_depth */,
1186848b8605Smrg                size_t                  /* image_row_pitch */,
1187848b8605Smrg                size_t                  /* image_slice_pitch */,
1188848b8605Smrg                void *                  /* host_ptr */,
1189848b8605Smrg                cl_int *                /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
1190848b8605Smrg
1191848b8605Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL
1192848b8605SmrgclEnqueueMarker(cl_command_queue    /* command_queue */,
1193848b8605Smrg                cl_event *          /* event */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
1194848b8605Smrg
1195848b8605Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL
1196848b8605SmrgclEnqueueWaitForEvents(cl_command_queue /* command_queue */,
1197848b8605Smrg                        cl_uint          /* num_events */,
1198848b8605Smrg                        const cl_event * /* event_list */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
1199848b8605Smrg
1200848b8605Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL
1201848b8605SmrgclEnqueueBarrier(cl_command_queue /* command_queue */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
1202848b8605Smrg
1203848b8605Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL
1204848b8605SmrgclUnloadCompiler(void) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
1205848b8605Smrg
1206848b8605Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED void * CL_API_CALL
1207848b8605SmrgclGetExtensionFunctionAddress(const char * /* func_name */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
1208848b8605Smrg
1209848b8605Smrg#ifdef __cplusplus
1210848b8605Smrg}
1211848b8605Smrg#endif
1212848b8605Smrg
1213848b8605Smrg#endif  /* __OPENCL_CL_H */
1214848b8605Smrg
1215