/*
 * 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;
    }
}
Exemple #2
0
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;
}