#include "config.h"
-#include <assert.h>
-
#if defined(ENABLE_JRE_LAYOUT)
# include <errno.h>
# include <libgen.h>
# include <unistd.h>
#endif
+#include <stdint.h>
#include <stdlib.h>
#include <string.h>
-#include "vm/types.h"
-
-#include "native/jni.h"
-#include "native/native.h"
-
-#if defined(ENABLE_JVMTI)
-# include "native/jvmti/jvmti.h"
-# include "native/jvmti/cacaodbg.h"
-#endif
-
-#include "vmcore/os.hpp"
+#include "native/jni.hpp"
+#include "native/native.hpp"
+#include "vm/os.hpp"
#include "vm/vm.hpp"
int main(int argc, char **argv)
{
#if defined(ENABLE_LIBJVM)
- const char* path;
+ char* path;
# if defined(ENABLE_JRE_LAYOUT)
int len;
void* libjvm_vm_run;
const char* lterror;
- bool (*VM_create)(JavaVM **, void **, void *);
- void (*vm_run)(JavaVM *, JavaVMInitArgs *);
+ bool (*VM_create)(JavaVM**, void**, void*);
+ void (*vm_run)(JavaVM*, JavaVMInitArgs*);
#endif
- JavaVM *vm; /* denotes a Java VM */
- JNIEnv *env;
- JavaVMInitArgs *vm_args;
-
- /* prepare the options */
-
- vm_args = prepare_options(argc, argv);
+ // Prepare the options.
+ JavaVMInitArgs* vm_args = prepare_options(argc, argv);
/* load and initialize a Java VM, return a JNI interface pointer in env */
# if defined(ENABLE_JRE_LAYOUT)
/* SUN also uses a buffer of 4096-bytes (strace is your friend). */
- path = malloc(sizeof(char) * 4096);
+ path = (char*) os::malloc(sizeof(char) * 4096);
if (readlink("/proc/self/exe", path, 4095) == -1) {
fprintf(stderr, "main: readlink failed: %s\n", strerror(errno));
os::abort();
}
- /* concatinate the library name */
+ /* concatenate the library name */
strcat(path, "/../lib/"LIBJVM_NAME);
# else
- path = CACAO_LIBDIR"/"LIBJVM_NAME;
+ path = (char*) CACAO_LIBDIR"/"LIBJVM_NAME;
# endif
/* First try to open where dlopen searches, e.g. LD_LIBRARY_PATH.
os::abort();
}
- /* free the error string */
-
- free((void *) lterror);
+ // Free the error string.
+ os::free((void*) lterror);
}
libjvm_VM_create = os::dlsym(libjvm_handle, "VM_create");
os::abort();
}
- VM_create =
- (bool (*)(JavaVM **, void **, void *)) (ptrint) libjvm_VM_create;
+ VM_create = (bool (*)(JavaVM**, void**, void*)) (uintptr_t) libjvm_VM_create;
#endif
- /* create the Java VM */
-
- (void) VM_create(&vm, (void**) &env, vm_args);
+ // Create the Java VM.
+ JavaVM* vm;
+ void* env; // We use a void* instead of a JNIEnv* here to prevent a compiler warning.
-#if defined(ENABLE_JVMTI)
-# error This should be a JVMTI function.
- Mutex_init(&dbgcomlock);
- if (jvmti) jvmti_set_phase(JVMTI_PHASE_START);
-#endif
+ (void) VM_create(&vm, &env, vm_args);
#if defined(ENABLE_LIBJVM)
libjvm_vm_run = os::dlsym(libjvm_handle, "vm_run");
os::abort();
}
- vm_run = (void (*)(JavaVM *, JavaVMInitArgs *)) (ptrint) libjvm_vm_run;
+ vm_run = (void (*)(JavaVM*, JavaVMInitArgs*)) (uintptr_t) libjvm_vm_run;
#endif
- /* run the VM */
-
+ // Run the VM.
vm_run(vm, vm_args);
- /* keep compiler happy */
-
+ // Keep compiler happy.
return 0;
}