GetJavaVM,main_vm という変数に JNIInvokeInterface_ 型の値へのポインタが格納されているため, それをリターンするだけ.
    ((cite: hotspot/src/share/vm/prims/jni.cpp))
    struct JavaVM_ main_vm = {&jni_InvokeInterface};
jni_InvokeInterface は以下のように定義されている.
    ((cite: hotspot/src/share/vm/prims/jni.cpp))
    const struct JNIInvokeInterface_ jni_InvokeInterface = {
        NULL,
        NULL,
        NULL,
        jni_DestroyJavaVM,
        jni_AttachCurrentThread,
        jni_DetachCurrentThread,
        jni_GetEnv,
        jni_AttachCurrentThreadAsDaemon
    };
jni_GetJavaVM()
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.