+#include "vmcore/class.h"
+
+
+/* native methods implemented by this file ************************************/
+
+static JNINativeMethod methods[] = {
+ { "isInstance", "(Ljava/lang/Class;Ljava/lang/Object;)Z", (void *) (ptrint) &Java_java_lang_VMClass_isInstance },
+ { "isAssignableFrom", "(Ljava/lang/Class;Ljava/lang/Class;)Z", (void *) (ptrint) &Java_java_lang_VMClass_isAssignableFrom },
+ { "isInterface", "(Ljava/lang/Class;)Z", (void *) (ptrint) &Java_java_lang_VMClass_isInterface },
+ { "isPrimitive", "(Ljava/lang/Class;)Z", (void *) (ptrint) &Java_java_lang_VMClass_isPrimitive },
+ { "getName", "(Ljava/lang/Class;)Ljava/lang/String;", (void *) (ptrint) &Java_java_lang_VMClass_getName },
+ { "getSuperclass", "(Ljava/lang/Class;)Ljava/lang/Class;", (void *) (ptrint) &Java_java_lang_VMClass_getSuperclass },
+ { "getInterfaces", "(Ljava/lang/Class;)[Ljava/lang/Class;", (void *) (ptrint) &Java_java_lang_VMClass_getInterfaces },
+ { "getComponentType", "(Ljava/lang/Class;)Ljava/lang/Class;", (void *) (ptrint) &Java_java_lang_VMClass_getComponentType },
+ { "getModifiers", "(Ljava/lang/Class;Z)I", (void *) (ptrint) &Java_java_lang_VMClass_getModifiers },
+ { "getDeclaringClass", "(Ljava/lang/Class;)Ljava/lang/Class;", (void *) (ptrint) &Java_java_lang_VMClass_getDeclaringClass },
+ { "getDeclaredClasses", "(Ljava/lang/Class;Z)[Ljava/lang/Class;", (void *) (ptrint) &Java_java_lang_VMClass_getDeclaredClasses },
+ { "getDeclaredFields", "(Ljava/lang/Class;Z)[Ljava/lang/reflect/Field;", (void *) (ptrint) &Java_java_lang_VMClass_getDeclaredFields },
+ { "getDeclaredMethods", "(Ljava/lang/Class;Z)[Ljava/lang/reflect/Method;", (void *) (ptrint) &Java_java_lang_VMClass_getDeclaredMethods },
+ { "getDeclaredConstructors", "(Ljava/lang/Class;Z)[Ljava/lang/reflect/Constructor;", (void *) (ptrint) &Java_java_lang_VMClass_getDeclaredConstructors },
+ { "getClassLoader", "(Ljava/lang/Class;)Ljava/lang/ClassLoader;", (void *) (ptrint) &Java_java_lang_VMClass_getClassLoader },
+ { "forName", "(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;", (void *) (ptrint) &Java_java_lang_VMClass_forName },
+ { "isArray", "(Ljava/lang/Class;)Z", (void *) (ptrint) &Java_java_lang_VMClass_isArray },
+ { "throwException", "(Ljava/lang/Throwable;)V", (void *) (ptrint) &Java_java_lang_VMClass_throwException },
+#if defined(WITH_CLASSPATH_GNU) && defined(ENABLE_ANNOTATIONS)
+ { "getDeclaredAnnotations", "(Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;", (void *) (ptrint) &Java_java_lang_VMClass_getDeclaredAnnotations },
+#endif
+ { "getEnclosingClass", "(Ljava/lang/Class;)Ljava/lang/Class;", (void *) (ptrint) &Java_java_lang_VMClass_getEnclosingClass },
+ { "getEnclosingConstructor", "(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;", (void *) (ptrint) &Java_java_lang_VMClass_getEnclosingConstructor },
+ { "getEnclosingMethod", "(Ljava/lang/Class;)Ljava/lang/reflect/Method;", (void *) (ptrint) &Java_java_lang_VMClass_getEnclosingMethod },
+ { "getClassSignature", "(Ljava/lang/Class;)Ljava/lang/String;", (void *) (ptrint) &Java_java_lang_VMClass_getClassSignature },
+ { "isAnonymousClass", "(Ljava/lang/Class;)Z", (void *) (ptrint) &Java_java_lang_VMClass_isAnonymousClass },
+ { "isLocalClass", "(Ljava/lang/Class;)Z", (void *) (ptrint) &Java_java_lang_VMClass_isLocalClass },
+ { "isMemberClass", "(Ljava/lang/Class;)Z", (void *) (ptrint) &Java_java_lang_VMClass_isMemberClass },
+};
+
+
+/* _Jv_java_lang_VMClass_init **************************************************
+
+ Register native functions.
+
+*******************************************************************************/
+
+void _Jv_java_lang_VMClass_init(void)
+{
+ utf *u;
+
+ u = utf_new_char("java/lang/VMClass");
+
+ native_method_register(u, methods, NATIVE_METHODS_COUNT);
+}
+