Rename include/vm/java_lang.h to include/vm/preload.h

Signed-off-by: Tomek Grabiec <tgrab...@gmail.com>
---
 Makefile                 |    3 +-
 include/vm/java_lang.h   |   30 --------
 include/vm/preload.h     |   32 ++++++++
 jit/emulate.c            |    1 +
 jit/trace-jit.c          |    2 +-
 jit/trampoline.c         |    1 +
 test/arch-x86/Makefile   |    2 +-
 test/vm/java_lang-stub.c |   11 ---
 test/vm/preload-stub.c   |   23 ++++++
 vm/class.c               |    2 +-
 vm/classloader.c         |    2 +-
 vm/jato.c                |  148 +--------------------------------------
 vm/object.c              |    2 +-
 vm/preload.c             |  177 ++++++++++++++++++++++++++++++++++++++++++++++
 vm/stack-trace.c         |    2 +-
 15 files changed, 243 insertions(+), 195 deletions(-)
 delete mode 100644 include/vm/java_lang.h
 create mode 100644 include/vm/preload.h
 delete mode 100644 test/vm/java_lang-stub.c
 create mode 100644 test/vm/preload-stub.c
 create mode 100644 vm/preload.c

diff --git a/Makefile b/Makefile
index 73df9b4..640e2dd 100644
--- a/Makefile
+++ b/Makefile
@@ -106,7 +106,8 @@ VM_OBJS = \
        vm/static.o             \
        vm/types.o              \
        vm/utf8.o               \
-       vm/zalloc.o
+       vm/zalloc.o             \
+       vm/preload.o
 
 LIB_OBJS = \
        lib/bitset.o            \
diff --git a/include/vm/java_lang.h b/include/vm/java_lang.h
deleted file mode 100644
index cb9d150..0000000
--- a/include/vm/java_lang.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef _VM_JAVA_LANG_H
-#define _VM_JAVA_LANG_H
-
-extern struct vm_class *vm_java_lang_Object;
-extern struct vm_class *vm_java_lang_Class;
-extern struct vm_class *vm_java_lang_String;
-extern struct vm_class *vm_java_lang_Throwable;
-extern struct vm_class *vm_java_util_Properties;
-extern struct vm_class *vm_java_lang_VMThrowable;
-extern struct vm_class *vm_java_lang_StackTraceElement;
-extern struct vm_class *vm_array_of_java_lang_StackTraceElement;
-extern struct vm_class *vm_boolean_class;
-extern struct vm_class *vm_char_class;
-extern struct vm_class *vm_float_class;
-extern struct vm_class *vm_double_class;
-extern struct vm_class *vm_byte_class;
-extern struct vm_class *vm_short_class;
-extern struct vm_class *vm_int_class;
-extern struct vm_class *vm_long_class;
-
-extern struct vm_field *vm_java_lang_Class_vmdata;
-extern struct vm_field *vm_java_lang_String_offset;
-extern struct vm_field *vm_java_lang_String_count;
-extern struct vm_field *vm_java_lang_String_value;
-extern struct vm_field *vm_java_lang_Throwable_detailMessage;
-extern struct vm_field *vm_java_lang_VMThrowable_vmdata;
-
-extern struct vm_method *vm_java_util_Properties_setProperty;
-
-#endif
diff --git a/include/vm/preload.h b/include/vm/preload.h
new file mode 100644
index 0000000..4c46462
--- /dev/null
+++ b/include/vm/preload.h
@@ -0,0 +1,32 @@
+#ifndef _VM_JAVA_LANG_H
+#define _VM_JAVA_LANG_H
+
+extern struct vm_class *vm_java_lang_Object;
+extern struct vm_class *vm_java_lang_Class;
+extern struct vm_class *vm_java_lang_String;
+extern struct vm_class *vm_java_lang_Throwable;
+extern struct vm_class *vm_java_util_Properties;
+extern struct vm_class *vm_java_lang_VMThrowable;
+extern struct vm_class *vm_java_lang_StackTraceElement;
+extern struct vm_class *vm_array_of_java_lang_StackTraceElement;
+extern struct vm_class *vm_boolean_class;
+extern struct vm_class *vm_char_class;
+extern struct vm_class *vm_float_class;
+extern struct vm_class *vm_double_class;
+extern struct vm_class *vm_byte_class;
+extern struct vm_class *vm_short_class;
+extern struct vm_class *vm_int_class;
+extern struct vm_class *vm_long_class;
+
+extern struct vm_field *vm_java_lang_Class_vmdata;
+extern struct vm_field *vm_java_lang_String_offset;
+extern struct vm_field *vm_java_lang_String_count;
+extern struct vm_field *vm_java_lang_String_value;
+extern struct vm_field *vm_java_lang_Throwable_detailMessage;
+extern struct vm_field *vm_java_lang_VMThrowable_vmdata;
+
+extern struct vm_method *vm_java_util_Properties_setProperty;
+
+int preload_vm_classes(void);
+
+#endif
diff --git a/jit/emulate.c b/jit/emulate.c
index d64eaa2..368b8b3 100644
--- a/jit/emulate.c
+++ b/jit/emulate.c
@@ -28,6 +28,7 @@
 #include <jit/exception.h>
 #include <jit/emulate.h>
 #include <vm/class.h>
