Mercurial > hg > xemacs-beta
diff src/getloadavg.c @ 412:697ef44129c6 r21-2-14
Import from CVS: tag r21-2-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:20:41 +0200 |
parents | de805c49cfc1 |
children | 11054d720c21 |
line wrap: on
line diff
--- a/src/getloadavg.c Mon Aug 13 11:19:22 2007 +0200 +++ b/src/getloadavg.c Mon Aug 13 11:20:41 2007 +0200 @@ -44,6 +44,7 @@ convex DGUX hpux + MSDOS No-op for MSDOS. NeXT sgi sequent Sequent Dynix 3.x.x (BSD) @@ -51,7 +52,7 @@ sony_news NEWS-OS (works at least for 4.1C) UMAX UMAX4_3 - WIN32_NATIVE No-op for Windows95/NT. + WIN32 No-op for Windows95/NT. __linux__ Linux: assumes /proc filesystem mounted. Support from Michael K. Johnson. __NetBSD__ NetBSD: assumes /kern filesystem mounted. @@ -68,11 +69,8 @@ #include <config.h> #endif -#include "lisp.h" -#include "sysfile.h" /* for encapsulated open, close, read, write */ - -#ifndef WIN32_NATIVE -#ifndef CYGWIN +#ifndef WINDOWSNT +#ifndef __CYGWIN32__ #include <sys/types.h> @@ -83,6 +81,10 @@ #include <sys/param.h> #endif +#ifdef XEMACS +#include "lisp.h" +#include "sysfile.h" /* for encapsulated open, close, read, write */ +#endif /* XEMACS */ /* Exclude all the code except the test program at the end if the system has its own `getloadavg' function. @@ -92,6 +94,10 @@ #include <errno.h> +#ifndef errno +extern int errno; +#endif + #ifndef HAVE_GETLOADAVG /* The existing Emacs configuration files define a macro called @@ -108,9 +114,11 @@ #define LDAV_CVT(n) (LOAD_AVE_CVT (n) / 100.0) #endif +#ifdef XEMACS #if defined (HAVE_KSTAT_H) #include <kstat.h> #endif /* HAVE_KSTAT_H */ +#endif /* XEMACS */ #if !defined (BSD) && defined (ultrix) /* Ultrix behaves like BSD on Vaxen. */ @@ -453,9 +461,11 @@ #include <sys/dg_sys_info.h> #endif +#ifdef XEMACS #if defined (HAVE_SYS_PSTAT_H) #include <sys/pstat.h> #endif /* HAVE_SYS_PSTAT_H (on HPUX) */ +#endif /* XEMACS */ #if defined(HAVE_FCNTL_H) || defined(_POSIX_VERSION) #include <fcntl.h> @@ -526,7 +536,7 @@ privileges to use it. Initial implementation courtesy Zlatko Calusic <zcalusic@carnet.hr>. - Integrated to XEmacs by Hrvoje Niksic <hniksic@xemacs.org>. + Integrated to XEmacs by Hrvoje Niksic <hniksic@srce.hr>. Additional cleanup by Hrvoje Niksic, based on code published by Casper Dik <Casper.Dik@Holland.Sun.Com>. */ kstat_ctl_t *kc; @@ -762,6 +772,31 @@ loadavg[elem++] = load_info.fifteen_minute; #endif /* DGUX */ +#if !defined (LDAV_DONE) && defined (apollo) +#define LDAV_DONE +/* Apollo code from lisch@mentorg.com (Ray Lischner). + + This system call is not documented. The load average is obtained as + three long integers, for the load average over the past minute, + five minutes, and fifteen minutes. Each value is a scaled integer, + with 16 bits of integer part and 16 bits of fraction part. + + I'm not sure which operating system first supported this system call, + but I know that SR10.2 supports it. */ + + extern void proc1_$get_loadav (); + unsigned long load_ave[3]; + + proc1_$get_loadav (load_ave); + + if (nelem > 0) + loadavg[elem++] = load_ave[0] / 65536.0; + if (nelem > 1) + loadavg[elem++] = load_ave[1] / 65536.0; + if (nelem > 2) + loadavg[elem++] = load_ave[2] / 65536.0; +#endif /* apollo */ + #if !defined (LDAV_DONE) && defined (OSF_MIPS) #define LDAV_DONE @@ -773,7 +808,7 @@ : (load_ave.tl_avenrun.l[0] / (double) load_ave.tl_lscale)); #endif /* OSF_MIPS */ -#if !defined (LDAV_DONE) && defined (WIN32_NATIVE) +#if !defined (LDAV_DONE) && (defined (MSDOS) || defined (WIN32)) #define LDAV_DONE /* A faithful emulation is going to have to be saved for a rainy day. */ @@ -781,7 +816,7 @@ { loadavg[elem] = 0.0; } -#endif /* WIN32_NATIVE */ +#endif /* MSDOS */ #if !defined (LDAV_DONE) && defined (OSF_ALPHA) #define LDAV_DONE @@ -972,4 +1007,4 @@ } #endif /*__GNUWIN32__*/ -#endif /* WIN32_NATIVE */ +#endif /* WINDOWSNT */