Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *
- * Copyright (c) 2013 Teemu Virolainen <teemu.virolainen@gmail.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
- #include <CL/cl.h>
- #include <dlfcn.h>
- #include <stddef.h>
- #include <stdlib.h>
- #include <hybris/internal/binding.h>
- #include <hybris/internal/floating_point_abi.h>
- static void *_libcl = NULL;
- /*
- TODO: Merge the gles2 and OpenCL loaders to same place
- */
- #define OPENCL_IDLOAD(sym) \
- __asm__ (".type " #sym ", %gnu_indirect_function"); \
- typeof(sym) * sym ## _dispatch (void) __asm__ (#sym);\
- typeof(sym) * sym ## _dispatch (void) \
- { \
- return (void *) android_dlsym(_libcl, #sym); \
- }
- static void __attribute__((constructor)) _init_androidglesv2() {
- _libcl = (void *) android_dlopen("/system/lib/libOpenCL.so", RTLD_LAZY);
- }
- OPENCL_IDLOAD(clGetPlatformIDs);
- OPENCL_IDLOAD(clGetPlatformInfo);
- OPENCL_IDLOAD(clGetDeviceIDs);
- OPENCL_IDLOAD(clGetDeviceInfo);
- OPENCL_IDLOAD(clCreateContext);
- OPENCL_IDLOAD(clCreateContextFromType);
- OPENCL_IDLOAD(clRetainContext);
- OPENCL_IDLOAD(clReleaseContext);
- OPENCL_IDLOAD(clGetContextInfo);
- OPENCL_IDLOAD(clCreateCommandQueue);
- OPENCL_IDLOAD(clRetainCommandQueue);
- OPENCL_IDLOAD(clReleaseCommandQueue);
- OPENCL_IDLOAD(clGetCommandQueueInfo);
- OPENCL_IDLOAD(clCreateBuffer);
- OPENCL_IDLOAD(clCreateSubBuffer);
- OPENCL_IDLOAD(clCreateImage2D);
- OPENCL_IDLOAD(clCreateImage3D);
- OPENCL_IDLOAD(clRetainMemObject);
- OPENCL_IDLOAD(clReleaseMemObject);
- OPENCL_IDLOAD(clGetSupportedImageFormats);
- OPENCL_IDLOAD(clGetMemObjectInfo);
- OPENCL_IDLOAD(clGetImageInfo);
- OPENCL_IDLOAD(clSetMemObjectDestructorCallback);
- OPENCL_IDLOAD(clCreateSampler);
- OPENCL_IDLOAD(clRetainSampler);
- OPENCL_IDLOAD(clReleaseSampler);
- OPENCL_IDLOAD(clGetSamplerInfo);
- OPENCL_IDLOAD(clCreateProgramWithSource);
- OPENCL_IDLOAD(clCreateProgramWithBinary);
- OPENCL_IDLOAD(clRetainProgram);
- OPENCL_IDLOAD(clReleaseProgram);
- OPENCL_IDLOAD(clBuildProgram);
- OPENCL_IDLOAD(clUnloadCompiler);
- OPENCL_IDLOAD(clGetProgramInfo);
- OPENCL_IDLOAD(clGetProgramBuildInfo);
- OPENCL_IDLOAD(clCreateKernel);
- OPENCL_IDLOAD(clCreateKernelsInProgram);
- OPENCL_IDLOAD(clRetainKernel);
- OPENCL_IDLOAD(clReleaseKernel);
- OPENCL_IDLOAD(clSetKernelArg);
- OPENCL_IDLOAD(clGetKernelInfo);
- OPENCL_IDLOAD(clGetKernelWorkGroupInfo);
- OPENCL_IDLOAD(clWaitForEvents);
- OPENCL_IDLOAD(clGetEventInfo);
- OPENCL_IDLOAD(clCreateUserEvent);
- OPENCL_IDLOAD(clRetainEvent);
- OPENCL_IDLOAD(clReleaseEvent);
- OPENCL_IDLOAD(clSetUserEventStatus);
- OPENCL_IDLOAD(clSetEventCallback);
- OPENCL_IDLOAD(clGetEventProfilingInfo);
- OPENCL_IDLOAD(clFlush);
- OPENCL_IDLOAD(clFinish);
- OPENCL_IDLOAD(clEnqueueReadBuffer);
- OPENCL_IDLOAD(clEnqueueReadBufferRect);
- OPENCL_IDLOAD(clEnqueueWriteBuffer);
- OPENCL_IDLOAD(clEnqueueWriteBufferRect);
- OPENCL_IDLOAD(clEnqueueCopyBuffer);
- OPENCL_IDLOAD(clEnqueueCopyBufferRect);
- OPENCL_IDLOAD(clEnqueueReadImage);
- OPENCL_IDLOAD(clEnqueueWriteImage);
- OPENCL_IDLOAD(clEnqueueCopyImage);
- OPENCL_IDLOAD(clEnqueueCopyImageToBuffer);
- OPENCL_IDLOAD(clEnqueueCopyBufferToImage);
- OPENCL_IDLOAD(clEnqueueMapBuffer);
- OPENCL_IDLOAD(clEnqueueMapImage);
- OPENCL_IDLOAD(clEnqueueUnmapMemObject);
- OPENCL_IDLOAD(clEnqueueNDRangeKernel);
- OPENCL_IDLOAD(clEnqueueTask);
- OPENCL_IDLOAD(clEnqueueNativeKernel);
- OPENCL_IDLOAD(clEnqueueMarker);
- OPENCL_IDLOAD(clEnqueueWaitForEvents);
- OPENCL_IDLOAD(clEnqueueBarrier);
- OPENCL_IDLOAD(clGetExtensionFunctionAddress);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement