diff options
author | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2006-12-26 02:35:21 +0000 |
---|---|---|
committer | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2006-12-26 02:35:21 +0000 |
commit | f40a51f2c912b89e6bf1c33c45f6a1237b07abd4 (patch) | |
tree | b716d05680626b1f7fa0579d6253161b5130387b /native | |
parent | 5a73e90b8b50b652994933489a2aa122768fffc2 (diff) | |
download | classpath-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.am | 4 | ||||
-rw-r--r-- | native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c | 60 |
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; +} |