// We need the JNI types for the VM class.
#include "native/jni.hpp"
+#include "native/native.hpp"
+
+#if defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
+# include "native/vm/openjdk/hpi.hpp"
+# include "native/vm/openjdk/management.hpp"
+#endif
#include "vm/properties.hpp"
+#include "vm/suck.hpp"
+
+#include "vm/jit/optimizing/recompiler.hpp"
#ifdef __cplusplus
bool _created;
bool _exiting;
int64_t _starttime;
+ int64_t _inittime;
// Subsystems.
- Properties _properties; ///< Commandline properties.
+ Properties _properties; ///< Commandline properties.
+#if defined(ENABLE_THREADS)
+ Recompiler _recompiler; ///< JIT recompilation framework.
+#endif
+#if defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
+ HPI _hpi; ///< Host Porting Interface.
+ Management _management; ///< Java management interface.
+#endif
+ NativeLibraries _nativelibraries; ///< Native library table.
+ NativeMethods _nativemethods; ///< Native methods table.
+#if defined(ENABLE_JVMTI)
+ NativeAgents _nativeagents; ///< Native agents table.
+#endif
+ SuckClasspath _suckclasspath; ///< Classpath entries list.
public:
// Constructor, Destructor.
bool is_created() { return _created; }
bool is_exiting() { return _exiting; }
int64_t get_starttime() { return _starttime; }
+ int64_t get_inittime() { return _inittime; }
- Properties& get_properties() { return _properties; }
+ Properties& get_properties () { return _properties; }
+ Recompiler& get_recompiler () { return _recompiler; } // REMOVEME
+#if defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
+ HPI& get_hpi () { return _hpi; }
+ Management& get_management () { return _management; }
+#endif
+ NativeLibraries& get_nativelibraries() { return _nativelibraries; }
+ NativeMethods& get_nativemethods () { return _nativemethods; }
+ SuckClasspath& get_suckclasspath () { return _suckclasspath; }
- // Instance functions.
- void abort(const char* text, ...);
- void abort_errnum(int errnum, const char* text, ...);
- void abort_errno(const char* text, ...);
+private:
+ // Internal helper methods.
+ bool start_runtime_agents();
};
#else
-JavaVM* VM_get_javavm();
JNIEnv* VM_get_jnienv();
-bool VM_is_initializing();
-bool VM_is_created();
-int64_t VM_get_starttime();
#endif
// Includes.
#include "vm/global.h"
-#include "vm/method.h"
+#include "vm/method.hpp"
/* These C methods are the exported interface. ********************************/
extern "C" {
#endif
-void usage(void);
-
-bool vm_create(JavaVMInitArgs *vm_args);
void vm_run(JavaVM *vm, JavaVMInitArgs *vm_args);
int32_t vm_destroy(JavaVM *vm);
void vm_exit(int32_t status);
// Legacy C interface.
void vm_abort(const char* text, ...);
-void vm_abort_errnum(int errnum, const char* text, ...);
-void vm_abort_errno(const char* text, ...);
#ifdef __cplusplus
}