You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by hi...@apache.org on 2007/01/22 22:23:51 UTC
svn commit: r498815 -
/harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/port/unix/hysysinfo.c
Author: hindessm
Date: Mon Jan 22 13:23:50 2007
New Revision: 498815
URL: http://svn.apache.org/viewvc?view=rev&rev=498815
Log:
Attempt to implement some system info functions on FreeBSD.
Modified:
harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/port/unix/hysysinfo.c
Modified: harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/port/unix/hysysinfo.c
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/port/unix/hysysinfo.c?view=diff&rev=498815&r1=498814&r2=498815
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/port/unix/hysysinfo.c (original)
+++ harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/port/unix/hysysinfo.c Mon Jan 22 13:23:50 2007
@@ -38,6 +38,10 @@
#if defined(LINUX)
#include <sys/sysinfo.h>
#endif
+#if defined(FREEBSD)
+#include <sys/types.h>
+#include <sys/sysctl.h>
+#endif
#include <unistd.h>
@@ -644,7 +648,7 @@
UDATA VMCALL
hysysinfo_get_number_CPUs (struct HyPortLibrary * portLibrary)
{
-#if defined(LINUX)
+#if defined(LINUX) || defined(FREEBSD)
/* returns number of online(_SC_NPROCESSORS_ONLN) processors, number configured(_SC_NPROCESSORS_CONF) may be more than online */
return sysconf (_SC_NPROCESSORS_ONLN);
#else
@@ -667,6 +671,18 @@
hysysinfo_get_physical_memory (struct HyPortLibrary * portLibrary)
{
+#if defined(FREEBSD)
+ /* derived from examples in sysctl(3) man page */
+ int mib[2], mem;
+ size_t len;
+
+ mib[0] = CTL_HW;
+ mib[1] = HW_PHYSMEM;
+ len = sizeof(mem);
+ sysctl(mib, 2, &mem, &len, NULL, 0);
+ return (U_64)mem;
+
+#else
IDATA pagesize, num_pages;
pagesize = sysconf (_SC_PAGESIZE);
@@ -680,6 +696,7 @@
{
return (U_64) pagesize *num_pages;
}
+#endif
}