1 /* src/vm/globals.hpp - global variables
3 Copyright (C) 1996-2011
4 CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
6 This file is part of CACAO.
8 This program is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License as
10 published by the Free Software Foundation; either version 2, or (at
11 your option) any later version.
13 This program is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
33 #include "vm/class.hpp"
36 // FIXME For now we export them a C symbols.
43 /* Important system classes. */
45 extern classinfo *class_java_lang_Object;
46 extern classinfo *class_java_lang_Class;
47 extern classinfo *class_java_lang_ClassLoader;
48 extern classinfo *class_java_lang_Cloneable;
49 extern classinfo *class_java_lang_SecurityManager;
50 extern classinfo *class_java_lang_String;
51 extern classinfo *class_java_lang_System;
52 extern classinfo *class_java_lang_Thread;
53 extern classinfo *class_java_lang_ThreadGroup;
54 extern classinfo *class_java_lang_Throwable;
55 extern classinfo *class_java_io_Serializable;
57 /* Important system exceptions. */
59 extern classinfo *class_java_lang_Exception;
60 extern classinfo *class_java_lang_ClassNotFoundException;
61 extern classinfo *class_java_lang_RuntimeException;
63 #if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
64 extern classinfo *class_java_lang_VMSystem;
65 extern classinfo *class_java_lang_VMThread;
66 extern classinfo *class_java_lang_VMThrowable;
69 #if defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
70 extern classinfo *class_sun_misc_Signal;
71 extern classinfo *class_sun_reflect_MagicAccessorImpl;
72 extern classinfo *class_sun_reflect_MethodAccessorImpl;
73 extern classinfo *class_sun_reflect_ConstructorAccessorImpl;
76 #if defined(ENABLE_JAVASE)
77 extern classinfo *class_java_lang_Void;
80 extern classinfo *class_java_lang_Boolean;
81 extern classinfo *class_java_lang_Byte;
82 extern classinfo *class_java_lang_Character;
83 extern classinfo *class_java_lang_Short;
84 extern classinfo *class_java_lang_Integer;
85 extern classinfo *class_java_lang_Long;
86 extern classinfo *class_java_lang_Float;
87 extern classinfo *class_java_lang_Double;
89 /* some classes which may be used more often */
91 #if defined(ENABLE_JAVASE)
92 extern classinfo *class_java_lang_StackTraceElement;
93 extern classinfo *class_java_lang_reflect_Constructor;
94 extern classinfo *class_java_lang_reflect_Field;
95 extern classinfo *class_java_lang_reflect_Method;
96 extern classinfo *class_java_security_PrivilegedAction;
97 extern classinfo *class_java_util_Vector;
98 extern classinfo *class_java_util_HashMap;
100 # if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
101 extern classinfo *class_java_lang_reflect_VMConstructor;
102 extern classinfo *class_java_lang_reflect_VMField;
103 extern classinfo *class_java_lang_reflect_VMMethod;
106 extern classinfo *arrayclass_java_lang_Object;
108 # if defined(ENABLE_ANNOTATIONS)
109 extern classinfo *class_sun_reflect_ConstantPool;
110 # if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
111 extern classinfo *class_sun_reflect_annotation_AnnotationParser;
117 /* pseudo classes for the type checker ****************************************/
120 * pseudo_class_Arraystub
121 * (extends Object implements Cloneable, java.io.Serializable)
123 * If two arrays of incompatible component types are merged,
124 * the resulting reference has no accessible components.
125 * The result does, however, implement the interfaces Cloneable
126 * and java.io.Serializable. This pseudo class is used internally
127 * to represent such results. (They are *not* considered arrays!)
131 * This pseudo class is used internally to represent the
136 * This pseudo class is used internally to represent the
137 * the 'uninitialized object' type.
140 extern classinfo *pseudo_class_Arraystub;
141 extern classinfo *pseudo_class_Null;
142 extern classinfo *pseudo_class_New;
148 #endif // _GLOBALS_HPP
152 * These are local overrides for various environment variables in Emacs.
153 * Please do not remove this and leave it at the end of the file, where
154 * Emacs will automagically detect them.
155 * ---------------------------------------------------------------------
158 * indent-tabs-mode: t