diff options
-rw-r--r-- | getloadavg.c | 46 |
1 files changed, 32 insertions, 14 deletions
diff --git a/getloadavg.c b/getloadavg.c index f03e22e..3d805ab 100644 --- a/getloadavg.c +++ b/getloadavg.c @@ -210,6 +210,10 @@ extern int errno; #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 @@ extern int errno; #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 @@ extern int errno; #define NLIST_STRUCT #endif +#ifdef _AIX +#define NLIST_STRUCT +#endif + #endif /* defined (NLIST_STRUCT) */ @@ -340,7 +352,7 @@ extern int errno; #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 @@ getloadavg (loadavg, nelem) #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; - } -#endif /* !SUNOS_5 */ -#else /* sgi */ - int ldav_off; + 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; + 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) |