Skip to content
Snippets Groups Projects
Commit 414a7a07 authored by Christoph Hellwig's avatar Christoph Hellwig
Browse files

factor starting the jvm into a separate helper method

parent 257437dc
No related branches found
No related tags found
No related merge requests found
...@@ -127,9 +127,6 @@ int main(int ac, char **av) ...@@ -127,9 +127,6 @@ int main(int ac, char **av)
bootfs fs; bootfs fs;
rootfs = &fs; rootfs = &fs;
fileref f = fs.open("/usr/lib/jre/lib/server/libjvm.so");
char buf[100];
f->read(buf, 0, 100);
disable_pic(); disable_pic();
processor::sti(); processor::sti();
...@@ -154,17 +151,23 @@ int main(int ac, char **av) ...@@ -154,17 +151,23 @@ int main(int ac, char **av)
// ; // ;
#endif #endif
debug(fmt("jvm: %1% bytes, contents %2% ") % f->size() % buf);
elf::program prog(fs); elf::program prog(fs);
sched::init(prog); sched::init(prog);
void main_thread(elf::program& prog); void main_thread(elf::program& prog);
new thread([&] { main_thread(prog); }, true); new thread([&] { main_thread(prog); }, true);
} }
void main_thread(elf::program& prog) #define JVM_PATH "/usr/lib/jre/lib/server/libjvm.so"
void start_jvm(elf::program& prog)
{ {
test_threads(); fileref f = rootfs->open(JVM_PATH);
prog.add("/usr/lib/jre/lib/server/libjvm.so"); char buf[100];
f->read(buf, 0, 100);
debug(fmt("jvm: %1% bytes, contents %2% ") % f->size() % buf);
prog.add(JVM_PATH);
auto JNI_GetDefaultJavaVMInitArgs auto JNI_GetDefaultJavaVMInitArgs
= prog.lookup_function<void (void*)>("JNI_GetDefaultJavaVMInitArgs"); = prog.lookup_function<void (void*)>("JNI_GetDefaultJavaVMInitArgs");
JavaVMInitArgs vm_args; JavaVMInitArgs vm_args;
...@@ -174,6 +177,14 @@ void main_thread(elf::program& prog) ...@@ -174,6 +177,14 @@ void main_thread(elf::program& prog)
= prog.lookup_function<jint (JavaVM**, void**, void*)>("JNI_CreateJavaVM"); = prog.lookup_function<jint (JavaVM**, void**, void*)>("JNI_CreateJavaVM");
JavaVM* jvm = nullptr; JavaVM* jvm = nullptr;
auto ret = JNI_CreateJavaVM(&jvm, nullptr, &vm_args);
debug(fmt("JNI_CreateJavaVM() returned %1%") % ret);
}
void main_thread(elf::program& prog)
{
test_threads();
pci::pci_devices_print(); pci::pci_devices_print();
pci::pci_device_enumeration(); pci::pci_device_enumeration();
DeviceFactory::Instance()->DumpDevices(); DeviceFactory::Instance()->DumpDevices();
...@@ -188,8 +199,7 @@ void main_thread(elf::program& prog) ...@@ -188,8 +199,7 @@ void main_thread(elf::program& prog)
debug(fmt("clock@t1 %1%") % t1); debug(fmt("clock@t1 %1%") % t1);
debug(fmt("clock@t2 %1%") % t2); debug(fmt("clock@t2 %1%") % t2);
auto ret = JNI_CreateJavaVM(&jvm, nullptr, &vm_args); start_jvm(prog);
debug(fmt("JNI_CreateJavaVM() returned %1%") % ret);
while (true) while (true)
; ;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment