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'.
This commit is contained in:
Roland McGrath 1995-05-10 15:03:48 +00:00
parent d6c62b351f
commit 7acd99c5e6

View file

@ -210,6 +210,10 @@ extern int errno;
#define LOAD_AVE_TYPE long #define LOAD_AVE_TYPE long
#endif #endif
#ifdef _AIX
#define LOAD_AVE_TYPE long
#endif
#endif /* No LOAD_AVE_TYPE. */ #endif /* No LOAD_AVE_TYPE. */
#ifdef OSF_ALPHA #ifdef OSF_ALPHA
@ -254,6 +258,10 @@ extern int errno;
#define FSCALE 100.0 #define FSCALE 100.0
#endif #endif
#ifdef _AIX
#define FSCALE 65536.0
#endif
#endif /* Not FSCALE. */ #endif /* Not FSCALE. */
#if !defined (LDAV_CVT) && defined (FSCALE) #if !defined (LDAV_CVT) && defined (FSCALE)
@ -315,6 +323,10 @@ extern int errno;
#define NLIST_STRUCT #define NLIST_STRUCT
#endif #endif
#ifdef _AIX
#define NLIST_STRUCT
#endif
#endif /* defined (NLIST_STRUCT) */ #endif /* defined (NLIST_STRUCT) */
@ -340,7 +352,7 @@ extern int errno;
#define LDAV_SYMBOL "_Loadavg" #define LDAV_SYMBOL "_Loadavg"
#endif #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" #define LDAV_SYMBOL "avenrun"
#endif #endif
@ -790,23 +802,29 @@ getloadavg (loadavg, nelem)
#endif /* NLIST_STRUCT */ #endif /* NLIST_STRUCT */
#ifndef SUNOS_5 #ifndef SUNOS_5
if (nlist (KERNEL_FILE, nl) >= 0) if (
/* Omit "&& nl[0].n_type != 0 " -- it breaks on Sun386i. */ #ifndef _AIX
{ nlist (KERNEL_FILE, nl)
#ifdef FIXUP_KERNEL_SYMBOL_ADDR #else /* _AIX */
FIXUP_KERNEL_SYMBOL_ADDR (nl); knlist (nl, 1, sizeof (nl[0]))
#endif #endif
offset = nl[0].n_value; >= 0)
} /* Omit "&& nl[0].n_type != 0 " -- it breaks on Sun386i. */
#endif /* !SUNOS_5 */ {
#else /* sgi */ #ifdef FIXUP_KERNEL_SYMBOL_ADDR
int ldav_off; FIXUP_KERNEL_SYMBOL_ADDR (nl);
#endif
offset = nl[0].n_value;
}
#endif /* !SUNOS_5 */
#else /* sgi */
int ldav_off;
ldav_off = sysmp (MP_KERNADDR, MPKA_AVENRUN); ldav_off = sysmp (MP_KERNADDR, MPKA_AVENRUN);
if (ldav_off != -1) if (ldav_off != -1)
offset = (long) ldav_off & 0x7fffffff; offset = (long) ldav_off & 0x7fffffff;
#endif /* sgi */ #endif /* sgi */
} }
/* Make sure we have /dev/kmem open. */ /* Make sure we have /dev/kmem open. */
if (!getloadavg_initialized) if (!getloadavg_initialized)