summaryrefslogtreecommitdiff
path: root/native
diff options
context:
space:
mode:
authorAndrew John Hughes <gnu_andrew@member.fsf.org>2006-12-26 02:35:21 +0000
committerAndrew John Hughes <gnu_andrew@member.fsf.org>2006-12-26 02:35:21 +0000
commitf40a51f2c912b89e6bf1c33c45f6a1237b07abd4 (patch)
treeb716d05680626b1f7fa0579d6253161b5130387b /native
parent5a73e90b8b50b652994933489a2aa122768fffc2 (diff)
downloadclasspath-f40a51f2c912b89e6bf1c33c45f6a1237b07abd4.tar.gz
2006-12-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
* NEWS: Mention 1.6 support for java.lang.management * configure.ac: Check for getloadavg. * examples/gnu/classpath/examples/management/TestOS.java: Print system load average. * gnu/java/lang/management/OperatingSystemMXBeanImpl.java: (getSystemLoadAverage()): Implemented. * include/Makefile.am: Add new header. * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Regenerated. * include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h: Generated. * java/lang/management/OperatingSystemMXBean.java: (getSystemLoadAverage()): Implemented. * native/jni/java-lang/Makefile.am: Add new native code. * native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c: New file. * vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java: Likewise.
Diffstat (limited to 'native')
-rw-r--r--native/jni/java-lang/Makefile.am4
-rw-r--r--native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c60
2 files changed, 63 insertions, 1 deletions
diff --git a/native/jni/java-lang/Makefile.am b/native/jni/java-lang/Makefile.am
index 366d72e4c..74065814e 100644
--- a/native/jni/java-lang/Makefile.am
+++ b/native/jni/java-lang/Makefile.am
@@ -1,4 +1,4 @@
-nativeexeclib_LTLIBRARIES = libjavalang.la libjavalangreflect.la
+nativeexeclib_LTLIBRARIES = libjavalang.la libjavalangreflect.la libjavalangmanagement.la
libjavalang_la_SOURCES = java_lang_VMSystem.c \
java_lang_VMFloat.c \
@@ -12,6 +12,8 @@ libjavalang_la_LIBADD = $(wildcard $(top_builddir)/native/fdlibm/*.lo) \
libjavalangreflect_la_SOURCES = java_lang_reflect_VMArray.c
+libjavalangmanagement_la_SOURCES = gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c
+
AM_LDFLAGS = @CLASSPATH_MODULE@
AM_CPPFLAGS = @CLASSPATH_INCLUDES@ -I$(top_srcdir)/native/fdlibm
AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@
diff --git a/native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c b/native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c
new file mode 100644
index 000000000..68e89b36a
--- /dev/null
+++ b/native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c
@@ -0,0 +1,60 @@
+/* VMOperatingSystemMXBeanImpl.c - gnu.java.lang.management native functions
+ Copyright (C) 2006
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+#include <config.h>
+#include <stdlib.h>
+
+#include "gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h"
+
+/*
+ * Class: gnu_java_lang_management_VMOperatingSystemMXBeanImpl
+ * Method: getSystemLoadAverage
+ * Signature: ()D
+ */
+JNIEXPORT jdouble JNICALL
+Java_gnu_java_lang_management_VMOperatingSystemMXBeanImpl_getSystemLoadAverage (JNIEnv * env __attribute__ ((__unused__)), jclass cls __attribute__ ((__unused__)))
+{
+#ifdef HAVE_GETLOADAVG
+ double avg[1];
+ int nos = getloadavg(avg, 1);
+ if (nos == 1)
+ return avg[0];
+ else
+#endif
+ return -1;
+}