aboutsummaryrefslogtreecommitdiffstats
path: root/src/getloadavg.c
diff options
context:
space:
mode:
authorRoland McGrath1995-05-10 15:03:48 +0000
committerRoland McGrath1995-05-10 15:03:48 +0000
commitbc77c95cdea2e5acd105613cb30fdff901f8a160 (patch)
treeed750194f4fa61c2adb8b1b94bd13330db536082 /src/getloadavg.c
parente9e7f5f226df28ed883dc96324094437ea04563e (diff)
downloademacs-bc77c95cdea2e5acd105613cb30fdff901f8a160.tar.gz
emacs-bc77c95cdea2e5acd105613cb30fdff901f8a160.zip
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'.
Diffstat (limited to 'src/getloadavg.c')
-rw-r--r--src/getloadavg.c46
1 files changed, 32 insertions, 14 deletions
diff --git a/src/getloadavg.c b/src/getloadavg.c
index f03e22e008b..3d805ab52f0 100644
--- a/src/getloadavg.c
+++ b/src/getloadavg.c
@@ -210,6 +210,10 @@ extern int errno;
210#define LOAD_AVE_TYPE long 210#define LOAD_AVE_TYPE long
211#endif 211#endif
212 212
213#ifdef _AIX
214#define LOAD_AVE_TYPE long
215#endif
216
213#endif /* No LOAD_AVE_TYPE. */ 217#endif /* No LOAD_AVE_TYPE. */
214 218
215#ifdef OSF_ALPHA 219#ifdef OSF_ALPHA
@@ -254,6 +258,10 @@ extern int errno;
254#define FSCALE 100.0 258#define FSCALE 100.0
255#endif 259#endif
256 260
261#ifdef _AIX
262#define FSCALE 65536.0
263#endif
264
257#endif /* Not FSCALE. */ 265#endif /* Not FSCALE. */
258 266
259#if !defined (LDAV_CVT) && defined (FSCALE) 267#if !defined (LDAV_CVT) && defined (FSCALE)
@@ -315,6 +323,10 @@ extern int errno;
315#define NLIST_STRUCT 323#define NLIST_STRUCT
316#endif 324#endif
317 325
326#ifdef _AIX
327#define NLIST_STRUCT
328#endif
329
318#endif /* defined (NLIST_STRUCT) */ 330#endif /* defined (NLIST_STRUCT) */
319 331
320 332
@@ -340,7 +352,7 @@ extern int errno;
340#define LDAV_SYMBOL "_Loadavg" 352#define LDAV_SYMBOL "_Loadavg"
341#endif 353#endif
342 354
343#if !defined(LDAV_SYMBOL) && ((defined(hpux) && !defined(hp9000s300)) || defined(_SEQUENT_) || defined(SVR4) || defined(ISC) || defined(sgi) || (defined (ardent) && defined (titan))) 355#if !defined(LDAV_SYMBOL) && ((defined(hpux) && !defined(hp9000s300)) || defined(_SEQUENT_) || defined(SVR4) || defined(ISC) || defined(sgi) || (defined (ardent) && defined (titan)) || defined (_AIX))
344#define LDAV_SYMBOL "avenrun" 356#define LDAV_SYMBOL "avenrun"
345#endif 357#endif
346 358
@@ -790,23 +802,29 @@ getloadavg (loadavg, nelem)
790#endif /* NLIST_STRUCT */ 802#endif /* NLIST_STRUCT */
791 803
792#ifndef SUNOS_5 804#ifndef SUNOS_5
793 if (nlist (KERNEL_FILE, nl) >= 0) 805 if (
794 /* Omit "&& nl[0].n_type != 0 " -- it breaks on Sun386i. */ 806#ifndef _AIX
795 { 807 nlist (KERNEL_FILE, nl)
808#else /* _AIX */
809 knlist (nl, 1, sizeof (nl[0]))
810#endif
811 >= 0)
812 /* Omit "&& nl[0].n_type != 0 " -- it breaks on Sun386i. */
813 {
796#ifdef FIXUP_KERNEL_SYMBOL_ADDR 814#ifdef FIXUP_KERNEL_SYMBOL_ADDR
797 FIXUP_KERNEL_SYMBOL_ADDR (nl); 815 FIXUP_KERNEL_SYMBOL_ADDR (nl);
798#endif 816#endif
799 offset = nl[0].n_value; 817 offset = nl[0].n_value;
800 } 818 }
801#endif /* !SUNOS_5 */ 819#endif /* !SUNOS_5 */
802#else /* sgi */ 820#else /* sgi */
803 int ldav_off; 821 int ldav_off;
804 822
805 ldav_off = sysmp (MP_KERNADDR, MPKA_AVENRUN); 823 ldav_off = sysmp (MP_KERNADDR, MPKA_AVENRUN);
806 if (ldav_off != -1) 824 if (ldav_off != -1)
807 offset = (long) ldav_off & 0x7fffffff; 825 offset = (long) ldav_off & 0x7fffffff;
808#endif /* sgi */ 826#endif /* sgi */
809 } 827 }
810 828
811 /* Make sure we have /dev/kmem open. */ 829 /* Make sure we have /dev/kmem open. */
812 if (!getloadavg_initialized) 830 if (!getloadavg_initialized)