[kaffe] CVS kaffe (robilad): Merged in availableProcessors implementation from CACAO and added glibc support

Kaffe CVS cvs-commits at kaffe.org
Wed Sep 14 20:41:00 PDT 2005


PatchSet 6903 
Date: 2005/09/15 03:35:37
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
Merged in availableProcessors implementation from CACAO and added glibc support

2005-09-15  Dalibor Topic  <robilad at kaffe.org>

        * libraries/clib/native/VMRuntime.c:
        New file. Taken from CACAO, and improved the
        availableProcessors implementation.
        Licensed under the GPL.

        * THIRDPARTY: Updated to reflect CACAO code.

Members: 
	ChangeLog:1.4424->1.4425 
	THIRDPARTY:1.36->1.37 
	configure:1.484->1.485 
	configure.ac:1.166->1.167 
	config/config.h.in:1.151->1.152 
	libraries/clib/native/Makefile.am:1.48->1.49 
	libraries/clib/native/Makefile.in:1.189->1.190 
	libraries/clib/native/Runtime.c:1.37->1.38 
	libraries/clib/native/VMRuntime.c:INITIAL->1.1 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4424 kaffe/ChangeLog:1.4425
--- kaffe/ChangeLog:1.4424	Thu Sep 15 02:25:31 2005
+++ kaffe/ChangeLog	Thu Sep 15 03:35:37 2005
@@ -1,5 +1,14 @@
 2005-09-15  Dalibor Topic  <robilad at kaffe.org>
 
+	* libraries/clib/native/VMRuntime.c:
+	New file. Taken from CACAO, and improved the
+	availableProcessors implementation. 
+	Licensed under the GPL.
+
+	* THIRDPARTY: Updated to reflect CACAO code.
+
+2005-09-15  Dalibor Topic  <robilad at kaffe.org>
+
 	Resynced with GNU Classpath.
 
 	2005-09-14  Roman Kennke  <kennke at aicas.com>
Index: kaffe/THIRDPARTY
diff -u kaffe/THIRDPARTY:1.36 kaffe/THIRDPARTY:1.37
--- kaffe/THIRDPARTY:1.36	Thu Jul  7 00:37:58 2005
+++ kaffe/THIRDPARTY	Thu Sep 15 03:35:40 2005
@@ -761,3 +761,26 @@
   shall not be used in advertising or otherwise to promote the sale, use
   or other dealings in these Data Files or Software without prior
   written authorization of the copyright holder.
+
+* libraries/clib/native/VMRuntime.c
+
+  This file comes from CACAO. More information on CACAO is available from
+  http://www.cacaojvm.org. Kaffe tracks this file's CVS HEAD.
+
+  This file is distributed under the following terms:
+
+     This program 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.
+
+   This program 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 this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+   02111-1307, USA.
+
Index: kaffe/configure
diff -u kaffe/configure:1.484 kaffe/configure:1.485
--- kaffe/configure:1.484	Fri Sep  9 15:54:18 2005
+++ kaffe/configure	Thu Sep 15 03:35:40 2005
@@ -30060,6 +30060,7 @@
 
 
 
+
 for ac_header in stdarg.h \
 alloca.h \
 bsd/libc.h \
@@ -30072,6 +30073,7 @@
 jpeglib.h \
 kernel/OS.h \
 limits.h \
+mach/mach.h \
 mach-o/rld.h \
 malloc.h \
 memory.h \
@@ -30096,16 +30098,16 @@
 sys/param.h \
 sys/poll.h \
 sys/select.h \
+sys/signal.h \
 sys/socket.h \
+sys/sockio.h \
 sys/stat.h \
+sys/sysctl.h \
+sys/sysinfo.h \
 sys/time.h \
 sys/types.h \
 sys/utsname.h \
-sys/sysctl.h \
-sys/param.h \
-sys/signal.h \
 sys/ucontext.h \
-sys/sockio.h \
 syslog.h \
 time.h \
 unistd.h \
@@ -38653,7 +38655,8 @@
 done
 
 
-for ac_func in localtime
+
+for ac_func in localtime get_nprocs_conf
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
Index: kaffe/configure.ac
diff -u kaffe/configure.ac:1.166 kaffe/configure.ac:1.167
--- kaffe/configure.ac:1.166	Fri Sep  9 15:54:24 2005
+++ kaffe/configure.ac	Thu Sep 15 03:35:47 2005
@@ -1017,6 +1017,7 @@
 jpeglib.h \
 kernel/OS.h \
 limits.h \
+mach/mach.h \
 mach-o/rld.h \
 malloc.h \
 memory.h \
@@ -1041,16 +1042,16 @@
 sys/param.h \
 sys/poll.h \
 sys/select.h \
+sys/signal.h \
 sys/socket.h \
+sys/sockio.h \
 sys/stat.h \
+sys/sysctl.h \
+sys/sysinfo.h \
 sys/time.h \
 sys/types.h \
 sys/utsname.h \
-sys/sysctl.h \
-sys/param.h \
-sys/signal.h \
 sys/ucontext.h \
-sys/sockio.h \
 syslog.h \
 time.h \
 unistd.h \
@@ -1352,7 +1353,7 @@
 AC_CHECK_FUNCS([memcpy memmove])
 AC_CHECK_FUNCS([mkdir rmdir])
 AC_CHECK_FUNCS([getcwd chdir getwd gettimeofday ftime time uname getuid])
-AC_CHECK_FUNCS([localtime])
+AC_CHECK_FUNCS([localtime get_nprocs_conf])
 AC_CHECK_FUNCS([munmap mincore msync madvise getpagesize sysconf])
 
 AM_ICONV
Index: kaffe/config/config.h.in
diff -u kaffe/config/config.h.in:1.151 kaffe/config/config.h.in:1.152
--- kaffe/config/config.h.in:1.151	Sun Aug 21 18:01:01 2005
+++ kaffe/config/config.h.in	Thu Sep 15 03:35:48 2005
@@ -186,6 +186,9 @@
 /* Define to 1 if you have the `getwd' function. */
 #undef HAVE_GETWD
 
+/* Define to 1 if you have the `get_nprocs_conf' function. */
+#undef HAVE_GET_NPROCS_CONF
+
 /* Do we have the right version of libungif */
 #undef HAVE_GIF_LIB_H
 
@@ -317,6 +320,9 @@
 /* Define to 1 if you have the `localtime' function. */
 #undef HAVE_LOCALTIME
 
+/* Define to 1 if you have the <mach/mach.h> header file. */
+#undef HAVE_MACH_MACH_H
+
 /* Define to 1 if you have the <mach-o/rld.h> header file. */
 #undef HAVE_MACH_O_RLD_H
 
@@ -636,6 +642,9 @@
 
 /* Define to 1 if you have the <sys/sysctl.h> header file. */
 #undef HAVE_SYS_SYSCTL_H
+
+/* Define to 1 if you have the <sys/sysinfo.h> header file. */
+#undef HAVE_SYS_SYSINFO_H
 
 /* Define to 1 if you have the <sys/time.h> header file. */
 #undef HAVE_SYS_TIME_H
Index: kaffe/libraries/clib/native/Makefile.am
diff -u kaffe/libraries/clib/native/Makefile.am:1.48 kaffe/libraries/clib/native/Makefile.am:1.49
--- kaffe/libraries/clib/native/Makefile.am:1.48	Tue Jul 19 01:16:31 2005
+++ kaffe/libraries/clib/native/Makefile.am	Thu Sep 15 03:35:49 2005
@@ -30,6 +30,7 @@
 		ClassLoader.c \
 		Object.c \
 		Runtime.c \
+		VMRuntime.c \
 		String.c \
 		System.c \
 		Thread.c \
Index: kaffe/libraries/clib/native/Makefile.in
diff -u kaffe/libraries/clib/native/Makefile.in:1.189 kaffe/libraries/clib/native/Makefile.in:1.190
--- kaffe/libraries/clib/native/Makefile.in:1.189	Thu Aug 25 19:22:02 2005
+++ kaffe/libraries/clib/native/Makefile.in	Thu Sep 15 03:35:49 2005
@@ -97,9 +97,10 @@
 	libnative_la-java_lang_VMProcess.lo \
 	libnative_la-java_lang_VMSystem.lo libnative_la-Class.lo \
 	libnative_la-ClassLoader.lo libnative_la-Object.lo \
-	libnative_la-Runtime.lo libnative_la-String.lo \
-	libnative_la-System.lo libnative_la-Thread.lo \
-	libnative_la-Throwable.lo libnative_la-ZipFile.lo
+	libnative_la-Runtime.lo libnative_la-VMRuntime.lo \
+	libnative_la-String.lo libnative_la-System.lo \
+	libnative_la-Thread.lo libnative_la-Throwable.lo \
+	libnative_la-ZipFile.lo
 am__objects_2 = libnative_la-Array.lo libnative_la-Constructor.lo \
 	libnative_la-Field.lo libnative_la-Method.lo
 am__objects_3 = libnative_la-AccessController.lo
@@ -426,6 +427,7 @@
 		ClassLoader.c \
 		Object.c \
 		Runtime.c \
+		VMRuntime.c \
 		String.c \
 		System.c \
 		Thread.c \
@@ -563,6 +565,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libnative_la-Thread.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libnative_la-Throwable.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libnative_la-TimeZone.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libnative_la-VMRuntime.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libnative_la-ZipFile.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libnative_la-gnu_classpath_VMStackWalker.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libnative_la-gnu_classpath_VMSystemProperties.Plo at am__quote@
@@ -670,6 +673,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='Runtime.c' object='libnative_la-Runtime.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnative_la_CFLAGS) $(CFLAGS) -c -o libnative_la-Runtime.lo `test -f 'Runtime.c' || echo '$(srcdir)/'`Runtime.c
+
+libnative_la-VMRuntime.lo: VMRuntime.c
+ at am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnative_la_CFLAGS) $(CFLAGS) -MT libnative_la-VMRuntime.lo -MD -MP -MF "$(DEPDIR)/libnative_la-VMRuntime.Tpo" -c -o libnative_la-VMRuntime.lo `test -f 'VMRuntime.c' || echo '$(srcdir)/'`VMRuntime.c; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libnative_la-VMRuntime.Tpo" "$(DEPDIR)/libnative_la-VMRuntime.Plo"; else rm -f "$(DEPDIR)/libnative_la-VMRuntime.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='VMRuntime.c' object='libnative_la-VMRuntime.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnative_la_CFLAGS) $(CFLAGS) -c -o libnative_la-VMRuntime.lo `test -f 'VMRuntime.c' || echo '$(srcdir)/'`VMRuntime.c
 
 libnative_la-String.lo: String.c
 @am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnative_la_CFLAGS) $(CFLAGS) -MT libnative_la-String.lo -MD -MP -MF "$(DEPDIR)/libnative_la-String.Tpo" -c -o libnative_la-String.lo `test -f 'String.c' || echo '$(srcdir)/'`String.c; \
Index: kaffe/libraries/clib/native/Runtime.c
diff -u kaffe/libraries/clib/native/Runtime.c:1.37 kaffe/libraries/clib/native/Runtime.c:1.38
--- kaffe/libraries/clib/native/Runtime.c:1.37	Sun Aug 21 18:01:02 2005
+++ kaffe/libraries/clib/native/Runtime.c	Thu Sep 15 03:35:49 2005
@@ -35,11 +35,6 @@
 
 extern jboolean runFinalizerOnExit;
 
-/** TODO
- *
- * availableProcessors
- */
-
 /*
  * Exit this VM
  */
===================================================================
Checking out kaffe/libraries/clib/native/VMRuntime.c
RCS:  /home/cvs/kaffe/kaffe/libraries/clib/native/VMRuntime.c,v
VERS: 1.1
***************
--- /dev/null	Sun Aug  4 19:57:58 2002
+++ kaffe/libraries/clib/native/VMRuntime.c	Thu Sep 15 03:41:00 2005
@@ -0,0 +1,100 @@
+/* src/native/vm/VMRuntime.c - java/lang/VMRuntime
+
+   Copyright (C) 1996-2005 R. Grafl, A. Krall, C. Kruegel, C. Oates,
+   R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner,
+   C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, J. Wenninger,
+   Institut f. Computersprachen - TU Wien
+
+   Copyright (C) 2005 Dalibor Topic
+
+   This file was taken from CACAO. More information on CACAO project
+   is available at http://www.cacaojvm.org
+
+   This program 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.
+
+   This program 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 this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+   02111-1307, USA.
+
+   Contact: cacao at complang.tuwien.ac.at
+
+   Authors: Roman Obermaiser
+
+   Changes: Joseph Wenninger
+            Christian Thalinger
+            Dalibor Topic
+*/
+
+#include "config.h"
+
+#include <stdlib.h>
+
+#if defined(HAVE_UNISTD_H)
+#include <unistd.h>
+#endif
+
+#if defined(HAVE_SYS_SYSINFO_H)
+#include <sys/sysinfo.h>
+#endif
+
+#if defined(HAVE_MACH_MACH_H)
+# include <mach/mach.h>
+#endif
+
+#include "jni.h"
+
+/*
+ * Class:     java_lang_Runtime
+ * Method:    availableProcessors
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_java_lang_VMRuntime_availableProcessors(JNIEnv *env, jclass clazz)
+{
+#if defined(HAVE_GET_NPROCS_CONF)
+	return get_nprocs_conf();
+#elif defined(_SC_NPROC_ONLN)
+	return (jint) sysconf(_SC_NPROC_ONLN);
+
+#elif defined(_SC_NPROCESSORS_ONLN)
+	return (jint) sysconf(_SC_NPROCESSORS_ONLN);
+
+#elif defined(__DARWIN__)
+	/* this should work in BSD */
+	/*
+	int ncpu, mib[2], rc;
+	size_t len;
+
+	mib[0] = CTL_HW;
+	mib[1] = HW_NCPU;
+	len = sizeof(ncpu);
+	rc = sysctl(mib, 2, &ncpu, &len, NULL, 0);
+
+	return (jint) ncpu;
+	*/
+
+	host_basic_info_data_t hinfo;
+	mach_msg_type_number_t hinfo_count = HOST_BASIC_INFO_COUNT;
+	kern_return_t rc;
+
+	rc = host_info(mach_host_self(), HOST_BASIC_INFO,
+				   (host_info_t) &hinfo, &hinfo_count);
+ 
+	if (rc != KERN_SUCCESS) {
+		return -1;
+	}
+
+    return (jint) hinfo.avail_cpus;
+
+#else
+	return 1;
+#endif
+}



More information about the kaffe mailing list