配色: 字号:
cl
2012-08-12 | 阅:  转:  |  分享 
  
/

Copyright(c)2008-2009TheKhronosGroupInc.



Permissionisherebygranted,freeofcharge,toanypersonobtaininga

copyofthissoftwareand/orassociateddocumentationfiles(the

"Materials"),todealintheMaterialswithoutrestriction,including

withoutlimitationtherightstouse,copy,modify,merge,publish,

distribute,sublicense,and/orsellcopiesoftheMaterials,andto

permitpersonstowhomtheMaterialsarefurnishedtodoso,subjectto

thefollowingconditions:



Theabovecopyrightnoticeandthispermissionnoticeshallbeincluded

inallcopiesorsubstantialportionsoftheMaterials.



THEMATERIALSAREPROVIDED"ASIS",WITHOUTWARRANTYOFANYKIND,

EXPRESSORIMPLIED,INCLUDINGBUTNOTLIMITEDTOTHEWARRANTIESOF

MERCHANTABILITY,FITNESSFORAPARTICULARPURPOSEANDNONINFRINGEMENT.

INNOEVENTSHALLTHEAUTHORSORCOPYRIGHTHOLDERSBELIABLEFORANY

CLAIM,DAMAGESOROTHERLIABILITY,WHETHERINANACTIONOFCONTRACT,

TORTOROTHERWISE,ARISINGFROM,OUTOFORINCONNECTIONWITHTHE

MATERIALSORTHEUSEOROTHERDEALINGSINTHEMATERIALS.

/



/$Revision:9283$on$Date:2009-10-1410:18:57-0700(Wed,14Oct2009)$/



#ifndef__OPENCL_CL_H

#define__OPENCL_CL_H



#ifdef__APPLE__

#include

#else

#include

#endif



#ifdef__cplusplus

