Implement nproc for IRIX.
authorBruno Haible <bruno@clisp.org>
Sun, 18 Oct 2009 08:56:30 +0000 (10:56 +0200)
committerBruno Haible <bruno@clisp.org>
Sun, 18 Oct 2009 08:56:30 +0000 (10:56 +0200)
ChangeLog
lib/nproc.c
m4/nproc.m4

index c715d0a..5a820cd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 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.
        * lib/nproc.c: Include <sys/pstat.h>
        (num_processors): On HP-UX systems, try pstat_getdynamic.
index 48c0d8a..04a047c 100644 (file)
 # 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 @@ num_processors (void)
   }
 #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;
index 5bcae80..5e80fa6 100644 (file)
@@ -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 @@ AC_DEFUN([gl_NPROC],
 # 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 @@ AC_DEFUN([gl_PREREQ_NPROC],
      # include <sys/param.h>
      #endif
     ])
-  AC_CHECK_FUNCS([pstat_getdynamic sysctl])
+  AC_CHECK_FUNCS([pstat_getdynamic sysmp sysctl])
 ])