/* * Class: com_sun_tools_jdi_SharedMemoryTransport * Method: initialize * Signature: ()V */ JNIEXPORT void JNICALL Java_com_sun_tools_jdi_SharedMemoryTransport_initialize (JNIEnv *env, jobject thisObject) { JavaVM *vm; jint rc; rc = (*env)->GetJavaVM(env, &vm); if (rc != 0) { throwException(env, "java/lang/InternalError", "Unable to access Java VM"); return; } rc = shmemBase_initialize(vm, &callbacks); if (rc != SYS_OK) { throwException(env, "java/lang/InternalError", "Unable to initialize Shared Memory transport"); return; } }
jint JNICALL jdwpTransport_OnLoad(JavaVM *vm, jdwpTransportCallback* cbTablePtr, jint version, jdwpTransportEnv** result) { if (version != JDWPTRANSPORT_VERSION_1_0) { return JNI_EVERSION; } if (initialized) { /* * This library doesn't support multiple environments (yet) */ return JNI_EEXIST; } initialized = JNI_TRUE; /* initialize base shared memory system */ (void) shmemBase_initialize(vm, cbTablePtr); /* save callbacks */ callbacks = cbTablePtr; /* initialize interface table */ interface.GetCapabilities = &shmemGetCapabilities; interface.Attach = &shmemAttach; interface.StartListening = &shmemStartListening; interface.StopListening = &shmemStopListening; interface.Accept = &shmemAccept; interface.IsOpen = &shmemIsOpen; interface.Close = &shmemClose; interface.ReadPacket = &shmemReadPacket; interface.WritePacket = &shmemWritePacket; interface.GetLastError = &shmemGetLastError; *result = &single_env; /* initialized TLS */ tlsIndex = sysTlsAlloc(); return JNI_OK; }