Path: blob/master/3rdparty/include/opencl/1.2/CL/cl.h
16348 views
/*******************************************************************************1* Copyright (c) 2008 - 2012 The Khronos Group Inc.2*3* Permission is hereby granted, free of charge, to any person obtaining a4* copy of this software and/or associated documentation files (the5* "Materials"), to deal in the Materials without restriction, including6* without limitation the rights to use, copy, modify, merge, publish,7* distribute, sublicense, and/or sell copies of the Materials, and to8* permit persons to whom the Materials are furnished to do so, subject to9* the following conditions:10*11* The above copyright notice and this permission notice shall be included12* in all copies or substantial portions of the Materials.13*14* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,15* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF16* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.17* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY18* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,19* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE20* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.21******************************************************************************/2223#ifndef __OPENCL_CL_H24#define __OPENCL_CL_H2526#ifdef __APPLE__27#include <OpenCL/cl_platform.h>28#else29#include <CL/cl_platform.h>30#endif3132#ifdef __cplusplus33extern "C" {34#endif3536/******************************************************************************/3738typedef struct _cl_platform_id * cl_platform_id;39typedef struct _cl_device_id * cl_device_id;40typedef struct _cl_context * cl_context;41typedef struct _cl_command_queue * cl_command_queue;42typedef struct _cl_mem * cl_mem;43typedef struct _cl_program * cl_program;44typedef struct _cl_kernel * cl_kernel;45typedef struct _cl_event * cl_event;46typedef struct _cl_sampler * cl_sampler;4748typedef 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. */49typedef cl_ulong cl_bitfield;50typedef cl_bitfield cl_device_type;51typedef cl_uint cl_platform_info;52typedef cl_uint cl_device_info;53typedef cl_bitfield cl_device_fp_config;54typedef cl_uint cl_device_mem_cache_type;55typedef cl_uint cl_device_local_mem_type;56typedef cl_bitfield cl_device_exec_capabilities;57typedef cl_bitfield cl_command_queue_properties;58typedef intptr_t cl_device_partition_property;59typedef cl_bitfield cl_device_affinity_domain;6061typedef intptr_t cl_context_properties;62typedef cl_uint cl_context_info;63typedef cl_uint cl_command_queue_info;64typedef cl_uint cl_channel_order;65typedef cl_uint cl_channel_type;66typedef cl_bitfield cl_mem_flags;67typedef cl_uint cl_mem_object_type;68typedef cl_uint cl_mem_info;69typedef cl_bitfield cl_mem_migration_flags;70typedef cl_uint cl_image_info;71typedef cl_uint cl_buffer_create_type;72typedef cl_uint cl_addressing_mode;73typedef cl_uint cl_filter_mode;74typedef cl_uint cl_sampler_info;75typedef cl_bitfield cl_map_flags;76typedef cl_uint cl_program_info;77typedef cl_uint cl_program_build_info;78typedef cl_uint cl_program_binary_type;79typedef cl_int cl_build_status;80typedef cl_uint cl_kernel_info;81typedef cl_uint cl_kernel_arg_info;82typedef cl_uint cl_kernel_arg_address_qualifier;83typedef cl_uint cl_kernel_arg_access_qualifier;84typedef cl_bitfield cl_kernel_arg_type_qualifier;85typedef cl_uint cl_kernel_work_group_info;86typedef cl_uint cl_event_info;87typedef cl_uint cl_command_type;88typedef cl_uint cl_profiling_info;899091typedef struct _cl_image_format {92cl_channel_order image_channel_order;93cl_channel_type image_channel_data_type;94} cl_image_format;9596typedef struct _cl_image_desc {97cl_mem_object_type image_type;98size_t image_width;99size_t image_height;100size_t image_depth;101size_t image_array_size;102size_t image_row_pitch;103size_t image_slice_pitch;104cl_uint num_mip_levels;105cl_uint num_samples;106cl_mem buffer;107} cl_image_desc;108109typedef struct _cl_buffer_region {110size_t origin;111size_t size;112} cl_buffer_region;113114115/******************************************************************************/116117/* Error Codes */118#define CL_SUCCESS 0119#define CL_DEVICE_NOT_FOUND -1120#define CL_DEVICE_NOT_AVAILABLE -2121#define CL_COMPILER_NOT_AVAILABLE -3122#define CL_MEM_OBJECT_ALLOCATION_FAILURE -4123#define CL_OUT_OF_RESOURCES -5124#define CL_OUT_OF_HOST_MEMORY -6125#define CL_PROFILING_INFO_NOT_AVAILABLE -7126#define CL_MEM_COPY_OVERLAP -8127#define CL_IMAGE_FORMAT_MISMATCH -9128#define CL_IMAGE_FORMAT_NOT_SUPPORTED -10129#define CL_BUILD_PROGRAM_FAILURE -11130#define CL_MAP_FAILURE -12131#define CL_MISALIGNED_SUB_BUFFER_OFFSET -13132#define CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST -14133#define CL_COMPILE_PROGRAM_FAILURE -15134#define CL_LINKER_NOT_AVAILABLE -16135#define CL_LINK_PROGRAM_FAILURE -17136#define CL_DEVICE_PARTITION_FAILED -18137#define CL_KERNEL_ARG_INFO_NOT_AVAILABLE -19138139#define CL_INVALID_VALUE -30140#define CL_INVALID_DEVICE_TYPE -31141#define CL_INVALID_PLATFORM -32142#define CL_INVALID_DEVICE -33143#define CL_INVALID_CONTEXT -34144#define CL_INVALID_QUEUE_PROPERTIES -35145#define CL_INVALID_COMMAND_QUEUE -36146#define CL_INVALID_HOST_PTR -37147#define CL_INVALID_MEM_OBJECT -38148#define CL_INVALID_IMAGE_FORMAT_DESCRIPTOR -39149#define CL_INVALID_IMAGE_SIZE -40150#define CL_INVALID_SAMPLER -41151#define CL_INVALID_BINARY -42152#define CL_INVALID_BUILD_OPTIONS -43153#define CL_INVALID_PROGRAM -44154#define CL_INVALID_PROGRAM_EXECUTABLE -45155#define CL_INVALID_KERNEL_NAME -46156#define CL_INVALID_KERNEL_DEFINITION -47157#define CL_INVALID_KERNEL -48158#define CL_INVALID_ARG_INDEX -49159#define CL_INVALID_ARG_VALUE -50160#define CL_INVALID_ARG_SIZE -51161#define CL_INVALID_KERNEL_ARGS -52162#define CL_INVALID_WORK_DIMENSION -53163#define CL_INVALID_WORK_GROUP_SIZE -54164#define CL_INVALID_WORK_ITEM_SIZE -55165#define CL_INVALID_GLOBAL_OFFSET -56166#define CL_INVALID_EVENT_WAIT_LIST -57167#define CL_INVALID_EVENT -58168#define CL_INVALID_OPERATION -59169#define CL_INVALID_GL_OBJECT -60170#define CL_INVALID_BUFFER_SIZE -61171#define CL_INVALID_MIP_LEVEL -62172#define CL_INVALID_GLOBAL_WORK_SIZE -63173#define CL_INVALID_PROPERTY -64174#define CL_INVALID_IMAGE_DESCRIPTOR -65175#define CL_INVALID_COMPILER_OPTIONS -66176#define CL_INVALID_LINKER_OPTIONS -67177#define CL_INVALID_DEVICE_PARTITION_COUNT -68178179/* OpenCL Version */180#define CL_VERSION_1_0 1181#define CL_VERSION_1_1 1182#define CL_VERSION_1_2 1183184/* cl_bool */185#define CL_FALSE 0186#define CL_TRUE 1187#define CL_BLOCKING CL_TRUE188#define CL_NON_BLOCKING CL_FALSE189190/* cl_platform_info */191#define CL_PLATFORM_PROFILE 0x0900192#define CL_PLATFORM_VERSION 0x0901193#define CL_PLATFORM_NAME 0x0902194#define CL_PLATFORM_VENDOR 0x0903195#define CL_PLATFORM_EXTENSIONS 0x0904196197/* cl_device_type - bitfield */198#define CL_DEVICE_TYPE_DEFAULT (1 << 0)199#define CL_DEVICE_TYPE_CPU (1 << 1)200#define CL_DEVICE_TYPE_GPU (1 << 2)201#define CL_DEVICE_TYPE_ACCELERATOR (1 << 3)202#define CL_DEVICE_TYPE_CUSTOM (1 << 4)203#define CL_DEVICE_TYPE_ALL 0xFFFFFFFF204205/* cl_device_info */206#define CL_DEVICE_TYPE 0x1000207#define CL_DEVICE_VENDOR_ID 0x1001208#define CL_DEVICE_MAX_COMPUTE_UNITS 0x1002209#define CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS 0x1003210#define CL_DEVICE_MAX_WORK_GROUP_SIZE 0x1004211#define CL_DEVICE_MAX_WORK_ITEM_SIZES 0x1005212#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR 0x1006213#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT 0x1007214#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT 0x1008215#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG 0x1009216#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT 0x100A217#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE 0x100B218#define CL_DEVICE_MAX_CLOCK_FREQUENCY 0x100C219#define CL_DEVICE_ADDRESS_BITS 0x100D220#define CL_DEVICE_MAX_READ_IMAGE_ARGS 0x100E221#define CL_DEVICE_MAX_WRITE_IMAGE_ARGS 0x100F222#define CL_DEVICE_MAX_MEM_ALLOC_SIZE 0x1010223#define CL_DEVICE_IMAGE2D_MAX_WIDTH 0x1011224#define CL_DEVICE_IMAGE2D_MAX_HEIGHT 0x1012225#define CL_DEVICE_IMAGE3D_MAX_WIDTH 0x1013226#define CL_DEVICE_IMAGE3D_MAX_HEIGHT 0x1014227#define CL_DEVICE_IMAGE3D_MAX_DEPTH 0x1015228#define CL_DEVICE_IMAGE_SUPPORT 0x1016229#define CL_DEVICE_MAX_PARAMETER_SIZE 0x1017230#define CL_DEVICE_MAX_SAMPLERS 0x1018231#define CL_DEVICE_MEM_BASE_ADDR_ALIGN 0x1019232#define CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE 0x101A233#define CL_DEVICE_SINGLE_FP_CONFIG 0x101B234#define CL_DEVICE_GLOBAL_MEM_CACHE_TYPE 0x101C235#define CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE 0x101D236#define CL_DEVICE_GLOBAL_MEM_CACHE_SIZE 0x101E237#define CL_DEVICE_GLOBAL_MEM_SIZE 0x101F238#define CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE 0x1020239#define CL_DEVICE_MAX_CONSTANT_ARGS 0x1021240#define CL_DEVICE_LOCAL_MEM_TYPE 0x1022241#define CL_DEVICE_LOCAL_MEM_SIZE 0x1023242#define CL_DEVICE_ERROR_CORRECTION_SUPPORT 0x1024243#define CL_DEVICE_PROFILING_TIMER_RESOLUTION 0x1025244#define CL_DEVICE_ENDIAN_LITTLE 0x1026245#define CL_DEVICE_AVAILABLE 0x1027246#define CL_DEVICE_COMPILER_AVAILABLE 0x1028247#define CL_DEVICE_EXECUTION_CAPABILITIES 0x1029248#define CL_DEVICE_QUEUE_PROPERTIES 0x102A249#define CL_DEVICE_NAME 0x102B250#define CL_DEVICE_VENDOR 0x102C251#define CL_DRIVER_VERSION 0x102D252#define CL_DEVICE_PROFILE 0x102E253#define CL_DEVICE_VERSION 0x102F254#define CL_DEVICE_EXTENSIONS 0x1030255#define CL_DEVICE_PLATFORM 0x1031256#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032257/* 0x1033 reserved for CL_DEVICE_HALF_FP_CONFIG */258#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF 0x1034259#define CL_DEVICE_HOST_UNIFIED_MEMORY 0x1035260#define CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR 0x1036261#define CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT 0x1037262#define CL_DEVICE_NATIVE_VECTOR_WIDTH_INT 0x1038263#define CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG 0x1039264#define CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT 0x103A265#define CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE 0x103B266#define CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF 0x103C267#define CL_DEVICE_OPENCL_C_VERSION 0x103D268#define CL_DEVICE_LINKER_AVAILABLE 0x103E269#define CL_DEVICE_BUILT_IN_KERNELS 0x103F270#define CL_DEVICE_IMAGE_MAX_BUFFER_SIZE 0x1040271#define CL_DEVICE_IMAGE_MAX_ARRAY_SIZE 0x1041272#define CL_DEVICE_PARENT_DEVICE 0x1042273#define CL_DEVICE_PARTITION_MAX_SUB_DEVICES 0x1043274#define CL_DEVICE_PARTITION_PROPERTIES 0x1044275#define CL_DEVICE_PARTITION_AFFINITY_DOMAIN 0x1045276#define CL_DEVICE_PARTITION_TYPE 0x1046277#define CL_DEVICE_REFERENCE_COUNT 0x1047278#define CL_DEVICE_PREFERRED_INTEROP_USER_SYNC 0x1048279#define CL_DEVICE_PRINTF_BUFFER_SIZE 0x1049280#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT 0x104A281#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT 0x104B282283/* cl_device_fp_config - bitfield */284#define CL_FP_DENORM (1 << 0)285#define CL_FP_INF_NAN (1 << 1)286#define CL_FP_ROUND_TO_NEAREST (1 << 2)287#define CL_FP_ROUND_TO_ZERO (1 << 3)288#define CL_FP_ROUND_TO_INF (1 << 4)289#define CL_FP_FMA (1 << 5)290#define CL_FP_SOFT_FLOAT (1 << 6)291#define CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT (1 << 7)292293/* cl_device_mem_cache_type */294#define CL_NONE 0x0295#define CL_READ_ONLY_CACHE 0x1296#define CL_READ_WRITE_CACHE 0x2297298/* cl_device_local_mem_type */299#define CL_LOCAL 0x1300#define CL_GLOBAL 0x2301302/* cl_device_exec_capabilities - bitfield */303#define CL_EXEC_KERNEL (1 << 0)304#define CL_EXEC_NATIVE_KERNEL (1 << 1)305306/* cl_command_queue_properties - bitfield */307#define CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE (1 << 0)308#define CL_QUEUE_PROFILING_ENABLE (1 << 1)309310/* cl_context_info */311#define CL_CONTEXT_REFERENCE_COUNT 0x1080312#define CL_CONTEXT_DEVICES 0x1081313#define CL_CONTEXT_PROPERTIES 0x1082314#define CL_CONTEXT_NUM_DEVICES 0x1083315316/* cl_context_properties */317#define CL_CONTEXT_PLATFORM 0x1084318#define CL_CONTEXT_INTEROP_USER_SYNC 0x1085319320/* cl_device_partition_property */321#define CL_DEVICE_PARTITION_EQUALLY 0x1086322#define CL_DEVICE_PARTITION_BY_COUNTS 0x1087323#define CL_DEVICE_PARTITION_BY_COUNTS_LIST_END 0x0324#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN 0x1088325326/* cl_device_affinity_domain */327#define CL_DEVICE_AFFINITY_DOMAIN_NUMA (1 << 0)328#define CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE (1 << 1)329#define CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE (1 << 2)330#define CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE (1 << 3)331#define CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE (1 << 4)332#define CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE (1 << 5)333334/* cl_command_queue_info */335#define CL_QUEUE_CONTEXT 0x1090336#define CL_QUEUE_DEVICE 0x1091337#define CL_QUEUE_REFERENCE_COUNT 0x1092338#define CL_QUEUE_PROPERTIES 0x1093339340/* cl_mem_flags - bitfield */341#define CL_MEM_READ_WRITE (1 << 0)342#define CL_MEM_WRITE_ONLY (1 << 1)343#define CL_MEM_READ_ONLY (1 << 2)344#define CL_MEM_USE_HOST_PTR (1 << 3)345#define CL_MEM_ALLOC_HOST_PTR (1 << 4)346#define CL_MEM_COPY_HOST_PTR (1 << 5)347// reserved (1 << 6)348#define CL_MEM_HOST_WRITE_ONLY (1 << 7)349#define CL_MEM_HOST_READ_ONLY (1 << 8)350#define CL_MEM_HOST_NO_ACCESS (1 << 9)351352/* cl_mem_migration_flags - bitfield */353#define CL_MIGRATE_MEM_OBJECT_HOST (1 << 0)354#define CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED (1 << 1)355356/* cl_channel_order */357#define CL_R 0x10B0358#define CL_A 0x10B1359#define CL_RG 0x10B2360#define CL_RA 0x10B3361#define CL_RGB 0x10B4362#define CL_RGBA 0x10B5363#define CL_BGRA 0x10B6364#define CL_ARGB 0x10B7365#define CL_INTENSITY 0x10B8366#define CL_LUMINANCE 0x10B9367#define CL_Rx 0x10BA368#define CL_RGx 0x10BB369#define CL_RGBx 0x10BC370#define CL_DEPTH 0x10BD371#define CL_DEPTH_STENCIL 0x10BE372373/* cl_channel_type */374#define CL_SNORM_INT8 0x10D0375#define CL_SNORM_INT16 0x10D1376#define CL_UNORM_INT8 0x10D2377#define CL_UNORM_INT16 0x10D3378#define CL_UNORM_SHORT_565 0x10D4379#define CL_UNORM_SHORT_555 0x10D5380#define CL_UNORM_INT_101010 0x10D6381#define CL_SIGNED_INT8 0x10D7382#define CL_SIGNED_INT16 0x10D8383#define CL_SIGNED_INT32 0x10D9384#define CL_UNSIGNED_INT8 0x10DA385#define CL_UNSIGNED_INT16 0x10DB386#define CL_UNSIGNED_INT32 0x10DC387#define CL_HALF_FLOAT 0x10DD388#define CL_FLOAT 0x10DE389#define CL_UNORM_INT24 0x10DF390391/* cl_mem_object_type */392#define CL_MEM_OBJECT_BUFFER 0x10F0393#define CL_MEM_OBJECT_IMAGE2D 0x10F1394#define CL_MEM_OBJECT_IMAGE3D 0x10F2395#define CL_MEM_OBJECT_IMAGE2D_ARRAY 0x10F3396#define CL_MEM_OBJECT_IMAGE1D 0x10F4397#define CL_MEM_OBJECT_IMAGE1D_ARRAY 0x10F5398#define CL_MEM_OBJECT_IMAGE1D_BUFFER 0x10F6399400/* cl_mem_info */401#define CL_MEM_TYPE 0x1100402#define CL_MEM_FLAGS 0x1101403#define CL_MEM_SIZE 0x1102404#define CL_MEM_HOST_PTR 0x1103405#define CL_MEM_MAP_COUNT 0x1104406#define CL_MEM_REFERENCE_COUNT 0x1105407#define CL_MEM_CONTEXT 0x1106408#define CL_MEM_ASSOCIATED_MEMOBJECT 0x1107409#define CL_MEM_OFFSET 0x1108410411/* cl_image_info */412#define CL_IMAGE_FORMAT 0x1110413#define CL_IMAGE_ELEMENT_SIZE 0x1111414#define CL_IMAGE_ROW_PITCH 0x1112415#define CL_IMAGE_SLICE_PITCH 0x1113416#define CL_IMAGE_WIDTH 0x1114417#define CL_IMAGE_HEIGHT 0x1115418#define CL_IMAGE_DEPTH 0x1116419#define CL_IMAGE_ARRAY_SIZE 0x1117420#define CL_IMAGE_BUFFER 0x1118421#define CL_IMAGE_NUM_MIP_LEVELS 0x1119422#define CL_IMAGE_NUM_SAMPLES 0x111A423424/* cl_addressing_mode */425#define CL_ADDRESS_NONE 0x1130426#define CL_ADDRESS_CLAMP_TO_EDGE 0x1131427#define CL_ADDRESS_CLAMP 0x1132428#define CL_ADDRESS_REPEAT 0x1133429#define CL_ADDRESS_MIRRORED_REPEAT 0x1134430431/* cl_filter_mode */432#define CL_FILTER_NEAREST 0x1140433#define CL_FILTER_LINEAR 0x1141434435/* cl_sampler_info */436#define CL_SAMPLER_REFERENCE_COUNT 0x1150437#define CL_SAMPLER_CONTEXT 0x1151438#define CL_SAMPLER_NORMALIZED_COORDS 0x1152439#define CL_SAMPLER_ADDRESSING_MODE 0x1153440#define CL_SAMPLER_FILTER_MODE 0x1154441442/* cl_map_flags - bitfield */443#define CL_MAP_READ (1 << 0)444#define CL_MAP_WRITE (1 << 1)445#define CL_MAP_WRITE_INVALIDATE_REGION (1 << 2)446447/* cl_program_info */448#define CL_PROGRAM_REFERENCE_COUNT 0x1160449#define CL_PROGRAM_CONTEXT 0x1161450#define CL_PROGRAM_NUM_DEVICES 0x1162451#define CL_PROGRAM_DEVICES 0x1163452#define CL_PROGRAM_SOURCE 0x1164453#define CL_PROGRAM_BINARY_SIZES 0x1165454#define CL_PROGRAM_BINARIES 0x1166455#define CL_PROGRAM_NUM_KERNELS 0x1167456#define CL_PROGRAM_KERNEL_NAMES 0x1168457458/* cl_program_build_info */459#define CL_PROGRAM_BUILD_STATUS 0x1181460#define CL_PROGRAM_BUILD_OPTIONS 0x1182461#define CL_PROGRAM_BUILD_LOG 0x1183462#define CL_PROGRAM_BINARY_TYPE 0x1184463464/* cl_program_binary_type */465#define CL_PROGRAM_BINARY_TYPE_NONE 0x0466#define CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT 0x1467#define CL_PROGRAM_BINARY_TYPE_LIBRARY 0x2468#define CL_PROGRAM_BINARY_TYPE_EXECUTABLE 0x4469470/* cl_build_status */471#define CL_BUILD_SUCCESS 0472#define CL_BUILD_NONE -1473#define CL_BUILD_ERROR -2474#define CL_BUILD_IN_PROGRESS -3475476/* cl_kernel_info */477#define CL_KERNEL_FUNCTION_NAME 0x1190478#define CL_KERNEL_NUM_ARGS 0x1191479#define CL_KERNEL_REFERENCE_COUNT 0x1192480#define CL_KERNEL_CONTEXT 0x1193481#define CL_KERNEL_PROGRAM 0x1194482#define CL_KERNEL_ATTRIBUTES 0x1195483484/* cl_kernel_arg_info */485#define CL_KERNEL_ARG_ADDRESS_QUALIFIER 0x1196486#define CL_KERNEL_ARG_ACCESS_QUALIFIER 0x1197487#define CL_KERNEL_ARG_TYPE_NAME 0x1198488#define CL_KERNEL_ARG_TYPE_QUALIFIER 0x1199489#define CL_KERNEL_ARG_NAME 0x119A490491/* cl_kernel_arg_address_qualifier */492#define CL_KERNEL_ARG_ADDRESS_GLOBAL 0x119B493#define CL_KERNEL_ARG_ADDRESS_LOCAL 0x119C494#define CL_KERNEL_ARG_ADDRESS_CONSTANT 0x119D495#define CL_KERNEL_ARG_ADDRESS_PRIVATE 0x119E496497/* cl_kernel_arg_access_qualifier */498#define CL_KERNEL_ARG_ACCESS_READ_ONLY 0x11A0499#define CL_KERNEL_ARG_ACCESS_WRITE_ONLY 0x11A1500#define CL_KERNEL_ARG_ACCESS_READ_WRITE 0x11A2501#define CL_KERNEL_ARG_ACCESS_NONE 0x11A3502503/* cl_kernel_arg_type_qualifer */504#define CL_KERNEL_ARG_TYPE_NONE 0505#define CL_KERNEL_ARG_TYPE_CONST (1 << 0)506#define CL_KERNEL_ARG_TYPE_RESTRICT (1 << 1)507#define CL_KERNEL_ARG_TYPE_VOLATILE (1 << 2)508509/* cl_kernel_work_group_info */510#define CL_KERNEL_WORK_GROUP_SIZE 0x11B0511#define CL_KERNEL_COMPILE_WORK_GROUP_SIZE 0x11B1512#define CL_KERNEL_LOCAL_MEM_SIZE 0x11B2513#define CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE 0x11B3514#define CL_KERNEL_PRIVATE_MEM_SIZE 0x11B4515#define CL_KERNEL_GLOBAL_WORK_SIZE 0x11B5516517/* cl_event_info */518#define CL_EVENT_COMMAND_QUEUE 0x11D0519#define CL_EVENT_COMMAND_TYPE 0x11D1520#define CL_EVENT_REFERENCE_COUNT 0x11D2521#define CL_EVENT_COMMAND_EXECUTION_STATUS 0x11D3522#define CL_EVENT_CONTEXT 0x11D4523524/* cl_command_type */525#define CL_COMMAND_NDRANGE_KERNEL 0x11F0526#define CL_COMMAND_TASK 0x11F1527#define CL_COMMAND_NATIVE_KERNEL 0x11F2528#define CL_COMMAND_READ_BUFFER 0x11F3529#define CL_COMMAND_WRITE_BUFFER 0x11F4530#define CL_COMMAND_COPY_BUFFER 0x11F5531#define CL_COMMAND_READ_IMAGE 0x11F6532#define CL_COMMAND_WRITE_IMAGE 0x11F7533#define CL_COMMAND_COPY_IMAGE 0x11F8534#define CL_COMMAND_COPY_IMAGE_TO_BUFFER 0x11F9535#define CL_COMMAND_COPY_BUFFER_TO_IMAGE 0x11FA536#define CL_COMMAND_MAP_BUFFER 0x11FB537#define CL_COMMAND_MAP_IMAGE 0x11FC538#define CL_COMMAND_UNMAP_MEM_OBJECT 0x11FD539#define CL_COMMAND_MARKER 0x11FE540#define CL_COMMAND_ACQUIRE_GL_OBJECTS 0x11FF541#define CL_COMMAND_RELEASE_GL_OBJECTS 0x1200542#define CL_COMMAND_READ_BUFFER_RECT 0x1201543#define CL_COMMAND_WRITE_BUFFER_RECT 0x1202544#define CL_COMMAND_COPY_BUFFER_RECT 0x1203545#define CL_COMMAND_USER 0x1204546#define CL_COMMAND_BARRIER 0x1205547#define CL_COMMAND_MIGRATE_MEM_OBJECTS 0x1206548#define CL_COMMAND_FILL_BUFFER 0x1207549#define CL_COMMAND_FILL_IMAGE 0x1208550551/* command execution status */552#define CL_COMPLETE 0x0553#define CL_RUNNING 0x1554#define CL_SUBMITTED 0x2555#define CL_QUEUED 0x3556557/* cl_buffer_create_type */558#define CL_BUFFER_CREATE_TYPE_REGION 0x1220559560/* cl_profiling_info */561#define CL_PROFILING_COMMAND_QUEUED 0x1280562#define CL_PROFILING_COMMAND_SUBMIT 0x1281563#define CL_PROFILING_COMMAND_START 0x1282564#define CL_PROFILING_COMMAND_END 0x1283565566/********************************************************************************************************/567568/* Platform API */569extern CL_API_ENTRY cl_int CL_API_CALL570clGetPlatformIDs(cl_uint /* num_entries */,571cl_platform_id * /* platforms */,572cl_uint * /* num_platforms */) CL_API_SUFFIX__VERSION_1_0;573574extern CL_API_ENTRY cl_int CL_API_CALL575clGetPlatformInfo(cl_platform_id /* platform */,576cl_platform_info /* param_name */,577size_t /* param_value_size */,578void * /* param_value */,579size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;580581/* Device APIs */582extern CL_API_ENTRY cl_int CL_API_CALL583clGetDeviceIDs(cl_platform_id /* platform */,584cl_device_type /* device_type */,585cl_uint /* num_entries */,586cl_device_id * /* devices */,587cl_uint * /* num_devices */) CL_API_SUFFIX__VERSION_1_0;588589extern CL_API_ENTRY cl_int CL_API_CALL590clGetDeviceInfo(cl_device_id /* device */,591cl_device_info /* param_name */,592size_t /* param_value_size */,593void * /* param_value */,594size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;595596extern CL_API_ENTRY cl_int CL_API_CALL597clCreateSubDevices(cl_device_id /* in_device */,598const cl_device_partition_property * /* properties */,599cl_uint /* num_devices */,600cl_device_id * /* out_devices */,601cl_uint * /* num_devices_ret */) CL_API_SUFFIX__VERSION_1_2;602603extern CL_API_ENTRY cl_int CL_API_CALL604clRetainDevice(cl_device_id /* device */) CL_API_SUFFIX__VERSION_1_2;605606extern CL_API_ENTRY cl_int CL_API_CALL607clReleaseDevice(cl_device_id /* device */) CL_API_SUFFIX__VERSION_1_2;608609/* Context APIs */610extern CL_API_ENTRY cl_context CL_API_CALL611clCreateContext(const cl_context_properties * /* properties */,612cl_uint /* num_devices */,613const cl_device_id * /* devices */,614void (CL_CALLBACK * /* pfn_notify */)(const char *, const void *, size_t, void *),615void * /* user_data */,616cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;617618extern CL_API_ENTRY cl_context CL_API_CALL619clCreateContextFromType(const cl_context_properties * /* properties */,620cl_device_type /* device_type */,621void (CL_CALLBACK * /* pfn_notify*/ )(const char *, const void *, size_t, void *),622void * /* user_data */,623cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;624625extern CL_API_ENTRY cl_int CL_API_CALL626clRetainContext(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0;627628extern CL_API_ENTRY cl_int CL_API_CALL629clReleaseContext(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0;630631extern CL_API_ENTRY cl_int CL_API_CALL632clGetContextInfo(cl_context /* context */,633cl_context_info /* param_name */,634size_t /* param_value_size */,635void * /* param_value */,636size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;637638/* Command Queue APIs */639extern CL_API_ENTRY cl_command_queue CL_API_CALL640clCreateCommandQueue(cl_context /* context */,641cl_device_id /* device */,642cl_command_queue_properties /* properties */,643cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;644645extern CL_API_ENTRY cl_int CL_API_CALL646clRetainCommandQueue(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;647648extern CL_API_ENTRY cl_int CL_API_CALL649clReleaseCommandQueue(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;650651extern CL_API_ENTRY cl_int CL_API_CALL652clGetCommandQueueInfo(cl_command_queue /* command_queue */,653cl_command_queue_info /* param_name */,654size_t /* param_value_size */,655void * /* param_value */,656size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;657658/* Memory Object APIs */659extern CL_API_ENTRY cl_mem CL_API_CALL660clCreateBuffer(cl_context /* context */,661cl_mem_flags /* flags */,662size_t /* size */,663void * /* host_ptr */,664cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;665666extern CL_API_ENTRY cl_mem CL_API_CALL667clCreateSubBuffer(cl_mem /* buffer */,668cl_mem_flags /* flags */,669cl_buffer_create_type /* buffer_create_type */,670const void * /* buffer_create_info */,671cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1;672673extern CL_API_ENTRY cl_mem CL_API_CALL674clCreateImage(cl_context /* context */,675cl_mem_flags /* flags */,676const cl_image_format * /* image_format */,677const cl_image_desc * /* image_desc */,678void * /* host_ptr */,679cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2;680681extern CL_API_ENTRY cl_int CL_API_CALL682clRetainMemObject(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0;683684extern CL_API_ENTRY cl_int CL_API_CALL685clReleaseMemObject(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0;686687extern CL_API_ENTRY cl_int CL_API_CALL688clGetSupportedImageFormats(cl_context /* context */,689cl_mem_flags /* flags */,690cl_mem_object_type /* image_type */,691cl_uint /* num_entries */,692cl_image_format * /* image_formats */,693cl_uint * /* num_image_formats */) CL_API_SUFFIX__VERSION_1_0;694695extern CL_API_ENTRY cl_int CL_API_CALL696clGetMemObjectInfo(cl_mem /* memobj */,697cl_mem_info /* param_name */,698size_t /* param_value_size */,699void * /* param_value */,700size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;701702extern CL_API_ENTRY cl_int CL_API_CALL703clGetImageInfo(cl_mem /* image */,704cl_image_info /* param_name */,705size_t /* param_value_size */,706void * /* param_value */,707size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;708709extern CL_API_ENTRY cl_int CL_API_CALL710clSetMemObjectDestructorCallback( cl_mem /* memobj */,711void (CL_CALLBACK * /*pfn_notify*/)( cl_mem /* memobj */, void* /*user_data*/),712void * /*user_data */ ) CL_API_SUFFIX__VERSION_1_1;713714/* Sampler APIs */715extern CL_API_ENTRY cl_sampler CL_API_CALL716clCreateSampler(cl_context /* context */,717cl_bool /* normalized_coords */,718cl_addressing_mode /* addressing_mode */,719cl_filter_mode /* filter_mode */,720cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;721722extern CL_API_ENTRY cl_int CL_API_CALL723clRetainSampler(cl_sampler /* sampler */) CL_API_SUFFIX__VERSION_1_0;724725extern CL_API_ENTRY cl_int CL_API_CALL726clReleaseSampler(cl_sampler /* sampler */) CL_API_SUFFIX__VERSION_1_0;727728extern CL_API_ENTRY cl_int CL_API_CALL729clGetSamplerInfo(cl_sampler /* sampler */,730cl_sampler_info /* param_name */,731size_t /* param_value_size */,732void * /* param_value */,733size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;734735/* Program Object APIs */736extern CL_API_ENTRY cl_program CL_API_CALL737clCreateProgramWithSource(cl_context /* context */,738cl_uint /* count */,739const char ** /* strings */,740const size_t * /* lengths */,741cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;742743extern CL_API_ENTRY cl_program CL_API_CALL744clCreateProgramWithBinary(cl_context /* context */,745cl_uint /* num_devices */,746const cl_device_id * /* device_list */,747const size_t * /* lengths */,748const unsigned char ** /* binaries */,749cl_int * /* binary_status */,750cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;751752extern CL_API_ENTRY cl_program CL_API_CALL753clCreateProgramWithBuiltInKernels(cl_context /* context */,754cl_uint /* num_devices */,755const cl_device_id * /* device_list */,756const char * /* kernel_names */,757cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2;758759extern CL_API_ENTRY cl_int CL_API_CALL760clRetainProgram(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0;761762extern CL_API_ENTRY cl_int CL_API_CALL763clReleaseProgram(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0;764765extern CL_API_ENTRY cl_int CL_API_CALL766clBuildProgram(cl_program /* program */,767cl_uint /* num_devices */,768const cl_device_id * /* device_list */,769const char * /* options */,770void (CL_CALLBACK * /* pfn_notify */)(cl_program /* program */, void * /* user_data */),771void * /* user_data */) CL_API_SUFFIX__VERSION_1_0;772773extern CL_API_ENTRY cl_int CL_API_CALL774clCompileProgram(cl_program /* program */,775cl_uint /* num_devices */,776const cl_device_id * /* device_list */,777const char * /* options */,778cl_uint /* num_input_headers */,779const cl_program * /* input_headers */,780const char ** /* header_include_names */,781void (CL_CALLBACK * /* pfn_notify */)(cl_program /* program */, void * /* user_data */),782void * /* user_data */) CL_API_SUFFIX__VERSION_1_2;783784extern CL_API_ENTRY cl_program CL_API_CALL785clLinkProgram(cl_context /* context */,786cl_uint /* num_devices */,787const cl_device_id * /* device_list */,788const char * /* options */,789cl_uint /* num_input_programs */,790const cl_program * /* input_programs */,791void (CL_CALLBACK * /* pfn_notify */)(cl_program /* program */, void * /* user_data */),792void * /* user_data */,793cl_int * /* errcode_ret */ ) CL_API_SUFFIX__VERSION_1_2;794795796extern CL_API_ENTRY cl_int CL_API_CALL797clUnloadPlatformCompiler(cl_platform_id /* platform */) CL_API_SUFFIX__VERSION_1_2;798799extern CL_API_ENTRY cl_int CL_API_CALL800clGetProgramInfo(cl_program /* program */,801cl_program_info /* param_name */,802size_t /* param_value_size */,803void * /* param_value */,804size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;805806extern CL_API_ENTRY cl_int CL_API_CALL807clGetProgramBuildInfo(cl_program /* program */,808cl_device_id /* device */,809cl_program_build_info /* param_name */,810size_t /* param_value_size */,811void * /* param_value */,812size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;813814/* Kernel Object APIs */815extern CL_API_ENTRY cl_kernel CL_API_CALL816clCreateKernel(cl_program /* program */,817const char * /* kernel_name */,818cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;819820extern CL_API_ENTRY cl_int CL_API_CALL821clCreateKernelsInProgram(cl_program /* program */,822cl_uint /* num_kernels */,823cl_kernel * /* kernels */,824cl_uint * /* num_kernels_ret */) CL_API_SUFFIX__VERSION_1_0;825826extern CL_API_ENTRY cl_int CL_API_CALL827clRetainKernel(cl_kernel /* kernel */) CL_API_SUFFIX__VERSION_1_0;828829extern CL_API_ENTRY cl_int CL_API_CALL830clReleaseKernel(cl_kernel /* kernel */) CL_API_SUFFIX__VERSION_1_0;831832extern CL_API_ENTRY cl_int CL_API_CALL833clSetKernelArg(cl_kernel /* kernel */,834cl_uint /* arg_index */,835size_t /* arg_size */,836const void * /* arg_value */) CL_API_SUFFIX__VERSION_1_0;837838extern CL_API_ENTRY cl_int CL_API_CALL839clGetKernelInfo(cl_kernel /* kernel */,840cl_kernel_info /* param_name */,841size_t /* param_value_size */,842void * /* param_value */,843size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;844845extern CL_API_ENTRY cl_int CL_API_CALL846clGetKernelArgInfo(cl_kernel /* kernel */,847cl_uint /* arg_indx */,848cl_kernel_arg_info /* param_name */,849size_t /* param_value_size */,850void * /* param_value */,851size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_2;852853extern CL_API_ENTRY cl_int CL_API_CALL854clGetKernelWorkGroupInfo(cl_kernel /* kernel */,855cl_device_id /* device */,856cl_kernel_work_group_info /* param_name */,857size_t /* param_value_size */,858void * /* param_value */,859size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;860861/* Event Object APIs */862extern CL_API_ENTRY cl_int CL_API_CALL863clWaitForEvents(cl_uint /* num_events */,864const cl_event * /* event_list */) CL_API_SUFFIX__VERSION_1_0;865866extern CL_API_ENTRY cl_int CL_API_CALL867clGetEventInfo(cl_event /* event */,868cl_event_info /* param_name */,869size_t /* param_value_size */,870void * /* param_value */,871size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;872873extern CL_API_ENTRY cl_event CL_API_CALL874clCreateUserEvent(cl_context /* context */,875cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1;876877extern CL_API_ENTRY cl_int CL_API_CALL878clRetainEvent(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0;879880extern CL_API_ENTRY cl_int CL_API_CALL881clReleaseEvent(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0;882883extern CL_API_ENTRY cl_int CL_API_CALL884clSetUserEventStatus(cl_event /* event */,885cl_int /* execution_status */) CL_API_SUFFIX__VERSION_1_1;886887extern CL_API_ENTRY cl_int CL_API_CALL888clSetEventCallback( cl_event /* event */,889cl_int /* command_exec_callback_type */,890void (CL_CALLBACK * /* pfn_notify */)(cl_event, cl_int, void *),891void * /* user_data */) CL_API_SUFFIX__VERSION_1_1;892893/* Profiling APIs */894extern CL_API_ENTRY cl_int CL_API_CALL895clGetEventProfilingInfo(cl_event /* event */,896cl_profiling_info /* param_name */,897size_t /* param_value_size */,898void * /* param_value */,899size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;900901/* Flush and Finish APIs */902extern CL_API_ENTRY cl_int CL_API_CALL903clFlush(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;904905extern CL_API_ENTRY cl_int CL_API_CALL906clFinish(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;907908/* Enqueued Commands APIs */909extern CL_API_ENTRY cl_int CL_API_CALL910clEnqueueReadBuffer(cl_command_queue /* command_queue */,911cl_mem /* buffer */,912cl_bool /* blocking_read */,913size_t /* offset */,914size_t /* size */,915void * /* ptr */,916cl_uint /* num_events_in_wait_list */,917const cl_event * /* event_wait_list */,918cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;919920extern CL_API_ENTRY cl_int CL_API_CALL921clEnqueueReadBufferRect(cl_command_queue /* command_queue */,922cl_mem /* buffer */,923cl_bool /* blocking_read */,924const size_t * /* buffer_offset */,925const size_t * /* host_offset */,926const size_t * /* region */,927size_t /* buffer_row_pitch */,928size_t /* buffer_slice_pitch */,929size_t /* host_row_pitch */,930size_t /* host_slice_pitch */,931void * /* ptr */,932cl_uint /* num_events_in_wait_list */,933const cl_event * /* event_wait_list */,934cl_event * /* event */) CL_API_SUFFIX__VERSION_1_1;935936extern CL_API_ENTRY cl_int CL_API_CALL937clEnqueueWriteBuffer(cl_command_queue /* command_queue */,938cl_mem /* buffer */,939cl_bool /* blocking_write */,940size_t /* offset */,941size_t /* size */,942const void * /* ptr */,943cl_uint /* num_events_in_wait_list */,944const cl_event * /* event_wait_list */,945cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;946947extern CL_API_ENTRY cl_int CL_API_CALL948clEnqueueWriteBufferRect(cl_command_queue /* command_queue */,949cl_mem /* buffer */,950cl_bool /* blocking_write */,951const size_t * /* buffer_offset */,952const size_t * /* host_offset */,953const size_t * /* region */,954size_t /* buffer_row_pitch */,955size_t /* buffer_slice_pitch */,956size_t /* host_row_pitch */,957size_t /* host_slice_pitch */,958const void * /* ptr */,959cl_uint /* num_events_in_wait_list */,960const cl_event * /* event_wait_list */,961cl_event * /* event */) CL_API_SUFFIX__VERSION_1_1;962963extern CL_API_ENTRY cl_int CL_API_CALL964clEnqueueFillBuffer(cl_command_queue /* command_queue */,965cl_mem /* buffer */,966const void * /* pattern */,967size_t /* pattern_size */,968size_t /* offset */,969size_t /* size */,970cl_uint /* num_events_in_wait_list */,971const cl_event * /* event_wait_list */,972cl_event * /* event */) CL_API_SUFFIX__VERSION_1_2;973974extern CL_API_ENTRY cl_int CL_API_CALL975clEnqueueCopyBuffer(cl_command_queue /* command_queue */,976cl_mem /* src_buffer */,977cl_mem /* dst_buffer */,978size_t /* src_offset */,979size_t /* dst_offset */,980size_t /* size */,981cl_uint /* num_events_in_wait_list */,982const cl_event * /* event_wait_list */,983cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;984985extern CL_API_ENTRY cl_int CL_API_CALL986clEnqueueCopyBufferRect(cl_command_queue /* command_queue */,987cl_mem /* src_buffer */,988cl_mem /* dst_buffer */,989const size_t * /* src_origin */,990const size_t * /* dst_origin */,991const size_t * /* region */,992size_t /* src_row_pitch */,993size_t /* src_slice_pitch */,994size_t /* dst_row_pitch */,995size_t /* dst_slice_pitch */,996cl_uint /* num_events_in_wait_list */,997const cl_event * /* event_wait_list */,998cl_event * /* event */) CL_API_SUFFIX__VERSION_1_1;9991000extern CL_API_ENTRY cl_int CL_API_CALL1001clEnqueueReadImage(cl_command_queue /* command_queue */,1002cl_mem /* image */,1003cl_bool /* blocking_read */,1004const size_t * /* origin[3] */,1005const size_t * /* region[3] */,1006size_t /* row_pitch */,1007size_t /* slice_pitch */,1008void * /* ptr */,1009cl_uint /* num_events_in_wait_list */,1010const cl_event * /* event_wait_list */,1011cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;10121013extern CL_API_ENTRY cl_int CL_API_CALL1014clEnqueueWriteImage(cl_command_queue /* command_queue */,1015cl_mem /* image */,1016cl_bool /* blocking_write */,1017const size_t * /* origin[3] */,1018const size_t * /* region[3] */,1019size_t /* input_row_pitch */,1020size_t /* input_slice_pitch */,1021const void * /* ptr */,1022cl_uint /* num_events_in_wait_list */,1023const cl_event * /* event_wait_list */,1024cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;10251026extern CL_API_ENTRY cl_int CL_API_CALL1027clEnqueueFillImage(cl_command_queue /* command_queue */,1028cl_mem /* image */,1029const void * /* fill_color */,1030const size_t * /* origin[3] */,1031const size_t * /* region[3] */,1032cl_uint /* num_events_in_wait_list */,1033const cl_event * /* event_wait_list */,1034cl_event * /* event */) CL_API_SUFFIX__VERSION_1_2;10351036extern CL_API_ENTRY cl_int CL_API_CALL1037clEnqueueCopyImage(cl_command_queue /* command_queue */,1038cl_mem /* src_image */,1039cl_mem /* dst_image */,1040const size_t * /* src_origin[3] */,1041const size_t * /* dst_origin[3] */,1042const size_t * /* region[3] */,1043cl_uint /* num_events_in_wait_list */,1044const cl_event * /* event_wait_list */,1045cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;10461047extern CL_API_ENTRY cl_int CL_API_CALL1048clEnqueueCopyImageToBuffer(cl_command_queue /* command_queue */,1049cl_mem /* src_image */,1050cl_mem /* dst_buffer */,1051const size_t * /* src_origin[3] */,1052const size_t * /* region[3] */,1053size_t /* dst_offset */,1054cl_uint /* num_events_in_wait_list */,1055const cl_event * /* event_wait_list */,1056cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;10571058extern CL_API_ENTRY cl_int CL_API_CALL1059clEnqueueCopyBufferToImage(cl_command_queue /* command_queue */,1060cl_mem /* src_buffer */,1061cl_mem /* dst_image */,1062size_t /* src_offset */,1063const size_t * /* dst_origin[3] */,1064const size_t * /* region[3] */,1065cl_uint /* num_events_in_wait_list */,1066const cl_event * /* event_wait_list */,1067cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;10681069extern CL_API_ENTRY void * CL_API_CALL1070clEnqueueMapBuffer(cl_command_queue /* command_queue */,1071cl_mem /* buffer */,1072cl_bool /* blocking_map */,1073cl_map_flags /* map_flags */,1074size_t /* offset */,1075size_t /* size */,1076cl_uint /* num_events_in_wait_list */,1077const cl_event * /* event_wait_list */,1078cl_event * /* event */,1079cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;10801081extern CL_API_ENTRY void * CL_API_CALL1082clEnqueueMapImage(cl_command_queue /* command_queue */,1083cl_mem /* image */,1084cl_bool /* blocking_map */,1085cl_map_flags /* map_flags */,1086const size_t * /* origin[3] */,1087const size_t * /* region[3] */,1088size_t * /* image_row_pitch */,1089size_t * /* image_slice_pitch */,1090cl_uint /* num_events_in_wait_list */,1091const cl_event * /* event_wait_list */,1092cl_event * /* event */,1093cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;10941095extern CL_API_ENTRY cl_int CL_API_CALL1096clEnqueueUnmapMemObject(cl_command_queue /* command_queue */,1097cl_mem /* memobj */,1098void * /* mapped_ptr */,1099cl_uint /* num_events_in_wait_list */,1100const cl_event * /* event_wait_list */,1101cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;11021103extern CL_API_ENTRY cl_int CL_API_CALL1104clEnqueueMigrateMemObjects(cl_command_queue /* command_queue */,1105cl_uint /* num_mem_objects */,1106const cl_mem * /* mem_objects */,1107cl_mem_migration_flags /* flags */,1108cl_uint /* num_events_in_wait_list */,1109const cl_event * /* event_wait_list */,1110cl_event * /* event */) CL_API_SUFFIX__VERSION_1_2;11111112extern CL_API_ENTRY cl_int CL_API_CALL1113clEnqueueNDRangeKernel(cl_command_queue /* command_queue */,1114cl_kernel /* kernel */,1115cl_uint /* work_dim */,1116const size_t * /* global_work_offset */,1117const size_t * /* global_work_size */,1118const size_t * /* local_work_size */,1119cl_uint /* num_events_in_wait_list */,1120const cl_event * /* event_wait_list */,1121cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;11221123extern CL_API_ENTRY cl_int CL_API_CALL1124clEnqueueTask(cl_command_queue /* command_queue */,1125cl_kernel /* kernel */,1126cl_uint /* num_events_in_wait_list */,1127const cl_event * /* event_wait_list */,1128cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;11291130extern CL_API_ENTRY cl_int CL_API_CALL1131clEnqueueNativeKernel(cl_command_queue /* command_queue */,1132void (CL_CALLBACK * /*user_func*/)(void *),1133void * /* args */,1134size_t /* cb_args */,1135cl_uint /* num_mem_objects */,1136const cl_mem * /* mem_list */,1137const void ** /* args_mem_loc */,1138cl_uint /* num_events_in_wait_list */,1139const cl_event * /* event_wait_list */,1140cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;11411142extern CL_API_ENTRY cl_int CL_API_CALL1143clEnqueueMarkerWithWaitList(cl_command_queue /* command_queue */,1144cl_uint /* num_events_in_wait_list */,1145const cl_event * /* event_wait_list */,1146cl_event * /* event */) CL_API_SUFFIX__VERSION_1_2;11471148extern CL_API_ENTRY cl_int CL_API_CALL1149clEnqueueBarrierWithWaitList(cl_command_queue /* command_queue */,1150cl_uint /* num_events_in_wait_list */,1151const cl_event * /* event_wait_list */,1152cl_event * /* event */) CL_API_SUFFIX__VERSION_1_2;115311541155/* Extension function access1156*1157* Returns the extension function address for the given function name,1158* or NULL if a valid function can not be found. The client must1159* check to make sure the address is not NULL, before using or1160* calling the returned function address.1161*/1162extern CL_API_ENTRY void * CL_API_CALL1163clGetExtensionFunctionAddressForPlatform(cl_platform_id /* platform */,1164const char * /* func_name */) CL_API_SUFFIX__VERSION_1_2;116511661167// Deprecated OpenCL 1.1 APIs1168extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL1169clCreateImage2D(cl_context /* context */,1170cl_mem_flags /* flags */,1171const cl_image_format * /* image_format */,1172size_t /* image_width */,1173size_t /* image_height */,1174size_t /* image_row_pitch */,1175void * /* host_ptr */,1176cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;11771178extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL1179clCreateImage3D(cl_context /* context */,1180cl_mem_flags /* flags */,1181const cl_image_format * /* image_format */,1182size_t /* image_width */,1183size_t /* image_height */,1184size_t /* image_depth */,1185size_t /* image_row_pitch */,1186size_t /* image_slice_pitch */,1187void * /* host_ptr */,1188cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;11891190extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL1191clEnqueueMarker(cl_command_queue /* command_queue */,1192cl_event * /* event */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;11931194extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL1195clEnqueueWaitForEvents(cl_command_queue /* command_queue */,1196cl_uint /* num_events */,1197const cl_event * /* event_list */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;11981199extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL1200clEnqueueBarrier(cl_command_queue /* command_queue */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;12011202extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL1203clUnloadCompiler(void) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;12041205extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED void * CL_API_CALL1206clGetExtensionFunctionAddress(const char * /* func_name */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;12071208#ifdef __cplusplus1209}1210#endif12111212#endif /* __OPENCL_CL_H */1213121412151216