static void notify(cl_program program, void *arg) { printf("Notified of change in program %p, arg %p\n", program, arg); cl_kernel_bin_t *bins = cl_extract_kernels(program); if (bins) { cl_dump_kernels(outfile, bins); cl_precompiled_header(precomp, bins); cl_delete_kernel_bin(bins); } }
cl_kernel_bin_t *cl_create_kernel_bin(size_t numDevices) { cl_kernel_bin_t *bins; bins = (cl_kernel_bin_t *)cl_malloc(sizeof(cl_kernel_bin_t)); if (bins) { bins->deviceTypes = CL_DEVICE_TYPE_DEFAULT; bins->numDevices = numDevices; bins->numBytesSizes = sizeof(size_t) * bins->numDevices; bins->numBytesData = sizeof(unsigned char *) * bins->numDevices; bins->sizes = (size_t *)cl_malloc(bins->numBytesSizes); bins->data = (unsigned char **)cl_malloc(bins->numBytesData); if (bins->sizes == NULL || bins->data == NULL) { cl_assert(bins->sizes != NULL && bins->data != NULL,); cl_delete_kernel_bin(bins); bins = NULL; } else {