1*1cddb830SAndroid Build Coastguard Worker #include <stdio.h> 2*1cddb830SAndroid Build Coastguard Worker #include <string.h> 3*1cddb830SAndroid Build Coastguard Worker #include <stdlib.h> 4*1cddb830SAndroid Build Coastguard Worker #include <assert.h> 5*1cddb830SAndroid Build Coastguard Worker #include "icd_structs.h" 6*1cddb830SAndroid Build Coastguard Worker 7*1cddb830SAndroid Build Coastguard Worker #define CL_USE_DEPRECATED_OPENCL_1_0_APIS 8*1cddb830SAndroid Build Coastguard Worker #define CL_USE_DEPRECATED_OPENCL_1_1_APIS 9*1cddb830SAndroid Build Coastguard Worker #define CL_USE_DEPRECATED_OPENCL_1_2_APIS 10*1cddb830SAndroid Build Coastguard Worker #define CL_USE_DEPRECATED_OPENCL_2_0_APIS 11*1cddb830SAndroid Build Coastguard Worker #define CL_USE_DEPRECATED_OPENCL_2_1_APIS 12*1cddb830SAndroid Build Coastguard Worker #define CL_USE_DEPRECATED_OPENCL_2_2_APIS 13*1cddb830SAndroid Build Coastguard Worker 14*1cddb830SAndroid Build Coastguard Worker // Need to rename all CL API functions to prevent ICD loader functions calling 15*1cddb830SAndroid Build Coastguard Worker // themselves via the dispatch table. Include this before cl headers. 16*1cddb830SAndroid Build Coastguard Worker #include "rename_api.h" 17*1cddb830SAndroid Build Coastguard Worker 18*1cddb830SAndroid Build Coastguard Worker #include "CL/cl.h" 19*1cddb830SAndroid Build Coastguard Worker #include "CL/cl_gl.h" 20*1cddb830SAndroid Build Coastguard Worker 21*1cddb830SAndroid Build Coastguard Worker /* 22*1cddb830SAndroid Build Coastguard Worker * Prototypes for deprecated functions no longer present in cl.h 23*1cddb830SAndroid Build Coastguard Worker */ 24*1cddb830SAndroid Build Coastguard Worker extern CL_API_ENTRY cl_int CL_API_CALL 25*1cddb830SAndroid Build Coastguard Worker clSetCommandQueueProperty(cl_command_queue /* command_queue */, 26*1cddb830SAndroid Build Coastguard Worker cl_command_queue_properties /* properties */, 27*1cddb830SAndroid Build Coastguard Worker cl_bool /* enable */, 28*1cddb830SAndroid Build Coastguard Worker cl_command_queue_properties * /* old_properties */); 29*1cddb830SAndroid Build Coastguard Worker 30*1cddb830SAndroid Build Coastguard Worker #define ICD_DISPATCH_TABLE_ENTRY(fn) \ 31*1cddb830SAndroid Build Coastguard Worker assert(dispatchTable->entryCount < 256); \ 32*1cddb830SAndroid Build Coastguard Worker dispatchTable->entries[dispatchTable->entryCount++] = (void*)(intptr_t)(fn) 33*1cddb830SAndroid Build Coastguard Worker cliIcdDispatchTableCreate(CLIicdDispatchTable ** outDispatchTable)34*1cddb830SAndroid Build Coastguard Workercl_int cliIcdDispatchTableCreate(CLIicdDispatchTable **outDispatchTable) 35*1cddb830SAndroid Build Coastguard Worker { 36*1cddb830SAndroid Build Coastguard Worker CLIicdDispatchTable *dispatchTable = NULL; 37*1cddb830SAndroid Build Coastguard Worker cl_int result = CL_SUCCESS; 38*1cddb830SAndroid Build Coastguard Worker 39*1cddb830SAndroid Build Coastguard Worker // allocate the public handle 40*1cddb830SAndroid Build Coastguard Worker dispatchTable = (CLIicdDispatchTable *) malloc(sizeof(*dispatchTable)); 41*1cddb830SAndroid Build Coastguard Worker if (!dispatchTable) { 42*1cddb830SAndroid Build Coastguard Worker result = CL_OUT_OF_HOST_MEMORY; 43*1cddb830SAndroid Build Coastguard Worker goto Error; 44*1cddb830SAndroid Build Coastguard Worker } 45*1cddb830SAndroid Build Coastguard Worker memset(dispatchTable, 0, sizeof(*dispatchTable)); 46*1cddb830SAndroid Build Coastguard Worker 47*1cddb830SAndroid Build Coastguard Worker // OpenCL 1.0 48*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetPlatformIDs ); 49*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetPlatformInfo ); 50*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetDeviceIDs ); 51*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetDeviceInfo ); 52*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateContext ); 53*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateContextFromType ); 54*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clRetainContext ); 55*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clReleaseContext ); 56*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetContextInfo ); 57*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateCommandQueue ); 58*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clRetainCommandQueue ); 59*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clReleaseCommandQueue ); 60*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetCommandQueueInfo ); 61*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clSetCommandQueueProperty ); 62*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateBuffer ); 63*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateImage2D ); 64*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateImage3D ); 65*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clRetainMemObject ); 66*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clReleaseMemObject ); 67*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetSupportedImageFormats ); 68*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetMemObjectInfo ); 69*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetImageInfo ); 70*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateSampler ); 71*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clRetainSampler ); 72*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clReleaseSampler ); 73*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetSamplerInfo ); 74*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateProgramWithSource ); 75*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateProgramWithBinary ); 76*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clRetainProgram ); 77*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clReleaseProgram ); 78*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clBuildProgram ); 79*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clUnloadCompiler ); 80*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetProgramInfo ); 81*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetProgramBuildInfo ); 82*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateKernel ); 83*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateKernelsInProgram ); 84*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clRetainKernel ); 85*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clReleaseKernel ); 86*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clSetKernelArg ); 87*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetKernelInfo ); 88*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetKernelWorkGroupInfo ); 89*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clWaitForEvents ); 90*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetEventInfo ); 91*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clRetainEvent ); 92*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clReleaseEvent ); 93*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetEventProfilingInfo ); 94*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clFlush ); 95*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clFinish ); 96*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueReadBuffer ); 97*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueWriteBuffer ); 98*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueCopyBuffer ); 99*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueReadImage ); 100*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueWriteImage ); 101*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueCopyImage ); 102*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueCopyImageToBuffer ); 103*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueCopyBufferToImage ); 104*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueMapBuffer ); 105*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueMapImage ); 106*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueUnmapMemObject ); 107*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueNDRangeKernel ); 108*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueTask ); 109*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueNativeKernel ); 110*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueMarker ); 111*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueWaitForEvents ); 112*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueBarrier ); 113*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetExtensionFunctionAddress ); 114*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateFromGLBuffer ); 115*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateFromGLTexture2D ); 116*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateFromGLTexture3D ); 117*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateFromGLRenderbuffer ); 118*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetGLObjectInfo ); 119*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetGLTextureInfo ); 120*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueAcquireGLObjects ); 121*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueReleaseGLObjects ); 122*1cddb830SAndroid Build Coastguard Worker 123*1cddb830SAndroid Build Coastguard Worker // cl_khr_gl_sharing 124*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetGLContextInfoKHR ); 125*1cddb830SAndroid Build Coastguard Worker 126*1cddb830SAndroid Build Coastguard Worker // cl_khr_d3d10_sharing (windows-only) 127*1cddb830SAndroid Build Coastguard Worker #if 0 && defined(_WIN32) 128*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetDeviceIDsFromD3D10KHR ); 129*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateFromD3D10BufferKHR ); 130*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateFromD3D10Texture2DKHR ); 131*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateFromD3D10Texture3DKHR ); 132*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueAcquireD3D10ObjectsKHR ); 133*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueReleaseD3D10ObjectsKHR ); 134*1cddb830SAndroid Build Coastguard Worker #else 135*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 136*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 137*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 138*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 139*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 140*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 141*1cddb830SAndroid Build Coastguard Worker #endif 142*1cddb830SAndroid Build Coastguard Worker 143*1cddb830SAndroid Build Coastguard Worker // OpenCL 1.1 144*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clSetEventCallback); 145*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateSubBuffer); 146*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clSetMemObjectDestructorCallback); 147*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateUserEvent); 148*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clSetUserEventStatus); 149*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueReadBufferRect); 150*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueWriteBufferRect); 151*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueCopyBufferRect); 152*1cddb830SAndroid Build Coastguard Worker 153*1cddb830SAndroid Build Coastguard Worker /* cl_ext_device_fission */ 154*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( /*clCreateSubDevicesEXT*/NULL); 155*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( /*clRetainDeviceEXT*/ NULL); 156*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( /*clReleaseDevice*/NULL); 157*1cddb830SAndroid Build Coastguard Worker 158*1cddb830SAndroid Build Coastguard Worker /* cl_khr_gl_event */ 159*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateEventFromGLsyncKHR); 160*1cddb830SAndroid Build Coastguard Worker 161*1cddb830SAndroid Build Coastguard Worker /* OpenCL 1.2 */ 162*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateSubDevices); 163*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clRetainDevice); 164*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clReleaseDevice); 165*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateImage); 166*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateProgramWithBuiltInKernels); 167*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCompileProgram); 168*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clLinkProgram); 169*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clUnloadPlatformCompiler); 170*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetKernelArgInfo); 171*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueFillBuffer); 172*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueFillImage); 173*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueMigrateMemObjects); 174*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueMarkerWithWaitList); 175*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clEnqueueBarrierWithWaitList); 176*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clGetExtensionFunctionAddressForPlatform); 177*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateFromGLTexture); 178*1cddb830SAndroid Build Coastguard Worker 179*1cddb830SAndroid Build Coastguard Worker /* cl_khr_d3d11_sharing */ 180*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 181*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 182*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 183*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 184*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 185*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 186*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 187*1cddb830SAndroid Build Coastguard Worker 188*1cddb830SAndroid Build Coastguard Worker /* cl_khr_dx9_media_sharing */ 189*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 190*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 191*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 192*1cddb830SAndroid Build Coastguard Worker 193*1cddb830SAndroid Build Coastguard Worker /* cl_khr_egl_image */ 194*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 195*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 196*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 197*1cddb830SAndroid Build Coastguard Worker 198*1cddb830SAndroid Build Coastguard Worker /* cl_khr_egl_event */ 199*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 200*1cddb830SAndroid Build Coastguard Worker 201*1cddb830SAndroid Build Coastguard Worker /* OpenCL 2.0 */ 202*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 203*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 204*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 205*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 206*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 207*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 208*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 209*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 210*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 211*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 212*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 213*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 214*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 215*1cddb830SAndroid Build Coastguard Worker 216*1cddb830SAndroid Build Coastguard Worker /* cl_khr_sub_groups */ 217*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 218*1cddb830SAndroid Build Coastguard Worker 219*1cddb830SAndroid Build Coastguard Worker /* OpenCL 2.1 */ 220*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 221*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 222*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 223*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 224*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 225*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 226*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 227*1cddb830SAndroid Build Coastguard Worker 228*1cddb830SAndroid Build Coastguard Worker /* OpenCL 2.2 */ 229*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 230*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY( NULL ); 231*1cddb830SAndroid Build Coastguard Worker 232*1cddb830SAndroid Build Coastguard Worker /* OpenCL 3.0 */ 233*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateBufferWithProperties ); 234*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clCreateImageWithProperties ); 235*1cddb830SAndroid Build Coastguard Worker ICD_DISPATCH_TABLE_ENTRY ( clSetContextDestructorCallback ); 236*1cddb830SAndroid Build Coastguard Worker 237*1cddb830SAndroid Build Coastguard Worker // return success 238*1cddb830SAndroid Build Coastguard Worker *outDispatchTable = dispatchTable; 239*1cddb830SAndroid Build Coastguard Worker return CL_SUCCESS; 240*1cddb830SAndroid Build Coastguard Worker 241*1cddb830SAndroid Build Coastguard Worker Error: 242*1cddb830SAndroid Build Coastguard Worker return result; 243*1cddb830SAndroid Build Coastguard Worker } 244*1cddb830SAndroid Build Coastguard Worker 245*1cddb830SAndroid Build Coastguard Worker void cliIcdDispatchTableDestroy(CLIicdDispatchTable * dispatchTable)246*1cddb830SAndroid Build Coastguard WorkercliIcdDispatchTableDestroy(CLIicdDispatchTable *dispatchTable) 247*1cddb830SAndroid Build Coastguard Worker { 248*1cddb830SAndroid Build Coastguard Worker free(dispatchTable); 249*1cddb830SAndroid Build Coastguard Worker } 250