Reputation: 71
I found these in open JDK (System.c file)
static JNINativeMethod methods[] = {
{"currentTimeMillis", "()J", (void *)&JVM_CurrentTimeMillis},
{"nanoTime", "()J", (void *)&JVM_NanoTime},
{"arraycopy", "(" OBJ "I" OBJ "II)V", (void *)&JVM_ArrayCopy},
};
#undef OBJ
JNIEXPORT void JNICALL
Java_java_lang_System_registerNatives(JNIEnv *env, jclass cls)
{
(*env)->RegisterNatives(env, cls,
methods, sizeof(methods)/sizeof(methods[0]));
}
but I was not able to find the native implemetations of these functions currentTimeMillis nanoTime arraycopy
Form where can I get the native implementations of these functions ? Is that available in open JDK?
Upvotes: 7
Views: 459
Reputation: 63
if found it in
jdk7/hotspot/src/share/vm/prims/jvm.cpp:229
JVM_LEAF(jlong, JVM_CurrentTimeMillis(JNIEnv *env, jclass ignored))
JVMWrapper("JVM_CurrentTimeMillis");
return os::javaTimeMillis();
JVM_END
the real implementation (for linux) is in
/jdk7/hotspot/src/os/linux/vm/os_linux.cpp
the other methods are just below it
Upvotes: 5