extern"C"{

#endif



//



typedefstruct_cl_platform_idcl_platform_id;

typedefstruct_cl_device_idcl_device_id;

typedefstruct_cl_contextcl_context;

typedefstruct_cl_command_queuecl_command_queue;

typedefstruct_cl_memcl_mem;

typedefstruct_cl_programcl_program;

typedefstruct_cl_kernelcl_kernel;

typedefstruct_cl_eventcl_event;

typedefstruct_cl_samplercl_sampler;



typedefcl_uintcl_bool;/WARNING!Unlikecl_typesincl_platform.h,cl_boolisnotguaranteedtobethesamesizeastheboolinkernels./

typedefcl_ulongcl_bitfield;

typedefcl_bitfieldcl_device_type;

typedefcl_uintcl_platform_info;

typedefcl_uintcl_device_info;

typedefcl_bitfieldcl_device_address_info;

typedefcl_bitfieldcl_device_fp_config;

typedefcl_uintcl_device_mem_cache_type;

typedefcl_uintcl_device_local_mem_type;

typedefcl_bitfieldcl_device_exec_capabilities;

typedefcl_bitfieldcl_command_queue_properties;



typedefintptr_t cl_context_properties;

typedefcl_uintcl_context_info;

typedefcl_uintcl_command_queue_info;

typedefcl_uintcl_channel_order;

typedefcl_uintcl_channel_type;

typedefcl_bitfieldcl_mem_flags;

typedefcl_uintcl_mem_object_type;

typedefcl_uintcl_mem_info;

typedefcl_uintcl_image_info;

typedefcl_uintcl_addressing_mode;

typedefcl_uintcl_filter_mode;

typedefcl_uintcl_sampler_info;

typedefcl_bitfieldcl_map_flags;

typedefcl_uintcl_program_info;

typedefcl_uintcl_program_build_info;

typedefcl_intcl_build_status;

typedefcl_uintcl_kernel_info;

typedefcl_uintcl_kernel_work_group_info;

typedefcl_uintcl_event_info;

typedefcl_uintcl_command_type;

typedefcl_uintcl_profiling_info;



typedefstruct_cl_image_format{

cl_channel_orderimage_channel_order;

cl_channel_typeimage_channel_data_type;

}cl_image_format;







//



//ErrorCodes

#defineCL_SUCCESS0

#defineCL_DEVICE_NOT_FOUND-1

#defineCL_DEVICE_NOT_AVAILABLE-2

#defineCL_COMPILER_NOT_AVAILABLE-3

#defineCL_MEM_OBJECT_ALLOCATION_FAILURE-4

#defineCL_OUT_OF_RESOURCES-5

#defineCL_OUT_OF_HOST_MEMORY-6

#defineCL_PROFILING_INFO_NOT_AVAILABLE-7

#defineCL_MEM_COPY_OVERLAP-8

#defineCL_IMAGE_FORMAT_MISMATCH-9

#defineCL_IMAGE_FORMAT_NOT_SUPPORTED-10

#defineCL_BUILD_PROGRAM_FAILURE-11

#defineCL_MAP_FAILURE-12



#defineCL_INVALID_VALUE-30

#defineCL_INVALID_DEVICE_TYPE-31

#defineCL_INVALID_PLATFORM-32

#defineCL_INVALID_DEVICE-33

#defineCL_INVALID_CONTEXT-34

#defineCL_INVALID_QUEUE_PROPERTIES-35

#defineCL_INVALID_COMMAND_QUEUE-36

#defineCL_INVALID_HOST_PTR-37

#defineCL_INVALID_MEM_OBJECT-38

#defineCL_INVALID_IMAGE_FORMAT_DESCRIPTOR-39

#defineCL_INVALID_IMAGE_SIZE-40

#defineCL_INVALID_SAMPLER-41

#defineCL_INVALID_BINARY-42

#defineCL_INVALID_BUILD_OPTIONS-43

#defineCL_INVALID_PROGRAM-44

#defineCL_INVALID_PROGRAM_EXECUTABLE-45

#defineCL_INVALID_KERNEL_NAME-46

#defineCL_INVALID_KERNEL_DEFINITION-47

#defineCL_INVALID_KERNEL-48

#defineCL_INVALID_ARG_INDEX-49

#defineCL_INVALID_ARG_VALUE-50

#defineCL_INVALID_ARG_SIZE-51

#defineCL_INVALID_KERNEL_ARGS-52

#defineCL_INVALID_WORK_DIMENSION-53

#defineCL_INVALID_WORK_GROUP_SIZE-54

#defineCL_INVALID_WORK_ITEM_SIZE-55

#defineCL_INVALID_GLOBAL_OFFSET-56

#defineCL_INVALID_EVENT_WAIT_LIST-57

#defineCL_INVALID_EVENT-58

#defineCL_INVALID_OPERATION-59

#defineCL_INVALID_GL_OBJECT-60

#defineCL_INVALID_BUFFER_SIZE-61

#defineCL_INVALID_MIP_LEVEL-62

#defineCL_INVALID_GLOBAL_WORK_SIZE-63



//OpenCLVersion

#defineCL_VERSION_1_01



//cl_bool

#defineCL_FALSE0

#defineCL_TRUE1



//cl_platform_info

#defineCL_PLATFORM_PROFILE0x0900

#defineCL_PLATFORM_VERSION0x0901

#defineCL_PLATFORM_NAME0x0902

#defineCL_PLATFORM_VENDOR0x0903

#defineCL_PLATFORM_EXTENSIONS0x0904



//cl_device_type-bitfield

#defineCL_DEVICE_TYPE_DEFAULT(1<<0)

#defineCL_DEVICE_TYPE_CPU(1<<1)

#defineCL_DEVICE_TYPE_GPU(1<<2)

#defineCL_DEVICE_TYPE_ACCELERATOR(1<<3)

#defineCL_DEVICE_TYPE_ALL0xFFFFFFFF



//cl_device_info

#defineCL_DEVICE_TYPE0x1000

#defineCL_DEVICE_VENDOR_ID0x1001

#defineCL_DEVICE_MAX_COMPUTE_UNITS0x1002

#defineCL_DEVICE_MAX_WORK_ITEM_DIMENSIONS0x1003

#defineCL_DEVICE_MAX_WORK_GROUP_SIZE0x1004

#defineCL_DEVICE_MAX_WORK_ITEM_SIZES0x1005

#defineCL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR0x1006

#defineCL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT0x1007

#defineCL_DEVICE_PREFERRED_VECTOR_WIDTH_INT0x1008

#defineCL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG0x1009

#defineCL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT0x100A

#defineCL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE0x100B

#defineCL_DEVICE_MAX_CLOCK_FREQUENCY0x100C

#defineCL_DEVICE_ADDRESS_BITS0x100D

#defineCL_DEVICE_MAX_READ_IMAGE_ARGS0x100E

#defineCL_DEVICE_MAX_WRITE_IMAGE_ARGS0x100F

#defineCL_DEVICE_MAX_MEM_ALLOC_SIZE0x1010

#defineCL_DEVICE_IMAGE2D_MAX_WIDTH0x1011

#defineCL_DEVICE_IMAGE2D_MAX_HEIGHT0x1012

#defineCL_DEVICE_IMAGE3D_MAX_WIDTH0x1013

#defineCL_DEVICE_IMAGE3D_MAX_HEIGHT0x1014

#defineCL_DEVICE_IMAGE3D_MAX_DEPTH0x1015

#defineCL_DEVICE_IMAGE_SUPPORT0x1016

#defineCL_DEVICE_MAX_PARAMETER_SIZE0x1017

#defineCL_DEVICE_MAX_SAMPLERS0x1018

#defineCL_DEVICE_MEM_BASE_ADDR_ALIGN0x1019

#defineCL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE0x101A

#defineCL_DEVICE_SINGLE_FP_CONFIG0x101B

#defineCL_DEVICE_GLOBAL_MEM_CACHE_TYPE0x101C

#defineCL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE0x101D

#defineCL_DEVICE_GLOBAL_MEM_CACHE_SIZE0x101E

#defineCL_DEVICE_GLOBAL_MEM_SIZE0x101F

#defineCL_DEVICE_MAX_CONSTANT_BUFFER_SIZE0x1020

#defineCL_DEVICE_MAX_CONSTANT_ARGS0x1021

#defineCL_DEVICE_LOCAL_MEM_TYPE0x1022

#defineCL_DEVICE_LOCAL_MEM_SIZE0x1023

#defineCL_DEVICE_ERROR_CORRECTION_SUPPORT0x1024

#defineCL_DEVICE_PROFILING_TIMER_RESOLUTION0x1025

#defineCL_DEVICE_ENDIAN_LITTLE0x1026

#defineCL_DEVICE_AVAILABLE0x1027

#defineCL_DEVICE_COMPILER_AVAILABLE0x1028

#defineCL_DEVICE_EXECUTION_CAPABILITIES0x1029

#defineCL_DEVICE_QUEUE_PROPERTIES0x102A

#defineCL_DEVICE_NAME0x102B

#defineCL_DEVICE_VENDOR0x102C

#defineCL_DRIVER_VERSION0x102D

#defineCL_DEVICE_PROFILE0x102E

#defineCL_DEVICE_VERSION0x102F

#defineCL_DEVICE_EXTENSIONS0x1030

#defineCL_DEVICE_PLATFORM0x1031



//cl_device_fp_config-bitfield

#defineCL_FP_DENORM(1<<0)

#defineCL_FP_INF_NAN(1<<1)

#defineCL_FP_ROUND_TO_NEAREST(1<<2)

#defineCL_FP_ROUND_TO_ZERO(1<<3)

#defineCL_FP_ROUND_TO_INF(1<<4)

#defineCL_FP_FMA(1<<5)



//cl_device_mem_cache_type

#defineCL_NONE0x0

#defineCL_READ_ONLY_CACHE0x1

#defineCL_READ_WRITE_CACHE0x2



//cl_device_local_mem_type

#defineCL_LOCAL0x1

#defineCL_GLOBAL0x2



//cl_device_exec_capabilities-bitfield

#defineCL_EXEC_KERNEL(1<<0)

#defineCL_EXEC_NATIVE_KERNEL(1<<1)



//cl_command_queue_properties-bitfield

#defineCL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE(1<<0)

#defineCL_QUEUE_PROFILING_ENABLE(1<<1)



//cl_context_info

#defineCL_CONTEXT_REFERENCE_COUNT0x1080

#defineCL_CONTEXT_DEVICES0x1081

#defineCL_CONTEXT_PROPERTIES0x1082



//cl_context_properties

#defineCL_CONTEXT_PLATFORM0x1084



//cl_command_queue_info

#defineCL_QUEUE_CONTEXT0x1090

#defineCL_QUEUE_DEVICE0x1091

#defineCL_QUEUE_REFERENCE_COUNT0x1092

#defineCL_QUEUE_PROPERTIES0x1093



//cl_mem_flags-bitfield

#defineCL_MEM_READ_WRITE(1<<0)

#defineCL_MEM_WRITE_ONLY(1<<1)

#defineCL_MEM_READ_ONLY(1<<2)

#defineCL_MEM_USE_HOST_PTR(1<<3)

#defineCL_MEM_ALLOC_HOST_PTR(1<<4)

#defineCL_MEM_COPY_HOST_PTR(1<<5)



//cl_channel_order

#defineCL_R0x10B0

#defineCL_A0x10B1

#defineCL_RG0x10B2

#defineCL_RA0x10B3

#defineCL_RGB0x10B4

#defineCL_RGBA0x10B5

#defineCL_BGRA0x10B6

#defineCL_ARGB0x10B7

#defineCL_INTENSITY0x10B8

#defineCL_LUMINANCE0x10B9



//cl_channel_type

#defineCL_SNORM_INT80x10D0

#defineCL_SNORM_INT160x10D1

#defineCL_UNORM_INT80x10D2

#defineCL_UNORM_INT160x10D3

#defineCL_UNORM_SHORT_5650x10D4

#defineCL_UNORM_SHORT_5550x10D5

#defineCL_UNORM_INT_1010100x10D6

#defineCL_SIGNED_INT80x10D7

#defineCL_SIGNED_INT160x10D8

#defineCL_SIGNED_INT320x10D9

#defineCL_UNSIGNED_INT80x10DA

#defineCL_UNSIGNED_INT160x10DB

#defineCL_UNSIGNED_INT320x10DC

#defineCL_HALF_FLOAT0x10DD

#defineCL_FLOAT0x10DE



//cl_mem_object_type

#defineCL_MEM_OBJECT_BUFFER0x10F0

#defineCL_MEM_OBJECT_IMAGE2D0x10F1

#defineCL_MEM_OBJECT_IMAGE3D0x10F2



//cl_mem_info

#defineCL_MEM_TYPE0x1100

#defineCL_MEM_FLAGS0x1101

#defineCL_MEM_SIZE0x1102

#defineCL_MEM_HOST_PTR0x1103

#defineCL_MEM_MAP_COUNT0x1104

#defineCL_MEM_REFERENCE_COUNT0x1105

#defineCL_MEM_CONTEXT0x1106



//cl_image_info

#defineCL_IMAGE_FORMAT0x1110

#defineCL_IMAGE_ELEMENT_SIZE0x1111

#defineCL_IMAGE_ROW_PITCH0x1112

#defineCL_IMAGE_SLICE_PITCH0x1113

#defineCL_IMAGE_WIDTH0x1114

#defineCL_IMAGE_HEIGHT0x1115

#defineCL_IMAGE_DEPTH0x1116



//cl_addressing_mode

#defineCL_ADDRESS_NONE0x1130

#defineCL_ADDRESS_CLAMP_TO_EDGE0x1131

#defineCL_ADDRESS_CLAMP0x1132

#defineCL_ADDRESS_REPEAT0x1133



//cl_filter_mode

#defineCL_FILTER_NEAREST0x1140

#defineCL_FILTER_LINEAR0x1141



//cl_sampler_info

#defineCL_SAMPLER_REFERENCE_COUNT0x1150

#defineCL_SAMPLER_CONTEXT0x1151

#defineCL_SAMPLER_NORMALIZED_COORDS0x1152

#defineCL_SAMPLER_ADDRESSING_MODE0x1153

#defineCL_SAMPLER_FILTER_MODE0x1154



//cl_map_flags-bitfield

#defineCL_MAP_READ(1<<0)

#defineCL_MAP_WRITE(1<<1)



//cl_program_info

#defineCL_PROGRAM_REFERENCE_COUNT0x1160

#defineCL_PROGRAM_CONTEXT0x1161

#defineCL_PROGRAM_NUM_DEVICES0x1162

#defineCL_PROGRAM_DEVICES0x1163

#defineCL_PROGRAM_SOURCE0x1164

#defineCL_PROGRAM_BINARY_SIZES0x1165

#defineCL_PROGRAM_BINARIES0x1166



//cl_program_build_info

#defineCL_PROGRAM_BUILD_STATUS0x1181

#defineCL_PROGRAM_BUILD_OPTIONS0x1182

#defineCL_PROGRAM_BUILD_LOG0x1183



//cl_build_status

#defineCL_BUILD_SUCCESS0

#defineCL_BUILD_NONE-1

#defineCL_BUILD_ERROR-2

#defineCL_BUILD_IN_PROGRESS-3



//cl_kernel_info

#defineCL_KERNEL_FUNCTION_NAME0x1190

#defineCL_KERNEL_NUM_ARGS0x1191

#defineCL_KERNEL_REFERENCE_COUNT0x1192

#defineCL_KERNEL_CONTEXT0x1193

#defineCL_KERNEL_PROGRAM0x1194



//cl_kernel_work_group_info

#defineCL_KERNEL_WORK_GROUP_SIZE0x11B0

#defineCL_KERNEL_COMPILE_WORK_GROUP_SIZE0x11B1

#defineCL_KERNEL_LOCAL_MEM_SIZE0x11B2



//cl_event_info

#defineCL_EVENT_COMMAND_QUEUE0x11D0

#defineCL_EVENT_COMMAND_TYPE0x11D1

#defineCL_EVENT_REFERENCE_COUNT0x11D2

#defineCL_EVENT_COMMAND_EXECUTION_STATUS0x11D3



//cl_command_type

#defineCL_COMMAND_NDRANGE_KERNEL0x11F0

#defineCL_COMMAND_TASK0x11F1

#defineCL_COMMAND_NATIVE_KERNEL0x11F2

#defineCL_COMMAND_READ_BUFFER0x11F3

#defineCL_COMMAND_WRITE_BUFFER0x11F4

#defineCL_COMMAND_COPY_BUFFER0x11F5

#defineCL_COMMAND_READ_IMAGE0x11F6

#defineCL_COMMAND_WRITE_IMAGE0x11F7

#defineCL_COMMAND_COPY_IMAGE0x11F8

#defineCL_COMMAND_COPY_IMAGE_TO_BUFFER0x11F9

#defineCL_COMMAND_COPY_BUFFER_TO_IMAGE0x11FA

#defineCL_COMMAND_MAP_BUFFER0x11FB

#defineCL_COMMAND_MAP_IMAGE0x11FC

#defineCL_COMMAND_UNMAP_MEM_OBJECT0x11FD

#defineCL_COMMAND_MARKER0x11FE

#defineCL_COMMAND_ACQUIRE_GL_OBJECTS0x11FF

#defineCL_COMMAND_RELEASE_GL_OBJECTS0x1200



//commandexecutionstatus

#defineCL_COMPLETE0x0

#defineCL_RUNNING0x1

#defineCL_SUBMITTED0x2

#defineCL_QUEUED0x3



//cl_profiling_info

#defineCL_PROFILING_COMMAND_QUEUED0x1280

#defineCL_PROFILING_COMMAND_SUBMIT0x1281

#defineCL_PROFILING_COMMAND_START0x1282

#defineCL_PROFILING_COMMAND_END0x1283



//



//PlatformAPI

externCL_API_ENTRYcl_intCL_API_CALL

clGetPlatformIDs(cl_uint/num_entries/,

cl_platform_id/platforms/,

cl_uint/num_platforms/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clGetPlatformInfo(cl_platform_id/platform/,

cl_platform_info/param_name/,

size_t/param_value_size/,

void/param_value/,

size_t/param_value_size_ret/)CL_API_SUFFIX__VERSION_1_0;



//DeviceAPIs

externCL_API_ENTRYcl_intCL_API_CALL

clGetDeviceIDs(cl_platform_id/platform/,

cl_device_type/device_type/,

cl_uint/num_entries/,

cl_device_id/devices/,

cl_uint/num_devices/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clGetDeviceInfo(cl_device_id/device/,

cl_device_info/param_name/,

size_t/param_value_size/,

void/param_value/,

size_t/param_value_size_ret/)CL_API_SUFFIX__VERSION_1_0;



//ContextAPIs

externCL_API_ENTRYcl_contextCL_API_CALL

clCreateContext(constcl_context_properties/properties/,

cl_uint/num_devices/,

constcl_device_id/devices/,

void(pfn_notify)(constchar,constvoid,size_t,void)/pfn_notify/,

void/user_data/,

cl_int/errcode_ret/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_contextCL_API_CALL

clCreateContextFromType(constcl_context_properties/properties/,

cl_device_type/device_type/,

void(pfn_notify)(constchar,constvoid,size_t,void)/pfn_notify/,

void/user_data/,

cl_int/errcode_ret/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clRetainContext(cl_context/context/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clReleaseContext(cl_context/context/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clGetContextInfo(cl_context/context/,

cl_context_info/param_name/,

size_t/param_value_size/,

void/param_value/,

size_t/param_value_size_ret/)CL_API_SUFFIX__VERSION_1_0;



//CommandQueueAPIs

externCL_API_ENTRYcl_command_queueCL_API_CALL

clCreateCommandQueue(cl_context/context/,

cl_device_id/device/,

cl_command_queue_properties/properties/,

cl_int/errcode_ret/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clRetainCommandQueue(cl_command_queue/command_queue/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clReleaseCommandQueue(cl_command_queue/command_queue/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

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/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clSetCommandQueueProperty(cl_command_queue/command_queue/,

cl_command_queue_properties/properties/,

cl_bool/enable/,

cl_command_queue_properties/old_properties/)CL_API_SUFFIX__VERSION_1_0;



//MemoryObjectAPIs

externCL_API_ENTRYcl_memCL_API_CALL

clCreateBuffer(cl_context/context/,

cl_mem_flags/flags/,

size_t/size/,

void/host_ptr/,

cl_int/errcode_ret/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_memCL_API_CALL

clCreateImage2D(cl_context/context/,

cl_mem_flags/flags/,

constcl_image_format/image_format/,

size_t/image_width/,

size_t/image_height/,

size_t/image_row_pitch/,

void/host_ptr/,

cl_int/errcode_ret/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_memCL_API_CALL

clCreateImage3D(cl_context/context/,

cl_mem_flags/flags/,

constcl_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/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clRetainMemObject(cl_mem/memobj/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clReleaseMemObject(cl_mem/memobj/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

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/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clGetMemObjectInfo(cl_mem/memobj/,

cl_mem_info/param_name/,

size_t/param_value_size/,

void/param_value/,

size_t/param_value_size_ret/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clGetImageInfo(cl_mem/image/,

cl_image_info/param_name/,

size_t/param_value_size/,

void/param_value/,

size_t/param_value_size_ret/)CL_API_SUFFIX__VERSION_1_0;



//SamplerAPIs

externCL_API_ENTRYcl_samplerCL_API_CALL

clCreateSampler(cl_context/context/,

cl_bool/normalized_coords/,

cl_addressing_mode/addressing_mode/,

cl_filter_mode/filter_mode/,

cl_int/errcode_ret/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clRetainSampler(cl_sampler/sampler/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clReleaseSampler(cl_sampler/sampler/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clGetSamplerInfo(cl_sampler/sampler/,

cl_sampler_info/param_name/,

size_t/param_value_size/,

void/param_value/,

size_t/param_value_size_ret/)CL_API_SUFFIX__VERSION_1_0;



//ProgramObjectAPIs

externCL_API_ENTRYcl_programCL_API_CALL

clCreateProgramWithSource(cl_context/context/,

cl_uint/count/,

constchar/strings/,

constsize_t/lengths/,

cl_int/errcode_ret/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_programCL_API_CALL

clCreateProgramWithBinary(cl_context/context/,

cl_uint/num_devices/,

constcl_device_id/device_list/,

constsize_t/lengths/,

constunsignedchar/binaries/,

cl_int/binary_status/,

cl_int/errcode_ret/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clRetainProgram(cl_program/program/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clReleaseProgram(cl_program/program/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clBuildProgram(cl_program/program/,

cl_uint/num_devices/,

constcl_device_id/device_list/,

constchar/options/,

void(pfn_notify)(cl_program/program/,void/user_data/),

void/user_data/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clUnloadCompiler(void)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clGetProgramInfo(cl_program/program/,

cl_program_info/param_name/,

size_t/param_value_size/,

void/param_value/,

size_t/param_value_size_ret/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

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/)CL_API_SUFFIX__VERSION_1_0;



//KernelObjectAPIs

externCL_API_ENTRYcl_kernelCL_API_CALL

clCreateKernel(cl_program/program/,

constchar/kernel_name/,

cl_int/errcode_ret/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clCreateKernelsInProgram(cl_program/program/,

cl_uint/num_kernels/,

cl_kernel/kernels/,

cl_uint/num_kernels_ret/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clRetainKernel(cl_kernel/kernel/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clReleaseKernel(cl_kernel/kernel/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clSetKernelArg(cl_kernel/kernel/,

cl_uint/arg_index/,

size_t/arg_size/,

constvoid/arg_value/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clGetKernelInfo(cl_kernel/kernel/,

cl_kernel_info/param_name/,

size_t/param_value_size/,

void/param_value/,

size_t/param_value_size_ret/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

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/)CL_API_SUFFIX__VERSION_1_0;



//EventObjectAPIs

externCL_API_ENTRYcl_intCL_API_CALL

clWaitForEvents(cl_uint/num_events/,

constcl_event/event_list/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clGetEventInfo(cl_event/event/,

cl_event_info/param_name/,

size_t/param_value_size/,

void/param_value/,

size_t/param_value_size_ret/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clRetainEvent(cl_event/event/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clReleaseEvent(cl_event/event/)CL_API_SUFFIX__VERSION_1_0;



//ProfilingAPIs

externCL_API_ENTRYcl_intCL_API_CALL

clGetEventProfilingInfo(cl_event/event/,

cl_profiling_info/param_name/,

size_t/param_value_size/,

void/param_value/,

size_t/param_value_size_ret/)CL_API_SUFFIX__VERSION_1_0;



//FlushandFinishAPIs

externCL_API_ENTRYcl_intCL_API_CALL

clFlush(cl_command_queue/command_queue/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clFinish(cl_command_queue/command_queue/)CL_API_SUFFIX__VERSION_1_0;



//EnqueuedCommandsAPIs

externCL_API_ENTRYcl_intCL_API_CALL

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/,

constcl_event/event_wait_list/,

cl_event/event/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clEnqueueWriteBuffer(cl_command_queue/command_queue/,

cl_mem/buffer/,

cl_bool/blocking_write/,

size_t/offset/,

size_t/cb/,

constvoid/ptr/,

cl_uint/num_events_in_wait_list/,

constcl_event/event_wait_list/,

cl_event/event/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

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/,

constcl_event/event_wait_list/,

cl_event/event/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clEnqueueReadImage(cl_command_queue/command_queue/,

cl_mem/image/,

cl_bool/blocking_read/,

constsize_t/origin[3]/,

constsize_t/region[3]/,

size_t/row_pitch/,

size_t/slice_pitch/,

void/ptr/,

cl_uint/num_events_in_wait_list/,

constcl_event/event_wait_list/,

cl_event/event/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clEnqueueWriteImage(cl_command_queue/command_queue/,

cl_mem/image/,

cl_bool/blocking_write/,

constsize_t/origin[3]/,

constsize_t/region[3]/,

size_t/input_row_pitch/,

size_t/input_slice_pitch/,

constvoid/ptr/,

cl_uint/num_events_in_wait_list/,

constcl_event/event_wait_list/,

cl_event/event/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clEnqueueCopyImage(cl_command_queue/command_queue/,

cl_mem/src_image/,

cl_mem/dst_image/,

constsize_t/src_origin[3]/,

constsize_t/dst_origin[3]/,

constsize_t/region[3]/,

cl_uint/num_events_in_wait_list/,

constcl_event/event_wait_list/,

cl_event/event/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clEnqueueCopyImageToBuffer(cl_command_queue/command_queue/,

cl_mem/src_image/,

cl_mem/dst_buffer/,

constsize_t/src_origin[3]/,

constsize_t/region[3]/,

size_t/dst_offset/,

cl_uint/num_events_in_wait_list/,

constcl_event/event_wait_list/,

cl_event/event/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clEnqueueCopyBufferToImage(cl_command_queue/command_queue/,

cl_mem/src_buffer/,

cl_mem/dst_image/,

size_t/src_offset/,

constsize_t/dst_origin[3]/,

constsize_t/region[3]/,

cl_uint/num_events_in_wait_list/,

constcl_event/event_wait_list/,

cl_event/event/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYvoidCL_API_CALL

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/,

constcl_event/event_wait_list/,

cl_event/event/,

cl_int/errcode_ret/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYvoidCL_API_CALL

clEnqueueMapImage(cl_command_queue/command_queue/,

cl_mem/image/,

cl_bool/blocking_map/,

cl_map_flags/map_flags/,

constsize_t/origin[3]/,

constsize_t/region[3]/,

size_t/image_row_pitch/,

size_t/image_slice_pitch/,

cl_uint/num_events_in_wait_list/,

constcl_event/event_wait_list/,

cl_event/event/,

cl_int/errcode_ret/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clEnqueueUnmapMemObject(cl_command_queue/command_queue/,

cl_mem/memobj/,

void/mapped_ptr/,

cl_uint/num_events_in_wait_list/,

constcl_event/event_wait_list/,

cl_event/event/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clEnqueueNDRangeKernel(cl_command_queue/command_queue/,

cl_kernel/kernel/,

cl_uint/work_dim/,

constsize_t/global_work_offset/,

constsize_t/global_work_size/,

constsize_t/local_work_size/,

cl_uint/num_events_in_wait_list/,

constcl_event/event_wait_list/,

cl_event/event/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clEnqueueTask(cl_command_queue/command_queue/,

cl_kernel/kernel/,

cl_uint/num_events_in_wait_list/,

constcl_event/event_wait_list/,

cl_event/event/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clEnqueueNativeKernel(cl_command_queue/command_queue/,

void(user_func)(void),

void/args/,

size_t/cb_args/,

cl_uint/num_mem_objects/,

constcl_mem/mem_list/,

constvoid/args_mem_loc/,

cl_uint/num_events_in_wait_list/,

constcl_event/event_wait_list/,

cl_event/event/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clEnqueueMarker(cl_command_queue/command_queue/,

cl_event/event/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clEnqueueWaitForEvents(cl_command_queue/command_queue/,

cl_uint/num_events/,

constcl_event/event_list/)CL_API_SUFFIX__VERSION_1_0;



externCL_API_ENTRYcl_intCL_API_CALL

clEnqueueBarrier(cl_command_queue/command_queue/)CL_API_SUFFIX__VERSION_1_0;



//Extensionfunctionaccess

//

//Returnstheextensionfunctionaddressforthegivenfunctionname,

//orNULLifavalidfunctioncannotbefound.Theclientmust

//checktomakesuretheaddressisnotNULL,beforeusingor

//callingthereturnedfunctionaddress.

//

externCL_API_ENTRYvoidCL_API_CALLclGetExtensionFunctionAddress(constchar/func_name/)CL_API_SUFFIX__VERSION_1_0;



#ifdef__cplusplus

}

#endif



#endif//__OPENCL_CL_H



献花(0)
+1
(本文系yangshiquan...首藏)