bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

nproc: use pstat_getdynamic when it is available.


From: Bruno Haible
Subject: nproc: use pstat_getdynamic when it is available.
Date: Sun, 18 Oct 2009 10:42:28 +0200
User-agent: KMail/1.9.9

And this adds support for HP-UX to the nproc module.


2009-10-18  Bruno Haible  <address@hidden>

        Implement nproc for HP-UX.
        * lib/nproc.c: Include <sys/pstat.h>
        (num_processors): On HP-UX systems, try pstat_getdynamic.
        * m4/nproc.m4 (gl_PREREQ_NPROC): Check for sys/pstat.h and
        pstat_getdynamic.

--- lib/nproc.c.orig    2009-10-18 10:38:58.000000000 +0200
+++ lib/nproc.c 2009-10-18 10:38:54.000000000 +0200
@@ -25,6 +25,10 @@
 
 #include <sys/types.h>
 
+#if HAVE_SYS_PSTAT_H
+# include <sys/pstat.h>
+#endif
+
 #if HAVE_SYS_PARAM_H
 # include <sys/param.h>
 #endif
@@ -49,6 +53,15 @@
   }
 #endif
 
+#if HAVE_PSTAT_GETDYNAMIC
+  { /* This works on HP-UX.  */
+    struct pst_dynamic psd;
+    if (0 <= pstat_getdynamic (&psd, sizeof psd, 1, 0)
+       && 0 < psd.psd_proc_cnt)
+      return psd.psd_proc_cnt;
+  }
+#endif
+
 #if HAVE_SYSCTL && defined HW_NCPU
   { /* This works on MacOS X, FreeBSD, NetBSD, OpenBSD.  */
     int nprocs;
--- m4/nproc.m4.orig    2009-10-18 10:38:58.000000000 +0200
+++ m4/nproc.m4 2009-10-18 10:25:36.000000000 +0200
@@ -1,4 +1,4 @@
-# nproc.m4 serial 1
+# nproc.m4 serial 2
 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,7 @@
 # Prerequisites of lib/nproc.c.
 AC_DEFUN([gl_PREREQ_NPROC],
 [
-  AC_CHECK_HEADERS([sys/param.h],,, [AC_INCLUDES_DEFAULT])
+  AC_CHECK_HEADERS([sys/pstat.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 +20,5 @@
      # include <sys/param.h>
      #endif
     ])
-  AC_CHECK_FUNCS([sysctl])
+  AC_CHECK_FUNCS([pstat_getdynamic sysctl])
 ])




reply via email to

[Prev in Thread] Current Thread [Next in Thread]