+#include <vm/preload.h>
 
 int emulate_lcmp(long long value1, long long value2)
 {
diff --git a/jit/trace-jit.c b/jit/trace-jit.c
index 89158e2..bfcce4e 100644
--- a/jit/trace-jit.c
+++ b/jit/trace-jit.c
@@ -17,7 +17,7 @@
 #include <jit/statement.h>
 #include <jit/vars.h>
 #include <jit/args.h>
-#include <vm/java_lang.h>
+#include <vm/preload.h>
 #include <vm/object.h>
 
 #include <vm/buffer.h>
diff --git a/jit/trampoline.c b/jit/trampoline.c
index 40c8eca..c0ce053 100644
--- a/jit/trampoline.c
+++ b/jit/trampoline.c
@@ -29,6 +29,7 @@
 #include <jit/exception.h>
 #include <jit/compiler.h>
 
+#include <vm/preload.h>
 #include <vm/buffer.h>
 #include <vm/class.h>
 #include <vm/method.h>
diff --git a/test/arch-x86/Makefile b/test/arch-x86/Makefile
index 21d039c..2470e2d 100644
--- a/test/arch-x86/Makefile
+++ b/test/arch-x86/Makefile
@@ -79,7 +79,7 @@ OBJS = \
        ../jit/trace-stub.o \
        ../libharness/libharness.o \
        ../vm/classloader-stub.o \
-       ../vm/java_lang-stub.o \
+       ../vm/preload-stub.o \
        $(TESTS)
 
 TESTS = \
diff --git a/test/vm/java_lang-stub.c b/test/vm/java_lang-stub.c
deleted file mode 100644
index bb5dde2..0000000
--- a/test/vm/java_lang-stub.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <vm/class.h>
-#include <vm/java_lang.h>
-
-struct vm_class *vm_java_lang_Object;
-struct vm_class *vm_java_lang_Class;
-struct vm_field *vm_java_lang_Class_vmdata;
-struct vm_class *vm_java_lang_String;
-
-struct vm_field *vm_java_lang_String_offset;
-struct vm_field *vm_java_lang_String_count;
-struct vm_field *vm_java_lang_String_value;
diff --git a/test/vm/preload-stub.c b/test/vm/preload-stub.c
new file mode 100644
index 0000000..b068714
--- /dev/null
+++ b/test/vm/preload-stub.c
@@ -0,0 +1,23 @@
+#include <vm/class.h>
+#include <vm/preload.h>
+
+struct vm_class *vm_java_lang_Object;
+struct vm_class *vm_java_lang_Class;
+struct vm_field *vm_java_lang_Class_vmdata;
+struct vm_class *vm_java_lang_String;
+
+struct vm_field *vm_java_lang_String_offset;
+struct vm_field *vm_java_lang_String_count;
+struct vm_field *vm_java_lang_String_value;
+
+struct vm_class *vm_java_lang_Error;
+struct vm_class *vm_java_lang_ArithmeticException;
+struct vm_class *vm_java_lang_NullPointerException;
+struct vm_class *vm_java_lang_NoClassDefFoundError;
+struct vm_class *vm_java_lang_UnsatisfiedLinkError;
+struct vm_class *vm_java_lang_ArrayIndexOutOfBoundsException;
+struct vm_class *vm_java_lang_ArrayStoreException;
+struct vm_class *vm_java_lang_RuntimeException;
+struct vm_class *vm_java_lang_ExceptionInInitializerError;
+struct vm_class *vm_java_lang_NegativeArraySizeException;
+struct vm_class *vm_java_lang_ClassCastException;
diff --git a/vm/class.c b/vm/class.c
index c61a667..35bdc95 100644
--- a/vm/class.c
+++ b/vm/class.c
@@ -38,7 +38,7 @@
 #include <vm/classloader.h>
 #include <vm/die.h>
 #include <vm/field.h>
-#include <vm/java_lang.h>
+#include <vm/preload.h>
 #include <vm/method.h>
 #include <vm/object.h>
 #include <vm/string.h>
diff --git a/vm/classloader.c b/vm/classloader.c
index e99e41e..a615fa3 100644
--- a/vm/classloader.c
+++ b/vm/classloader.c
@@ -10,7 +10,7 @@
 
 #include <vm/class.h>
 #include <vm/classloader.h>
-#include <vm/java_lang.h>
+#include <vm/preload.h>
 
 bool opt_trace_classloader;
 static int trace_classloader_level = 0;
diff --git a/vm/jato.c b/vm/jato.c
index 2567ad7..f005dd8 100644
--- a/vm/jato.c
+++ b/vm/jato.c
@@ -42,7 +42,7 @@
 
 #include "vm/class.h"
 #include "vm/classloader.h"
-#include "vm/java_lang.h"
+#include "vm/preload.h"
 #include "vm/method.h"
 #include "vm/natives.h"
 #include "vm/object.h"
@@ -218,152 +218,6 @@ static void jit_init_natives(void)
                vm_register_native(&natives[i]);
 }
 
