]> gitweb.factorcode.org Git - factor.git/blob - extra/opencl/ffi/ffi.factor
use radix literals
[factor.git] / extra / opencl / ffi / ffi.factor
1 ! Copyright (C) 2010 Erik Charlebois.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien alien.c-types alien.data alien.libraries alien.syntax
4 classes.struct combinators system alien.accessors byte-arrays
5 kernel ;
6 IN: opencl.ffi
7
8 << "opencl" {
9         { [ os windows? ] [ "OpenCL.dll" stdcall ] }
10         { [ os macosx? ] [ "/System/Library/Frameworks/OpenCL.framework/OpenCL" cdecl ] }
11         { [ os unix? ] [ "libOpenCL.so" cdecl ] }
12     } cond add-library >>
13 LIBRARY: opencl
14
15 ! cl_platform.h
16 TYPEDEF: char      cl_char
17 TYPEDEF: uchar     cl_uchar
18 TYPEDEF: short     cl_short
19 TYPEDEF: ushort    cl_ushort
20 TYPEDEF: int       cl_int
21 TYPEDEF: uint      cl_uint
22 TYPEDEF: longlong  cl_long
23 TYPEDEF: ulonglong cl_ulong
24 TYPEDEF: ushort    cl_half
25 TYPEDEF: float     cl_float
26 TYPEDEF: double    cl_double
27
28 CONSTANT: CL_CHAR_BIT         8
29 CONSTANT: CL_SCHAR_MAX        127
30 CONSTANT: CL_SCHAR_MIN        -128
31 CONSTANT: CL_CHAR_MAX         127
32 CONSTANT: CL_CHAR_MIN         -128
33 CONSTANT: CL_UCHAR_MAX        255
34 CONSTANT: CL_SHRT_MAX         32767
35 CONSTANT: CL_SHRT_MIN         -32768
36 CONSTANT: CL_USHRT_MAX        65535
37 CONSTANT: CL_INT_MAX          2147483647
38 CONSTANT: CL_INT_MIN          -2147483648
39 CONSTANT: CL_UINT_MAX         0xffffffff
40 CONSTANT: CL_LONG_MAX         0x7FFFFFFFFFFFFFFF
41 CONSTANT: CL_LONG_MIN         0x8000000000000000
42 CONSTANT: CL_ULONG_MAX        0xFFFFFFFFFFFFFFFF
43
44 CONSTANT: CL_FLT_DIG          6
45 CONSTANT: CL_FLT_MANT_DIG     24
46 CONSTANT: CL_FLT_MAX_10_EXP   38
47 CONSTANT: CL_FLT_MAX_EXP      128
48 CONSTANT: CL_FLT_MIN_10_EXP   -37
49 CONSTANT: CL_FLT_MIN_EXP      -125
50 CONSTANT: CL_FLT_RADIX        2
51 CONSTANT: CL_FLT_MAX          340282346638528859811704183484516925440.0
52 CONSTANT: CL_FLT_MIN          1.175494350822287507969e-38
53 CONSTANT: CL_FLT_EPSILON      0x1.0p-23
54
55 CONSTANT: CL_DBL_DIG          15
56 CONSTANT: CL_DBL_MANT_DIG     53
57 CONSTANT: CL_DBL_MAX_10_EXP   308
58 CONSTANT: CL_DBL_MAX_EXP      1024
59 CONSTANT: CL_DBL_MIN_10_EXP   -307
60 CONSTANT: CL_DBL_MIN_EXP      -1021
61 CONSTANT: CL_DBL_RADIX        2
62 CONSTANT: CL_DBL_MAX          179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0
63 CONSTANT: CL_DBL_MIN          2.225073858507201383090e-308
64 CONSTANT: CL_DBL_EPSILON      2.220446049250313080847e-16
65
66 CONSTANT: CL_NAN              NAN: 0
67 CONSTANT: CL_HUGE_VALF        1.0e50
68 CONSTANT: CL_HUGE_VAL         1.0e500
69 CONSTANT: CL_MAXFLOAT         340282346638528859811704183484516925440.0
70 CONSTANT: CL_INFINITY         1.0e50
71
72 TYPEDEF: uint cl_GLuint
73 TYPEDEF: int  cl_GLint
74 TYPEDEF: uint cl_GLenum
75
76 ! cl.h
77 C-TYPE: _cl_platform_id
78 C-TYPE: _cl_device_id
79 C-TYPE: _cl_context
80 C-TYPE: _cl_command_queue
81 C-TYPE: _cl_mem
82 C-TYPE: _cl_program
83 C-TYPE: _cl_kernel
84 C-TYPE: _cl_event
85 C-TYPE: _cl_sampler
86
87 TYPEDEF: _cl_platform_id*    cl_platform_id
88 TYPEDEF: _cl_device_id*      cl_device_id
89 TYPEDEF: _cl_context*        cl_context
90 TYPEDEF: _cl_command_queue*  cl_command_queue
91 TYPEDEF: _cl_mem*            cl_mem
92 TYPEDEF: _cl_program*        cl_program
93 TYPEDEF: _cl_kernel*         cl_kernel
94 TYPEDEF: _cl_event*          cl_event
95 TYPEDEF: _cl_sampler*        cl_sampler
96
97 TYPEDEF: cl_uint             cl_bool
98 TYPEDEF: cl_ulong            cl_bitfield
99 TYPEDEF: cl_bitfield         cl_device_type
100 TYPEDEF: cl_uint             cl_platform_info
101 TYPEDEF: cl_uint             cl_device_info
102 TYPEDEF: cl_bitfield         cl_device_address_info
103 TYPEDEF: cl_bitfield         cl_device_fp_config
104 TYPEDEF: cl_uint             cl_device_mem_cache_type
105 TYPEDEF: cl_uint             cl_device_local_mem_type
106 TYPEDEF: cl_bitfield         cl_device_exec_capabilities
107 TYPEDEF: cl_bitfield         cl_command_queue_properties
108
109 TYPEDEF: intptr_t            cl_context_properties
110 TYPEDEF: cl_uint             cl_context_info
111 TYPEDEF: cl_uint             cl_command_queue_info
112 TYPEDEF: cl_uint             cl_channel_order
113 TYPEDEF: cl_uint             cl_channel_type
114 TYPEDEF: cl_bitfield         cl_mem_flags
115 TYPEDEF: cl_uint             cl_mem_object_type
116 TYPEDEF: cl_uint             cl_mem_info
117 TYPEDEF: cl_uint             cl_image_info
118 TYPEDEF: cl_uint             cl_addressing_mode
119 TYPEDEF: cl_uint             cl_filter_mode
120 TYPEDEF: cl_uint             cl_sampler_info
121 TYPEDEF: cl_bitfield         cl_map_flags
122 TYPEDEF: cl_uint             cl_program_info
123 TYPEDEF: cl_uint             cl_program_build_info
124 TYPEDEF: cl_int              cl_build_status
125 TYPEDEF: cl_uint             cl_kernel_info
126 TYPEDEF: cl_uint             cl_kernel_work_group_info
127 TYPEDEF: cl_uint             cl_event_info
128 TYPEDEF: cl_uint             cl_command_type
129 TYPEDEF: cl_uint             cl_profiling_info
130
131 STRUCT: cl_image_format
132     { image_channel_order        cl_channel_order }
133     { image_channel_data_type    cl_channel_type  } ;
134
135 CONSTANT: CL_SUCCESS                                  0
136 CONSTANT: CL_DEVICE_NOT_FOUND                         -1
137 CONSTANT: CL_DEVICE_NOT_AVAILABLE                     -2
138 CONSTANT: CL_COMPILER_NOT_AVAILABLE                   -3
139 CONSTANT: CL_MEM_OBJECT_ALLOCATION_FAILURE            -4
140 CONSTANT: CL_OUT_OF_RESOURCES                         -5
141 CONSTANT: CL_OUT_OF_HOST_MEMORY                       -6
142 CONSTANT: CL_PROFILING_INFO_NOT_AVAILABLE             -7
143 CONSTANT: CL_MEM_COPY_OVERLAP                         -8
144 CONSTANT: CL_IMAGE_FORMAT_MISMATCH                    -9
145 CONSTANT: CL_IMAGE_FORMAT_NOT_SUPPORTED               -10
146 CONSTANT: CL_BUILD_PROGRAM_FAILURE                    -11
147 CONSTANT: CL_MAP_FAILURE                              -12
148
149 CONSTANT: CL_INVALID_VALUE                            -30
150 CONSTANT: CL_INVALID_DEVICE_TYPE                      -31
151 CONSTANT: CL_INVALID_PLATFORM                         -32
152 CONSTANT: CL_INVALID_DEVICE                           -33
153 CONSTANT: CL_INVALID_CONTEXT                          -34
154 CONSTANT: CL_INVALID_QUEUE_PROPERTIES                 -35
155 CONSTANT: CL_INVALID_COMMAND_QUEUE                    -36
156 CONSTANT: CL_INVALID_HOST_PTR                         -37
157 CONSTANT: CL_INVALID_MEM_OBJECT                       -38
158 CONSTANT: CL_INVALID_IMAGE_FORMAT_DESCRIPTOR          -39
159 CONSTANT: CL_INVALID_IMAGE_SIZE                       -40
160 CONSTANT: CL_INVALID_SAMPLER                          -41
161 CONSTANT: CL_INVALID_BINARY                           -42
162 CONSTANT: CL_INVALID_BUILD_OPTIONS                    -43
163 CONSTANT: CL_INVALID_PROGRAM                          -44
164 CONSTANT: CL_INVALID_PROGRAM_EXECUTABLE               -45
165 CONSTANT: CL_INVALID_KERNEL_NAME                      -46
166 CONSTANT: CL_INVALID_KERNEL_DEFINITION                -47
167 CONSTANT: CL_INVALID_KERNEL                           -48
168 CONSTANT: CL_INVALID_ARG_INDEX                        -49
169 CONSTANT: CL_INVALID_ARG_VALUE                        -50
170 CONSTANT: CL_INVALID_ARG_SIZE                         -51
171 CONSTANT: CL_INVALID_KERNEL_ARGS                      -52
172 CONSTANT: CL_INVALID_WORK_DIMENSION                   -53
173 CONSTANT: CL_INVALID_WORK_GROUP_SIZE                  -54
174 CONSTANT: CL_INVALID_WORK_ITEM_SIZE                   -55
175 CONSTANT: CL_INVALID_GLOBAL_OFFSET                    -56
176 CONSTANT: CL_INVALID_EVENT_WAIT_LIST                  -57
177 CONSTANT: CL_INVALID_EVENT                            -58
178 CONSTANT: CL_INVALID_OPERATION                        -59
179 CONSTANT: CL_INVALID_GL_OBJECT                        -60
180 CONSTANT: CL_INVALID_BUFFER_SIZE                      -61
181 CONSTANT: CL_INVALID_MIP_LEVEL                        -62
182 CONSTANT: CL_INVALID_GLOBAL_WORK_SIZE                 -63
183
184 CONSTANT: CL_VERSION_1_0                              1
185
186 CONSTANT: CL_FALSE                                    0
187 CONSTANT: CL_TRUE                                     1
188
189 CONSTANT: CL_PLATFORM_PROFILE                         0x0900
190 CONSTANT: CL_PLATFORM_VERSION                         0x0901
191 CONSTANT: CL_PLATFORM_NAME                            0x0902
192 CONSTANT: CL_PLATFORM_VENDOR                          0x0903
193 CONSTANT: CL_PLATFORM_EXTENSIONS                      0x0904
194
195 CONSTANT: CL_DEVICE_TYPE_DEFAULT                      1
196 CONSTANT: CL_DEVICE_TYPE_CPU                          2
197 CONSTANT: CL_DEVICE_TYPE_GPU                          4
198 CONSTANT: CL_DEVICE_TYPE_ACCELERATOR                  8
199 CONSTANT: CL_DEVICE_TYPE_ALL                          0xFFFFFFFF
200
201 CONSTANT: CL_DEVICE_TYPE                              0x1000
202 CONSTANT: CL_DEVICE_VENDOR_ID                         0x1001
203 CONSTANT: CL_DEVICE_MAX_COMPUTE_UNITS                 0x1002
204 CONSTANT: CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS          0x1003
205 CONSTANT: CL_DEVICE_MAX_WORK_GROUP_SIZE               0x1004
206 CONSTANT: CL_DEVICE_MAX_WORK_ITEM_SIZES               0x1005
207 CONSTANT: CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR       0x1006
208 CONSTANT: CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT      0x1007
209 CONSTANT: CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT        0x1008
210 CONSTANT: CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG       0x1009
211 CONSTANT: CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT      0x100A
212 CONSTANT: CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE     0x100B
213 CONSTANT: CL_DEVICE_MAX_CLOCK_FREQUENCY               0x100C
214 CONSTANT: CL_DEVICE_ADDRESS_BITS                      0x100D
215 CONSTANT: CL_DEVICE_MAX_READ_IMAGE_ARGS               0x100E
216 CONSTANT: CL_DEVICE_MAX_WRITE_IMAGE_ARGS              0x100F
217 CONSTANT: CL_DEVICE_MAX_MEM_ALLOC_SIZE                0x1010
218 CONSTANT: CL_DEVICE_IMAGE2D_MAX_WIDTH                 0x1011
219 CONSTANT: CL_DEVICE_IMAGE2D_MAX_HEIGHT                0x1012
220 CONSTANT: CL_DEVICE_IMAGE3D_MAX_WIDTH                 0x1013
221 CONSTANT: CL_DEVICE_IMAGE3D_MAX_HEIGHT                0x1014
222 CONSTANT: CL_DEVICE_IMAGE3D_MAX_DEPTH                 0x1015
223 CONSTANT: CL_DEVICE_IMAGE_SUPPORT                     0x1016
224 CONSTANT: CL_DEVICE_MAX_PARAMETER_SIZE                0x1017
225 CONSTANT: CL_DEVICE_MAX_SAMPLERS                      0x1018
226 CONSTANT: CL_DEVICE_MEM_BASE_ADDR_ALIGN               0x1019
227 CONSTANT: CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE          0x101A
228 CONSTANT: CL_DEVICE_SINGLE_FP_CONFIG                  0x101B
229 CONSTANT: CL_DEVICE_GLOBAL_MEM_CACHE_TYPE             0x101C
230 CONSTANT: CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE         0x101D
231 CONSTANT: CL_DEVICE_GLOBAL_MEM_CACHE_SIZE             0x101E
232 CONSTANT: CL_DEVICE_GLOBAL_MEM_SIZE                   0x101F
233 CONSTANT: CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE          0x1020
234 CONSTANT: CL_DEVICE_MAX_CONSTANT_ARGS                 0x1021
235 CONSTANT: CL_DEVICE_LOCAL_MEM_TYPE                    0x1022
236 CONSTANT: CL_DEVICE_LOCAL_MEM_SIZE                    0x1023
237 CONSTANT: CL_DEVICE_ERROR_CORRECTION_SUPPORT          0x1024
238 CONSTANT: CL_DEVICE_PROFILING_TIMER_RESOLUTION        0x1025
239 CONSTANT: CL_DEVICE_ENDIAN_LITTLE                     0x1026
240 CONSTANT: CL_DEVICE_AVAILABLE                         0x1027
241 CONSTANT: CL_DEVICE_COMPILER_AVAILABLE                0x1028
242 CONSTANT: CL_DEVICE_EXECUTION_CAPABILITIES            0x1029
243 CONSTANT: CL_DEVICE_QUEUE_PROPERTIES                  0x102A
244 CONSTANT: CL_DEVICE_NAME                              0x102B
245 CONSTANT: CL_DEVICE_VENDOR                            0x102C
246 CONSTANT: CL_DRIVER_VERSION                           0x102D
247 CONSTANT: CL_DEVICE_PROFILE                           0x102E
248 CONSTANT: CL_DEVICE_VERSION                           0x102F
249 CONSTANT: CL_DEVICE_EXTENSIONS                        0x1030
250 CONSTANT: CL_DEVICE_PLATFORM                          0x1031
251
252 CONSTANT: CL_FP_DENORM                                1
253 CONSTANT: CL_FP_INF_NAN                               2
254 CONSTANT: CL_FP_ROUND_TO_NEAREST                      4
255 CONSTANT: CL_FP_ROUND_TO_ZERO                         8
256 CONSTANT: CL_FP_ROUND_TO_INF                          16
257 CONSTANT: CL_FP_FMA                                   32
258
259 CONSTANT: CL_NONE                                     0
260 CONSTANT: CL_READ_ONLY_CACHE                          1
261 CONSTANT: CL_READ_WRITE_CACHE                         2
262
263 CONSTANT: CL_LOCAL                                    1
264 CONSTANT: CL_GLOBAL                                   2
265
266 CONSTANT: CL_EXEC_KERNEL                              1
267 CONSTANT: CL_EXEC_NATIVE_KERNEL                       2
268
269 CONSTANT: CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE      1
270 CONSTANT: CL_QUEUE_PROFILING_ENABLE                   2
271
272 CONSTANT: CL_CONTEXT_REFERENCE_COUNT                  0x1080
273 CONSTANT: CL_CONTEXT_DEVICES                          0x1081
274 CONSTANT: CL_CONTEXT_PROPERTIES                       0x1082
275
276 CONSTANT: CL_CONTEXT_PLATFORM                         0x1084
277
278 CONSTANT: CL_QUEUE_CONTEXT                            0x1090
279 CONSTANT: CL_QUEUE_DEVICE                             0x1091
280 CONSTANT: CL_QUEUE_REFERENCE_COUNT                    0x1092
281 CONSTANT: CL_QUEUE_PROPERTIES                         0x1093
282
283 CONSTANT: CL_MEM_READ_WRITE                           1
284 CONSTANT: CL_MEM_WRITE_ONLY                           2
285 CONSTANT: CL_MEM_READ_ONLY                            4
286 CONSTANT: CL_MEM_USE_HOST_PTR                         8
287 CONSTANT: CL_MEM_ALLOC_HOST_PTR                       16
288 CONSTANT: CL_MEM_COPY_HOST_PTR                        32
289
290 CONSTANT: CL_R                                        0x10B0
291 CONSTANT: CL_A                                        0x10B1
292 CONSTANT: CL_RG                                       0x10B2
293 CONSTANT: CL_RA                                       0x10B3
294 CONSTANT: CL_RGB                                      0x10B4
295 CONSTANT: CL_RGBA                                     0x10B5
296 CONSTANT: CL_BGRA                                     0x10B6
297 CONSTANT: CL_ARGB                                     0x10B7
298 CONSTANT: CL_INTENSITY                                0x10B8
299 CONSTANT: CL_LUMINANCE                                0x10B9
300
301 CONSTANT: CL_SNORM_INT8                               0x10D0
302 CONSTANT: CL_SNORM_INT16                              0x10D1
303 CONSTANT: CL_UNORM_INT8                               0x10D2
304 CONSTANT: CL_UNORM_INT16                              0x10D3
305 CONSTANT: CL_UNORM_SHORT_565                          0x10D4
306 CONSTANT: CL_UNORM_SHORT_555                          0x10D5
307 CONSTANT: CL_UNORM_INT_101010                         0x10D6
308 CONSTANT: CL_SIGNED_INT8                              0x10D7
309 CONSTANT: CL_SIGNED_INT16                             0x10D8
310 CONSTANT: CL_SIGNED_INT32                             0x10D9
311 CONSTANT: CL_UNSIGNED_INT8                            0x10DA
312 CONSTANT: CL_UNSIGNED_INT16                           0x10DB
313 CONSTANT: CL_UNSIGNED_INT32                           0x10DC
314 CONSTANT: CL_HALF_FLOAT                               0x10DD
315 CONSTANT: CL_FLOAT                                    0x10DE
316
317 CONSTANT: CL_MEM_OBJECT_BUFFER                        0x10F0
318 CONSTANT: CL_MEM_OBJECT_IMAGE2D                       0x10F1
319 CONSTANT: CL_MEM_OBJECT_IMAGE3D                       0x10F2
320
321 CONSTANT: CL_MEM_TYPE                                 0x1100
322 CONSTANT: CL_MEM_FLAGS                                0x1101
323 CONSTANT: CL_MEM_SIZE                                 0x1102
324 CONSTANT: CL_MEM_HOST_PTR                             0x1103
325 CONSTANT: CL_MEM_MAP_COUNT                            0x1104
326 CONSTANT: CL_MEM_REFERENCE_COUNT                      0x1105
327 CONSTANT: CL_MEM_CONTEXT                              0x1106
328
329 CONSTANT: CL_IMAGE_FORMAT                             0x1110
330 CONSTANT: CL_IMAGE_ELEMENT_SIZE                       0x1111
331 CONSTANT: CL_IMAGE_ROW_PITCH                          0x1112
332 CONSTANT: CL_IMAGE_SLICE_PITCH                        0x1113
333 CONSTANT: CL_IMAGE_WIDTH                              0x1114
334 CONSTANT: CL_IMAGE_HEIGHT                             0x1115
335 CONSTANT: CL_IMAGE_DEPTH                              0x1116
336
337 CONSTANT: CL_ADDRESS_NONE                             0x1130
338 CONSTANT: CL_ADDRESS_CLAMP_TO_EDGE                    0x1131
339 CONSTANT: CL_ADDRESS_CLAMP                            0x1132
340 CONSTANT: CL_ADDRESS_REPEAT                           0x1133
341
342 CONSTANT: CL_FILTER_NEAREST                           0x1140
343 CONSTANT: CL_FILTER_LINEAR                            0x1141
344
345 CONSTANT: CL_SAMPLER_REFERENCE_COUNT                  0x1150
346 CONSTANT: CL_SAMPLER_CONTEXT                          0x1151
347 CONSTANT: CL_SAMPLER_NORMALIZED_COORDS                0x1152
348 CONSTANT: CL_SAMPLER_ADDRESSING_MODE                  0x1153
349 CONSTANT: CL_SAMPLER_FILTER_MODE                      0x1154
350
351 CONSTANT: CL_MAP_READ                                 1
352 CONSTANT: CL_MAP_WRITE                                2
353
354 CONSTANT: CL_PROGRAM_REFERENCE_COUNT                  0x1160
355 CONSTANT: CL_PROGRAM_CONTEXT                          0x1161
356 CONSTANT: CL_PROGRAM_NUM_DEVICES                      0x1162
357 CONSTANT: CL_PROGRAM_DEVICES                          0x1163
358 CONSTANT: CL_PROGRAM_SOURCE                           0x1164
359 CONSTANT: CL_PROGRAM_BINARY_SIZES                     0x1165
360 CONSTANT: CL_PROGRAM_BINARIES                         0x1166
361
362 CONSTANT: CL_PROGRAM_BUILD_STATUS                     0x1181
363 CONSTANT: CL_PROGRAM_BUILD_OPTIONS                    0x1182
364 CONSTANT: CL_PROGRAM_BUILD_LOG                        0x1183
365
366 CONSTANT: CL_BUILD_SUCCESS                            0
367 CONSTANT: CL_BUILD_NONE                               -1
368 CONSTANT: CL_BUILD_ERROR                              -2
369 CONSTANT: CL_BUILD_IN_PROGRESS                        -3
370
371 CONSTANT: CL_KERNEL_FUNCTION_NAME                     0x1190
372 CONSTANT: CL_KERNEL_NUM_ARGS                          0x1191
373 CONSTANT: CL_KERNEL_REFERENCE_COUNT                   0x1192
374 CONSTANT: CL_KERNEL_CONTEXT                           0x1193
375 CONSTANT: CL_KERNEL_PROGRAM                           0x1194
376
377 CONSTANT: CL_KERNEL_WORK_GROUP_SIZE                   0x11B0
378 CONSTANT: CL_KERNEL_COMPILE_WORK_GROUP_SIZE           0x11B1
379 CONSTANT: CL_KERNEL_LOCAL_MEM_SIZE                    0x11B2
380
381 CONSTANT: CL_EVENT_COMMAND_QUEUE                      0x11D0
382 CONSTANT: CL_EVENT_COMMAND_TYPE                       0x11D1
383 CONSTANT: CL_EVENT_REFERENCE_COUNT                    0x11D2
384 CONSTANT: CL_EVENT_COMMAND_EXECUTION_STATUS           0x11D3
385
386 CONSTANT: CL_COMMAND_NDRANGE_KERNEL                   0x11F0
387 CONSTANT: CL_COMMAND_TASK                             0x11F1
388 CONSTANT: CL_COMMAND_NATIVE_KERNEL                    0x11F2
389 CONSTANT: CL_COMMAND_READ_BUFFER                      0x11F3
390 CONSTANT: CL_COMMAND_WRITE_BUFFER                     0x11F4
391 CONSTANT: CL_COMMAND_COPY_BUFFER                      0x11F5
392 CONSTANT: CL_COMMAND_READ_IMAGE                       0x11F6
393 CONSTANT: CL_COMMAND_WRITE_IMAGE                      0x11F7
394 CONSTANT: CL_COMMAND_COPY_IMAGE                       0x11F8
395 CONSTANT: CL_COMMAND_COPY_IMAGE_TO_BUFFER             0x11F9
396 CONSTANT: CL_COMMAND_COPY_BUFFER_TO_IMAGE             0x11FA
397 CONSTANT: CL_COMMAND_MAP_BUFFER                       0x11FB
398 CONSTANT: CL_COMMAND_MAP_IMAGE                        0x11FC
399 CONSTANT: CL_COMMAND_UNMAP_MEM_OBJECT                 0x11FD
400 CONSTANT: CL_COMMAND_MARKER                           0x11FE
401 CONSTANT: CL_COMMAND_ACQUIRE_GL_OBJECTS               0x11FF
402 CONSTANT: CL_COMMAND_RELEASE_GL_OBJECTS               0x1200
403
404 CONSTANT: CL_COMPLETE                                 0x0
405 CONSTANT: CL_RUNNING                                  0x1
406 CONSTANT: CL_SUBMITTED                                0x2
407 CONSTANT: CL_QUEUED                                   0x3
408
409 CONSTANT: CL_PROFILING_COMMAND_QUEUED                 0x1280
410 CONSTANT: CL_PROFILING_COMMAND_SUBMIT                 0x1281
411 CONSTANT: CL_PROFILING_COMMAND_START                  0x1282
412 CONSTANT: CL_PROFILING_COMMAND_END                    0x1283
413
414 FUNCTION: cl_int clGetPlatformIDs ( cl_uint num_entries, cl_platform_id* platforms, cl_uint* num_platforms ) ;
415 FUNCTION: cl_int clGetPlatformInfo ( cl_platform_id platform, cl_platform_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret ) ;
416 FUNCTION: cl_int clGetDeviceIDs ( cl_platform_id platform, cl_device_type device_type, cl_uint num_entries, cl_device_id* devices, cl_uint* num_devices ) ;
417 FUNCTION: cl_int clGetDeviceInfo ( cl_device_id device, cl_device_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret ) ;
418 CALLBACK: void cl_create_context_cb ( char* a, void* b, size_t s, void* c ) ;
419 FUNCTION: cl_context clCreateContext ( cl_context_properties*  properties, cl_uint num_devices, cl_device_id* devices, cl_create_context_cb pfn_notify, void* user_data, cl_int* errcode_ret ) ;
420 FUNCTION: cl_context clCreateContextFromType ( cl_context_properties* properties, cl_device_type device_type, cl_create_context_cb pfn_notify, void* user_data, cl_int* errcode_ret ) ;
421 FUNCTION: cl_int clRetainContext ( cl_context context ) ;
422 FUNCTION: cl_int clReleaseContext ( cl_context context ) ;
423 FUNCTION: cl_int clGetContextInfo ( cl_context context, cl_context_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret ) ;
424 FUNCTION: cl_command_queue clCreateCommandQueue ( cl_context context, cl_device_id device, cl_command_queue_properties properties, cl_int* errcode_ret ) ;
425 FUNCTION: cl_int clRetainCommandQueue ( cl_command_queue command_queue ) ;
426 FUNCTION: cl_int clReleaseCommandQueue ( cl_command_queue command_queue ) ;
427 FUNCTION: cl_int clGetCommandQueueInfo ( cl_command_queue command_queue, cl_command_queue_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret ) ;
428 FUNCTION: cl_int clSetCommandQueueProperty ( cl_command_queue command_queue, cl_command_queue_properties properties, cl_bool enable, cl_command_queue_properties* old_properties ) ;
429 FUNCTION: cl_mem clCreateBuffer ( cl_context context, cl_mem_flags flags, size_t size, void* host_ptr, cl_int* errcode_ret ) ;
430 FUNCTION: cl_mem clCreateImage2D ( cl_context context, cl_mem_flags flags, cl_image_format* image_format, size_t image_width, size_t image_height, size_t image_row_pitch, void* host_ptr, cl_int* errcode_ret ) ;
431 FUNCTION: cl_mem clCreateImage3D ( cl_context context, cl_mem_flags flags, cl_image_format* image_format, size_t image_width, size_t image_height, size_t image_depth, size_t image_row_pitch, size_t image_slice_pitch, void* host_ptr, cl_int* errcode_ret ) ;
432 FUNCTION: cl_int clRetainMemObject ( cl_mem memobj ) ;
433 FUNCTION: cl_int clReleaseMemObject ( cl_mem memobj ) ;
434 FUNCTION: cl_int clGetSupportedImageFormats ( cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, cl_uint num_entries, cl_image_format* image_formats, cl_uint* num_image_formats ) ;
435 FUNCTION: cl_int clGetMemObjectInfo ( cl_mem memobj, cl_mem_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret ) ;
436 FUNCTION: cl_int clGetImageInfo ( cl_mem image, cl_image_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret ) ;
437 FUNCTION: cl_sampler clCreateSampler ( cl_context context, cl_bool normalized_coords, cl_addressing_mode addressing_mode, cl_filter_mode filter_mode, cl_int* errcode_ret ) ;
438 FUNCTION: cl_int clRetainSampler ( cl_sampler sampler ) ;
439 FUNCTION: cl_int clReleaseSampler ( cl_sampler sampler ) ;
440 FUNCTION: cl_int clGetSamplerInfo ( cl_sampler sampler, cl_sampler_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret ) ;
441 FUNCTION: cl_program clCreateProgramWithSource ( cl_context context, cl_uint count, char** strings, size_t* lengths, cl_int* errcode_ret ) ;
442 FUNCTION: cl_program clCreateProgramWithBinary ( cl_context context, cl_uint num_devices, cl_device_id* device_list, size_t* lengths, char** binaries, cl_int* binary_status, cl_int* errcode_ret ) ;
443 FUNCTION: cl_int clRetainProgram ( cl_program  program ) ;
444 FUNCTION: cl_int clReleaseProgram ( cl_program  program ) ;
445 CALLBACK: void cl_build_program_cb ( cl_program program, void* user_data ) ;
446 FUNCTION: cl_int clBuildProgram ( cl_program program, cl_uint num_devices, cl_device_id* device_list, char* options, cl_build_program_cb pfn_notify, void* user_data ) ;
447 FUNCTION: cl_int clUnloadCompiler ( ) ;
448 FUNCTION: cl_int clGetProgramInfo ( cl_program program, cl_program_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret ) ;
449 FUNCTION: cl_int clGetProgramBuildInfo ( cl_program program, cl_device_id device, cl_program_build_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret ) ;
450 FUNCTION: cl_kernel clCreateKernel ( cl_program program, char* kernel_name, cl_int* errcode_ret ) ;
451 FUNCTION: cl_int clCreateKernelsInProgram ( cl_program program, cl_uint num_kernels, cl_kernel* kernels, cl_uint* num_kernels_ret ) ;
452 FUNCTION: cl_int clRetainKernel ( cl_kernel kernel ) ;
453 FUNCTION: cl_int clReleaseKernel ( cl_kernel kernel ) ;
454 FUNCTION: cl_int clSetKernelArg ( cl_kernel kernel, cl_uint arg_index, size_t arg_size, void* arg_value ) ;
455 FUNCTION: cl_int clGetKernelInfo ( cl_kernel kernel, cl_kernel_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret ) ;
456 FUNCTION: cl_int clGetKernelWorkGroupInfo ( cl_kernel kernel, cl_device_id device, cl_kernel_work_group_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret ) ;
457 FUNCTION: cl_int clWaitForEvents ( cl_uint num_events, cl_event* event_list ) ;
458 FUNCTION: cl_int clGetEventInfo ( cl_event event, cl_event_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret ) ;
459 FUNCTION: cl_int clRetainEvent ( cl_event  event ) ;
460 FUNCTION: cl_int clReleaseEvent ( cl_event  event ) ;
461 FUNCTION: cl_int clGetEventProfilingInfo ( cl_event event, cl_profiling_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret ) ;
462 FUNCTION: cl_int clFlush ( cl_command_queue command_queue ) ;
463 FUNCTION: cl_int clFinish ( cl_command_queue command_queue ) ;
464 FUNCTION: cl_int clEnqueueReadBuffer ( cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read, size_t offset, size_t cb, void* ptr, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
465 FUNCTION: cl_int clEnqueueWriteBuffer ( cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_write, size_t offset, size_t cb, void* ptr, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
466 FUNCTION: cl_int clEnqueueCopyBuffer ( cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer, size_t src_offset, size_t dst_offset, size_t cb, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
467 FUNCTION: cl_int clEnqueueReadImage ( cl_command_queue command_queue, cl_mem image, cl_bool blocking_read, size_t** origin, size_t** region, size_t row_pitch, size_t slice_pitch, void* ptr, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
468 FUNCTION: cl_int clEnqueueWriteImage ( cl_command_queue command_queue, cl_mem image, cl_bool blocking_write, size_t** origin, size_t** region, size_t input_row_pitch, size_t input_slice_pitch, void* ptr, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
469 FUNCTION: cl_int clEnqueueCopyImage ( cl_command_queue command_queue, cl_mem src_image, cl_mem dst_image, size_t** src_origin, size_t** dst_origin, size_t** region, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
470 FUNCTION: cl_int clEnqueueCopyImageToBuffer ( cl_command_queue command_queue, cl_mem src_image, cl_mem dst_buffer, size_t** src_origin, size_t** region, size_t dst_offset, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
471 FUNCTION: cl_int clEnqueueCopyBufferToImage ( cl_command_queue  command_queue, cl_mem src_buffer, cl_mem dst_image, size_t src_offset, size_t** dst_origin, size_t** region, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
472 FUNCTION: void* clEnqueueMapBuffer ( cl_command_queue  command_queue, cl_mem buffer, cl_bool blocking_map, cl_map_flags map_flags, size_t offset, size_t cb, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event, cl_int* errcode_ret ) ;
473 FUNCTION: void* clEnqueueMapImage ( cl_command_queue command_queue, cl_mem image, cl_bool blocking_map, cl_map_flags map_flags, size_t** origin, size_t** region, size_t* image_row_pitch, size_t* image_slice_pitch, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event, cl_int* errcode_ret ) ;
474 FUNCTION: cl_int clEnqueueUnmapMemObject ( cl_command_queue  command_queue, cl_mem memobj, void* mapped_ptr, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
475 FUNCTION: cl_int clEnqueueNDRangeKernel ( cl_command_queue command_queue, cl_kernel kernel, cl_uint work_dim, size_t* global_work_offset, size_t* global_work_size, size_t* local_work_size, cl_uint num_events_in_wait_list, cl_event*  event_wait_list, cl_event* event ) ;
476 CALLBACK: void cl_enqueue_task_cb ( void* args ) ;
477 FUNCTION: cl_int clEnqueueTask ( cl_command_queue command_queue, cl_kernel kernel, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
478 FUNCTION: cl_int clEnqueueNativeKernel ( cl_command_queue command_queue, cl_enqueue_task_cb user_func, void* args, size_t cb_args, cl_uint num_mem_objects, cl_mem* mem_list, void** args_mem_loc, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
479 FUNCTION: cl_int clEnqueueMarker ( cl_command_queue command_queue, cl_event* event ) ;
480 FUNCTION: cl_int clEnqueueWaitForEvents ( cl_command_queue command_queue, cl_uint num_events, cl_event* event_list ) ;
481 FUNCTION: cl_int clEnqueueBarrier ( cl_command_queue command_queue ) ;
482 FUNCTION: void* clGetExtensionFunctionAddress ( char* func_name ) ;
483
484 ! cl_ext.h
485 CONSTANT: CL_DEVICE_DOUBLE_FP_CONFIG 0x1032
486 CONSTANT: CL_DEVICE_HALF_FP_CONFIG   0x1033
487
488 ! cl_khr_icd.txt
489 CONSTANT: CL_PLATFORM_ICD_SUFFIX_KHR 0x0920
490 CONSTANT: CL_PLATFORM_NOT_FOUND_KHR  -1001
491
492 FUNCTION: cl_int clIcdGetPlatformIDsKHR ( cl_uint num_entries, cl_platform_id* platforms, cl_uint* num_platforms ) ;
493
494 ! cl_gl.h
495 TYPEDEF: cl_uint cl_gl_object_type
496 TYPEDEF: cl_uint cl_gl_texture_info
497 TYPEDEF: cl_uint cl_gl_platform_info
498
499 CONSTANT: CL_GL_OBJECT_BUFFER             0x2000
500 CONSTANT: CL_GL_OBJECT_TEXTURE2D          0x2001
501 CONSTANT: CL_GL_OBJECT_TEXTURE3D          0x2002
502 CONSTANT: CL_GL_OBJECT_RENDERBUFFER       0x2003
503 CONSTANT: CL_GL_TEXTURE_TARGET            0x2004
504 CONSTANT: CL_GL_MIPMAP_LEVEL              0x2005
505
506 FUNCTION: cl_mem clCreateFromGLBuffer ( cl_context context, cl_mem_flags flags, cl_GLuint bufobj, int* errcode_ret ) ;
507 FUNCTION: cl_mem clCreateFromGLTexture2D ( cl_context context, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel, cl_GLuint texture, cl_int* errcode_ret ) ;
508 FUNCTION: cl_mem clCreateFromGLTexture3D ( cl_context context, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel, cl_GLuint texture, cl_int* errcode_ret ) ;
509 FUNCTION: cl_mem clCreateFromGLRenderbuffer ( cl_context context, cl_mem_flags flags, cl_GLuint renderbuffer, cl_int* errcode_ret ) ;
510 FUNCTION: cl_int clGetGLObjectInfo ( cl_mem memobj, cl_gl_object_type* gl_object_type, cl_GLuint* gl_object_name ) ;
511 FUNCTION: cl_int clGetGLTextureInfo ( cl_mem memobj, cl_gl_texture_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret ) ;
512 FUNCTION: cl_int clEnqueueAcquireGLObjects ( cl_command_queue command_queue, cl_uint num_objects, cl_mem* mem_objects, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
513 FUNCTION: cl_int clEnqueueReleaseGLObjects ( cl_command_queue command_queue, cl_uint num_objects, cl_mem* mem_objects, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
514
515 ! cl_khr_gl_sharing.txt
516 TYPEDEF: cl_uint cl_gl_context_info
517
518 CONSTANT: CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR  -1000
519 CONSTANT: CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR    0x2006
520 CONSTANT: CL_DEVICES_FOR_GL_CONTEXT_KHR           0x2007
521 CONSTANT: CL_GL_CONTEXT_KHR                       0x2008
522 CONSTANT: CL_EGL_DISPLAY_KHR                      0x2009
523 CONSTANT: CL_GLX_DISPLAY_KHR                      0x200A
524 CONSTANT: CL_WGL_HDC_KHR                          0x200B
525 CONSTANT: CL_CGL_SHAREGROUP_KHR                   0x200C
526
527 FUNCTION: cl_int clGetGLContextInfoKHR ( cl_context_properties* properties, cl_gl_context_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret ) ;
528
529 ! cl_nv_d3d9_sharing.txt
530 CONSTANT: CL_D3D9_DEVICE_NV                     0x4022
531 CONSTANT: CL_D3D9_ADAPTER_NAME_NV               0x4023
532 CONSTANT: CL_PREFERRED_DEVICES_FOR_D3D9_NV      0x4024
533 CONSTANT: CL_ALL_DEVICES_FOR_D3D9_NV            0x4025
534 CONSTANT: CL_CONTEXT_D3D9_DEVICE_NV             0x4026
535 CONSTANT: CL_MEM_D3D9_RESOURCE_NV               0x4027
536 CONSTANT: CL_IMAGE_D3D9_FACE_NV                 0x4028
537 CONSTANT: CL_IMAGE_D3D9_LEVEL_NV                0x4029
538 CONSTANT: CL_COMMAND_ACQUIRE_D3D9_OBJECTS_NV    0x402A
539 CONSTANT: CL_COMMAND_RELEASE_D3D9_OBJECTS_NV    0x402B
540 CONSTANT: CL_INVALID_D3D9_DEVICE_NV             -1010
541 CONSTANT: CL_INVALID_D3D9_RESOURCE_NV           -1011
542 CONSTANT: CL_D3D9_RESOURCE_ALREADY_ACQUIRED_NV  -1012
543 CONSTANT: CL_D3D9_RESOURCE_NOT_ACQUIRED_NV      -1013
544
545 TYPEDEF: void* cl_d3d9_device_source_nv 
546 TYPEDEF: void* cl_d3d9_device_set_nv 
547
548 FUNCTION: cl_int clGetDeviceIDsFromD3D9NV ( cl_platform_id platform, cl_d3d9_device_source_nv d3d_device_source, void* d3d_object, cl_d3d9_device_set_nv d3d_device_set, cl_uint num_entries, cl_device_id* devices, cl_uint* num_devices ) ;
549 FUNCTION: cl_mem clCreateFromD3D9VertexBufferNV ( cl_context context, cl_mem_flags flags, void* id3dvb9_resource, cl_int* errcode_ret ) ;
550 FUNCTION: cl_mem clCreateFromD3D9IndexBufferNV ( cl_context context, cl_mem_flags flags, void* id3dib9_resource, cl_int* errcode_ret ) ;
551 FUNCTION: cl_mem clCreateFromD3D9SurfaceNV ( cl_context context, cl_mem_flags flags, void* id3dsurface9_resource, cl_int* errcode_ret ) ;
552 FUNCTION: cl_mem clCreateFromD3D9TextureNV ( cl_context context, cl_mem_flags flags, void* id3dtexture9_resource, uint miplevel, cl_int* errcode_ret ) ;
553 FUNCTION: cl_mem clCreateFromD3D9CubeTextureNV ( cl_context context, cl_mem_flags flags, void* id3dct9_resource, int facetype, uint miplevel, cl_int* errcode_ret ) ;
554 FUNCTION: cl_mem clCreateFromD3D9VolumeTextureNV ( cl_context context, cl_mem_flags flags, void* id3dvt9-resource, uint miplevel, cl_int* errcode_ret ) ;
555 FUNCTION: cl_int clEnqueueAcquireD3D9ObjectsNV ( cl_command_queue command_queue, cl_uint num_objects, cl_mem* mem_objects, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
556 FUNCTION: cl_int clEnqueueReleaseD3D9ObjectsNV ( cl_command_queue command_queue, cl_uint num_objects, cl_mem* mem_objects, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
557
558 ! cl_nv_d3d10_sharing.txt
559 CONSTANT: CL_D3D10_DEVICE_NV                     0x4010
560 CONSTANT: CL_D3D10_DXGI_ADAPTER_NV               0x4011
561 CONSTANT: CL_PREFERRED_DEVICES_FOR_D3D10_NV      0x4012
562 CONSTANT: CL_ALL_DEVICES_FOR_D3D10_NV            0x4013
563 CONSTANT: CL_CONTEXT_D3D10_DEVICE_NV             0x4014
564 CONSTANT: CL_MEM_D3D10_RESOURCE_NV               0x4015
565 CONSTANT: CL_IMAGE_D3D10_SUBRESOURCE_NV          0x4016
566 CONSTANT: CL_COMMAND_ACQUIRE_D3D10_OBJECTS_NV    0x4017
567 CONSTANT: CL_COMMAND_RELEASE_D3D10_OBJECTS_NV    0x4018
568 CONSTANT: CL_INVALID_D3D10_DEVICE_NV             -1002
569 CONSTANT: CL_INVALID_D3D10_RESOURCE_NV           -1003
570 CONSTANT: CL_D3D10_RESOURCE_ALREADY_ACQUIRED_NV  -1004
571 CONSTANT: CL_D3D10_RESOURCE_NOT_ACQUIRED_NV      -1005
572
573 TYPEDEF: void* cl_d3d10_device_source_nv 
574 TYPEDEF: void* cl_d3d10_device_set_nv 
575
576 FUNCTION: cl_int clGetDeviceIDsFromD3D10NV ( cl_platform_id platform, cl_d3d10_device_source_nv d3d_device_source, void* d3d_object, cl_d3d10_device_set_nv d3d_device_set, cl_uint num_entries, cl_device_id* devices, cl_uint* num_devices ) ;
577 FUNCTION: cl_mem clCreateFromD3D10BufferNV ( cl_context context, cl_mem_flags flags, void* id3d10buffer_resource, cl_int* errcode_ret ) ;
578 FUNCTION: cl_mem clCreateFromD3D10Texture2DNV ( cl_context context, cl_mem_flags flags, void* id3d10texture2d_resource, uint subresource, cl_int* errcode_ret ) ;
579 FUNCTION: cl_mem clCreateFromD3D10Texture3DNV ( cl_context context, cl_mem_flags flags, void* id3d10texture3d_resource, uint subresource, cl_int* errcode_ret ) ;
580 FUNCTION: cl_int clEnqueueAcquireD3D10ObjectsNV ( cl_command_queue command_queue, cl_uint num_objects, cl_mem* mem_objects, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
581 FUNCTION: cl_int clEnqueueReleaseD3D10ObjectsNV ( cl_command_queue command_queue, cl_uint num_objects, cl_mem* mem_objects, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
582
583 ! cl_nv_d3d11_sharing.txt
584 CONSTANT: CL_D3D11_DEVICE_NV                     0x4019
585 CONSTANT: CL_D3D11_DXGI_ADAPTER_NV               0x401A
586 CONSTANT: CL_PREFERRED_DEVICES_FOR_D3D11_NV      0x401B
587 CONSTANT: CL_ALL_DEVICES_FOR_D3D11_NV            0x401C
588 CONSTANT: CL_CONTEXT_D3D11_DEVICE_NV             0x401D
589 CONSTANT: CL_MEM_D3D11_RESOURCE_NV               0x401E
590 CONSTANT: CL_IMAGE_D3D11_SUBRESOURCE_NV          0x401F
591 CONSTANT: CL_COMMAND_ACQUIRE_D3D11_OBJECTS_NV    0x4020
592 CONSTANT: CL_COMMAND_RELEASE_D3D11_OBJECTS_NV    0x4021
593 CONSTANT: CL_INVALID_D3D11_DEVICE_NV             -1006
594 CONSTANT: CL_INVALID_D3D11_RESOURCE_NV           -1007
595 CONSTANT: CL_D3D11_RESOURCE_ALREADY_ACQUIRED_NV  -1008
596 CONSTANT: CL_D3D11_RESOURCE_NOT_ACQUIRED_NV      -1009
597
598 TYPEDEF: void* cl_d3d11_device_source_nv 
599 TYPEDEF: void* cl_d3d11_device_set_nv 
600
601 FUNCTION: cl_int clGetDeviceIDsFromD3D11NV ( cl_platform_id platform, cl_d3d11_device_source_nv d3d_device_source, void* d3d_object, cl_d3d11_device_set_nv d3d_device_set, cl_uint num_entries, cl_device_id* devices, cl_uint* num_devices ) ;
602 FUNCTION: cl_mem clCreateFromD3D11BufferNV ( cl_context context, cl_mem_flags flags, void* id3d11buffer_resource, cl_int* errcode_ret ) ;
603 FUNCTION: cl_mem clCreateFromD3D11Texture2DNV ( cl_context context, cl_mem_flags flags, void* id3d11texture2d_resource, uint subresource, cl_int* errcode_ret ) ;
604 FUNCTION: cl_mem clCreateFromD3D11Texture3DNV ( cl_context context, cl_mem_flags flags, void* id3dtexture3d_resource, uint subresource, cl_int* errcode_ret ) ;
605 FUNCTION: cl_int clEnqueueAcquireD3D11ObjectsNV ( cl_command_queue command_queue, cl_uint num_objects, cl_mem* mem_objects, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
606 FUNCTION: cl_int clEnqueueReleaseD3D11ObjectsNV ( cl_command_queue command_queue, cl_uint num_objects, cl_mem* mem_objects, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ;
607
608 ! Utility words needed for working with the API
609 : *size_t ( c-ptr -- value )
610     size_t heap-size {
611         { 4 [ 0 alien-unsigned-4 ] }
612         { 8 [ 0 alien-unsigned-8 ] }
613     } case ; inline
614
615 : <size_t> ( value -- c-ptr )
616     size_t heap-size [ (byte-array) ] keep {
617         { 4 [ [ 0 set-alien-unsigned-4 ] keep ] }
618         { 8 [ [ 0 set-alien-unsigned-8 ] keep ] }
619     } case ; inline