Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: java_lang_VMRuntime.c 7718 2007-04-16 15:26:01Z twisti $
-
*/
#include <assert.h>
#include <string.h>
+#include <stdint.h>
#include <stdlib.h>
+#include <unistd.h>
#include <sys/utsname.h>
#if defined(__DARWIN__)
# include <mach/mach.h>
#endif
-#include "vm/types.h"
-
#include "mm/gc-common.h"
#include "mm/memory.h"
#include "native/jni.h"
+#include "native/native.h"
#include "native/include/java_io_File.h"
#include "native/include/java_lang_ClassLoader.h"
#include "native/include/java_lang_String.h"
#include "native/include/java_lang_Process.h"
+#include "native/include/java_lang_VMRuntime.h"
+
#include "native/vm/java_lang_Runtime.h"
#include "vm/builtin.h"
#include "vm/stringlocal.h"
#include "vm/vm.h"
+#include "vmcore/utf8.h"
+
/* this should work on BSD */
/*
*/
+/* native methods implemented by this file ************************************/
+
+static JNINativeMethod methods[] = {
+ { "exit", "(I)V", (void *) (intptr_t) &Java_java_lang_VMRuntime_exit },
+ { "freeMemory", "()J", (void *) (intptr_t) &Java_java_lang_VMRuntime_freeMemory },
+ { "totalMemory", "()J", (void *) (intptr_t) &Java_java_lang_VMRuntime_totalMemory },
+ { "maxMemory", "()J", (void *) (intptr_t) &Java_java_lang_VMRuntime_maxMemory },
+ { "gc", "()V", (void *) (intptr_t) &Java_java_lang_VMRuntime_gc },
+ { "runFinalization", "()V", (void *) (intptr_t) &Java_java_lang_VMRuntime_runFinalization },
+ { "runFinalizersOnExit", "(Z)V", (void *) (intptr_t) &Java_java_lang_VMRuntime_runFinalizersOnExit },
+ { "runFinalizationForExit", "()V", (void *) (intptr_t) &Java_java_lang_VMRuntime_runFinalizationForExit },
+ { "traceInstructions", "(Z)V", (void *) (intptr_t) &Java_java_lang_VMRuntime_traceInstructions },
+ { "traceMethodCalls", "(Z)V", (void *) (intptr_t) &Java_java_lang_VMRuntime_traceMethodCalls },
+ { "availableProcessors", "()I", (void *) (intptr_t) &Java_java_lang_VMRuntime_availableProcessors },
+ { "nativeLoad", "(Ljava/lang/String;Ljava/lang/ClassLoader;)I", (void *) (intptr_t) &Java_java_lang_VMRuntime_nativeLoad },
+ { "mapLibraryName", "(Ljava/lang/String;)Ljava/lang/String;", (void *) (intptr_t) &Java_java_lang_VMRuntime_mapLibraryName },
+};
+
+
+/* _Jv_java_lang_VMRuntime_init ************************************************
+
+ Register native functions.
+
+*******************************************************************************/
+
+void _Jv_java_lang_VMRuntime_init(void)
+{
+ utf *u;
+
+ u = utf_new_char("java/lang/VMRuntime");
+
+ native_method_register(u, methods, NATIVE_METHODS_COUNT);
+}
+
+
/*
* Class: java/lang/VMRuntime
* Method: exit
* Signature: (I)V
*/
-JNIEXPORT void JNICALL Java_java_lang_VMRuntime_exit(JNIEnv *env, jclass clazz, s4 status)
+JNIEXPORT void JNICALL Java_java_lang_VMRuntime_exit(JNIEnv *env, jclass clazz, int32_t status)
{
_Jv_java_lang_Runtime_exit(status);
}
* Method: freeMemory
* Signature: ()J
*/
-JNIEXPORT s8 JNICALL Java_java_lang_VMRuntime_freeMemory(JNIEnv *env, jclass clazz)
+JNIEXPORT int64_t JNICALL Java_java_lang_VMRuntime_freeMemory(JNIEnv *env, jclass clazz)
{
return _Jv_java_lang_Runtime_freeMemory();
}
* Method: totalMemory
* Signature: ()J
*/
-JNIEXPORT s8 JNICALL Java_java_lang_VMRuntime_totalMemory(JNIEnv *env, jclass clazz)
+JNIEXPORT int64_t JNICALL Java_java_lang_VMRuntime_totalMemory(JNIEnv *env, jclass clazz)
{
return _Jv_java_lang_Runtime_totalMemory();
}
* Method: maxMemory
* Signature: ()J
*/
-JNIEXPORT s8 JNICALL Java_java_lang_VMRuntime_maxMemory(JNIEnv *env, jclass clazz)
+JNIEXPORT int64_t JNICALL Java_java_lang_VMRuntime_maxMemory(JNIEnv *env, jclass clazz)
{
return gc_get_max_heap_size();
}
* Method: runFinalizersOnExit
* Signature: (Z)V
*/
-JNIEXPORT void JNICALL Java_java_lang_VMRuntime_runFinalizersOnExit(JNIEnv *env, jclass clazz, s4 value)
+JNIEXPORT void JNICALL Java_java_lang_VMRuntime_runFinalizersOnExit(JNIEnv *env, jclass clazz, int32_t value)
{
_Jv_java_lang_Runtime_runFinalizersOnExit(value);
}
* Method: traceInstructions
* Signature: (Z)V
*/
-JNIEXPORT void JNICALL Java_java_lang_VMRuntime_traceInstructions(JNIEnv *env, jclass clazz, s4 par1)
+JNIEXPORT void JNICALL Java_java_lang_VMRuntime_traceInstructions(JNIEnv *env, jclass clazz, int32_t par1)
{
/* not supported */
}
* Method: traceMethodCalls
* Signature: (Z)V
*/
-JNIEXPORT void JNICALL Java_java_lang_VMRuntime_traceMethodCalls(JNIEnv *env, jclass clazz, s4 par1)
+JNIEXPORT void JNICALL Java_java_lang_VMRuntime_traceMethodCalls(JNIEnv *env, jclass clazz, int32_t par1)
{
/* not supported */
}
* Method: availableProcessors
* Signature: ()I
*/
-JNIEXPORT s4 JNICALL Java_java_lang_VMRuntime_availableProcessors(JNIEnv *env, jclass clazz)
+JNIEXPORT int32_t JNICALL Java_java_lang_VMRuntime_availableProcessors(JNIEnv *env, jclass clazz)
{
#if defined(_SC_NPROC_ONLN)
- return (s4) sysconf(_SC_NPROC_ONLN);
+ return (int32_t) sysconf(_SC_NPROC_ONLN);
#elif defined(_SC_NPROCESSORS_ONLN)
- return (s4) sysconf(_SC_NPROCESSORS_ONLN);
+ return (int32_t) sysconf(_SC_NPROCESSORS_ONLN);
#elif defined(__DARWIN__)
/* this should work in BSD */
len = sizeof(ncpu);
rc = sysctl(mib, 2, &ncpu, &len, NULL, 0);
- return (s4) ncpu;
+ return (int32_t) ncpu;
*/
host_basic_info_data_t hinfo;
return -1;
}
- return (s4) hinfo.avail_cpus;
+ return (int32_t) hinfo.avail_cpus;
#else
return 1;
* Method: nativeLoad
* Signature: (Ljava/lang/String;Ljava/lang/ClassLoader;)I
*/
-JNIEXPORT s4 JNICALL Java_java_lang_VMRuntime_nativeLoad(JNIEnv *env, jclass clazz, java_lang_String *libname, java_lang_ClassLoader *loader)
+JNIEXPORT int32_t JNICALL Java_java_lang_VMRuntime_nativeLoad(JNIEnv *env, jclass clazz, java_lang_String *libname, java_lang_ClassLoader *loader)
{
- java_objectheader *cl;
+ classloader *cl;
- cl = (java_objectheader *) loader;
+ cl = (classloader *) loader;
#if defined(ENABLE_JNI)
return _Jv_java_lang_Runtime_loadLibrary(env, libname, cl);
*/
JNIEXPORT java_lang_String* JNICALL Java_java_lang_VMRuntime_mapLibraryName(JNIEnv *env, jclass clazz, java_lang_String *libname)
{
- utf *u;
- char *buffer;
- s4 buffer_len;
- s4 dumpsize;
- java_objectheader *o;
+ utf *u;
+ char *buffer;
+ int32_t buffer_len;
+ int32_t dumpsize;
+ java_handle_t *o;
if (libname == NULL) {
exceptions_throw_nullpointerexception();
return NULL;
}
- u = javastring_toutf((java_objectheader *) libname, false);
+ u = javastring_toutf((java_handle_t *) libname, false);
/* calculate length of library name */