-struct preload_entry {
-       const char *name;
-       struct vm_class **class;
-};
-
-struct vm_class *vm_java_lang_Object;
-struct vm_class *vm_java_lang_Class;
-struct vm_class *vm_java_lang_String;
-struct vm_class *vm_java_lang_Throwable;
-struct vm_class *vm_java_util_Properties;
-struct vm_class *vm_java_lang_VMThrowable;
-struct vm_class *vm_java_lang_StackTraceElement;
-struct vm_class *vm_array_of_java_lang_StackTraceElement;
-struct vm_class *vm_boolean_class;
-struct vm_class *vm_char_class;
-struct vm_class *vm_float_class;
-struct vm_class *vm_double_class;
-struct vm_class *vm_byte_class;
-struct vm_class *vm_short_class;
-struct vm_class *vm_int_class;
-struct vm_class *vm_long_class;
-
-static const struct preload_entry preload_entries[] = {
-       { "java/lang/Object",           &vm_java_lang_Object },
-       { "java/lang/Class",            &vm_java_lang_Class },
-       { "java/lang/String",           &vm_java_lang_String },
-       { "java/lang/Throwable",        &vm_java_lang_Throwable },
-       { "java/util/Properties",       &vm_java_util_Properties },
-       { "java/lang/RuntimeException", &vm_java_lang_RE },
-       { "java/lang/VMThrowable",      &vm_java_lang_VMThrowable },
-       { "java/lang/StackTraceElement", &vm_java_lang_StackTraceElement },
-       { "[Ljava/lang/StackTraceElement;", 
&vm_array_of_java_lang_StackTraceElement },
-};
-
-static const struct preload_entry primitive_preload_entries[] = {
-       {"Z", &vm_boolean_class},
-       {"C", &vm_char_class},
-       {"F", &vm_float_class},
-       {"D", &vm_double_class},
-       {"B", &vm_byte_class},
-       {"S", &vm_short_class},
-       {"I", &vm_int_class},
-       {"J", &vm_long_class},
-};
-
-struct field_preload_entry {
-       struct vm_class **class;
-       const char *name;
-       const char *type;
-       struct vm_field **field;
-};
-
-struct vm_field *vm_java_lang_Class_vmdata;
-struct vm_field *vm_java_lang_String_offset;
-struct vm_field *vm_java_lang_String_count;
-struct vm_field *vm_java_lang_String_value;
-struct vm_field *vm_java_lang_Throwable_detailMessage;
-struct vm_field *vm_java_lang_VMThrowable_vmdata;
-
-static const struct field_preload_entry field_preload_entries[] = {
-       { &vm_java_lang_Class, "vmdata", "Ljava/lang/Object;", 
&vm_java_lang_Class_vmdata },
-       { &vm_java_lang_String, "offset", "I",  &vm_java_lang_String_offset },
-       { &vm_java_lang_String, "count", "I",   &vm_java_lang_String_count },
-       { &vm_java_lang_String, "value", "[C",  &vm_java_lang_String_value },
-       { &vm_java_lang_Throwable, "detailMessage", "Ljava/lang/String;", 
&vm_java_lang_Throwable_detailMessage },
-       { &vm_java_lang_VMThrowable, "vmdata", "Ljava/lang/Object;", 
&vm_java_lang_VMThrowable_vmdata },
-};
-
-struct method_preload_entry {
-       struct vm_class **class;
-       const char *name;
-       const char *type;
-       struct vm_method **method;
-};
-
-struct vm_method *vm_java_util_Properties_setProperty;
-
-static const struct method_preload_entry method_preload_entries[] = {
-       {
-               &vm_java_util_Properties,
-               "setProperty",
-               "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;",
-               &vm_java_util_Properties_setProperty,
-       },
-};
-
-static int preload_vm_classes(void)
-{
-       unsigned int array_size;
-
-       for (unsigned int i = 0; i < ARRAY_SIZE(preload_entries); ++i) {
-               const struct preload_entry *pe = &preload_entries[i];
-
-               struct vm_class *class = classloader_load(pe->name);
-               if (!class) {
-                       NOT_IMPLEMENTED;
-                       return 1;
-               }
-
-               *pe->class = class;
-       }
-
-       array_size = ARRAY_SIZE(primitive_preload_entries);
-       for (unsigned int i = 0; i < array_size; ++i) {
-               const struct preload_entry *pe = &primitive_preload_entries[i];
-
-               struct vm_class *class = classloader_load_primitive(pe->name);
-               if (!class) {
-                       NOT_IMPLEMENTED;
-                       return 1;
-               }
-
-               *pe->class = class;
-       }
-
-       for (unsigned int i = 0; i < ARRAY_SIZE(field_preload_entries); ++i) {
-               const struct field_preload_entry *pe
-                       = &field_preload_entries[i];
-
-               struct vm_field *field = vm_class_get_field(*pe->class,
-                       pe->name, pe->type);
-               if (!field) {
-                       NOT_IMPLEMENTED;
-                       return 1;
-               }
-
-               *pe->field = field;
-       }
-
-       for (unsigned int i = 0; i < ARRAY_SIZE(method_preload_entries); ++i) {
-               const struct method_preload_entry *me
-                       = &method_preload_entries[i];
-
-               struct vm_method *method = vm_class_get_method(*me->class,
-                       me->name, me->type);
-               if (!method) {
-                       NOT_IMPLEMENTED;
-                       return 1;
-               }
-
-               *me->method = method;
-       }
-
-       return 0;
-}
-
 static void usage(FILE *f, int retval)
 {
        fprintf(f, "usage: %s [options] class\n", exe_name);
diff --git a/vm/object.c b/vm/object.c
index 2e614c5..f997025 100644
--- a/vm/object.c
+++ b/vm/object.c
@@ -10,7 +10,7 @@
 #include <vm/class.h>
 #include <vm/classloader.h>
 #include <vm/die.h>
-#include <vm/java_lang.h>
+#include <vm/preload.h>
 #include <vm/object.h>
 #include <vm/stdlib.h>
 #include <vm/string.h>
diff --git a/vm/preload.c b/vm/preload.c
new file mode 100644
index 0000000..dfac41f
--- /dev/null
+++ b/vm/preload.c
@@ -0,0 +1,177 @@
+/*
+ * Copyright (c) 2009  Vegard Nossum
+ *               2009  Tomasz Grabiec
+ *
+ * This file is released under the GPL version 2 with the following
+ * clarification and special exception:
+ *
+ *     Linking this library statically or dynamically with other modules is
+ *     making a combined work based on this library. Thus, the terms and
+ *     conditions of the GNU General Public License cover the whole
+ *     combination.
+ *
+ *     As a special exception, the copyright holders of this library give you
+ *     permission to link this library with independent modules to produce an
+ *     executable, regardless of the license terms of these independent
+ *     modules, and to copy and distribute the resulting executable under terms
+ *     of your choice, provided that you also meet, for each linked independent
+ *     module, the terms and conditions of the license of that module. An
+ *     independent module is a module which is not derived from or based on
+ *     this library. If you modify this library, you may extend this exception
+ *     to your version of the library, but you are not obligated to do so. If
+ *     you do not wish to do so, delete this exception statement from your
+ *     version.
+ *
+ * Please refer to the file LICENSE for details.
+ */
+
+#include <stdio.h>
+
+#include "vm/class.h"
+#include "vm/classloader.h"
+
+struct preload_entry {
+       const char *name;
+       struct vm_class **class;
+};
+
+struct vm_class *vm_java_lang_Object;
+struct vm_class *vm_java_lang_Class;
+struct vm_class *vm_java_lang_String;
+struct vm_class *vm_java_lang_Throwable;
+struct vm_class *vm_java_util_Properties;
+struct vm_class *vm_java_lang_VMThrowable;
+struct vm_class *vm_java_lang_StackTraceElement;
+struct vm_class *vm_array_of_java_lang_StackTraceElement;
+struct vm_class *vm_java_lang_RE;
+struct vm_class *vm_boolean_class;
+struct vm_class *vm_char_class;
+struct vm_class *vm_float_class;
+struct vm_class *vm_double_class;
+struct vm_class *vm_byte_class;
+struct vm_class *vm_short_class;
+struct vm_class *vm_int_class;
+struct vm_class *vm_long_class;
+
+static const struct preload_entry preload_entries[] = {
+       { "java/lang/Object",           &vm_java_lang_Object },
+       { "java/lang/Class",            &vm_java_lang_Class },
+       { "java/lang/String",           &vm_java_lang_String },
+       { "java/lang/Throwable",        &vm_java_lang_Throwable },
+       { "java/util/Properties",       &vm_java_util_Properties },
+       { "java/lang/StackTraceElement", &vm_java_lang_StackTraceElement },
+       { "[Ljava/lang/StackTraceElement;", 
&vm_array_of_java_lang_StackTraceElement },
+       { "java/lang/VMThrowable",      &vm_java_lang_VMThrowable },
+};
+
+static const struct preload_entry primitive_preload_entries[] = {
+       {"Z", &vm_boolean_class},
+       {"C", &vm_char_class},
+       {"F", &vm_float_class},
+       {"D", &vm_double_class},
+       {"B", &vm_byte_class},
+       {"S", &vm_short_class},
+       {"I", &vm_int_class},
+       {"J", &vm_long_class},
+};
+
+struct field_preload_entry {
+       struct vm_class **class;
+       const char *name;
+       const char *type;
+       struct vm_field **field;
+};
+
+struct vm_field *vm_java_lang_Class_vmdata;
+struct vm_field *vm_java_lang_String_offset;
+struct vm_field *vm_java_lang_String_count;
+struct vm_field *vm_java_lang_String_value;
+struct vm_field *vm_java_lang_Throwable_detailMessage;
+struct vm_field *vm_java_lang_VMThrowable_vmdata;
+
+static const struct field_preload_entry field_preload_entries[] = {
+       { &vm_java_lang_Class, "vmdata", "Ljava/lang/Object;", 
&vm_java_lang_Class_vmdata },
+       { &vm_java_lang_String, "offset", "I",  &vm_java_lang_String_offset },
+       { &vm_java_lang_String, "count", "I",   &vm_java_lang_String_count },
+       { &vm_java_lang_String, "value", "[C",  &vm_java_lang_String_value },
+       { &vm_java_lang_Throwable, "detailMessage", "Ljava/lang/String;", 
&vm_java_lang_Throwable_detailMessage },
+       { &vm_java_lang_VMThrowable, "vmdata", "Ljava/lang/Object;", 
&vm_java_lang_VMThrowable_vmdata },
+};
+
+struct method_preload_entry {
+       struct vm_class **class;
+       const char *name;
+       const char *type;
+       struct vm_method **method;
+};
+
+struct vm_method *vm_java_util_Properties_setProperty;
+
+static const struct method_preload_entry method_preload_entries[] = {
+       {
+               &vm_java_util_Properties,
+               "setProperty",
+               "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;",
+               &vm_java_util_Properties_setProperty,
+       },
+};
+
+int preload_vm_classes(void)
+{
+       unsigned int array_size;
+
+       for (unsigned int i = 0; i < ARRAY_SIZE(preload_entries); ++i) {
+               const struct preload_entry *pe = &preload_entries[i];
+
+               struct vm_class *class = classloader_load(pe->name);
+               if (!class) {
+                       NOT_IMPLEMENTED;
+                       return 1;
+               }
+
+               *pe->class = class;
+       }
+
+       array_size = ARRAY_SIZE(primitive_preload_entries);
+       for (unsigned int i = 0; i < array_size; ++i) {
+               const struct preload_entry *pe = &primitive_preload_entries[i];
+
+               struct vm_class *class = classloader_load_primitive(pe->name);
+               if (!class) {
+                       NOT_IMPLEMENTED;
+                       return 1;
+               }
+
+               *pe->class = class;
+       }
+
+       for (unsigned int i = 0; i < ARRAY_SIZE(field_preload_entries); ++i) {
+               const struct field_preload_entry *pe
+                       = &field_preload_entries[i];
+
+               struct vm_field *field = vm_class_get_field(*pe->class,
+                       pe->name, pe->type);
+               if (!field) {
+                       NOT_IMPLEMENTED;
+                       return 1;
+               }
+
+               *pe->field = field;
+       }
+
+       for (unsigned int i = 0; i < ARRAY_SIZE(method_preload_entries); ++i) {
+               const struct method_preload_entry *me
+                       = &method_preload_entries[i];
+
+               struct vm_method *method = vm_class_get_method(*me->class,
+                       me->name, me->type);
+               if (!method) {
+                       NOT_IMPLEMENTED;
+                       return 1;
+               }
+
+               *me->method = method;
+       }
+
+       return 0;
+}
diff --git a/vm/stack-trace.c b/vm/stack-trace.c
index 3b31afc..064c8e4 100644
--- a/vm/stack-trace.c
+++ b/vm/stack-trace.c
@@ -31,7 +31,7 @@
 #include <vm/natives.h>
 #include <vm/object.h>
 #include <vm/stack-trace.h>
-#include <vm/java_lang.h>
+#include <vm/preload.h>
 #include <vm/system.h>
 
 #include <jit/bc-offset-mapping.h>
-- 
1.6.0.6


------------------------------------------------------------------------------
_______________________________________________
Jatovm-devel mailing list
Jatovm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jatovm-devel

Reply via email to