package com.nativelibs4java.opencl.library;
import org.bridj.Callback;
import org.bridj.Pointer;
import org.bridj.SizeT;
import org.bridj.TypedPointer;
import org.bridj.ann.Optional;
import org.bridj.ann.Ptr;
/**
 * Interface for library <b>OpenCL</b><br>
 * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
 * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
 * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> or <a href="http://bridj.googlecode.com/">BridJ</a> .
 */
public interface IOpenCLLibrary {
	public static final int CL_CHAR_BIT = 8;
	public static final int CL_SCHAR_MAX = 127;
	public static final int CL_SCHAR_MIN = (-127 - 1);
	public static final int CL_CHAR_MAX = 127;
	public static final int CL_CHAR_MIN = (-127 - 1);
	public static final int CL_UCHAR_MAX = 255;
	public static final int CL_SHRT_MAX = 32767;
	public static final int CL_SHRT_MIN = (-32767 - 1);
	public static final int CL_USHRT_MAX = 65535;
	public static final int CL_INT_MAX = 2147483647;
	public static final int CL_INT_MIN = (-2147483647 - 1);
	public static final long CL_UINT_MAX = 0xffffffffL;
	public static final int CL_FLT_DIG = 6;
	public static final int CL_FLT_MANT_DIG = 24;
	public static final int CL_FLT_MAX_10_EXP = +38;
	public static final int CL_FLT_MAX_EXP = +128;
	public static final int CL_FLT_MIN_10_EXP = -37;
	public static final int CL_FLT_MIN_EXP = -125;
	public static final int CL_FLT_RADIX = 2;
	public static final int CL_DBL_DIG = 15;
	public static final int CL_DBL_MANT_DIG = 53;
	public static final int CL_DBL_MAX_10_EXP = +308;
	public static final int CL_DBL_MAX_EXP = +1024;
	public static final int CL_DBL_MIN_10_EXP = -307;
	public static final int CL_DBL_MIN_EXP = -1021;
	public static final int CL_DBL_RADIX = 2;
	public static final double CL_M_E = 2.718281828459045090796;
	public static final double CL_M_LOG2E = 1.442695040888963387005;
	public static final double CL_M_LOG10E = 0.434294481903251816668;
	public static final double CL_M_LN2 = 0.693147180559945286227;
	public static final double CL_M_LN10 = 2.302585092994045901094;
	public static final double CL_M_PI = 3.141592653589793115998;
	public static final double CL_M_PI_2 = 1.570796326794896557999;
	public static final double CL_M_PI_4 = 0.785398163397448278999;
	public static final double CL_M_1_PI = 0.318309886183790691216;
	public static final double CL_M_2_PI = 0.636619772367581382433;
	public static final double CL_M_2_SQRTPI = 1.128379167095512558561;
	public static final double CL_M_SQRT2 = 1.414213562373095145475;
	public static final double CL_M_SQRT1_2 = 0.707106781186547572737;
	public static final float CL_M_E_F = 2.71828174591064f;
	public static final float CL_M_LOG2E_F = 1.44269502162933f;
	public static final float CL_M_LOG10E_F = 0.43429449200630f;
	public static final float CL_M_LN2_F = 0.69314718246460f;
	public static final float CL_M_LN10_F = 2.30258512496948f;
	public static final float CL_M_PI_F = 3.14159274101257f;
	public static final float CL_M_PI_2_F = 1.57079637050629f;
	public static final float CL_M_PI_4_F = 0.78539818525314f;
	public static final float CL_M_1_PI_F = 0.31830987334251f;
	public static final float CL_M_2_PI_F = 0.63661974668503f;
	public static final float CL_M_2_SQRTPI_F = 1.12837922573090f;
	public static final float CL_M_SQRT2_F = 1.41421353816986f;
	public static final float CL_M_SQRT1_2_F = 0.70710676908493f;
	public static final int CL_HAS_NAMED_VECTOR_FIELDS = 1;
	public static final int CL_HAS_HI_LO_VECTOR_FIELDS = 1;
	public static final String CL_PROGRAM_STRING_DEBUG_INFO = "#line ";
	public static final int CL_SUCCESS = 0;
	public static final int CL_DEVICE_NOT_FOUND = -1;
	public static final int CL_DEVICE_NOT_AVAILABLE = -2;
	public static final int CL_COMPILER_NOT_AVAILABLE = -3;
	public static final int CL_MEM_OBJECT_ALLOCATION_FAILURE = -4;
	public static final int CL_OUT_OF_RESOURCES = -5;
	public static final int CL_OUT_OF_HOST_MEMORY = -6;
	public static final int CL_PROFILING_INFO_NOT_AVAILABLE = -7;
	public static final int CL_MEM_COPY_OVERLAP = -8;
	public static final int CL_IMAGE_FORMAT_MISMATCH = -9;
	public static final int CL_IMAGE_FORMAT_NOT_SUPPORTED = -10;
	public static final int CL_BUILD_PROGRAM_FAILURE = -11;
	public static final int CL_MAP_FAILURE = -12;
	public static final int CL_MISALIGNED_SUB_BUFFER_OFFSET = -13;
	public static final int CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST = -14;
	public static final int CL_COMPILE_PROGRAM_FAILURE = -15;
	public static final int CL_LINKER_NOT_AVAILABLE = -16;
	public static final int CL_LINK_PROGRAM_FAILURE = -17;
	public static final int CL_DEVICE_PARTITION_FAILED = -18;
	public static final int CL_KERNEL_ARG_INFO_NOT_AVAILABLE = -19;
	public static final int CL_INVALID_VALUE = -30;
	public static final int CL_INVALID_DEVICE_TYPE = -31;
	public static final int CL_INVALID_PLATFORM = -32;
	public static final int CL_INVALID_DEVICE = -33;
	public static final int CL_INVALID_CONTEXT = -34;
	public static final int CL_INVALID_QUEUE_PROPERTIES = -35;
	public static final int CL_INVALID_COMMAND_QUEUE = -36;
	public static final int CL_INVALID_HOST_PTR = -37;
	public static final int CL_INVALID_MEM_OBJECT = -38;
	public static final int CL_INVALID_IMAGE_FORMAT_DESCRIPTOR = -39;
	public static final int CL_INVALID_IMAGE_SIZE = -40;
	public static final int CL_INVALID_SAMPLER = -41;
	public static final int CL_INVALID_BINARY = -42;
	public static final int CL_INVALID_BUILD_OPTIONS = -43;
	public static final int CL_INVALID_PROGRAM = -44;
	public static final int CL_INVALID_PROGRAM_EXECUTABLE = -45;
	public static final int CL_INVALID_KERNEL_NAME = -46;
	public static final int CL_INVALID_KERNEL_DEFINITION = -47;
	public static final int CL_INVALID_KERNEL = -48;
	public static final int CL_INVALID_ARG_INDEX = -49;
	public static final int CL_INVALID_ARG_VALUE = -50;
	public static final int CL_INVALID_ARG_SIZE = -51;
	public static final int CL_INVALID_KERNEL_ARGS = -52;
	public static final int CL_INVALID_WORK_DIMENSION = -53;
	public static final int CL_INVALID_WORK_GROUP_SIZE = -54;
	public static final int CL_INVALID_WORK_ITEM_SIZE = -55;
	public static final int CL_INVALID_GLOBAL_OFFSET = -56;
	public static final int CL_INVALID_EVENT_WAIT_LIST = -57;
	public static final int CL_INVALID_EVENT = -58;
	public static final int CL_INVALID_OPERATION = -59;
	public static final int CL_INVALID_GL_OBJECT = -60;
	public static final int CL_INVALID_BUFFER_SIZE = -61;
	public static final int CL_INVALID_MIP_LEVEL = -62;
	public static final int CL_INVALID_GLOBAL_WORK_SIZE = -63;
	public static final int CL_INVALID_PROPERTY = -64;
	public static final int CL_INVALID_IMAGE_DESCRIPTOR = -65;
	public static final int CL_INVALID_COMPILER_OPTIONS = -66;
	public static final int CL_INVALID_LINKER_OPTIONS = -67;
	public static final int CL_INVALID_DEVICE_PARTITION_COUNT = -68;
	public static final int CL_VERSION_1_0 = 1;
	public static final int CL_VERSION_1_1 = 1;
	public static final int CL_VERSION_1_2 = 1;
	public static final int CL_FALSE = 0;
	public static final int CL_TRUE = 1;
	public static final int CL_BLOCKING = 1;
	public static final int CL_NON_BLOCKING = 0;
	public static final int CL_PLATFORM_PROFILE = 0x0900;
	public static final int CL_PLATFORM_VERSION = 0x0901;
	public static final int CL_PLATFORM_NAME = 0x0902;
	public static final int CL_PLATFORM_VENDOR = 0x0903;
	public static final int CL_PLATFORM_EXTENSIONS = 0x0904;
	public static final int CL_DEVICE_TYPE_DEFAULT = (1 << 0);
	public static final int CL_DEVICE_TYPE_CPU = (1 << 1);
	public static final int CL_DEVICE_TYPE_GPU = (1 << 2);
	public static final int CL_DEVICE_TYPE_ACCELERATOR = (1 << 3);
	public static final int CL_DEVICE_TYPE_CUSTOM = (1 << 4);
	public static final long CL_DEVICE_TYPE_ALL = 0xFFFFFFFFL;
	public static final int CL_DEVICE_TYPE = 0x1000;
	public static final int CL_DEVICE_VENDOR_ID = 0x1001;
	public static final int CL_DEVICE_MAX_COMPUTE_UNITS = 0x1002;
	public static final int CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS = 0x1003;
	public static final int CL_DEVICE_MAX_WORK_GROUP_SIZE = 0x1004;
	public static final int CL_DEVICE_MAX_WORK_ITEM_SIZES = 0x1005;
	public static final int CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR = 0x1006;
	public static final int CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT = 0x1007;
	public static final int CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT = 0x1008;
	public static final int CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG = 0x1009;
	public static final int CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT = 0x100A;
	public static final int CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE = 0x100B;
	public static final int CL_DEVICE_MAX_CLOCK_FREQUENCY = 0x100C;
	public static final int CL_DEVICE_ADDRESS_BITS = 0x100D;
	public static final int CL_DEVICE_MAX_READ_IMAGE_ARGS = 0x100E;
	public static final int CL_DEVICE_MAX_WRITE_IMAGE_ARGS = 0x100F;
	public static final int CL_DEVICE_MAX_MEM_ALLOC_SIZE = 0x1010;
	public static final int CL_DEVICE_IMAGE2D_MAX_WIDTH = 0x1011;
	public static final int CL_DEVICE_IMAGE2D_MAX_HEIGHT = 0x1012;
	public static final int CL_DEVICE_IMAGE3D_MAX_WIDTH = 0x1013;
	public static final int CL_DEVICE_IMAGE3D_MAX_HEIGHT = 0x1014;
	public static final int CL_DEVICE_IMAGE3D_MAX_DEPTH = 0x1015;
	public static final int CL_DEVICE_IMAGE_SUPPORT = 0x1016;
	public static final int CL_DEVICE_MAX_PARAMETER_SIZE = 0x1017;
	public static final int CL_DEVICE_MAX_SAMPLERS = 0x1018;
	public static final int CL_DEVICE_MEM_BASE_ADDR_ALIGN = 0x1019;
	public static final int CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE = 0x101A;
	public static final int CL_DEVICE_SINGLE_FP_CONFIG = 0x101B;
	public static final int CL_DEVICE_GLOBAL_MEM_CACHE_TYPE = 0x101C;
	public static final int CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE = 0x101D;
	public static final int CL_DEVICE_GLOBAL_MEM_CACHE_SIZE = 0x101E;
	public static final int CL_DEVICE_GLOBAL_MEM_SIZE = 0x101F;
	public static final int CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE = 0x1020;
	public static final int CL_DEVICE_MAX_CONSTANT_ARGS = 0x1021;
	public static final int CL_DEVICE_LOCAL_MEM_TYPE = 0x1022;
	public static final int CL_DEVICE_LOCAL_MEM_SIZE = 0x1023;
	public static final int CL_DEVICE_ERROR_CORRECTION_SUPPORT = 0x1024;
	public static final int CL_DEVICE_PROFILING_TIMER_RESOLUTION = 0x1025;
	public static final int CL_DEVICE_ENDIAN_LITTLE = 0x1026;
	public static final int CL_DEVICE_AVAILABLE = 0x1027;
	public static final int CL_DEVICE_COMPILER_AVAILABLE = 0x1028;
	public static final int CL_DEVICE_EXECUTION_CAPABILITIES = 0x1029;
	public static final int CL_DEVICE_QUEUE_PROPERTIES = 0x102A;
	public static final int CL_DEVICE_NAME = 0x102B;
	public static final int CL_DEVICE_VENDOR = 0x102C;
	public static final int CL_DRIVER_VERSION = 0x102D;
	public static final int CL_DEVICE_PROFILE = 0x102E;
	public static final int CL_DEVICE_VERSION = 0x102F;
	public static final int CL_DEVICE_EXTENSIONS = 0x1030;
	public static final int CL_DEVICE_PLATFORM = 0x1031;
	public static final int CL_DEVICE_DOUBLE_FP_CONFIG = 0x1032;
	public static final int CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF = 0x1034;
	public static final int CL_DEVICE_HOST_UNIFIED_MEMORY = 0x1035;
	public static final int CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR = 0x1036;
	public static final int CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT = 0x1037;
	public static final int CL_DEVICE_NATIVE_VECTOR_WIDTH_INT = 0x1038;
	public static final int CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG = 0x1039;
	public static final int CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT = 0x103A;
	public static final int CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE = 0x103B;
	public static final int CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF = 0x103C;
	public static final int CL_DEVICE_OPENCL_C_VERSION = 0x103D;
	public static final int CL_DEVICE_LINKER_AVAILABLE = 0x103E;
	public static final int CL_DEVICE_BUILT_IN_KERNELS = 0x103F;
	public static final int CL_DEVICE_IMAGE_MAX_BUFFER_SIZE = 0x1040;
	public static final int CL_DEVICE_IMAGE_MAX_ARRAY_SIZE = 0x1041;
	public static final int CL_DEVICE_PARENT_DEVICE = 0x1042;
	public static final int CL_DEVICE_PARTITION_MAX_SUB_DEVICES = 0x1043;
	public static final int CL_DEVICE_PARTITION_PROPERTIES = 0x1044;
	public static final int CL_DEVICE_PARTITION_AFFINITY_DOMAIN = 0x1045;
	public static final int CL_DEVICE_PARTITION_TYPE = 0x1046;
	public static final int CL_DEVICE_REFERENCE_COUNT = 0x1047;
	public static final int CL_DEVICE_PREFERRED_INTEROP_USER_SYNC = 0x1048;
	public static final int CL_DEVICE_PRINTF_BUFFER_SIZE = 0x1049;
	public static final int CL_FP_DENORM = (1 << 0);
	public static final int CL_FP_INF_NAN = (1 << 1);
	public static final int CL_FP_ROUND_TO_NEAREST = (1 << 2);
	public static final int CL_FP_ROUND_TO_ZERO = (1 << 3);
	public static final int CL_FP_ROUND_TO_INF = (1 << 4);
	public static final int CL_FP_FMA = (1 << 5);
	public static final int CL_FP_SOFT_FLOAT = (1 << 6);
	public static final int CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT = (1 << 7);
	public static final int CL_NONE = 0x0;
	public static final int CL_READ_ONLY_CACHE = 0x1;
	public static final int CL_READ_WRITE_CACHE = 0x2;
	public static final int CL_LOCAL = 0x1;
	public static final int CL_GLOBAL = 0x2;
	public static final int CL_EXEC_KERNEL = (1 << 0);
	public static final int CL_EXEC_NATIVE_KERNEL = (1 << 1);
	public static final int CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE = (1 << 0);
	public static final int CL_QUEUE_PROFILING_ENABLE = (1 << 1);
	public static final int CL_CONTEXT_REFERENCE_COUNT = 0x1080;
	public static final int CL_CONTEXT_DEVICES = 0x1081;
	public static final int CL_CONTEXT_PROPERTIES = 0x1082;
	public static final int CL_CONTEXT_NUM_DEVICES = 0x1083;
	public static final int CL_CONTEXT_PLATFORM = 0x1084;
	public static final int CL_CONTEXT_INTEROP_USER_SYNC = 0x1085;
	public static final int CL_DEVICE_PARTITION_EQUALLY = 0x1086;
	public static final int CL_DEVICE_PARTITION_BY_COUNTS = 0x1087;
	public static final int CL_DEVICE_PARTITION_BY_COUNTS_LIST_END = 0x0;
	public static final int CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN = 0x1088;
	public static final int CL_DEVICE_AFFINITY_DOMAIN_NUMA = (1 << 0);
	public static final int CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE = (1 << 1);
	public static final int CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE = (1 << 2);
	public static final int CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE = (1 << 3);
	public static final int CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE = (1 << 4);
	public static final int CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE = (1 << 5);
	public static final int CL_QUEUE_CONTEXT = 0x1090;
	public static final int CL_QUEUE_DEVICE = 0x1091;
	public static final int CL_QUEUE_REFERENCE_COUNT = 0x1092;
	public static final int CL_QUEUE_PROPERTIES = 0x1093;
	public static final int CL_MEM_READ_WRITE = (1 << 0);
	public static final int CL_MEM_WRITE_ONLY = (1 << 1);
	public static final int CL_MEM_READ_ONLY = (1 << 2);
	public static final int CL_MEM_USE_HOST_PTR = (1 << 3);
	public static final int CL_MEM_ALLOC_HOST_PTR = (1 << 4);
	public static final int CL_MEM_COPY_HOST_PTR = (1 << 5);
	public static final int CL_MEM_HOST_WRITE_ONLY = (1 << 7);
	public static final int CL_MEM_HOST_READ_ONLY = (1 << 8);
	public static final int CL_MEM_HOST_NO_ACCESS = (1 << 9);
	public static final int CL_MIGRATE_MEM_OBJECT_HOST = (1 << 0);
	public static final int CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED = (1 << 1);
	public static final int CL_R = 0x10B0;
	public static final int CL_A = 0x10B1;
	public static final int CL_RG = 0x10B2;
	public static final int CL_RA = 0x10B3;
	public static final int CL_RGB = 0x10B4;
	public static final int CL_RGBA = 0x10B5;
	public static final int CL_BGRA = 0x10B6;
	public static final int CL_ARGB = 0x10B7;
	public static final int CL_INTENSITY = 0x10B8;
	public static final int CL_LUMINANCE = 0x10B9;
	public static final int CL_Rx = 0x10BA;
	public static final int CL_RGx = 0x10BB;
	public static final int CL_RGBx = 0x10BC;
	public static final int CL_SNORM_INT8 = 0x10D0;
	public static final int CL_SNORM_INT16 = 0x10D1;
	public static final int CL_UNORM_INT8 = 0x10D2;
	public static final int CL_UNORM_INT16 = 0x10D3;
	public static final int CL_UNORM_SHORT_565 = 0x10D4;
	public static final int CL_UNORM_SHORT_555 = 0x10D5;
	public static final int CL_UNORM_INT_101010 = 0x10D6;
	public static final int CL_SIGNED_INT8 = 0x10D7;
	public static final int CL_SIGNED_INT16 = 0x10D8;
	public static final int CL_SIGNED_INT32 = 0x10D9;
	public static final int CL_UNSIGNED_INT8 = 0x10DA;
	public static final int CL_UNSIGNED_INT16 = 0x10DB;
	public static final int CL_UNSIGNED_INT32 = 0x10DC;
	public static final int CL_HALF_FLOAT = 0x10DD;
	public static final int CL_FLOAT = 0x10DE;
	public static final int CL_MEM_OBJECT_BUFFER = 0x10F0;
	public static final int CL_MEM_OBJECT_IMAGE2D = 0x10F1;
	public static final int CL_MEM_OBJECT_IMAGE3D = 0x10F2;
	public static final int CL_MEM_OBJECT_IMAGE2D_ARRAY = 0x10F3;
	public static final int CL_MEM_OBJECT_IMAGE1D = 0x10F4;
	public static final int CL_MEM_OBJECT_IMAGE1D_ARRAY = 0x10F5;
	public static final int CL_MEM_OBJECT_IMAGE1D_BUFFER = 0x10F6;
	public static final int CL_MEM_TYPE = 0x1100;
	public static final int CL_MEM_FLAGS = 0x1101;
	public static final int CL_MEM_SIZE = 0x1102;
	public static final int CL_MEM_HOST_PTR = 0x1103;
	public static final int CL_MEM_MAP_COUNT = 0x1104;
	public static final int CL_MEM_REFERENCE_COUNT = 0x1105;
	public static final int CL_MEM_CONTEXT = 0x1106;
	public static final int CL_MEM_ASSOCIATED_MEMOBJECT = 0x1107;
	public static final int CL_MEM_OFFSET = 0x1108;
	public static final int CL_IMAGE_FORMAT = 0x1110;
	public static final int CL_IMAGE_ELEMENT_SIZE = 0x1111;
	public static final int CL_IMAGE_ROW_PITCH = 0x1112;
	public static final int CL_IMAGE_SLICE_PITCH = 0x1113;
	public static final int CL_IMAGE_WIDTH = 0x1114;
	public static final int CL_IMAGE_HEIGHT = 0x1115;
	public static final int CL_IMAGE_DEPTH = 0x1116;
	public static final int CL_IMAGE_ARRAY_SIZE = 0x1117;
	public static final int CL_IMAGE_BUFFER = 0x1118;
	public static final int CL_IMAGE_NUM_MIP_LEVELS = 0x1119;
	public static final int CL_IMAGE_NUM_SAMPLES = 0x111A;
	public static final int CL_ADDRESS_NONE = 0x1130;
	public static final int CL_ADDRESS_CLAMP_TO_EDGE = 0x1131;
	public static final int CL_ADDRESS_CLAMP = 0x1132;
	public static final int CL_ADDRESS_REPEAT = 0x1133;
	public static final int CL_ADDRESS_MIRRORED_REPEAT = 0x1134;
	public static final int CL_FILTER_NEAREST = 0x1140;
	public static final int CL_FILTER_LINEAR = 0x1141;
	public static final int CL_SAMPLER_REFERENCE_COUNT = 0x1150;
	public static final int CL_SAMPLER_CONTEXT = 0x1151;
	public static final int CL_SAMPLER_NORMALIZED_COORDS = 0x1152;
	public static final int CL_SAMPLER_ADDRESSING_MODE = 0x1153;
	public static final int CL_SAMPLER_FILTER_MODE = 0x1154;
	public static final int CL_MAP_READ = (1 << 0);
	public static final int CL_MAP_WRITE = (1 << 1);
	public static final int CL_MAP_WRITE_INVALIDATE_REGION = (1 << 2);
	public static final int CL_PROGRAM_REFERENCE_COUNT = 0x1160;
	public static final int CL_PROGRAM_CONTEXT = 0x1161;
	public static final int CL_PROGRAM_NUM_DEVICES = 0x1162;
	public static final int CL_PROGRAM_DEVICES = 0x1163;
	public static final int CL_PROGRAM_SOURCE = 0x1164;
	public static final int CL_PROGRAM_BINARY_SIZES = 0x1165;
	public static final int CL_PROGRAM_BINARIES = 0x1166;
	public static final int CL_PROGRAM_NUM_KERNELS = 0x1167;
	public static final int CL_PROGRAM_KERNEL_NAMES = 0x1168;
	public static final int CL_PROGRAM_BUILD_STATUS = 0x1181;
	public static final int CL_PROGRAM_BUILD_OPTIONS = 0x1182;
	public static final int CL_PROGRAM_BUILD_LOG = 0x1183;
	public static final int CL_PROGRAM_BINARY_TYPE = 0x1184;
	public static final int CL_PROGRAM_BINARY_TYPE_NONE = 0x0;
	public static final int CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT = 0x1;
	public static final int CL_PROGRAM_BINARY_TYPE_LIBRARY = 0x2;
	public static final int CL_PROGRAM_BINARY_TYPE_EXECUTABLE = 0x4;
	public static final int CL_BUILD_SUCCESS = 0;
	public static final int CL_BUILD_NONE = -1;
	public static final int CL_BUILD_ERROR = -2;
	public static final int CL_BUILD_IN_PROGRESS = -3;
	public static final int CL_KERNEL_FUNCTION_NAME = 0x1190;
	public static final int CL_KERNEL_NUM_ARGS = 0x1191;
	public static final int CL_KERNEL_REFERENCE_COUNT = 0x1192;
	public static final int CL_KERNEL_CONTEXT = 0x1193;
	public static final int CL_KERNEL_PROGRAM = 0x1194;
	public static final int CL_KERNEL_ATTRIBUTES = 0x1195;
	public static final int CL_KERNEL_ARG_ADDRESS_QUALIFIER = 0x1196;
	public static final int CL_KERNEL_ARG_ACCESS_QUALIFIER = 0x1197;
	public static final int CL_KERNEL_ARG_TYPE_NAME = 0x1198;
	public static final int CL_KERNEL_ARG_TYPE_QUALIFIER = 0x1199;
	public static final int CL_KERNEL_ARG_NAME = 0x119A;
	public static final int CL_KERNEL_ARG_ADDRESS_GLOBAL = 0x119B;
	public static final int CL_KERNEL_ARG_ADDRESS_LOCAL = 0x119C;
	public static final int CL_KERNEL_ARG_ADDRESS_CONSTANT = 0x119D;
	public static final int CL_KERNEL_ARG_ADDRESS_PRIVATE = 0x119E;
	public static final int CL_KERNEL_ARG_ACCESS_READ_ONLY = 0x11A0;
	public static final int CL_KERNEL_ARG_ACCESS_WRITE_ONLY = 0x11A1;
	public static final int CL_KERNEL_ARG_ACCESS_READ_WRITE = 0x11A2;
	public static final int CL_KERNEL_ARG_ACCESS_NONE = 0x11A3;
	public static final int CL_KERNEL_ARG_TYPE_NONE = 0;
	public static final int CL_KERNEL_ARG_TYPE_CONST = (1 << 0);
	public static final int CL_KERNEL_ARG_TYPE_RESTRICT = (1 << 1);
	public static final int CL_KERNEL_ARG_TYPE_VOLATILE = (1 << 2);
	public static final int CL_KERNEL_WORK_GROUP_SIZE = 0x11B0;
	public static final int CL_KERNEL_COMPILE_WORK_GROUP_SIZE = 0x11B1;
	public static final int CL_KERNEL_LOCAL_MEM_SIZE = 0x11B2;
	public static final int CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE = 0x11B3;
	public static final int CL_KERNEL_PRIVATE_MEM_SIZE = 0x11B4;
	public static final int CL_KERNEL_GLOBAL_WORK_SIZE = 0x11B5;
	public static final int CL_EVENT_COMMAND_QUEUE = 0x11D0;
	public static final int CL_EVENT_COMMAND_TYPE = 0x11D1;
	public static final int CL_EVENT_REFERENCE_COUNT = 0x11D2;
	public static final int CL_EVENT_COMMAND_EXECUTION_STATUS = 0x11D3;
	public static final int CL_EVENT_CONTEXT = 0x11D4;
	public static final int CL_COMMAND_NDRANGE_KERNEL = 0x11F0;
	public static final int CL_COMMAND_TASK = 0x11F1;
	public static final int CL_COMMAND_NATIVE_KERNEL = 0x11F2;
	public static final int CL_COMMAND_READ_BUFFER = 0x11F3;
	public static final int CL_COMMAND_WRITE_BUFFER = 0x11F4;
	public static final int CL_COMMAND_COPY_BUFFER = 0x11F5;
	public static final int CL_COMMAND_READ_IMAGE = 0x11F6;
	public static final int CL_COMMAND_WRITE_IMAGE = 0x11F7;
	public static final int CL_COMMAND_COPY_IMAGE = 0x11F8;
	public static final int CL_COMMAND_COPY_IMAGE_TO_BUFFER = 0x11F9;
	public static final int CL_COMMAND_COPY_BUFFER_TO_IMAGE = 0x11FA;
	public static final int CL_COMMAND_MAP_BUFFER = 0x11FB;
	public static final int CL_COMMAND_MAP_IMAGE = 0x11FC;
	public static final int CL_COMMAND_UNMAP_MEM_OBJECT = 0x11FD;
	public static final int CL_COMMAND_MARKER = 0x11FE;
	public static final int CL_COMMAND_ACQUIRE_GL_OBJECTS = 0x11FF;
	public static final int CL_COMMAND_RELEASE_GL_OBJECTS = 0x1200;
	public static final int CL_COMMAND_READ_BUFFER_RECT = 0x1201;
	public static final int CL_COMMAND_WRITE_BUFFER_RECT = 0x1202;
	public static final int CL_COMMAND_COPY_BUFFER_RECT = 0x1203;
	public static final int CL_COMMAND_USER = 0x1204;
	public static final int CL_COMMAND_BARRIER = 0x1205;
	public static final int CL_COMMAND_MIGRATE_MEM_OBJECTS = 0x1206;
	public static final int CL_COMMAND_FILL_BUFFER = 0x1207;
	public static final int CL_COMMAND_FILL_IMAGE = 0x1208;
	public static final int CL_COMPLETE = 0x0;
	public static final int CL_RUNNING = 0x1;
	public static final int CL_SUBMITTED = 0x2;
	public static final int CL_QUEUED = 0x3;
	public static final int CL_BUFFER_CREATE_TYPE_REGION = 0x1220;
	public static final int CL_PROFILING_COMMAND_QUEUED = 0x1280;
	public static final int CL_PROFILING_COMMAND_SUBMIT = 0x1281;
	public static final int CL_PROFILING_COMMAND_START = 0x1282;
	public static final int CL_PROFILING_COMMAND_END = 0x1283;
	public static final int CL_GL_OBJECT_BUFFER = 0x2000;
	public static final int CL_GL_OBJECT_TEXTURE2D = 0x2001;
	public static final int CL_GL_OBJECT_TEXTURE3D = 0x2002;
	public static final int CL_GL_OBJECT_RENDERBUFFER = 0x2003;
	public static final int CL_GL_OBJECT_TEXTURE2D_ARRAY = 0x200E;
	public static final int CL_GL_OBJECT_TEXTURE1D = 0x200F;
	public static final int CL_GL_OBJECT_TEXTURE1D_ARRAY = 0x2010;
	public static final int CL_GL_OBJECT_TEXTURE_BUFFER = 0x2011;
	public static final int CL_GL_TEXTURE_TARGET = 0x2004;
	public static final int CL_GL_MIPMAP_LEVEL = 0x2005;
	public static final int cl_khr_gl_sharing = 1;
	public static final int CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR = -1000;
	public static final int CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR = 0x2006;
	public static final int CL_DEVICES_FOR_GL_CONTEXT_KHR = 0x2007;
	public static final int CL_GL_CONTEXT_KHR = 0x2008;
	public static final int CL_EGL_DISPLAY_KHR = 0x2009;
	public static final int CL_GLX_DISPLAY_KHR = 0x200A;
	public static final int CL_WGL_HDC_KHR = 0x200B;
	public static final int CL_CGL_SHAREGROUP_KHR = 0x200C;
	public static final int CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR = 0x200D;
	public static final int CL_DEVICE_HALF_FP_CONFIG = 0x1033;
	public static final int cl_APPLE_SetMemObjectDestructor = 1;
	public static final int cl_APPLE_ContextLoggingFunctions = 1;
	public static final int cl_khr_icd = 1;
	public static final int CL_PLATFORM_ICD_SUFFIX_KHR = 0x0920;
	public static final int CL_PLATFORM_NOT_FOUND_KHR = -1001;
	public static final int CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV = 0x4000;
	public static final int CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV = 0x4001;
	public static final int CL_DEVICE_REGISTERS_PER_BLOCK_NV = 0x4002;
	public static final int CL_DEVICE_WARP_SIZE_NV = 0x4003;
	public static final int CL_DEVICE_GPU_OVERLAP_NV = 0x4004;
	public static final int CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV = 0x4005;
	public static final int CL_DEVICE_INTEGRATED_MEMORY_NV = 0x4006;
	public static final int CL_DEVICE_PROFILING_TIMER_OFFSET_AMD = 0x4036;
	public static final int cl_ext_device_fission = 1;
	public static final int CL_DEVICE_PARTITION_EQUALLY_EXT = 0x4050;
	public static final int CL_DEVICE_PARTITION_BY_COUNTS_EXT = 0x4051;
	public static final int CL_DEVICE_PARTITION_BY_NAMES_EXT = 0x4052;
	public static final int CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT = 0x4053;
	public static final int CL_DEVICE_PARENT_DEVICE_EXT = 0x4054;
	public static final int CL_DEVICE_PARTITION_TYPES_EXT = 0x4055;
	public static final int CL_DEVICE_AFFINITY_DOMAINS_EXT = 0x4056;
	public static final int CL_DEVICE_REFERENCE_COUNT_EXT = 0x4057;
	public static final int CL_DEVICE_PARTITION_STYLE_EXT = 0x4058;
	public static final int CL_DEVICE_PARTITION_FAILED_EXT = -1057;
	public static final int CL_INVALID_PARTITION_COUNT_EXT = -1058;
	public static final int CL_INVALID_PARTITION_NAME_EXT = -1059;
	public static final int CL_AFFINITY_DOMAIN_L1_CACHE_EXT = 0x1;
	public static final int CL_AFFINITY_DOMAIN_L2_CACHE_EXT = 0x2;
	public static final int CL_AFFINITY_DOMAIN_L3_CACHE_EXT = 0x3;
	public static final int CL_AFFINITY_DOMAIN_L4_CACHE_EXT = 0x4;
	public static final int CL_AFFINITY_DOMAIN_NUMA_EXT = 0x10;
	public static final int CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT = 0x100;
	public static final int CL_CONTEXT_PROPERTY_USE_CGL_SHAREGROUP_APPLE = 0x10000000;
	public static final int CL_CGL_DEVICE_FOR_CURRENT_VIRTUAL_SCREEN_APPLE = 0x10000002;
	public static final int CL_CGL_DEVICES_FOR_SUPPORTED_VIRTUAL_SCREENS_APPLE = 0x10000003;
	public static final int CL_INVALID_GL_CONTEXT_APPLE = -1000;
	public static abstract class clGetGLContextInfoKHR_fn extends Callback<clGetGLContextInfoKHR_fn > {
		public int apply(Pointer<SizeT > properties, int param_name, @Ptr long param_value_size, Pointer<? > param_value, Pointer<SizeT > param_value_size_ret) {
			return apply(Pointer.getPeer(properties), param_name, param_value_size, Pointer.getPeer(param_value), Pointer.getPeer(param_value_size_ret));
		}
		public int apply(@Ptr long properties, int param_name, @Ptr long param_value_size, @Ptr long param_value, @Ptr long param_value_size_ret) {
			return apply((Pointer)Pointer.pointerToAddress(properties, SizeT.class), param_name, param_value_size, Pointer.pointerToAddress(param_value), (Pointer)Pointer.pointerToAddress(param_value_size_ret, SizeT.class));
		}
	};
	public static abstract class clIcdGetPlatformIDsKHR_fn extends Callback<clIcdGetPlatformIDsKHR_fn > {
		public int apply(int cl_uint1, Pointer<IOpenCLLibrary.cl_platform_id > cl_platform_idPtr1, Pointer<Integer > cl_uintPtr1) {
			return apply(cl_uint1, Pointer.getPeer(cl_platform_idPtr1), Pointer.getPeer(cl_uintPtr1));
		}
		public int apply(int cl_uint1, @Ptr long cl_platform_idPtr1, @Ptr long cl_uintPtr1) {
			return apply(cl_uint1, (Pointer)Pointer.pointerToAddress(cl_platform_idPtr1, IOpenCLLibrary.cl_platform_id.class), (Pointer)Pointer.pointerToAddress(cl_uintPtr1, Integer.class));
		}
	};
	public static abstract class clReleaseDeviceEXT_fn extends Callback<clReleaseDeviceEXT_fn > {
		public int apply(IOpenCLLibrary.cl_device_id cl_device_id1) {
			return apply(Pointer.getPeer(cl_device_id1));
		}
		public int apply(@Ptr long cl_device_id1) {
			return apply(new IOpenCLLibrary.cl_device_id(cl_device_id1));
		}
	};
	public static abstract class clRetainDeviceEXT_fn extends Callback<clRetainDeviceEXT_fn > {
		public int apply(IOpenCLLibrary.cl_device_id cl_device_id1) {
			return apply(Pointer.getPeer(cl_device_id1));
		}
		public int apply(@Ptr long cl_device_id1) {
			return apply(new IOpenCLLibrary.cl_device_id(cl_device_id1));
		}
	};
	public static abstract class clCreateSubDevicesEXT_fn extends Callback<clCreateSubDevicesEXT_fn > {
		public int apply(IOpenCLLibrary.cl_device_id cl_device_id1, Pointer<Long > cl_device_partition_property_extPtr1, int cl_uint1, Pointer<IOpenCLLibrary.cl_device_id > cl_device_idPtr1, Pointer<Integer > cl_uintPtr1) {
			return apply(Pointer.getPeer(cl_device_id1), Pointer.getPeer(cl_device_partition_property_extPtr1), cl_uint1, Pointer.getPeer(cl_device_idPtr1), Pointer.getPeer(cl_uintPtr1));
		}
		public int apply(@Ptr long cl_device_id1, @Ptr long cl_device_partition_property_extPtr1, int cl_uint1, @Ptr long cl_device_idPtr1, @Ptr long cl_uintPtr1) {
			return apply(new IOpenCLLibrary.cl_device_id(cl_device_id1), (Pointer)Pointer.pointerToAddress(cl_device_partition_property_extPtr1, Long.class), cl_uint1, (Pointer)Pointer.pointerToAddress(cl_device_idPtr1, IOpenCLLibrary.cl_device_id.class), (Pointer)Pointer.pointerToAddress(cl_uintPtr1, Integer.class));
		}
	};
	public static abstract class clCreateContext_arg1_callback extends Callback<clCreateContext_arg1_callback > {
		public void apply(Pointer<Byte > charPtr1, Pointer<? > voidPtr1, @Ptr long size_t1, Pointer<? > voidPtr2) {
			apply(Pointer.getPeer(charPtr1), Pointer.getPeer(voidPtr1), size_t1, Pointer.getPeer(voidPtr2));
		}
		public void apply(@Ptr long charPtr1, @Ptr long voidPtr1, @Ptr long size_t1, @Ptr long voidPtr2) {
			apply((Pointer)Pointer.pointerToAddress(charPtr1, Byte.class), Pointer.pointerToAddress(voidPtr1), size_t1, Pointer.pointerToAddress(voidPtr2));
		}
	};
	public static abstract class clCreateContextFromType_arg1_callback extends Callback<clCreateContextFromType_arg1_callback > {
		public void apply(Pointer<Byte > charPtr1, Pointer<? > voidPtr1, @Ptr long size_t1, Pointer<? > voidPtr2) {
			apply(Pointer.getPeer(charPtr1), Pointer.getPeer(voidPtr1), size_t1, Pointer.getPeer(voidPtr2));
		}
		public void apply(@Ptr long charPtr1, @Ptr long voidPtr1, @Ptr long size_t1, @Ptr long voidPtr2) {
			apply((Pointer)Pointer.pointerToAddress(charPtr1, Byte.class), Pointer.pointerToAddress(voidPtr1), size_t1, Pointer.pointerToAddress(voidPtr2));
		}
	};
	public static abstract class clSetMemObjectDestructorCallback_arg1_callback extends Callback<clSetMemObjectDestructorCallback_arg1_callback > {
		/** @param cl_mem1 user_data */
		public void apply(IOpenCLLibrary.cl_mem cl_mem1, Pointer<? > voidPtr1) {
			apply(Pointer.getPeer(cl_mem1), Pointer.getPeer(voidPtr1));
		}
		public void apply(@Ptr long cl_mem1, @Ptr long voidPtr1) {
			apply(new IOpenCLLibrary.cl_mem(cl_mem1), Pointer.pointerToAddress(voidPtr1));
		}
	};
	public static abstract class clBuildProgram_arg1_callback extends Callback<clBuildProgram_arg1_callback > {
		/** @param cl_program1 user_data */
		public void apply(IOpenCLLibrary.cl_program cl_program1, Pointer<? > voidPtr1) {
			apply(Pointer.getPeer(cl_program1), Pointer.getPeer(voidPtr1));
		}
		public void apply(@Ptr long cl_program1, @Ptr long voidPtr1) {
			apply(new IOpenCLLibrary.cl_program(cl_program1), Pointer.pointerToAddress(voidPtr1));
		}
	};
	public static abstract class clCompileProgram_arg1_callback extends Callback<clCompileProgram_arg1_callback > {
		/** @param cl_program1 user_data */
		public void apply(IOpenCLLibrary.cl_program cl_program1, Pointer<? > voidPtr1) {
			apply(Pointer.getPeer(cl_program1), Pointer.getPeer(voidPtr1));
		}
		public void apply(@Ptr long cl_program1, @Ptr long voidPtr1) {
			apply(new IOpenCLLibrary.cl_program(cl_program1), Pointer.pointerToAddress(voidPtr1));
		}
	};
	public static abstract class clLinkProgram_arg1_callback extends Callback<clLinkProgram_arg1_callback > {
		/** @param cl_program1 user_data */
		public void apply(IOpenCLLibrary.cl_program cl_program1, Pointer<? > voidPtr1) {
			apply(Pointer.getPeer(cl_program1), Pointer.getPeer(voidPtr1));
		}
		public void apply(@Ptr long cl_program1, @Ptr long voidPtr1) {
			apply(new IOpenCLLibrary.cl_program(cl_program1), Pointer.pointerToAddress(voidPtr1));
		}
	};
	public static abstract class clSetEventCallback_arg1_callback extends Callback<clSetEventCallback_arg1_callback > {
		public void apply(IOpenCLLibrary.cl_event cl_event1, int cl_int1, Pointer<? > voidPtr1) {
			apply(Pointer.getPeer(cl_event1), cl_int1, Pointer.getPeer(voidPtr1));
		}
		public void apply(@Ptr long cl_event1, int cl_int1, @Ptr long voidPtr1) {
			apply(new IOpenCLLibrary.cl_event(cl_event1), cl_int1, Pointer.pointerToAddress(voidPtr1));
		}
	};
	public static abstract class clEnqueueNativeKernel_arg1_callback extends Callback<clEnqueueNativeKernel_arg1_callback > {
		public void apply(Pointer<? > voidPtr1) {
			apply(Pointer.getPeer(voidPtr1));
		}
		public void apply(@Ptr long voidPtr1) {
			apply(Pointer.pointerToAddress(voidPtr1));
		}
	};
	public static abstract class clSetPrintfCallback_arg1_callback extends Callback<clSetPrintfCallback_arg1_callback > {
		public void apply(IOpenCLLibrary.cl_context cl_context1, int cl_uint1, Pointer<Byte > charPtr1, Pointer<? > voidPtr1) {
			apply(Pointer.getPeer(cl_context1), cl_uint1, Pointer.getPeer(charPtr1), Pointer.getPeer(voidPtr1));
		}
		public void apply(@Ptr long cl_context1, int cl_uint1, @Ptr long charPtr1, @Ptr long voidPtr1) {
			apply(new IOpenCLLibrary.cl_context(cl_context1), cl_uint1, (Pointer)Pointer.pointerToAddress(charPtr1, Byte.class), Pointer.pointerToAddress(voidPtr1));
		}
	};
	public static abstract class clSetMemObjectDestructorAPPLE_arg1_callback extends Callback<clSetMemObjectDestructorAPPLE_arg1_callback > {
		/** @param cl_mem1 user_data */
		public void apply(IOpenCLLibrary.cl_mem cl_mem1, Pointer<? > voidPtr1) {
			apply(Pointer.getPeer(cl_mem1), Pointer.getPeer(voidPtr1));
		}
		public void apply(@Ptr long cl_mem1, @Ptr long voidPtr1) {
			apply(new IOpenCLLibrary.cl_mem(cl_mem1), Pointer.pointerToAddress(voidPtr1));
		}
	};
	int clGetPlatformIDs(int cl_uint1, @Ptr long cl_platform_idPtr1, @Ptr long cl_uintPtr1);
	int clGetPlatformInfo(@Ptr long cl_platform_id1, int cl_platform_info1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long size_tPtr1);
	int clGetDeviceIDs(@Ptr long cl_platform_id1, long cl_device_type1, int cl_uint1, @Ptr long cl_device_idPtr1, @Ptr long cl_uintPtr1);
	int clGetDeviceInfo(@Ptr long cl_device_id1, int cl_device_info1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long size_tPtr1);
	@Optional 
	int clCreateSubDevices(@Ptr long cl_device_id1, @Ptr long cl_device_partition_propertyPtr1, int cl_uint1, @Ptr long cl_device_idPtr1, @Ptr long cl_uintPtr1);
	@Optional 
	int clRetainDevice(@Ptr long cl_device_id1);
	@Optional 
	int clReleaseDevice(@Ptr long cl_device_id1);
	@Ptr 
	long clCreateContext(@Ptr long cl_context_propertiesPtr1, int cl_uint1, @Ptr long cl_device_idPtr1, @Ptr long arg1, @Ptr long voidPtr1, @Ptr long cl_intPtr1);
	@Ptr 
	long clCreateContextFromType(@Ptr long cl_context_propertiesPtr1, long cl_device_type1, @Ptr long arg1, @Ptr long voidPtr1, @Ptr long cl_intPtr1);
	int clRetainContext(@Ptr long cl_context1);
	int clReleaseContext(@Ptr long cl_context1);
	int clGetContextInfo(@Ptr long cl_context1, int cl_context_info1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long size_tPtr1);
	@Ptr 
	long clCreateCommandQueue(@Ptr long cl_context1, @Ptr long cl_device_id1, long cl_command_queue_properties1, @Ptr long cl_intPtr1);
	int clRetainCommandQueue(@Ptr long cl_command_queue1);
	int clReleaseCommandQueue(@Ptr long cl_command_queue1);
	int clGetCommandQueueInfo(@Ptr long cl_command_queue1, int cl_command_queue_info1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long size_tPtr1);
	@Ptr 
	long clCreateBuffer(@Ptr long cl_context1, long cl_mem_flags1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long cl_intPtr1);
	@Ptr 
	@Optional 
	long clCreateSubBuffer(@Ptr long cl_mem1, long cl_mem_flags1, int cl_buffer_create_type1, @Ptr long voidPtr1, @Ptr long cl_intPtr1);
	@Ptr 
	@Optional 
	long clCreateImage(@Ptr long cl_context1, long cl_mem_flags1, @Ptr long cl_image_formatPtr1, @Ptr long cl_image_descPtr1, @Ptr long voidPtr1, @Ptr long cl_intPtr1);
	int clRetainMemObject(@Ptr long cl_mem1);
	int clReleaseMemObject(@Ptr long cl_mem1);
	int clGetSupportedImageFormats(@Ptr long cl_context1, long cl_mem_flags1, int cl_mem_object_type1, int cl_uint1, @Ptr long cl_image_formatPtr1, @Ptr long cl_uintPtr1);
	int clGetMemObjectInfo(@Ptr long cl_mem1, int cl_mem_info1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long size_tPtr1);
	int clGetImageInfo(@Ptr long cl_mem1, int cl_image_info1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long size_tPtr1);
	@Optional 
	int clSetMemObjectDestructorCallback(@Ptr long cl_mem1, @Ptr long arg1, @Ptr long voidPtr1);
	@Ptr 
	long clCreateSampler(@Ptr long cl_context1, int cl_bool1, int cl_addressing_mode1, int cl_filter_mode1, @Ptr long cl_intPtr1);
	int clRetainSampler(@Ptr long cl_sampler1);
	int clReleaseSampler(@Ptr long cl_sampler1);
	int clGetSamplerInfo(@Ptr long cl_sampler1, int cl_sampler_info1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long size_tPtr1);
	@Ptr 
	long clCreateProgramWithSource(@Ptr long cl_context1, int cl_uint1, @Ptr long charPtrPtr1, @Ptr long size_tPtr1, @Ptr long cl_intPtr1);
	@Ptr 
	long clCreateProgramWithBinary(@Ptr long cl_context1, int cl_uint1, @Ptr long cl_device_idPtr1, @Ptr long size_tPtr1, @Ptr long charPtrPtr1, @Ptr long cl_intPtr1, @Ptr long cl_intPtr2);
	@Ptr 
	@Optional 
	long clCreateProgramWithBuiltInKernels(@Ptr long cl_context1, int cl_uint1, @Ptr long cl_device_idPtr1, @Ptr long charPtr1, @Ptr long cl_intPtr1);
	int clRetainProgram(@Ptr long cl_program1);
	int clReleaseProgram(@Ptr long cl_program1);
	int clBuildProgram(@Ptr long cl_program1, int cl_uint1, @Ptr long cl_device_idPtr1, @Ptr long charPtr1, @Ptr long arg1, @Ptr long voidPtr1);
	@Optional 
	int clCompileProgram(@Ptr long cl_program1, int cl_uint1, @Ptr long cl_device_idPtr1, @Ptr long charPtr1, int cl_uint2, @Ptr long cl_programPtr1, @Ptr long charPtrPtr1, @Ptr long arg1, @Ptr long voidPtr1);
	@Ptr 
	@Optional 
	long clLinkProgram(@Ptr long cl_context1, int cl_uint1, @Ptr long cl_device_idPtr1, @Ptr long charPtr1, int cl_uint2, @Ptr long cl_programPtr1, @Ptr long arg1, @Ptr long voidPtr1, @Ptr long cl_intPtr1);
	@Optional 
	int clUnloadPlatformCompiler(@Ptr long cl_platform_id1);
	int clGetProgramInfo(@Ptr long cl_program1, int cl_program_info1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long size_tPtr1);
	int clGetProgramBuildInfo(@Ptr long cl_program1, @Ptr long cl_device_id1, int cl_program_build_info1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long size_tPtr1);
	@Ptr 
	long clCreateKernel(@Ptr long cl_program1, @Ptr long charPtr1, @Ptr long cl_intPtr1);
	int clCreateKernelsInProgram(@Ptr long cl_program1, int cl_uint1, @Ptr long cl_kernelPtr1, @Ptr long cl_uintPtr1);
	int clRetainKernel(@Ptr long cl_kernel1);
	int clReleaseKernel(@Ptr long cl_kernel1);
	int clSetKernelArg(@Ptr long cl_kernel1, int cl_uint1, @Ptr long size_t1, @Ptr long voidPtr1);
	int clGetKernelInfo(@Ptr long cl_kernel1, int cl_kernel_info1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long size_tPtr1);
	@Optional 
	int clGetKernelArgInfo(@Ptr long cl_kernel1, int cl_uint1, int cl_kernel_arg_info1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long size_tPtr1);
	int clGetKernelWorkGroupInfo(@Ptr long cl_kernel1, @Ptr long cl_device_id1, int cl_kernel_work_group_info1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long size_tPtr1);
	int clWaitForEvents(int cl_uint1, @Ptr long cl_eventPtr1);
	int clGetEventInfo(@Ptr long cl_event1, int cl_event_info1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long size_tPtr1);
	@Ptr 
	@Optional 
	long clCreateUserEvent(@Ptr long cl_context1, @Ptr long cl_intPtr1);
	int clRetainEvent(@Ptr long cl_event1);
	int clReleaseEvent(@Ptr long cl_event1);
	@Optional 
	int clSetUserEventStatus(@Ptr long cl_event1, int cl_int1);
	@Optional 
	int clSetEventCallback(@Ptr long cl_event1, int cl_int1, @Ptr long arg1, @Ptr long voidPtr1);
	int clGetEventProfilingInfo(@Ptr long cl_event1, int cl_profiling_info1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long size_tPtr1);
	int clFlush(@Ptr long cl_command_queue1);
	int clFinish(@Ptr long cl_command_queue1);
	int clEnqueueReadBuffer(@Ptr long cl_command_queue1, @Ptr long cl_mem1, int cl_bool1, @Ptr long size_t1, @Ptr long size_t2, @Ptr long voidPtr1, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	@Optional 
	int clEnqueueReadBufferRect(@Ptr long cl_command_queue1, @Ptr long cl_mem1, int cl_bool1, @Ptr long size_tPtr1, @Ptr long size_tPtr2, @Ptr long size_tPtr3, @Ptr long size_t1, @Ptr long size_t2, @Ptr long size_t3, @Ptr long size_t4, @Ptr long voidPtr1, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	int clEnqueueWriteBuffer(@Ptr long cl_command_queue1, @Ptr long cl_mem1, int cl_bool1, @Ptr long size_t1, @Ptr long size_t2, @Ptr long voidPtr1, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	@Optional 
	int clEnqueueWriteBufferRect(@Ptr long cl_command_queue1, @Ptr long cl_mem1, int cl_bool1, @Ptr long size_tPtr1, @Ptr long size_tPtr2, @Ptr long size_tPtr3, @Ptr long size_t1, @Ptr long size_t2, @Ptr long size_t3, @Ptr long size_t4, @Ptr long voidPtr1, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	@Optional 
	int clEnqueueFillBuffer(@Ptr long cl_command_queue1, @Ptr long cl_mem1, @Ptr long voidPtr1, @Ptr long size_t1, @Ptr long size_t2, @Ptr long size_t3, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	int clEnqueueCopyBuffer(@Ptr long cl_command_queue1, @Ptr long cl_mem1, @Ptr long cl_mem2, @Ptr long size_t1, @Ptr long size_t2, @Ptr long size_t3, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	@Optional 
	int clEnqueueCopyBufferRect(@Ptr long cl_command_queue1, @Ptr long cl_mem1, @Ptr long cl_mem2, @Ptr long size_tPtr1, @Ptr long size_tPtr2, @Ptr long size_tPtr3, @Ptr long size_t1, @Ptr long size_t2, @Ptr long size_t3, @Ptr long size_t4, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	int clEnqueueReadImage(@Ptr long cl_command_queue1, @Ptr long cl_mem1, int cl_bool1, @Ptr long size_tPtr1, @Ptr long size_tPtr2, @Ptr long size_t1, @Ptr long size_t2, @Ptr long voidPtr1, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	int clEnqueueWriteImage(@Ptr long cl_command_queue1, @Ptr long cl_mem1, int cl_bool1, @Ptr long size_tPtr1, @Ptr long size_tPtr2, @Ptr long size_t1, @Ptr long size_t2, @Ptr long voidPtr1, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	@Optional 
	int clEnqueueFillImage(@Ptr long cl_command_queue1, @Ptr long cl_mem1, @Ptr long voidPtr1, @Ptr long size_tPtr1, @Ptr long size_tPtr2, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	int clEnqueueCopyImage(@Ptr long cl_command_queue1, @Ptr long cl_mem1, @Ptr long cl_mem2, @Ptr long size_tPtr1, @Ptr long size_tPtr2, @Ptr long size_tPtr3, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	int clEnqueueCopyImageToBuffer(@Ptr long cl_command_queue1, @Ptr long cl_mem1, @Ptr long cl_mem2, @Ptr long size_tPtr1, @Ptr long size_tPtr2, @Ptr long size_t1, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	int clEnqueueCopyBufferToImage(@Ptr long cl_command_queue1, @Ptr long cl_mem1, @Ptr long cl_mem2, @Ptr long size_t1, @Ptr long size_tPtr1, @Ptr long size_tPtr2, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	@Ptr 
	long clEnqueueMapBuffer(@Ptr long cl_command_queue1, @Ptr long cl_mem1, int cl_bool1, long cl_map_flags1, @Ptr long size_t1, @Ptr long size_t2, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2, @Ptr long cl_intPtr1);
	@Ptr 
	long clEnqueueMapImage(@Ptr long cl_command_queue1, @Ptr long cl_mem1, int cl_bool1, long cl_map_flags1, @Ptr long size_tPtr1, @Ptr long size_tPtr2, @Ptr long size_tPtr3, @Ptr long size_tPtr4, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2, @Ptr long cl_intPtr1);
	int clEnqueueUnmapMemObject(@Ptr long cl_command_queue1, @Ptr long cl_mem1, @Ptr long voidPtr1, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	@Optional 
	int clEnqueueMigrateMemObjects(@Ptr long cl_command_queue1, int cl_uint1, @Ptr long cl_memPtr1, long cl_mem_migration_flags1, int cl_uint2, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	int clEnqueueNDRangeKernel(@Ptr long cl_command_queue1, @Ptr long cl_kernel1, int cl_uint1, @Ptr long size_tPtr1, @Ptr long size_tPtr2, @Ptr long size_tPtr3, int cl_uint2, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	int clEnqueueTask(@Ptr long cl_command_queue1, @Ptr long cl_kernel1, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	int clEnqueueNativeKernel(@Ptr long cl_command_queue1, @Ptr long arg1, @Ptr long voidPtr1, @Ptr long size_t1, int cl_uint1, @Ptr long cl_memPtr1, @Ptr long voidPtrPtr1, int cl_uint2, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	@Optional 
	int clEnqueueMarkerWithWaitList(@Ptr long cl_command_queue1, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	@Optional 
	int clEnqueueBarrierWithWaitList(@Ptr long cl_command_queue1, int cl_uint1, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	@Optional 
	int clSetPrintfCallback(@Ptr long cl_context1, @Ptr long arg1, @Ptr long voidPtr1);
	@Ptr 
	@Optional 
	long clGetExtensionFunctionAddressForPlatform(@Ptr long cl_platform_id1, @Ptr long charPtr1);
	int clSetCommandQueueProperty(@Ptr long cl_command_queue1, long cl_command_queue_properties1, int cl_bool1, @Ptr long cl_command_queue_propertiesPtr1);
	@Ptr 
	long clCreateImage2D(@Ptr long cl_context1, long cl_mem_flags1, @Ptr long cl_image_formatPtr1, @Ptr long size_t1, @Ptr long size_t2, @Ptr long size_t3, @Ptr long voidPtr1, @Ptr long cl_intPtr1);
	@Ptr 
	long clCreateImage3D(@Ptr long cl_context1, long cl_mem_flags1, @Ptr long cl_image_formatPtr1, @Ptr long size_t1, @Ptr long size_t2, @Ptr long size_t3, @Ptr long size_t4, @Ptr long size_t5, @Ptr long voidPtr1, @Ptr long cl_intPtr1);
	int clEnqueueMarker(@Ptr long cl_command_queue1, @Ptr long cl_eventPtr1);
	int clEnqueueWaitForEvents(@Ptr long cl_command_queue1, int cl_uint1, @Ptr long cl_eventPtr1);
	int clEnqueueBarrier(@Ptr long cl_command_queue1);
	/** Original signature : <code>cl_int clUnloadCompiler()</code> */
	int clUnloadCompiler();
	@Ptr 
	long clGetExtensionFunctionAddress(@Ptr long charPtr1);
	@Ptr 
	long clCreateFromGLBuffer(@Ptr long cl_context1, long cl_mem_flags1, int cl_GLuint1, @Ptr long intPtr1);
	@Ptr 
	@Optional 
	long clCreateFromGLTexture(@Ptr long cl_context1, long cl_mem_flags1, int cl_GLenum1, int cl_GLint1, int cl_GLuint1, @Ptr long cl_intPtr1);
	@Ptr 
	long clCreateFromGLRenderbuffer(@Ptr long cl_context1, long cl_mem_flags1, int cl_GLuint1, @Ptr long cl_intPtr1);
	int clGetGLObjectInfo(@Ptr long cl_mem1, @Ptr long cl_gl_object_typePtr1, @Ptr long cl_GLuintPtr1);
	int clGetGLTextureInfo(@Ptr long cl_mem1, int cl_gl_texture_info1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long size_tPtr1);
	int clEnqueueAcquireGLObjects(@Ptr long cl_command_queue1, int cl_uint1, @Ptr long cl_memPtr1, int cl_uint2, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	int clEnqueueReleaseGLObjects(@Ptr long cl_command_queue1, int cl_uint1, @Ptr long cl_memPtr1, int cl_uint2, @Ptr long cl_eventPtr1, @Ptr long cl_eventPtr2);
	@Ptr 
	long clCreateFromGLTexture2D(@Ptr long cl_context1, long cl_mem_flags1, int cl_GLenum1, int cl_GLint1, int cl_GLuint1, @Ptr long cl_intPtr1);
	@Ptr 
	long clCreateFromGLTexture3D(@Ptr long cl_context1, long cl_mem_flags1, int cl_GLenum1, int cl_GLint1, int cl_GLuint1, @Ptr long cl_intPtr1);
	@Optional 
	int clGetGLContextInfoKHR(@Ptr long cl_context_propertiesPtr1, int cl_gl_context_info1, @Ptr long size_t1, @Ptr long voidPtr1, @Ptr long size_tPtr1);
	@Ptr 
	@Optional 
	long clCreateEventFromGLsyncKHR(@Ptr long cl_context1, @Ptr long cl_GLsync1, @Ptr long cl_intPtr1);
	@Optional 
	int clSetMemObjectDestructorAPPLE(@Ptr long cl_mem1, @Ptr long arg1, @Ptr long voidPtr1);
	@Optional 
	void clLogMessagesToSystemLogAPPLE(@Ptr long charPtr1, @Ptr long voidPtr1, @Ptr long size_t1, @Ptr long voidPtr2);
	@Optional 
	void clLogMessagesToStdoutAPPLE(@Ptr long charPtr1, @Ptr long voidPtr1, @Ptr long size_t1, @Ptr long voidPtr2);
	@Optional 
	void clLogMessagesToStderrAPPLE(@Ptr long charPtr1, @Ptr long voidPtr1, @Ptr long size_t1, @Ptr long voidPtr2);
	@Optional 
	int clIcdGetPlatformIDsKHR(int cl_uint1, @Ptr long cl_platform_idPtr1, @Ptr long cl_uintPtr1);
	@Optional 
	int clReleaseDeviceEXT(@Ptr long cl_device_id1);
	@Optional 
	int clRetainDeviceEXT(@Ptr long cl_device_id1);
	@Optional 
	int clCreateSubDevicesEXT(@Ptr long cl_device_id1, @Ptr long cl_device_partition_property_extPtr1, int cl_uint1, @Ptr long cl_device_idPtr1, @Ptr long cl_uintPtr1);
	@Optional 
	int clGetGLContextInfoAPPLE(@Ptr long cl_context1, @Ptr long voidPtr1, int cl_gl_platform_info1, @Ptr long size_t1, @Ptr long voidPtr2, @Ptr long size_tPtr1);
	public static class cl_mem extends TypedPointer {
		public cl_mem(long address) {
			super(address);
		}
		public cl_mem(Pointer address) {
			super(address);
		}
	};
	public static class cl_kernel extends TypedPointer {
		public cl_kernel(long address) {
			super(address);
		}
		public cl_kernel(Pointer address) {
			super(address);
		}
	};
	public static class cl_context extends TypedPointer {
		public cl_context(long address) {
			super(address);
		}
		public cl_context(Pointer address) {
			super(address);
		}
	};
	public static class cl_GLsync extends TypedPointer {
		public cl_GLsync(long address) {
			super(address);
		}
		public cl_GLsync(Pointer address) {
			super(address);
		}
	};
	public static class cl_platform_id extends TypedPointer {
		public cl_platform_id(long address) {
			super(address);
		}
		public cl_platform_id(Pointer address) {
			super(address);
		}
	};
	public static class cl_program extends TypedPointer {
		public cl_program(long address) {
			super(address);
		}
		public cl_program(Pointer address) {
			super(address);
		}
	};
	public static class cl_event extends TypedPointer {
		public cl_event(long address) {
			super(address);
		}
		public cl_event(Pointer address) {
			super(address);
		}
	};
	public static class cl_device_id extends TypedPointer {
		public cl_device_id(long address) {
			super(address);
		}
		public cl_device_id(Pointer address) {
			super(address);
		}
	};
	public static class cl_sampler extends TypedPointer {
		public cl_sampler(long address) {
			super(address);
		}
		public cl_sampler(Pointer address) {
			super(address);
		}
	};
	public static class cl_command_queue extends TypedPointer {
		public cl_command_queue(long address) {
			super(address);
		}
		public cl_command_queue(Pointer address) {
			super(address);
		}
	};
	/** Undefined type */
	public static interface _cl_mem {
		
	};
	/** Undefined type */
	public static interface _cl_device_id {
		
	};
	/** Undefined type */
	public static interface _cl_context {
		
	};
	/** Undefined type */
	public static interface _cl_platform_id {
		
	};
	/** Undefined type */
	public static interface _cl_command_queue {
		
	};
	/** Undefined type */
	public static interface _cl_kernel {
		
	};
	/** Undefined type */
	public static interface _cl_sampler {
		
	};
	/** Undefined type */
	public static interface __GLsync {
		
	};
	/** Undefined type */
	public static interface _cl_event {
		
	};
	/** Undefined type */
	public static interface _cl_program {
		
	};
}
