nodecl
Version:
An implementation of the JavaScript bindings for OpenCL
506 lines (499 loc) • 35.3 kB
JavaScript
/*
* nodecl - An implementation of the JavaScript bindings for OpenCL.
* https://github.com/jiahansu/nodecl
*
* Copyright (c) 2013-2013, Jia-Han Su (https://github.com/jiahansu)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of Jia-Han Su nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY JIA-HAN SU AND CONTRIBUTORS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
var my = require("myclass"), bridjs = require("bridjs"), ClBase = require("./cl_base"),
Signature = bridjs.Signature, ImageDesc, BufferRegion, Utils = require("./utils"),
NodeCLException = require("./nodecl_exception"), Type = require("./cl_type"),
log4js = require("log4js"),
log = log4js.getLogger("Cl10");
module.exports = my.Class({
STATIC: {
getVersion: function () {
return 1.0;
}
},
/* Platform API */
//extern CL_API_ENTRY cl_int CL_API_CALL
//clGetPlatformIDs(cl_uint /* num_entries */,
// cl_platform_id * /* platforms */,
// cl_uint * /* num_platforms */) CL_API_SUFFIX__VERSION_1_0;
getPlatformIDs: bridjs.defineFunction(Signature.int, Signature.uint, Signature.pointer, bridjs.byPointer(bridjs.NativeValue.uint)).bind("clGetPlatformIDs"),
//extern CL_API_ENTRY cl_int CL_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;
getPlatformInfo: bridjs.defineFunction(Signature.int, Type.platformId, Type.platformInfo, Signature.size, Signature.pointer, bridjs.byPointer(bridjs.NativeValue.size)).bind("clGetPlatformInfo"),
/* Device APIs */
//extern CL_API_ENTRY cl_int CL_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;
getDeviceIDs: bridjs.defineFunction(Signature.int, Type.platformId, Type.deviceType, Signature.uint, Signature.pointer, bridjs.byPointer(bridjs.NativeValue.uint)).bind("clGetDeviceIDs"),
//extern CL_API_ENTRY cl_int CL_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;
getDeviceInfo: bridjs.defineFunction(Signature.int, Type.platformId, Type.deviceInfo, Signature.size, Signature.pointer, bridjs.byPointer(bridjs.NativeValue.size)).bind("clGetDeviceInfo"),
/* Context APIs */
//extern CL_API_ENTRY cl_context CL_API_CALL
//clCreateContext(const cl_context_properties * /* properties */,
// cl_uint /* num_devices */,
// const cl_device_id * /* devices */,
// void (CL_CALLBACK * /* pfn_notify */)(const char *, const void *, size_t, void *),
// void * /* user_data */,
// cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
createContext: bridjs.defineFunction(Signature.pointer, Signature.uint, Signature.pointer,
bridjs.byPointer(Type.createContextNotify),
Signature.pointer, bridjs.byPointer(bridjs.NativeValue.int)).bind("clCreateContext"),
//extern CL_API_ENTRY cl_context CL_API_CALL
//clCreateContextFromType(const cl_context_properties * /* properties */,
// cl_device_type /* device_type */,
// void (CL_CALLBACK * /* pfn_notify*/ )(const char *, const void *, size_t, void *),
// void * /* user_data */,
// cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
createContextFromType: bridjs.defineFunction(Signature.pointer, Signature.pointer, Type.deviceType,
bridjs.byPointer(Type.createContextNotify),
Signature.pointer, bridjs.byPointer(bridjs.NativeValue.int)).bind("clCreateContextFromType"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clRetainContext(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0;
retainContext: bridjs.defineFunction(Signature.int, Signature.pointer).bind("clRetainContext"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clReleaseContext(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0;
releaseContext: bridjs.defineFunction(Signature.int, Signature.pointer).bind("clReleaseContext"),
//extern CL_API_ENTRY cl_int CL_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;
getContextInfo: bridjs.defineFunction(Signature.int, Signature.pointer, Type.contextInfo,
Signature.size,
Signature.pointer, bridjs.byPointer(bridjs.NativeValue.size)).bind("clGetContextInfo"),
/* Command Queue APIs */
//extern CL_API_ENTRY cl_command_queue CL_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;
createCommandQueue: bridjs.defineFunction(Signature.pointer, Signature.pointer, Type.deviceId,
Signature.pointer, bridjs.byPointer(bridjs.NativeValue.int)).bind("clCreateCommandQueue"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clRetainCommandQueue(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;
retainCommandQueue: bridjs.defineFunction(Signature.int, Signature.pointer).bind("clRetainCommandQueue"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clReleaseCommandQueue(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;
releaseCommandQueue: bridjs.defineFunction(Signature.int, Signature.pointer).bind("clReleaseCommandQueue"),
//extern CL_API_ENTRY cl_int CL_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;
getCommandQueueInfo: bridjs.defineFunction(Signature.int, Type.commandQueue, Type.commandQueueInfo, Signature.size,
Signature.pointer, Signature.pointer, bridjs.byPointer(bridjs.NativeValue.int)).bind("clGetCommandQueueInfo"),
/* Memory Object APIs */
//extern CL_API_ENTRY cl_mem CL_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;
createBuffer: bridjs.defineFunction(Type.mem, Signature.pointer, Type.memFlags, Signature.size,
Signature.pointer, bridjs.byPointer(bridjs.NativeValue.int)).bind("clCreateBuffer"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clRetainMemObject(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0;
retainMemObject: bridjs.defineFunction(Signature.int, Type.mem).bind("clRetainMemObject"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clReleaseMemObject(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0;
releaseMemObject: bridjs.defineFunction(Signature.int, Type.mem).bind("clReleaseMemObject"),
//extern CL_API_ENTRY cl_int CL_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;
getSupportedImageFormats: bridjs.defineFunction(Signature.int, Type.context, Type.memFlags, Type.memObjectType, Signature.uint,
Signature.pointer, bridjs.byPointer(bridjs.NativeValue.uint)).bind("clGetSupportedImageFormats"),
//extern CL_API_ENTRY cl_int CL_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;
getMemObjectInfo: bridjs.defineFunction(Signature.int, Type.mem, Type.memInfo, Signature.size,
Signature.pointer, bridjs.byPointer(bridjs.NativeValue.size)).bind("clGetMemObjectInfo"),
//extern CL_API_ENTRY cl_int CL_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;
getImageInfo: bridjs.defineFunction(Signature.int, Type.mem, Type.memInfo, Signature.size,
Signature.pointer, bridjs.byPointer(bridjs.NativeValue.size)).bind("clGetImageInfo"),
/* Sampler APIs */
//extern CL_API_ENTRY cl_sampler CL_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;
createSampler: bridjs.defineFunction(Signature.pointer, Signature.pointer, Signature.bool, Type.addressingMode, Type.filterMode,
bridjs.byPointer(bridjs.NativeValue.int)).bind("clCreateSampler"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clRetainSampler(cl_sampler /* sampler */) CL_API_SUFFIX__VERSION_1_0;
retainSampler: bridjs.defineFunction(Signature.int).bind("clRetainSampler"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clReleaseSampler(cl_sampler /* sampler */) CL_API_SUFFIX__VERSION_1_0;
releaseSampler: bridjs.defineFunction(Signature.int).bind("clReleaseSampler"),
//extern CL_API_ENTRY cl_int CL_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;
getSamplerInfo: bridjs.defineFunction(Signature.int, Signature.pointer, Type.samplerInfo, Signature.size, Signature.pointer,
bridjs.byPointer(bridjs.NativeValue.size)).bind("clGetSamplerInfo"),
/* Program Object APIs */
//extern CL_API_ENTRY cl_program CL_API_CALL
//clCreateProgramWithSource(cl_context /* context */,
// cl_uint /* count */,
// const char ** /* strings */,
// const size_t * /* lengths */,
// cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
createProgramWithSource: bridjs.defineFunction(Signature.pointer, Signature.pointer, Signature.uint, bridjs.byPointer(bridjs.NativeValue.string),
bridjs.byPointer(bridjs.NativeValue.size), bridjs.byPointer(bridjs.NativeValue.int)).bind("clCreateProgramWithSource"),
//extern CL_API_ENTRY cl_program CL_API_CALL
//clCreateProgramWithBinary(cl_context /* context */,
// cl_uint /* num_devices */,
// const cl_device_id * /* device_list */,
// const size_t * /* lengths */,
// const unsigned char ** /* binaries */,
// cl_int * /* binary_status */,
// cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
createProgramWithBinary: bridjs.defineFunction(Signature.pointer, Signature.pointer, Signature.uint, Signature.pointer,
bridjs.byPointer(bridjs.NativeValue.size), bridjs.byPointer(bridjs.NativeValue.pointer), bridjs.byPointer(bridjs.NativeValue.int), bridjs.byPointer(bridjs.NativeValue.int)).bind("clCreateProgramWithBinary"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clRetainProgram(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0;
retainProgram: bridjs.defineFunction(Signature.int, Signature.pointer).bind("clRetainProgram"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clReleaseProgram(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0;
releaseProgram: bridjs.defineFunction(Signature.int, Signature.pointer).bind("clReleaseProgram"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clBuildProgram(cl_program /* program */,
// cl_uint /* num_devices */,
// const cl_device_id * /* device_list */,
// const char * /* options */,
// void (CL_CALLBACK * /* pfn_notify */)(cl_program /* program */, void * /* user_data */),
// void * /* user_data */) CL_API_SUFFIX__VERSION_1_0;
buildProgram: bridjs.defineFunction(Signature.int, Signature.pointer, Signature.uint, bridjs.byPointer(bridjs.NativeValue.pointer),
Signature.string, bridjs.byPointer(Type.buildProgramNotify), Signature.pointer).bind("clBuildProgram"),
//extern CL_API_ENTRY cl_int CL_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;
getProgramInfo: bridjs.defineFunction(Signature.int, Signature.pointer, Type.programInfo, Signature.size, Signature.pointer,
bridjs.byPointer(bridjs.NativeValue.size)).bind("clGetProgramInfo"),
//extern CL_API_ENTRY cl_int CL_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;
getProgramBuildInfo: bridjs.defineFunction(Signature.int, Signature.pointer, Type.deviceId, Type.programBuildInfo, Signature.size, Signature.pointer,
bridjs.byPointer(bridjs.NativeValue.size)).bind("clGetProgramBuildInfo"),
/* Kernel Object APIs */
//extern CL_API_ENTRY cl_kernel CL_API_CALL
//clCreateKernel(cl_program /* program */,
// const char * /* kernel_name */,
// cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
createKernel: bridjs.defineFunction(Signature.pointer, Signature.pointer,
Signature.string, bridjs.byPointer(bridjs.NativeValue.int)).bind("clCreateKernel"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clCreateKernelsInProgram(cl_program /* program */,
// cl_uint /* num_kernels */,
// cl_kernel * /* kernels */,
// cl_uint * /* num_kernels_ret */) CL_API_SUFFIX__VERSION_1_0;
createKernelsInProgram: bridjs.defineFunction(Signature.int, Signature.pointer, Signature.uint,
bridjs.byPointer(bridjs.NativeValue.pointer), bridjs.byPointer(bridjs.NativeValue.uint)).bind("clCreateKernelsInProgram"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clRetainKernel(cl_kernel /* kernel */) CL_API_SUFFIX__VERSION_1_0;
retainKernel: bridjs.defineFunction(Signature.int, Signature.pointer).bind("clRetainKernel"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clReleaseKernel(cl_kernel /* kernel */) CL_API_SUFFIX__VERSION_1_0;
releaseKernel: bridjs.defineFunction(Signature.int, Signature.pointer).bind("clReleaseKernel"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clSetKernelArg(cl_kernel /* kernel */,
// cl_uint /* arg_index */,
// size_t /* arg_size */,
// const void * /* arg_value */) CL_API_SUFFIX__VERSION_1_0;
//extern CL_API_ENTRY cl_int CL_API_CALL
//clReleaseKernel(cl_kernel /* kernel */) CL_API_SUFFIX__VERSION_1_0;
setKernelArg: bridjs.defineFunction(Signature.int, Signature.pointer, Signature.uint, Signature.size, Signature.pointer).bind("clSetKernelArg"),
//extern CL_API_ENTRY cl_int CL_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;
getKernelInfo: bridjs.defineFunction(Signature.int, Signature.pointer, Type.kernelInfo,
Signature.size, Signature.pointer, bridjs.byPointer(bridjs.NativeValue.size)).bind("clGetKernelInfo"),
//extern CL_API_ENTRY cl_int CL_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;
getKernelWorkGroupInfo: bridjs.defineFunction(Signature.int, Signature.pointer, Type.deviceId, Type.kernelWorkGroupInfo,
Signature.size, Signature.pointer, bridjs.byPointer(bridjs.NativeValue.size)).bind("clGetKernelWorkGroupInfo"),
/* Event Object APIs */
//extern CL_API_ENTRY cl_int CL_API_CALL
//clWaitForEvents(cl_uint /* num_events */,
// const cl_event * /* event_list */) CL_API_SUFFIX__VERSION_1_0;
waitForEvents: bridjs.defineFunction(Signature.uint, Signature.pointer).bind("clWaitForEvents"),
//extern CL_API_ENTRY cl_int CL_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;
getEventInfo: bridjs.defineFunction(Signature.int, Signature.pointer, Type.eventInfo,
Signature.size, Signature.pointer, bridjs.byPointer(bridjs.NativeValue.size)).bind("clGetEventInfo"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clRetainEvent(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0;
createRetainEvent: bridjs.defineFunction(Signature.int, Signature.pointer).bind("clRetainEvent"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clReleaseEvent(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0;
releaseEvent: bridjs.defineFunction(Signature.int, Signature.pointer).bind("clReleaseEvent"),
/* Profiling APIs */
//extern CL_API_ENTRY cl_int CL_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;
//extern CL_API_ENTRY cl_int CL_API_CALL
//clReleaseEvent(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0;
getEventProfilingInfo: bridjs.defineFunction(Signature.int, Signature.pointer, Type.profilingInfo, Signature.size,
Signature.pointer, bridjs.byPointer(bridjs.NativeValue.size)).bind("clGetEventProfilingInfo"),
/* Flush and Finish APIs */
//extern CL_API_ENTRY cl_int CL_API_CALL
//clFlush(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;
flush: bridjs.defineFunction(Signature.int, Signature.pointer).bind("clFlush"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clFinish(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;
finish: bridjs.defineFunction(Signature.int, Signature.pointer).bind("clFinish"),
/* Enqueued Commands APIs */
//extern CL_API_ENTRY cl_int CL_API_CALL
//clEnqueueReadBuffer(cl_command_queue /* command_queue */,
// cl_mem /* buffer */,
// cl_bool /* blocking_read */,
// size_t /* offset */,
// size_t /* size */,
// void * /* ptr */,
// cl_uint /* num_events_in_wait_list */,
// const cl_event * /* event_wait_list */,
// cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
enqueueReadBuffer: bridjs.defineFunction(Signature.int, Signature.pointer, Type.mem, Signature.bool,
Signature.size, Signature.size, Signature.pointer, Signature.uint, Signature.pointer, Signature.pointer).bind("clEnqueueReadBuffer"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clEnqueueWriteBuffer(cl_command_queue /* command_queue */,
// cl_mem /* buffer */,
// cl_bool /* blocking_write */,
// size_t /* offset */,
// size_t /* size */,
// const void * /* ptr */,
// cl_uint /* num_events_in_wait_list */,
// const cl_event * /* event_wait_list */,
// cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
enqueueWriteBuffer: bridjs.defineFunction(Signature.int, Signature.pointer, Type.mem, Signature.bool,
Signature.size, Signature.size, Signature.pointer, Signature.uint, Signature.pointer, Signature.pointer).bind("clEnqueueWriteBuffer"),
//extern CL_API_ENTRY cl_int CL_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 /* size */,
// cl_uint /* num_events_in_wait_list */,
// const cl_event * /* event_wait_list */,
// cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
enqueueCopyBuffer: bridjs.defineFunction(Signature.int, Signature.pointer, Type.mem, Type.mem,
Signature.size, Signature.size, Signature.size, Signature.uint, Signature.pointer, Signature.pointer).bind("clEnqueueCopyBuffer"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clEnqueueReadImage(cl_command_queue /* command_queue */,
// cl_mem /* image */,
// cl_bool /* blocking_read */,
// const size_t * /* origin[3] */,
// const size_t * /* region[3] */,
// size_t /* row_pitch */,
// size_t /* slice_pitch */,
// void * /* ptr */,
// cl_uint /* num_events_in_wait_list */,
// const cl_event * /* event_wait_list */,
// cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
enqueueReadImage: bridjs.defineFunction(Signature.int, Signature.pointer, Type.mem, Signature.bool,
Signature.pointer, Signature.pointer, Signature.size, Signature.size, Signature.pointer, Signature.uint, Signature.pointer, Signature.pointer).bind("clEnqueueReadImage"),
//extern CL_API_ENTRY cl_int CL_API_CALL/
//clEnqueueWriteImage(cl_command_queue /* command_queue */,
// cl_mem /* image */,
// cl_bool /* blocking_write */,
// const size_t * /* origin[3] */,
// const size_t * /* region[3] */,
// size_t /* input_row_pitch */,
// size_t /* input_slice_pitch */,
// const void * /* ptr */,
// cl_uint /* num_events_in_wait_list */,
// const cl_event * /* event_wait_list */,
// cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
enqueueWriteImage: bridjs.defineFunction(Signature.int, Signature.pointer, Type.mem, Signature.bool,
Signature.pointer, Signature.pointer, Signature.size, Signature.size, Signature.pointer, Signature.uint, Signature.pointer, Signature.pointer).bind("clEnqueueWriteImage"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clEnqueueCopyImage(cl_command_queue /* command_queue */,
// cl_mem /* src_image */,
// cl_mem /* dst_image */,
// const size_t * /* src_origin[3] */,
// const size_t * /* dst_origin[3] */,
// const size_t * /* region[3] */,
// cl_uint /* num_events_in_wait_list */,
// const cl_event * /* event_wait_list */,
// cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
enqueueCopyImage: bridjs.defineFunction(Signature.int, Signature.pointer, Type.mem, Type.mem,
Signature.pointer, Signature.pointer, Signature.pointer, Signature.uint, Signature.pointer, Signature.pointer).bind("clEnqueueCopyImage"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clEnqueueCopyImageToBuffer(cl_command_queue /* command_queue */,
// cl_mem /* src_image */,
// cl_mem /* dst_buffer */,
// const size_t * /* src_origin[3] */,
// const size_t * /* region[3] */,
// size_t /* dst_offset */,
// cl_uint /* num_events_in_wait_list */,
// const cl_event * /* event_wait_list */,
// cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
enqueueCopyImageToBuffer: bridjs.defineFunction(Signature.int, Signature.pointer, Type.mem, Type.mem,
Signature.pointer, Signature.pointer, Signature.size, Signature.uint, Signature.pointer, Signature.pointer).bind("clEnqueueCopyImageToBuffer"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clEnqueueCopyBufferToImage(cl_command_queue /* command_queue */,
// cl_mem /* src_buffer */,
// cl_mem /* dst_image */,
// size_t /* src_offset */,
// const size_t * /* dst_origin[3] */,
// const size_t * /* region[3] */,
// cl_uint /* num_events_in_wait_list */,
// const cl_event * /* event_wait_list */,
// cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
enqueueCopyBufferToImage: bridjs.defineFunction(Signature.int, Signature.pointer, Type.mem, Type.mem, Signature.size,
Signature.pointer, Signature.pointer, Signature.uint, Signature.pointer, Signature.pointer).bind("clEnqueueCopyBufferToImage"),
//extern CL_API_ENTRY void * CL_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 /* size */,
// cl_uint /* num_events_in_wait_list */,
// const cl_event * /* event_wait_list */,
// cl_event * /* event */,
// cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
enqueueMapBuffer: bridjs.defineFunction(Signature.pointer, Signature.pointer, Type.mem, Signature.bool,
Type.mapFlags, Signature.size, Signature.size, Signature.uint, Signature.pointer, Signature.pointer, bridjs.byPointer(bridjs.NativeValue.int)).bind("clEnqueueMapBuffer"),
//extern CL_API_ENTRY void * CL_API_CALL
//clEnqueueMapImage(cl_command_queue /* command_queue */,
// cl_mem /* image */,
// cl_bool /* blocking_map */,
// cl_map_flags /* map_flags */,
// const size_t * /* origin[3] */,
// const size_t * /* region[3] */,
// size_t * /* image_row_pitch */,
// size_t * /* image_slice_pitch */,
// cl_uint /* num_events_in_wait_list */,
// const cl_event * /* event_wait_list */,
// cl_event * /* event */,
// cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
enqueueMapImage: bridjs.defineFunction(Signature.pointer, Signature.pointer, Type.mem, Signature.bool,
Type.mapFlags, bridjs.byPointer(bridjs.NativeValue.size), bridjs.byPointer(bridjs.NativeValue.size), bridjs.byPointer(bridjs.NativeValue.size), bridjs.byPointer(bridjs.NativeValue.size),
Signature.uint, Signature.pointer, Signature.pointer, bridjs.byPointer(bridjs.NativeValue.int)).bind("clEnqueueMapImage"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clEnqueueUnmapMemObject(cl_command_queue /* command_queue */,
// cl_mem /* memobj */,
// void * /* mapped_ptr */,
// cl_uint /* num_events_in_wait_list */,
// const cl_event * /* event_wait_list */,
// cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
enqueueUnmapMemObject: bridjs.defineFunction(Signature.int, Signature.pointer, Type.mem, Signature.pointer,
Signature.uint, Signature.pointer, Signature.pointer).bind("clEnqueueUnmapMemObject"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clEnqueueNDRangeKernel(cl_command_queue /* command_queue */,
// cl_kernel /* kernel */,
// cl_uint /* work_dim */,
// const size_t * /* global_work_offset */,
// const size_t * /* global_work_size */,
// const size_t * /* local_work_size */,
// cl_uint /* num_events_in_wait_list */,
// const cl_event * /* event_wait_list */,
// cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
enqueueNDRangeKernel: bridjs.defineFunction(Signature.int, Signature.pointer, Signature.pointer,
Signature.uint, bridjs.byPointer(bridjs.NativeValue.size), bridjs.byPointer(bridjs.NativeValue.size), bridjs.byPointer(bridjs.NativeValue.size),
Signature.uint,
Signature.pointer, Signature.pointer).bind("clEnqueueNDRangeKernel"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clEnqueueTask(cl_command_queue /* command_queue */,
// cl_kernel /* kernel */,
// cl_uint /* num_events_in_wait_list */,
// const cl_event * /* event_wait_list */,
// cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
enqueueTask: bridjs.defineFunction(Signature.int, Signature.pointer, Signature.pointer,
Signature.uint, bridjs.byPointer(bridjs.NativeValue.pointer), bridjs.byPointer(bridjs.NativeValue.pointer)).bind("clEnqueueTask"),
//extern CL_API_ENTRY cl_int CL_API_CALL
//clEnqueueNativeKernel(cl_command_queue /* command_queue */,
// void (CL_CALLBACK * /*user_func*/)(void *),
// void * /* args */,
// size_t /* cb_args */,
// cl_uint /* num_mem_objects */,
// const cl_mem * /* mem_list */,
// const void ** /* args_mem_loc */,
// cl_uint /* num_events_in_wait_list */,
// const cl_event * /* event_wait_list */,
// cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
enqueueNativeKernel: bridjs.defineFunction(Signature.int, Signature.pointer, Signature.pointer, bridjs.byPointer(Type.enqueueNativeKernelUserFunc),
Signature.pointer, Signature.size, Signature.uint, Type.mem, bridjs.byPointer(bridjs.NativeValue.pointer), Signature.uint, bridjs.byPointer(bridjs.NativeValue.pointer),
bridjs.byPointer(bridjs.NativeValue.pointer)).bind("clEnqueueNativeKernel")
});
Utils.extend(module.exports, ClBase);