diff src/getloadavg.c @ 11788:3a2d34fad6fb make-3-73-3 make-3-74

AIX support from Tim Bell <tbel@afsmail.cern.ch>: [_AIX] (LOAD_AVE_TYPE, FSCALE, NLIST_STRUCT): Define these for AIX. (getloadavg) [_AIX]: Use `knlist' instead of `nlist'.
author Roland McGrath <roland@gnu.org>
date Wed, 10 May 1995 15:03:48 +0000
parents f9f787d5e5ff
children 443ebb2a278a
line wrap: on
line diff
--- a/src/getloadavg.c	Tue May 09 21:36:53 1995 +0000
+++ b/src/getloadavg.c	Wed May 10 15:03:48 1995 +0000
@@ -210,6 +210,10 @@
 #define LOAD_AVE_TYPE long
 #endif
 
+#ifdef _AIX
+#define LOAD_AVE_TYPE long
+#endif
+
 #endif /* No LOAD_AVE_TYPE.  */
 
 #ifdef OSF_ALPHA
@@ -254,6 +258,10 @@
 #define FSCALE 100.0
 #endif
 
+#ifdef _AIX
+#define FSCALE 65536.0
+#endif
+
 #endif	/* Not FSCALE.  */
 
 #if !defined (LDAV_CVT) && defined (FSCALE)
@@ -315,6 +323,10 @@
 #define NLIST_STRUCT
 #endif
 
+#ifdef _AIX
+#define NLIST_STRUCT
+#endif
+
 #endif /* defined (NLIST_STRUCT) */
 
 
@@ -340,7 +352,7 @@
 #define LDAV_SYMBOL "_Loadavg"
 #endif
 
-#if !defined(LDAV_SYMBOL) && ((defined(hpux) && !defined(hp9000s300)) || defined(_SEQUENT_) || defined(SVR4) || defined(ISC) || defined(sgi) || (defined (ardent) && defined (titan)))
+#if !defined(LDAV_SYMBOL) && ((defined(hpux) && !defined(hp9000s300)) || defined(_SEQUENT_) || defined(SVR4) || defined(ISC) || defined(sgi) || (defined (ardent) && defined (titan)) || defined (_AIX))
 #define LDAV_SYMBOL "avenrun"
 #endif
 
@@ -790,23 +802,29 @@
 #endif /* NLIST_STRUCT */
 
 #ifndef SUNOS_5
-      if (nlist (KERNEL_FILE, nl) >= 0)
-	/* Omit "&& nl[0].n_type != 0 " -- it breaks on Sun386i.  */
-	{
+      if (
+#ifndef _AIX
+	  nlist (KERNEL_FILE, nl)
+#else  /* _AIX */
+	  knlist (nl, 1, sizeof (nl[0]))
+#endif
+	  >= 0)
+	  /* Omit "&& nl[0].n_type != 0 " -- it breaks on Sun386i.  */
+	  {
 #ifdef FIXUP_KERNEL_SYMBOL_ADDR
-	  FIXUP_KERNEL_SYMBOL_ADDR (nl);
+	    FIXUP_KERNEL_SYMBOL_ADDR (nl);
 #endif
-	  offset = nl[0].n_value;
+	    offset = nl[0].n_value;
+	  }
+#endif /* !SUNOS_5 */
+#else  /* sgi */
+	  int ldav_off;
+
+	  ldav_off = sysmp (MP_KERNADDR, MPKA_AVENRUN);
+	  if (ldav_off != -1)
+	  offset = (long) ldav_off & 0x7fffffff;
+#endif /* sgi */
 	}
-#endif  /* !SUNOS_5 */
-#else /* sgi */
-      int ldav_off;
-
-      ldav_off = sysmp (MP_KERNADDR, MPKA_AVENRUN);
-      if (ldav_off != -1)
-	offset = (long) ldav_off & 0x7fffffff;
-#endif /* sgi */
-    }
 
   /* Make sure we have /dev/kmem open.  */
   if (!getloadavg_initialized)