changeset 12178:9918c96ad4ac

Implement nproc for IRIX.
author Bruno Haible <bruno@clisp.org>
date Sun, 18 Oct 2009 10:56:30 +0200
parents 9ceaaf0610a5
children 70f69bf8b898
files ChangeLog lib/nproc.c m4/nproc.m4
diffstat 3 files changed, 26 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-10-18  Bruno Haible  <bruno@clisp.org>
+
+	Implement nproc for IRIX.
+	* lib/nproc.c: Include <sys/sysmp.h>.
+	(num_processors): On IRIX systems, try sysmp.
+	* m4/nproc.m4 (gl_PREREQ_NPROC): Check for sys/sysmp.h and sysmp.
+
 2009-10-18  Bruno Haible  <bruno@clisp.org>
 
 	Implement nproc for HP-UX.
--- a/lib/nproc.c
+++ b/lib/nproc.c
@@ -29,6 +29,10 @@
 # include <sys/pstat.h>
 #endif
 
+#if HAVE_SYS_SYSMP_H
+# include <sys/sysmp.h>
+#endif
+
 #if HAVE_SYS_PARAM_H
 # include <sys/param.h>
 #endif
@@ -62,6 +66,17 @@
   }
 #endif
 
+#if HAVE_SYSMP && defined MP_NAPROCS
+  { /* This works on IRIX.  */
+    /* MP_NPROCS yields the number of installed processors.
+       MP_NAPROCS yields the number of processors available to unprivileged
+       processes.  We need the latter.  */
+    int nprocs = sysmp (MP_NAPROCS);
+    if (0 < nprocs)
+      return nprocs;
+  }
+#endif
+
 #if HAVE_SYSCTL && defined HW_NCPU
   { /* This works on MacOS X, FreeBSD, NetBSD, OpenBSD.  */
     int nprocs;
--- a/m4/nproc.m4
+++ b/m4/nproc.m4
@@ -1,4 +1,4 @@
-# nproc.m4 serial 2
+# nproc.m4 serial 3
 dnl Copyright (C) 2009 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -12,7 +12,8 @@
 # Prerequisites of lib/nproc.c.
 AC_DEFUN([gl_PREREQ_NPROC],
 [
-  AC_CHECK_HEADERS([sys/pstat.h sys/param.h],,, [AC_INCLUDES_DEFAULT])
+  AC_CHECK_HEADERS([sys/pstat.h sys/sysmp.h sys/param.h],,,
+    [AC_INCLUDES_DEFAULT])
   dnl <sys/sysctl.h> requires <sys/param.h> on OpenBSD 4.0.
   AC_CHECK_HEADERS([sys/sysctl.h],,,
     [AC_INCLUDES_DEFAULT
@@ -20,5 +21,5 @@
      # include <sys/param.h>
      #endif
     ])
-  AC_CHECK_FUNCS([pstat_getdynamic sysctl])
+  AC_CHECK_FUNCS([pstat_getdynamic sysmp sysctl])
 ])