X Tutup
#include "Common.h" #include "API.h" #include "Proxy.h" JavaVM* gJVM = NULL; #define JNI_VERSION JNI_VERSION_1_4 JNIEnv* GetEnv() { JNIEnv* env = NULL; if ((*gJVM)->GetEnv(gJVM, (void*)&env, JNI_VERSION) != JNI_OK) { if ((*gJVM)->AttachCurrentThreadAsDaemon(gJVM, (void*)&env, NULL) != JNI_OK) { printf("JavaCL Proxy: Cannot attach current JVM thread !\n"); return NULL; } } return env; } struct _cl_icd_dispatch dispatch; void createJVM() { JNIEnv *env; JavaVMInitArgs vm_args; JavaVMOption options; options.optionString = "-Djava.class.path=javacl-proxy.jar"; // TODO: change this vm_args.version = JNI_VERSION_1_6; vm_args.nOptions = 1; vm_args.options = &options; vm_args.ignoreUnrecognized = 0; JNI_CreateJavaVM(&gJVM, (void**)&env, &vm_args); // TODO: handle errors. } void initializeLibrary() { // Create JVM, based on env. OPENCL_PROXY_JAR createJVM(); // Bind classes and methods. bindJavaAPI(&gJavaCLProxyDispatch); } void cleanupLibrary() { // Unbind classes and methods unbindJavaAPI(); // Stop JVM (*gJVM)->DestroyJavaVM(gJVM); }
X Tutup