39 #define STR "Ljava/lang/String;"
40
41 #define ARRAY_LENGTH(a) (sizeof(a)/sizeof(a[0]))
42
43 static JNINativeMethod methods[] = {
44 {"start0", "()V", (void *)&JVM_StartThread},
45 {"stop0", "(" OBJ ")V", (void *)&JVM_StopThread},
46 {"isAlive", "()Z", (void *)&JVM_IsThreadAlive},
47 {"suspend0", "()V", (void *)&JVM_SuspendThread},
48 {"resume0", "()V", (void *)&JVM_ResumeThread},
49 {"setPriority0", "(I)V", (void *)&JVM_SetThreadPriority},
50 {"yield", "()V", (void *)&JVM_Yield},
51 {"sleep", "(J)V", (void *)&JVM_Sleep},
52 {"currentThread", "()" THD, (void *)&JVM_CurrentThread},
53 {"countStackFrames", "()I", (void *)&JVM_CountStackFrames},
54 {"interrupt0", "()V", (void *)&JVM_Interrupt},
55 {"isInterrupted", "(Z)Z", (void *)&JVM_IsInterrupted},
56 {"holdsLock", "(" OBJ ")Z", (void *)&JVM_HoldsLock},
57 {"getThreads", "()[" THD, (void *)&JVM_GetAllThreads},
58 {"dumpThreads", "([" THD ")[[" STE, (void *)&JVM_DumpThreads},
59 {"setNativeName", "(" STR ")V", (void *)&JVM_SetNativeThreadName},
60 };
61
62 #undef THD
63 #undef OBJ
64 #undef STE
65 #undef STR
66
67 JNIEXPORT void JNICALL
68 Java_java_lang_Thread_registerNatives(JNIEnv *env, jclass cls)
69 {
70 (*env)->RegisterNatives(env, cls, methods, ARRAY_LENGTH(methods));
71 }
|
39 #define STR "Ljava/lang/String;"
40
41 #define ARRAY_LENGTH(a) (sizeof(a)/sizeof(a[0]))
42
43 static JNINativeMethod methods[] = {
44 {"start0", "()V", (void *)&JVM_StartThread},
45 {"stop0", "(" OBJ ")V", (void *)&JVM_StopThread},
46 {"isAlive", "()Z", (void *)&JVM_IsThreadAlive},
47 {"suspend0", "()V", (void *)&JVM_SuspendThread},
48 {"resume0", "()V", (void *)&JVM_ResumeThread},
49 {"setPriority0", "(I)V", (void *)&JVM_SetThreadPriority},
50 {"yield", "()V", (void *)&JVM_Yield},
51 {"sleep", "(J)V", (void *)&JVM_Sleep},
52 {"currentThread", "()" THD, (void *)&JVM_CurrentThread},
53 {"countStackFrames", "()I", (void *)&JVM_CountStackFrames},
54 {"interrupt0", "()V", (void *)&JVM_Interrupt},
55 {"isInterrupted", "(Z)Z", (void *)&JVM_IsInterrupted},
56 {"holdsLock", "(" OBJ ")Z", (void *)&JVM_HoldsLock},
57 {"getThreads", "()[" THD, (void *)&JVM_GetAllThreads},
58 {"dumpThreads", "([" THD ")[[" STE, (void *)&JVM_DumpThreads},
59 {"setNativeName", "(" STR "Z)V", (void *)&JVM_SetNativeThreadName},
60 };
61
62 #undef THD
63 #undef OBJ
64 #undef STE
65 #undef STR
66
67 JNIEXPORT void JNICALL
68 Java_java_lang_Thread_registerNatives(JNIEnv *env, jclass cls)
69 {
70 (*env)->RegisterNatives(env, cls, methods, ARRAY_LENGTH(methods));
71 }
|