[vmkit-commits] [vmkit] r70854 - in /vmkit/trunk/lib/JnJVM: Classpath/ClasspathVMClassLoader.cpp VMCore/JavaUpcalls.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Mon May 4 05:40:20 PDT 2009
Author: geoffray
Date: Mon May 4 07:40:11 2009
New Revision: 70854
URL: http://llvm.org/viewvc/llvm-project?rev=70854&view=rev
Log:
Implement getBootPackages.
Modified:
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.cpp
Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp?rev=70854&r1=70853&r2=70854&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp Mon May 4 07:40:11 2009
@@ -15,6 +15,7 @@
#include "JavaObject.h"
#include "JavaString.h"
#include "JavaThread.h"
+#include "JavaUpcalls.h"
#include "Jnjvm.h"
using namespace jnjvm;
@@ -158,4 +159,188 @@
END_NATIVE_EXCEPTION
}
+#define NUM_BOOT_PACKAGES 168
+
+static const char* bootPackages[NUM_BOOT_PACKAGES] = {
+ "java.applet",
+ "java.awt",
+ "java.awt.color",
+ "java.awt.datatransfer",
+ "java.awt.dnd",
+ "java.awt.dnd.peer",
+ "java.awt.event",
+ "java.awt.font",
+ "java.awt.geom",
+ "java.awt.im",
+ "java.awt.im.spi",
+ "java.awt.image",
+ "java.awt.image.renderable",
+ "java.awt.peer",
+ "java.awt.print",
+ "java.beans",
+ "java.beans.beancontext",
+ "java.io",
+ "java.lang",
+ "java.lang.annotation",
+ "java.lang.instrument",
+ "java.lang.management",
+ "java.lang.ref",
+ "java.lang.reflect",
+ "java.math",
+ "java.net",
+ "java.nio",
+ "java.nio.channels",
+ "java.nio.channels.spi",
+ "java.nio.charset",
+ "java.nio.charset.spi",
+ "java.rmi",
+ "java.rmi.activation",
+ "java.rmi.dgc",
+ "java.rmi.registry",
+ "java.rmi.server",
+ "java.security",
+ "java.security.acl",
+ "java.security.cert",
+ "java.security.interfaces",
+ "java.security.spec",
+ "java.sql",
+ "java.text",
+ "java.util",
+ "java.util.concurrent",
+ "java.util.concurrent.atomic",
+ "java.util.concurrent.locks",
+ "java.util.jar",
+ "java.util.logging",
+ "java.util.prefs",
+ "java.util.regex",
+ "java.util.zip",
+ "javax.accessibility",
+ "javax.activity",
+ "javax.crypto",
+ "javax.crypto.interfaces",
+ "javax.crypto.spec",
+ "javax.imageio",
+ "javax.imageio.event",
+ "javax.imageio.metadata",
+ "javax.imageio.plugins.bmp",
+ "javax.imageio.plugins.jpeg",
+ "javax.imageio.spi",
+ "javax.imageio.stream",
+ "javax.management",
+ "javax.management.loading",
+ "javax.management.modelmbean",
+ "javax.management.monitor",
+ "javax.management.openmbean",
+ "javax.management.relation",
+ "javax.management.remote",
+ "javax.management.remote.rmi",
+ "javax.management.timer",
+ "javax.naming",
+ "javax.naming.directory",
+ "javax.naming.event",
+ "javax.naming.ldap",
+ "javax.naming.spi",
+ "javax.net",
+ "javax.net.ssl",
+ "javax.print",
+ "javax.print.attribute",
+ "javax.print.attribute.standard",
+ "javax.print.event",
+ "javax.rmi",
+ "javax.rmi.CORBA",
+ "javax.rmi.ssl",
+ "javax.security.auth",
+ "javax.security.auth.callback",
+ "javax.security.auth.kerberos",
+ "javax.security.auth.login",
+ "javax.security.auth.spi",
+ "javax.security.auth.x500",
+ "javax.security.cert",
+ "javax.security.sasl",
+ "javax.sound.midi",
+ "javax.sound.midi.spi",
+ "javax.sound.sampled",
+ "javax.sound.sampled.spi",
+ "javax.sql",
+ "javax.sql.rowset",
+ "javax.sql.rowset.serial",
+ "javax.sql.rowset.spi",
+ "javax.swing",
+ "javax.swing.border",
+ "javax.swing.colorchooser",
+ "javax.swing.event",
+ "javax.swing.filechooser",
+ "javax.swing.plaf",
+ "javax.swing.plaf.basic",
+ "javax.swing.plaf.metal",
+ "javax.swing.plaf.multi",
+ "javax.swing.plaf.synth",
+ "javax.swing.table",
+ "javax.swing.text",
+ "javax.swing.text.html",
+ "javax.swing.text.html.parser",
+ "javax.swing.text.rtf",
+ "javax.swing.tree",
+ "javax.swing.undo",
+ "javax.transaction",
+ "javax.transaction.xa",
+ "javax.xml",
+ "javax.xml.datatype",
+ "javax.xml.namespace",
+ "javax.xml.parsers",
+ "javax.xml.transform",
+ "javax.xml.transform.dom",
+ "javax.xml.transform.sax",
+ "javax.xml.transform.stream",
+ "javax.xml.validation",
+ "javax.xml.xpath",
+ "org.ietf.jgss",
+ "org.omg.CORBA",
+ "org.omg.CORBA_2_3",
+ "org.omg.CORBA_2_3.portable",
+ "org.omg.CORBA.DynAnyPackage",
+ "org.omg.CORBA.ORBPackage",
+ "org.omg.CORBA.portable",
+ "org.omg.CORBA.TypeCodePackage",
+ "org.omg.CosNaming",
+ "org.omg.CosNaming.NamingContextExtPackage",
+ "org.omg.CosNaming.NamingContextPackage",
+ "org.omg.Dynamic",
+ "org.omg.DynamicAny",
+ "org.omg.DynamicAny.DynAnyFactoryPackage",
+ "org.omg.DynamicAny.DynAnyPackage",
+ "org.omg.IOP",
+ "org.omg.IOP.CodecFactoryPackage",
+ "org.omg.IOP.CodecPackage",
+ "org.omg.Messaging",
+ "org.omg.PortableInterceptor",
+ "org.omg.PortableInterceptor.ORBInitInfoPackage",
+ "org.omg.PortableServer",
+ "org.omg.PortableServer.CurrentPackage",
+ "org.omg.PortableServer.POAManagerPackage",
+ "org.omg.PortableServer.POAPackage",
+ "org.omg.PortableServer.portable",
+ "org.omg.PortableServer.ServantLocatorPackage",
+ "org.omg.SendingContext",
+ "org.omg.stub.java.rmi",
+ "org.w3c.dom",
+ "org.w3c.dom.bootstrap",
+ "org.w3c.dom.events",
+ "org.w3c.dom.ls",
+ "org.xml.sax",
+ "org.xml.sax.ext",
+ "org.xml.sax.helpers"
+};
+
+extern "C" ArrayObject* nativeGetBootPackages() {
+ Jnjvm* vm = JavaThread::get()->getJVM();
+ ArrayObject* obj =
+ (ArrayObject*)vm->upcalls->ArrayOfString->doNew(NUM_BOOT_PACKAGES, vm);
+ for (uint32 i = 0; i < NUM_BOOT_PACKAGES; ++i) {
+ obj->elements[i] = vm->asciizToStr(bootPackages[i]);
+ }
+ return obj;
+}
+
+
}
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.cpp?rev=70854&r1=70853&r2=70854&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.cpp Mon May 4 07:40:11 2009
@@ -344,6 +344,9 @@
JavaObjectVMThread::staticDestructor(obj);
}
+// Defined in Classpath/ClasspathVMClassLoader.cpp
+extern "C" ArrayObject* nativeGetBootPackages();
+
void Classpath::initialiseClasspath(JnjvmClassLoader* loader) {
newClassLoader =
@@ -745,6 +748,12 @@
getAnnotations->setCompiledPtr((void*)(intptr_t)nativeGetDeclaredAnnotations,
"nativeGetDeclaredAnnotations");
+ JavaMethod* getBootPackages =
+ UPCALL_METHOD(loader, "java/lang/VMClassLoader", "getBootPackages",
+ "()[Ljava/lang/String;", ACC_STATIC);
+ getBootPackages->setCompiledPtr((void*)(intptr_t)nativeGetBootPackages,
+ "nativeGetBootPackages");
+
//===----------------------------------------------------------------------===//
//
// To make classes non GC-allocated, we have to bypass the tracer functions of
More information about the vmkit-commits
mailing list