Mercurial > emacs
comparison 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 |
comparison
equal
deleted
inserted
replaced
11787:635f5fb5d82a | 11788:3a2d34fad6fb |
---|---|
208 | 208 |
209 #if defined(alliant) && defined(i860) /* Alliant FX/2800 */ | 209 #if defined(alliant) && defined(i860) /* Alliant FX/2800 */ |
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 |
216 /* <sys/param.h> defines an incorrect value for FSCALE on Alpha OSF/1, | 220 /* <sys/param.h> defines an incorrect value for FSCALE on Alpha OSF/1, |
217 according to ghazi@noc.rutgers.edu. */ | 221 according to ghazi@noc.rutgers.edu. */ |
252 | 256 |
253 #ifdef tek4300 | 257 #ifdef tek4300 |
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) |
260 #define LDAV_CVT(n) (((double) (n)) / FSCALE) | 268 #define LDAV_CVT(n) (((double) (n)) / FSCALE) |
261 #endif | 269 #endif |
313 | 321 |
314 #if defined(alliant) && defined(i860) /* Alliant FX/2800 */ | 322 #if defined(alliant) && defined(i860) /* Alliant FX/2800 */ |
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 |
321 #if defined(sgi) || (defined(mips) && !defined(BSD)) | 333 #if defined(sgi) || (defined(mips) && !defined(BSD)) |
322 #define FIXUP_KERNEL_SYMBOL_ADDR(nl) ((nl)[0].n_value &= ~(1 << 31)) | 334 #define FIXUP_KERNEL_SYMBOL_ADDR(nl) ((nl)[0].n_value &= ~(1 << 31)) |
338 | 350 |
339 #if !defined (LDAV_SYMBOL) && defined (alliant) | 351 #if !defined (LDAV_SYMBOL) && defined (alliant) |
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 |
347 #ifdef HAVE_UNISTD_H | 359 #ifdef HAVE_UNISTD_H |
348 #include <unistd.h> | 360 #include <unistd.h> |
788 nl[1].n_name = 0; | 800 nl[1].n_name = 0; |
789 #endif /* not NLIST_NAME_UNION */ | 801 #endif /* not NLIST_NAME_UNION */ |
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; |
818 } | |
819 #endif /* !SUNOS_5 */ | |
820 #else /* sgi */ | |
821 int ldav_off; | |
822 | |
823 ldav_off = sysmp (MP_KERNADDR, MPKA_AVENRUN); | |
824 if (ldav_off != -1) | |
825 offset = (long) ldav_off & 0x7fffffff; | |
826 #endif /* sgi */ | |
800 } | 827 } |
801 #endif /* !SUNOS_5 */ | |
802 #else /* sgi */ | |
803 int ldav_off; | |
804 | |
805 ldav_off = sysmp (MP_KERNADDR, MPKA_AVENRUN); | |
806 if (ldav_off != -1) | |
807 offset = (long) ldav_off & 0x7fffffff; | |
808 #endif /* sgi */ | |
809 } | |
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) |
813 { | 831 { |
814 #ifndef SUNOS_5 | 832 #ifndef SUNOS_5 |