2121#ifdef _WIN32
2222#define OCL_RUNTIME_EXPORT __declspec (dllexport)
2323#else
24- #define OCL_RUNTIME_EXPORT
24+ #define OCL_RUNTIME_EXPORT __attribute__ ((visibility( " default " )))
2525#endif // _WIN32
2626
2727namespace {
@@ -73,7 +73,7 @@ struct CLExtTable {
7373 clSharedMemAllocINTEL_fn allocShared;
7474 clMemBlockingFreeINTEL_fn blockingFree;
7575 clSetKernelArgMemPointerINTEL_fn setKernelArgMemPtr;
76- clEnqueueMemcpyINTEL_fn enqueneMemcpy ;
76+ clEnqueueMemcpyINTEL_fn enqueueMemcpy ;
7777 CLExtTable () = default ;
7878 CLExtTable (cl_platform_id plat) {
7979 allocDev =
@@ -84,7 +84,7 @@ struct CLExtTable {
8484 (clMemBlockingFreeINTEL_fn)queryCLExtFunc (plat, MemBlockingFreeName);
8585 setKernelArgMemPtr = (clSetKernelArgMemPointerINTEL_fn)queryCLExtFunc (
8686 plat, SetKernelArgMemPointerName);
87- enqueneMemcpy =
87+ enqueueMemcpy =
8888 (clEnqueueMemcpyINTEL_fn)queryCLExtFunc (plat, EnqueueMemcpyName);
8989 }
9090};
@@ -390,6 +390,14 @@ extern "C" OCL_RUNTIME_EXPORT void gpuMemFree(GPUCLQUEUE *queue, void *ptr) {
390390 }
391391}
392392
393+ extern " C" OCL_RUNTIME_EXPORT void gpuMemCopy (GPUCLQUEUE *queue, void *dst,
394+ void *src, uint64_t size) {
395+ auto func = queue->ext_table_ ? queue->ext_table_ ->enqueueMemcpy
396+ : (clEnqueueMemcpyINTEL_fn)queryCLExtFunc (
397+ queue->device_ , EnqueueMemcpyName);
398+ CL_SAFE_CALL (func (queue->queue_ , true , dst, src, size, 0 , nullptr , nullptr ));
399+ }
400+
393401extern " C" OCL_RUNTIME_EXPORT cl_program
394402gpuModuleLoad (GPUCLQUEUE *queue, const unsigned char *data, size_t dataSize) {
395403 if (queue) {
0 commit comments