annotate src/getloadavg.c @ 57315:0d912ccf6554

(XTset_vertical_scroll_bar): Improve handling of scroll bars with fractional column width. If scroll bar separates two windows, move it towards the window it belongs to. Only update the padding area below the scroll bar widget when necessary, i.e. when scroll bar widget is created, moved, or resized.
author Kim F. Storm <storm@cua.dk>
date Mon, 04 Oct 2004 14:07:06 +0000
parents 695cf19ef79e
children a8fa7c632ee4 375f2633d815
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1 /* Get the system load averages.
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
2 Copyright (C) 1985, 86, 87, 88, 89, 91, 92, 93, 1994, 1995, 1997, 2003
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
3 Free Software Foundation, Inc.
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
4
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
5 NOTE: The canonical source of this file is maintained with gnulib.
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
6 Bugs can be reported to bug-gnulib@gnu.org.
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
7
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
8 This program is free software; you can redistribute it and/or modify
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
9 it under the terms of the GNU General Public License as published by
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
10 the Free Software Foundation; either version 2, or (at your option)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
11 any later version.
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
12
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
13 This program is distributed in the hope that it will be useful,
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
16 GNU General Public License for more details.
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
17
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
19 along with this program; if not, write to the Free Software
14457
faef0869994d Update FSF address in comment.
Karl Heuer <kwzh@gnu.org>
parents: 13882
diff changeset
20 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
faef0869994d Update FSF address in comment.
Karl Heuer <kwzh@gnu.org>
parents: 13882
diff changeset
21 USA. */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
22
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
23 /* Compile-time symbols that this file uses:
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
24
18806
c7b288b97f73 Add comment describing HAVE_PSTAT_GETDYNAMIC.
Jim Meyering <jim@meyering.net>
parents: 18640
diff changeset
25 HAVE_PSTAT_GETDYNAMIC Define this if your system has the
c7b288b97f73 Add comment describing HAVE_PSTAT_GETDYNAMIC.
Jim Meyering <jim@meyering.net>
parents: 18640
diff changeset
26 pstat_getdynamic function. I think it
c7b288b97f73 Add comment describing HAVE_PSTAT_GETDYNAMIC.
Jim Meyering <jim@meyering.net>
parents: 18640
diff changeset
27 is unique to HPUX9. The best way to get the
c7b288b97f73 Add comment describing HAVE_PSTAT_GETDYNAMIC.
Jim Meyering <jim@meyering.net>
parents: 18640
diff changeset
28 definition is through the AC_FUNC_GETLOADAVG
c7b288b97f73 Add comment describing HAVE_PSTAT_GETDYNAMIC.
Jim Meyering <jim@meyering.net>
parents: 18640
diff changeset
29 macro that comes with autoconf 2.13 or newer.
c7b288b97f73 Add comment describing HAVE_PSTAT_GETDYNAMIC.
Jim Meyering <jim@meyering.net>
parents: 18640
diff changeset
30 If that isn't an option, then just put
c7b288b97f73 Add comment describing HAVE_PSTAT_GETDYNAMIC.
Jim Meyering <jim@meyering.net>
parents: 18640
diff changeset
31 AC_CHECK_FUNCS(pstat_getdynamic) in your
c7b288b97f73 Add comment describing HAVE_PSTAT_GETDYNAMIC.
Jim Meyering <jim@meyering.net>
parents: 18640
diff changeset
32 configure.in file.
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
33 FIXUP_KERNEL_SYMBOL_ADDR() Adjust address in returned struct nlist.
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
34 KERNEL_FILE Pathname of the kernel to nlist.
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
35 LDAV_CVT() Scale the load average from the kernel.
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
36 Returns a double.
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
37 LDAV_SYMBOL Name of kernel symbol giving load average.
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
38 LOAD_AVE_TYPE Type of the load average array in the kernel.
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
39 Must be defined unless one of
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
40 apollo, DGUX, NeXT, or UMAX is defined;
22855
0af947ec28eb GNU make release 3.77.
Paul D. Smith <psmith@BayNetworks.com>
parents: 18911
diff changeset
41 or we have libkstat;
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
42 otherwise, no load average is available.
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
43 HAVE_NLIST_H nlist.h is available. NLIST_STRUCT defaults
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
44 to this.
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
45 NLIST_STRUCT Include nlist.h, not a.out.h, and
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
46 the nlist n_name element is a pointer,
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
47 not an array.
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
48 HAVE_STRUCT_NLIST_N_UN_N_NAME `n_un.n_name' is member of `struct nlist'.
4349
dd0ad363f07a *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4296
diff changeset
49 LINUX_LDAV_FILE [__linux__]: File containing load averages.
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
50 HAVE_LOCALE_H locale.h is available.
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
51 HAVE_SETLOCALE The `setlocale' function is available.
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
52
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
53 Specific system predefines this file uses, aside from setting
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
54 default values if not emacs:
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
55
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
56 apollo
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
57 BSD Real BSD, not just BSD-like.
12332
443ebb2a278a [convex] (LOAD_AVE_TYPE, LDAV_CVT): Define to double, no conversion.
Roland McGrath <roland@gnu.org>
parents: 11788
diff changeset
58 convex
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
59 DGUX
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
60 eunice UNIX emulator under VMS.
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
61 hpux
17333
0cc83e8612f0 Changes for make 3.75.1
Paul D. Smith <psmith@BayNetworks.com>
parents: 17064
diff changeset
62 __MSDOS__ No-op for MSDOS.
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
63 NeXT
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
64 sgi
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
65 sequent Sequent Dynix 3.x.x (BSD)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
66 _SEQUENT_ Sequent DYNIX/ptx 1.x.x (SYSV)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
67 sony_news NEWS-OS (works at least for 4.1C)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
68 UMAX
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
69 UMAX4_3
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
70 VMS
17333
0cc83e8612f0 Changes for make 3.75.1
Paul D. Smith <psmith@BayNetworks.com>
parents: 17064
diff changeset
71 WINDOWS32 No-op for Windows95/NT.
4349
dd0ad363f07a *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4296
diff changeset
72 __linux__ Linux: assumes /proc filesystem mounted.
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
73 Support from Michael K. Johnson.
4807
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
74 __NetBSD__ NetBSD: assumes /kern filesystem mounted.
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
75
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
76 In addition, to avoid nesting many #ifdefs, we internally set
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
77 LDAV_DONE to indicate that the load average has been computed.
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
78
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
79 We also #define LDAV_PRIVILEGED if a program will require
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
80 special installation to be able to call getloadavg. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
81
10363
f9f787d5e5ff Include config.h first.
Roland McGrath <roland@gnu.org>
parents: 9723
diff changeset
82 /* This should always be first. */
f9f787d5e5ff Include config.h first.
Roland McGrath <roland@gnu.org>
parents: 9723
diff changeset
83 #ifdef HAVE_CONFIG_H
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
84 # include <config.h>
10363
f9f787d5e5ff Include config.h first.
Roland McGrath <roland@gnu.org>
parents: 9723
diff changeset
85 #endif
f9f787d5e5ff Include config.h first.
Roland McGrath <roland@gnu.org>
parents: 9723
diff changeset
86
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
87 #include <sys/types.h>
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
88
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
89 /* Both the Emacs and non-Emacs sections want this. Some
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
90 configuration files' definitions for the LOAD_AVE_CVT macro (like
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
91 sparc.h's) use macros like FSCALE, defined here. */
18911
6cf797f8b54c Test `__unix' along with `unix'.
Richard M. Stallman <rms@gnu.org>
parents: 18806
diff changeset
92 #if defined (unix) || defined (__unix)
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
93 # include <sys/param.h>
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
94 #endif
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
95
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
96
7784
fd03010db0c6 Put #include of errno.h and decl of errno before #ifndef HAVE_GETLOADAVG.
Roland McGrath <roland@gnu.org>
parents: 4907
diff changeset
97 /* Exclude all the code except the test program at the end
fd03010db0c6 Put #include of errno.h and decl of errno before #ifndef HAVE_GETLOADAVG.
Roland McGrath <roland@gnu.org>
parents: 4907
diff changeset
98 if the system has its own `getloadavg' function.
4409
084df29978c7 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4398
diff changeset
99
7784
fd03010db0c6 Put #include of errno.h and decl of errno before #ifndef HAVE_GETLOADAVG.
Roland McGrath <roland@gnu.org>
parents: 4907
diff changeset
100 The declaration of `errno' is needed by the test program
fd03010db0c6 Put #include of errno.h and decl of errno before #ifndef HAVE_GETLOADAVG.
Roland McGrath <roland@gnu.org>
parents: 4907
diff changeset
101 as well as the function itself, so it comes first. */
fd03010db0c6 Put #include of errno.h and decl of errno before #ifndef HAVE_GETLOADAVG.
Roland McGrath <roland@gnu.org>
parents: 4907
diff changeset
102
fd03010db0c6 Put #include of errno.h and decl of errno before #ifndef HAVE_GETLOADAVG.
Roland McGrath <roland@gnu.org>
parents: 4907
diff changeset
103 #include <errno.h>
fd03010db0c6 Put #include of errno.h and decl of errno before #ifndef HAVE_GETLOADAVG.
Roland McGrath <roland@gnu.org>
parents: 4907
diff changeset
104
fd03010db0c6 Put #include of errno.h and decl of errno before #ifndef HAVE_GETLOADAVG.
Roland McGrath <roland@gnu.org>
parents: 4907
diff changeset
105 #ifndef errno
fd03010db0c6 Put #include of errno.h and decl of errno before #ifndef HAVE_GETLOADAVG.
Roland McGrath <roland@gnu.org>
parents: 4907
diff changeset
106 extern int errno;
fd03010db0c6 Put #include of errno.h and decl of errno before #ifndef HAVE_GETLOADAVG.
Roland McGrath <roland@gnu.org>
parents: 4907
diff changeset
107 #endif
4409
084df29978c7 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4398
diff changeset
108
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
109 #ifdef HAVE_LOCALE_H
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
110 # include <locale.h>
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
111 #endif
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
112 #ifndef HAVE_SETLOCALE
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
113 # define setlocale(Category, Locale) /* empty */
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
114 #endif
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
115
4409
084df29978c7 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4398
diff changeset
116 #ifndef HAVE_GETLOADAVG
084df29978c7 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4398
diff changeset
117
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
118 /* The existing Emacs configuration files define a macro called
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
119 LOAD_AVE_CVT, which accepts a value of type LOAD_AVE_TYPE, and
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
120 returns the load average multiplied by 100. What we actually want
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
121 is a macro called LDAV_CVT, which returns the load average as an
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
122 unmultiplied double.
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
123
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
124 For backwards compatibility, we'll define LDAV_CVT in terms of
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
125 LOAD_AVE_CVT, but future machine config files should just define
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
126 LDAV_CVT directly. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
127
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
128 # if !defined(LDAV_CVT) && defined(LOAD_AVE_CVT)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
129 # define LDAV_CVT(n) (LOAD_AVE_CVT (n) / 100.0)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
130 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
131
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
132 # if !defined (BSD) && defined (ultrix)
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
133 /* Ultrix behaves like BSD on Vaxen. */
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
134 # define BSD
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
135 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
136
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
137 # ifdef NeXT
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
138 /* NeXT in the 2.{0,1,2} releases defines BSD in <sys/param.h>, which
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
139 conflicts with the definition understood in this file, that this
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
140 really is BSD. */
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
141 # undef BSD
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
142
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
143 /* NeXT defines FSCALE in <sys/param.h>. However, we take FSCALE being
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
144 defined to mean that the nlist method should be used, which is not true. */
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
145 # undef FSCALE
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
146 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
147
23329
a8682715883a Treat __GNU__ line NeXT: undefine BSD and FSCALE.
Richard M. Stallman <rms@gnu.org>
parents: 22855
diff changeset
148 /* Same issues as for NeXT apply to the HURD-based GNU system. */
a8682715883a Treat __GNU__ line NeXT: undefine BSD and FSCALE.
Richard M. Stallman <rms@gnu.org>
parents: 22855
diff changeset
149 # ifdef __GNU__
a8682715883a Treat __GNU__ line NeXT: undefine BSD and FSCALE.
Richard M. Stallman <rms@gnu.org>
parents: 22855
diff changeset
150 # undef BSD
a8682715883a Treat __GNU__ line NeXT: undefine BSD and FSCALE.
Richard M. Stallman <rms@gnu.org>
parents: 22855
diff changeset
151 # undef FSCALE
a8682715883a Treat __GNU__ line NeXT: undefine BSD and FSCALE.
Richard M. Stallman <rms@gnu.org>
parents: 22855
diff changeset
152 # endif /* __GNU__ */
a8682715883a Treat __GNU__ line NeXT: undefine BSD and FSCALE.
Richard M. Stallman <rms@gnu.org>
parents: 22855
diff changeset
153
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
154 /* Set values that are different from the defaults, which are
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
155 set a little farther down with #ifndef. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
156
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
157
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
158 /* Some shorthands. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
159
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
160 # if defined (HPUX) && !defined (hpux)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
161 # define hpux
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
162 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
163
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
164 # if defined (__hpux) && !defined (hpux)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
165 # define hpux
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
166 # endif
16413
79ff1c263f5d [__hpux]: Define hpux. From Eric Backus.
Jim Meyering <jim@meyering.net>
parents: 16151
diff changeset
167
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
168 # if defined (__sun) && !defined (sun)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
169 # define sun
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
170 # endif
16413
79ff1c263f5d [__hpux]: Define hpux. From Eric Backus.
Jim Meyering <jim@meyering.net>
parents: 16151
diff changeset
171
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
172 # if defined(hp300) && !defined(hpux)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
173 # define MORE_BSD
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
174 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
175
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
176 # if defined(ultrix) && defined(mips)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
177 # define decstation
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
178 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
179
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
180 # if defined (__SVR4) && !defined (SVR4)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
181 # define SVR4
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
182 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
183
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
184 # if (defined(sun) && defined(SVR4)) || defined (SOLARIS2)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
185 # define SUNOS_5
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
186 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
187
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
188 # if defined (__osf__) && (defined (__alpha) || defined (__alpha__))
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
189 # define OSF_ALPHA
18640
0481616b859c [OSF_ALPHA]: Include sys/mbuf.h, sys/socket.h, net/route.h.
Richard M. Stallman <rms@gnu.org>
parents: 18592
diff changeset
190 # include <sys/mbuf.h>
0481616b859c [OSF_ALPHA]: Include sys/mbuf.h, sys/socket.h, net/route.h.
Richard M. Stallman <rms@gnu.org>
parents: 18592
diff changeset
191 # include <sys/socket.h>
0481616b859c [OSF_ALPHA]: Include sys/mbuf.h, sys/socket.h, net/route.h.
Richard M. Stallman <rms@gnu.org>
parents: 18592
diff changeset
192 # include <net/route.h>
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
193 # include <sys/table.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
194 # endif
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
195
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
196 # if defined (__osf__) && (defined (mips) || defined (__mips__))
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
197 # define OSF_MIPS
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
198 # include <sys/table.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
199 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
200
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
201 /* UTek's /bin/cc on the 4300 has no architecture specific cpp define by
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
202 default, but _MACH_IND_SYS_TYPES is defined in <sys/types.h>. Combine
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
203 that with a couple of other things and we'll have a unique match. */
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
204 # if !defined (tek4300) && defined (unix) && defined (m68k) && defined (mc68000) && defined (mc68020) && defined (_MACH_IND_SYS_TYPES)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
205 # define tek4300 /* Define by emacs, but not by other users. */
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
206 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
207
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
208
3587
2b2b70186646 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 3037
diff changeset
209 /* VAX C can't handle multi-line #ifs, or lines longer than 256 chars. */
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
210 # ifndef LOAD_AVE_TYPE
3597
a9d02b8cec6e *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 3587
diff changeset
211
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
212 # ifdef MORE_BSD
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
213 # define LOAD_AVE_TYPE long
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
214 # endif
3587
2b2b70186646 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 3037
diff changeset
215
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
216 # ifdef sun
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
217 # define LOAD_AVE_TYPE long
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
218 # endif
3587
2b2b70186646 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 3037
diff changeset
219
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
220 # ifdef decstation
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
221 # define LOAD_AVE_TYPE long
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
222 # endif
3587
2b2b70186646 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 3037
diff changeset
223
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
224 # ifdef _SEQUENT_
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
225 # define LOAD_AVE_TYPE long
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
226 # endif
3587
2b2b70186646 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 3037
diff changeset
227
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
228 # ifdef sgi
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
229 # define LOAD_AVE_TYPE long
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
230 # endif
3587
2b2b70186646 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 3037
diff changeset
231
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
232 # ifdef SVR4
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
233 # define LOAD_AVE_TYPE long
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
234 # endif
3587
2b2b70186646 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 3037
diff changeset
235
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
236 # ifdef sony_news
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
237 # define LOAD_AVE_TYPE long
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
238 # endif
3587
2b2b70186646 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 3037
diff changeset
239
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
240 # ifdef sequent
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
241 # define LOAD_AVE_TYPE long
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
242 # endif
3587
2b2b70186646 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 3037
diff changeset
243
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
244 # ifdef OSF_ALPHA
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
245 # define LOAD_AVE_TYPE long
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
246 # endif
3587
2b2b70186646 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 3037
diff changeset
247
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
248 # if defined (ardent) && defined (titan)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
249 # define LOAD_AVE_TYPE long
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
250 # endif
3587
2b2b70186646 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 3037
diff changeset
251
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
252 # ifdef tek4300
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
253 # define LOAD_AVE_TYPE long
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
254 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
255
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
256 # if defined(alliant) && defined(i860) /* Alliant FX/2800 */
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
257 # define LOAD_AVE_TYPE long
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
258 # endif
9172
393a55341859 [alliant && i860] (LOAD_AVE_TYPE, FSCALE, NLIST_STRUCT): Define.
Roland McGrath <roland@gnu.org>
parents: 9096
diff changeset
259
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
260 # ifdef _AIX
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
261 # define LOAD_AVE_TYPE long
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
262 # endif
11788
3a2d34fad6fb AIX support from Tim Bell <tbel@afsmail.cern.ch>:
Roland McGrath <roland@gnu.org>
parents: 10363
diff changeset
263
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
264 # ifdef convex
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
265 # define LOAD_AVE_TYPE double
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
266 # ifndef LDAV_CVT
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
267 # define LDAV_CVT(n) (n)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
268 # endif
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
269 # endif
12332
443ebb2a278a [convex] (LOAD_AVE_TYPE, LDAV_CVT): Define to double, no conversion.
Roland McGrath <roland@gnu.org>
parents: 11788
diff changeset
270
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
271 # endif /* No LOAD_AVE_TYPE. */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
272
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
273 # ifdef OSF_ALPHA
4422
e51a7e8fffe2 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4409
diff changeset
274 /* <sys/param.h> defines an incorrect value for FSCALE on Alpha OSF/1,
e51a7e8fffe2 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4409
diff changeset
275 according to ghazi@noc.rutgers.edu. */
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
276 # undef FSCALE
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
277 # define FSCALE 1024.0
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
278 # endif
4422
e51a7e8fffe2 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4409
diff changeset
279
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
280 # if defined(alliant) && defined(i860) /* Alliant FX/2800 */
9723
ba541f60aa46 [alliant && i860] (FSCALE): Move defn before #ifndef FSCALE.
Roland McGrath <roland@gnu.org>
parents: 9172
diff changeset
281 /* <sys/param.h> defines an incorrect value for FSCALE on an
ba541f60aa46 [alliant && i860] (FSCALE): Move defn before #ifndef FSCALE.
Roland McGrath <roland@gnu.org>
parents: 9172
diff changeset
282 Alliant FX/2800 Concentrix 2.2, according to ghazi@noc.rutgers.edu. */
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
283 # undef FSCALE
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
284 # define FSCALE 100.0
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
285 # endif
9723
ba541f60aa46 [alliant && i860] (FSCALE): Move defn before #ifndef FSCALE.
Roland McGrath <roland@gnu.org>
parents: 9172
diff changeset
286
4422
e51a7e8fffe2 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4409
diff changeset
287
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
288 # ifndef FSCALE
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
289
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
290 /* SunOS and some others define FSCALE in sys/param.h. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
291
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
292 # ifdef MORE_BSD
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
293 # define FSCALE 2048.0
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
294 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
295
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
296 # if defined(MIPS) || defined(SVR4) || defined(decstation)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
297 # define FSCALE 256
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
298 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
299
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
300 # if defined (sgi) || defined (sequent)
4288
64c6649f40b8 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4064
diff changeset
301 /* Sometimes both MIPS and sgi are defined, so FSCALE was just defined
64c6649f40b8 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4064
diff changeset
302 above under #ifdef MIPS. But we want the sgi value. */
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
303 # undef FSCALE
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
304 # define FSCALE 1000.0
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
305 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
306
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
307 # if defined (ardent) && defined (titan)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
308 # define FSCALE 65536.0
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
309 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
310
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
311 # ifdef tek4300
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
312 # define FSCALE 100.0
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
313 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
314
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
315 # ifdef _AIX
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
316 # define FSCALE 65536.0
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
317 # endif
11788
3a2d34fad6fb AIX support from Tim Bell <tbel@afsmail.cern.ch>:
Roland McGrath <roland@gnu.org>
parents: 10363
diff changeset
318
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
319 # endif /* Not FSCALE. */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
320
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
321 # if !defined (LDAV_CVT) && defined (FSCALE)
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
322 # define LDAV_CVT(n) (((double) (n)) / FSCALE)
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
323 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
324
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
325 # ifndef NLIST_STRUCT
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
326 # if HAVE_NLIST_H
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
327 # define NLIST_STRUCT
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
328 # endif
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
329 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
330
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
331 # if defined(sgi) || (defined(mips) && !defined(BSD))
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
332 # define FIXUP_KERNEL_SYMBOL_ADDR(nl) ((nl)[0].n_value &= ~(1 << 31))
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
333 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
334
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
335
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
336 # if !defined (KERNEL_FILE) && defined (sequent)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
337 # define KERNEL_FILE "/dynix"
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
338 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
339
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
340 # if !defined (KERNEL_FILE) && defined (hpux)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
341 # define KERNEL_FILE "/hp-ux"
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
342 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
343
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
344 # if !defined(KERNEL_FILE) && (defined(_SEQUENT_) || defined(MIPS) || defined(SVR4) || defined(ISC) || defined (sgi) || (defined (ardent) && defined (titan)))
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
345 # define KERNEL_FILE "/unix"
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
346 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
347
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
348
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
349 # if !defined (LDAV_SYMBOL) && defined (alliant)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
350 # define LDAV_SYMBOL "_Loadavg"
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
351 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
352
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
353 # if !defined(LDAV_SYMBOL) && ((defined(hpux) && !defined(hp9000s300)) || defined(_SEQUENT_) || defined(SVR4) || defined(ISC) || defined(sgi) || (defined (ardent) && defined (titan)) || defined (_AIX))
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
354 # define LDAV_SYMBOL "avenrun"
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
355 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
356
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
357 # ifdef HAVE_UNISTD_H
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
358 # include <unistd.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
359 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
360
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
361 # include <stdio.h>
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
362
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
363 /* LOAD_AVE_TYPE should only get defined if we're going to use the
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
364 nlist method. */
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
365 # if !defined(LOAD_AVE_TYPE) && (defined(BSD) || defined(LDAV_CVT) || defined(KERNEL_FILE) || defined(LDAV_SYMBOL))
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
366 # define LOAD_AVE_TYPE double
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
367 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
368
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
369 # ifdef LOAD_AVE_TYPE
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
370
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
371 # ifndef VMS
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
372 # ifndef __linux__
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
373 # ifndef NLIST_STRUCT
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
374 # include <a.out.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
375 # else /* NLIST_STRUCT */
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
376 # include <nlist.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
377 # endif /* NLIST_STRUCT */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
378
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
379 # ifdef SUNOS_5
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
380 # include <fcntl.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
381 # include <kvm.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
382 # include <kstat.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
383 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
384
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
385 # if defined (hpux) && defined (HAVE_PSTAT_GETDYNAMIC)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
386 # include <sys/pstat.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
387 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
388
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
389 # ifndef KERNEL_FILE
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
390 # define KERNEL_FILE "/vmunix"
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
391 # endif /* KERNEL_FILE */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
392
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
393 # ifndef LDAV_SYMBOL
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
394 # define LDAV_SYMBOL "_avenrun"
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
395 # endif /* LDAV_SYMBOL */
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
396 # endif /* __linux__ */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
397
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
398 # else /* VMS */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
399
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
400 # ifndef eunice
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
401 # include <iodef.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
402 # include <descrip.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
403 # else /* eunice */
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
404 # include <vms/iodef.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
405 # endif /* eunice */
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
406 # endif /* VMS */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
407
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
408 # ifndef LDAV_CVT
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
409 # define LDAV_CVT(n) ((double) (n))
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
410 # endif /* !LDAV_CVT */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
411
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
412 # endif /* LOAD_AVE_TYPE */
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
413
18592
d7376a9dca6d [__GNU__]: Test for not NeXT.
Richard M. Stallman <rms@gnu.org>
parents: 17337
diff changeset
414 # if defined(__GNU__) && !defined (NeXT)
d7376a9dca6d [__GNU__]: Test for not NeXT.
Richard M. Stallman <rms@gnu.org>
parents: 17337
diff changeset
415 /* Note that NeXT Openstep defines __GNU__ even though it should not. */
d7376a9dca6d [__GNU__]: Test for not NeXT.
Richard M. Stallman <rms@gnu.org>
parents: 17337
diff changeset
416 /* GNU system acts much like NeXT, for load average purposes,
d7376a9dca6d [__GNU__]: Test for not NeXT.
Richard M. Stallman <rms@gnu.org>
parents: 17337
diff changeset
417 but not exactly. */
17064
0f4ca446767c [__GNU__] (NeXT, host_self):
Miles Bader <miles@gnu.org>
parents: 16869
diff changeset
418 # define NeXT
0f4ca446767c [__GNU__] (NeXT, host_self):
Miles Bader <miles@gnu.org>
parents: 16869
diff changeset
419 # define host_self mach_host_self
0f4ca446767c [__GNU__] (NeXT, host_self):
Miles Bader <miles@gnu.org>
parents: 16869
diff changeset
420 # endif
0f4ca446767c [__GNU__] (NeXT, host_self):
Miles Bader <miles@gnu.org>
parents: 16869
diff changeset
421
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
422 # ifdef NeXT
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
423 # ifdef HAVE_MACH_MACH_H
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
424 # include <mach/mach.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
425 # else
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
426 # include <mach.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
427 # endif
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
428 # endif /* NeXT */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
429
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
430 # ifdef sgi
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
431 # include <sys/sysmp.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
432 # endif /* sgi */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
433
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
434 # ifdef UMAX
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
435 # include <stdio.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
436 # include <signal.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
437 # include <sys/time.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
438 # include <sys/wait.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
439 # include <sys/syscall.h>
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
440
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
441 # ifdef UMAX_43
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
442 # include <machine/cpu.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
443 # include <inq_stats/statistics.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
444 # include <inq_stats/sysstats.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
445 # include <inq_stats/cpustats.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
446 # include <inq_stats/procstats.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
447 # else /* Not UMAX_43. */
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
448 # include <sys/sysdefs.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
449 # include <sys/statistics.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
450 # include <sys/sysstats.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
451 # include <sys/cpudefs.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
452 # include <sys/cpustats.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
453 # include <sys/procstats.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
454 # endif /* Not UMAX_43. */
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
455 # endif /* UMAX */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
456
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
457 # ifdef DGUX
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
458 # include <sys/dg_sys_info.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
459 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
460
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
461 # if defined(HAVE_FCNTL_H) || defined(_POSIX_VERSION)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
462 # include <fcntl.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
463 # else
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
464 # include <sys/file.h>
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
465 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
466
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
467 /* Avoid static vars inside a function since in HPUX they dump as pure. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
468
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
469 # ifdef NeXT
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
470 static processor_set_t default_set;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
471 static int getloadavg_initialized;
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
472 # endif /* NeXT */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
473
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
474 # ifdef UMAX
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
475 static unsigned int cpus = 0;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
476 static unsigned int samples;
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
477 # endif /* UMAX */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
478
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
479 # ifdef DGUX
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
480 static struct dg_sys_info_load_info load_info; /* what-a-mouthful! */
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
481 # endif /* DGUX */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
482
22855
0af947ec28eb GNU make release 3.77.
Paul D. Smith <psmith@BayNetworks.com>
parents: 18911
diff changeset
483 #if !defined(HAVE_LIBKSTAT) && defined(LOAD_AVE_TYPE)
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
484 /* File descriptor open to /dev/kmem or VMS load ave driver. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
485 static int channel;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
486 /* Nonzero iff channel is valid. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
487 static int getloadavg_initialized;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
488 /* Offset in kmem to seek to read load average, or 0 means invalid. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
489 static long offset;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
490
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
491 # if !defined(VMS) && !defined(sgi) && !defined(__linux__)
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
492 static struct nlist nl[2];
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
493 # endif /* Not VMS or sgi */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
494
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
495 # ifdef SUNOS_5
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
496 static kvm_t *kd;
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
497 # endif /* SUNOS_5 */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
498
23329
a8682715883a Treat __GNU__ line NeXT: undefine BSD and FSCALE.
Richard M. Stallman <rms@gnu.org>
parents: 22855
diff changeset
499 #endif /* LOAD_AVE_TYPE && !HAVE_LIBKSTAT */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
500
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
501 /* Put the 1 minute, 5 minute and 15 minute load averages
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
502 into the first NELEM elements of LOADAVG.
4064
d14ba65a1363 *** empty log message ***
David J. MacKenzie <djm@gnu.org>
parents: 4011
diff changeset
503 Return the number written (never more than 3, but may be less than NELEM),
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
504 or -1 if an error occurred. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
505
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
506 int
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
507 getloadavg (loadavg, nelem)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
508 double loadavg[];
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
509 int nelem;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
510 {
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
511 int elem = 0; /* Return value. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
512
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
513 # ifdef NO_GET_LOAD_AVG
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
514 # define LDAV_DONE
3037
3c7a86dba45b *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 2928
diff changeset
515 /* Set errno to zero to indicate that there was no particular error;
3c7a86dba45b *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 2928
diff changeset
516 this function just can't work at all on this system. */
3c7a86dba45b *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 2928
diff changeset
517 errno = 0;
3c7a86dba45b *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 2928
diff changeset
518 elem = -1;
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
519 # endif
3037
3c7a86dba45b *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 2928
diff changeset
520
17337
24e9e8d0080e Last-minute changed for 3.75.1
Paul D. Smith <psmith@BayNetworks.com>
parents: 17333
diff changeset
521 # if !defined (LDAV_DONE) && defined (HAVE_LIBKSTAT)
16151
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
522 /* Use libkstat because we don't have to be root. */
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
523 # define LDAV_DONE
16151
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
524 kstat_ctl_t *kc;
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
525 kstat_t *ksp;
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
526 kstat_named_t *kn;
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
527
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
528 kc = kstat_open ();
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
529 if (kc == 0)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
530 return -1;
16151
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
531 ksp = kstat_lookup (kc, "unix", 0, "system_misc");
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
532 if (ksp == 0 )
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
533 return -1;
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
534 if (kstat_read (kc, ksp, 0) == -1)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
535 return -1;
16413
79ff1c263f5d [__hpux]: Define hpux. From Eric Backus.
Jim Meyering <jim@meyering.net>
parents: 16151
diff changeset
536
16151
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
537
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
538 kn = kstat_data_lookup (ksp, "avenrun_1min");
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
539 if (kn == 0)
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
540 {
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
541 /* Return -1 if no load average information is available. */
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
542 nelem = 0;
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
543 elem = -1;
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
544 }
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
545
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
546 if (nelem >= 1)
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
547 loadavg[elem++] = (double) kn->value.ul/FSCALE;
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
548
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
549 if (nelem >= 2)
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
550 {
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
551 kn = kstat_data_lookup (ksp, "avenrun_5min");
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
552 if (kn != 0)
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
553 {
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
554 loadavg[elem++] = (double) kn->value.ul/FSCALE;
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
555
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
556 if (nelem >= 3)
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
557 {
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
558 kn = kstat_data_lookup (ksp, "avenrun_15min");
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
559 if (kn != 0)
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
560 loadavg[elem++] = (double) kn->value.ul/FSCALE;
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
561 }
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
562 }
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
563 }
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
564
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
565 kstat_close (kc);
17337
24e9e8d0080e Last-minute changed for 3.75.1
Paul D. Smith <psmith@BayNetworks.com>
parents: 17333
diff changeset
566 # endif /* HAVE_LIBKSTAT */
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
567
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
568 # if !defined (LDAV_DONE) && defined (hpux) && defined (HAVE_PSTAT_GETDYNAMIC)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
569 /* Use pstat_getdynamic() because we don't have to be root. */
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
570 # define LDAV_DONE
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
571 # undef LOAD_AVE_TYPE
16151
481c5be39150 (getloadavg): Add new code for SUNOS_5 to use -lkstat.
Richard M. Stallman <rms@gnu.org>
parents: 15294
diff changeset
572
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
573 struct pst_dynamic dyn_info;
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
574 if (pstat_getdynamic (&dyn_info, sizeof (dyn_info), 0, 0) < 0)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
575 return -1;
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
576 if (nelem > 0)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
577 loadavg[elem++] = dyn_info.psd_avg_1_min;
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
578 if (nelem > 1)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
579 loadavg[elem++] = dyn_info.psd_avg_5_min;
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
580 if (nelem > 2)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
581 loadavg[elem++] = dyn_info.psd_avg_15_min;
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
582
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
583 # endif /* hpux && HAVE_PSTAT_GETDYNAMIC */
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
584
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
585 # if !defined (LDAV_DONE) && defined (__linux__)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
586 # define LDAV_DONE
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
587 # undef LOAD_AVE_TYPE
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
588
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
589 # ifndef LINUX_LDAV_FILE
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
590 # define LINUX_LDAV_FILE "/proc/loadavg"
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
591 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
592
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
593 char ldavgbuf[40];
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
594 double load_ave[3];
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
595 int fd, count;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
596
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
597 fd = open (LINUX_LDAV_FILE, O_RDONLY);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
598 if (fd == -1)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
599 return -1;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
600 count = read (fd, ldavgbuf, 40);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
601 (void) close (fd);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
602 if (count <= 0)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
603 return -1;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
604
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
605 /* The following sscanf must use the C locale. */
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
606 setlocale (LC_NUMERIC, "C");
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
607 count = sscanf (ldavgbuf, "%lf %lf %lf",
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
608 &load_ave[0], &load_ave[1], &load_ave[2]);
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
609 setlocale (LC_NUMERIC, "");
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
610 if (count < 1)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
611 return -1;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
612
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
613 for (elem = 0; elem < nelem && elem < count; elem++)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
614 loadavg[elem] = load_ave[elem];
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
615
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
616 return elem;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
617
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
618 # endif /* __linux__ */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
619
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
620 # if !defined (LDAV_DONE) && defined (__NetBSD__)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
621 # define LDAV_DONE
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
622 # undef LOAD_AVE_TYPE
4807
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
623
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
624 # ifndef NETBSD_LDAV_FILE
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
625 # define NETBSD_LDAV_FILE "/kern/loadavg"
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
626 # endif
4807
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
627
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
628 unsigned long int load_ave[3], scale;
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
629 int count;
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
630 FILE *fp;
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
631
4907
fca72ee8bf94 entered into RCS
Roland McGrath <roland@gnu.org>
parents: 4807
diff changeset
632 fp = fopen (NETBSD_LDAV_FILE, "r");
4807
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
633 if (fp == NULL)
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
634 return -1;
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
635 count = fscanf (fp, "%lu %lu %lu %lu\n",
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
636 &load_ave[0], &load_ave[1], &load_ave[2],
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
637 &scale);
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
638 (void) fclose (fp);
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
639 if (count != 4)
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
640 return -1;
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
641
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
642 for (elem = 0; elem < nelem; elem++)
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
643 loadavg[elem] = (double) load_ave[elem] / (double) scale;
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
644
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
645 return elem;
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
646
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
647 # endif /* __NetBSD__ */
4807
bc7a85d7ee27 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4752
diff changeset
648
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
649 # if !defined (LDAV_DONE) && defined (NeXT)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
650 # define LDAV_DONE
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
651 /* The NeXT code was adapted from iscreen 3.2. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
652
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
653 host_t host;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
654 struct processor_set_basic_info info;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
655 unsigned info_count;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
656
4064
d14ba65a1363 *** empty log message ***
David J. MacKenzie <djm@gnu.org>
parents: 4011
diff changeset
657 /* We only know how to get the 1-minute average for this system,
d14ba65a1363 *** empty log message ***
David J. MacKenzie <djm@gnu.org>
parents: 4011
diff changeset
658 so even if the caller asks for more than 1, we only return 1. */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
659
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
660 if (!getloadavg_initialized)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
661 {
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
662 if (processor_set_default (host_self (), &default_set) == KERN_SUCCESS)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
663 getloadavg_initialized = 1;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
664 }
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
665
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
666 if (getloadavg_initialized)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
667 {
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
668 info_count = PROCESSOR_SET_BASIC_INFO_COUNT;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
669 if (processor_set_info (default_set, PROCESSOR_SET_BASIC_INFO, &host,
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
670 (processor_set_info_t) &info, &info_count)
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
671 != KERN_SUCCESS)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
672 getloadavg_initialized = 0;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
673 else
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
674 {
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
675 if (nelem > 0)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
676 loadavg[elem++] = (double) info.load_average / LOAD_SCALE;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
677 }
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
678 }
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
679
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
680 if (!getloadavg_initialized)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
681 return -1;
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
682 # endif /* NeXT */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
683
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
684 # if !defined (LDAV_DONE) && defined (UMAX)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
685 # define LDAV_DONE
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
686 /* UMAX 4.2, which runs on the Encore Multimax multiprocessor, does not
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
687 have a /dev/kmem. Information about the workings of the running kernel
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
688 can be gathered with inq_stats system calls.
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
689 We only know how to get the 1-minute average for this system. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
690
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
691 struct proc_summary proc_sum_data;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
692 struct stat_descr proc_info;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
693 double load;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
694 register unsigned int i, j;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
695
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
696 if (cpus == 0)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
697 {
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
698 register unsigned int c, i;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
699 struct cpu_config conf;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
700 struct stat_descr desc;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
701
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
702 desc.sd_next = 0;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
703 desc.sd_subsys = SUBSYS_CPU;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
704 desc.sd_type = CPUTYPE_CONFIG;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
705 desc.sd_addr = (char *) &conf;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
706 desc.sd_size = sizeof conf;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
707
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
708 if (inq_stats (1, &desc))
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
709 return -1;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
710
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
711 c = 0;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
712 for (i = 0; i < conf.config_maxclass; ++i)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
713 {
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
714 struct class_stats stats;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
715 bzero ((char *) &stats, sizeof stats);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
716
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
717 desc.sd_type = CPUTYPE_CLASS;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
718 desc.sd_objid = i;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
719 desc.sd_addr = (char *) &stats;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
720 desc.sd_size = sizeof stats;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
721
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
722 if (inq_stats (1, &desc))
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
723 return -1;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
724
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
725 c += stats.class_numcpus;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
726 }
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
727 cpus = c;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
728 samples = cpus < 2 ? 3 : (2 * cpus / 3);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
729 }
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
730
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
731 proc_info.sd_next = 0;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
732 proc_info.sd_subsys = SUBSYS_PROC;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
733 proc_info.sd_type = PROCTYPE_SUMMARY;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
734 proc_info.sd_addr = (char *) &proc_sum_data;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
735 proc_info.sd_size = sizeof (struct proc_summary);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
736 proc_info.sd_sizeused = 0;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
737
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
738 if (inq_stats (1, &proc_info) != 0)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
739 return -1;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
740
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
741 load = proc_sum_data.ps_nrunnable;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
742 j = 0;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
743 for (i = samples - 1; i > 0; --i)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
744 {
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
745 load += proc_sum_data.ps_nrun[j];
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
746 if (j++ == PS_NRUNSIZE)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
747 j = 0;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
748 }
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
749
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
750 if (nelem > 0)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
751 loadavg[elem++] = load / samples / cpus;
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
752 # endif /* UMAX */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
753
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
754 # if !defined (LDAV_DONE) && defined (DGUX)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
755 # define LDAV_DONE
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
756 /* This call can return -1 for an error, but with good args
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
757 it's not supposed to fail. The first argument is for no
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
758 apparent reason of type `long int *'. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
759 dg_sys_info ((long int *) &load_info,
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
760 DG_SYS_INFO_LOAD_INFO_TYPE,
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
761 DG_SYS_INFO_LOAD_VERSION_0);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
762
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
763 if (nelem > 0)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
764 loadavg[elem++] = load_info.one_minute;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
765 if (nelem > 1)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
766 loadavg[elem++] = load_info.five_minute;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
767 if (nelem > 2)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
768 loadavg[elem++] = load_info.fifteen_minute;
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
769 # endif /* DGUX */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
770
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
771 # if !defined (LDAV_DONE) && defined (apollo)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
772 # define LDAV_DONE
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
773 /* Apollo code from lisch@mentorg.com (Ray Lischner).
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
774
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
775 This system call is not documented. The load average is obtained as
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
776 three long integers, for the load average over the past minute,
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
777 five minutes, and fifteen minutes. Each value is a scaled integer,
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
778 with 16 bits of integer part and 16 bits of fraction part.
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
779
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
780 I'm not sure which operating system first supported this system call,
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
781 but I know that SR10.2 supports it. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
782
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
783 extern void proc1_$get_loadav ();
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
784 unsigned long load_ave[3];
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
785
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
786 proc1_$get_loadav (load_ave);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
787
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
788 if (nelem > 0)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
789 loadavg[elem++] = load_ave[0] / 65536.0;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
790 if (nelem > 1)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
791 loadavg[elem++] = load_ave[1] / 65536.0;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
792 if (nelem > 2)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
793 loadavg[elem++] = load_ave[2] / 65536.0;
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
794 # endif /* apollo */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
795
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
796 # if !defined (LDAV_DONE) && defined (OSF_MIPS)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
797 # define LDAV_DONE
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
798
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
799 struct tbl_loadavg load_ave;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
800 table (TBL_LOADAVG, 0, &load_ave, 1, sizeof (load_ave));
3037
3c7a86dba45b *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 2928
diff changeset
801 loadavg[elem++]
3c7a86dba45b *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 2928
diff changeset
802 = (load_ave.tl_lscale == 0
3c7a86dba45b *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 2928
diff changeset
803 ? load_ave.tl_avenrun.d[0]
3c7a86dba45b *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 2928
diff changeset
804 : (load_ave.tl_avenrun.l[0] / (double) load_ave.tl_lscale));
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
805 # endif /* OSF_MIPS */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
806
17333
0cc83e8612f0 Changes for make 3.75.1
Paul D. Smith <psmith@BayNetworks.com>
parents: 17064
diff changeset
807 # if !defined (LDAV_DONE) && (defined (__MSDOS__) || defined (WINDOWS32))
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
808 # define LDAV_DONE
13882
2631a29a614c (getloadavg) [MSDOS]: Return 0 load instead of failing the call.
Richard M. Stallman <rms@gnu.org>
parents: 12799
diff changeset
809
2631a29a614c (getloadavg) [MSDOS]: Return 0 load instead of failing the call.
Richard M. Stallman <rms@gnu.org>
parents: 12799
diff changeset
810 /* A faithful emulation is going to have to be saved for a rainy day. */
15281
dd275783c873 [WIN32]: No-op as for [MSDOS].
Roland McGrath <roland@gnu.org>
parents: 14457
diff changeset
811 for ( ; elem < nelem; elem++)
13882
2631a29a614c (getloadavg) [MSDOS]: Return 0 load instead of failing the call.
Richard M. Stallman <rms@gnu.org>
parents: 12799
diff changeset
812 {
2631a29a614c (getloadavg) [MSDOS]: Return 0 load instead of failing the call.
Richard M. Stallman <rms@gnu.org>
parents: 12799
diff changeset
813 loadavg[elem] = 0.0;
2631a29a614c (getloadavg) [MSDOS]: Return 0 load instead of failing the call.
Richard M. Stallman <rms@gnu.org>
parents: 12799
diff changeset
814 }
17333
0cc83e8612f0 Changes for make 3.75.1
Paul D. Smith <psmith@BayNetworks.com>
parents: 17064
diff changeset
815 # endif /* __MSDOS__ || WINDOWS32 */
13882
2631a29a614c (getloadavg) [MSDOS]: Return 0 load instead of failing the call.
Richard M. Stallman <rms@gnu.org>
parents: 12799
diff changeset
816
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
817 # if !defined (LDAV_DONE) && defined (OSF_ALPHA)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
818 # define LDAV_DONE
8816
fbc29f1ddd08 (getloadavg): Add OSF_ALPHA support.
Richard M. Stallman <rms@gnu.org>
parents: 7784
diff changeset
819
fbc29f1ddd08 (getloadavg): Add OSF_ALPHA support.
Richard M. Stallman <rms@gnu.org>
parents: 7784
diff changeset
820 struct tbl_loadavg load_ave;
fbc29f1ddd08 (getloadavg): Add OSF_ALPHA support.
Richard M. Stallman <rms@gnu.org>
parents: 7784
diff changeset
821 table (TBL_LOADAVG, 0, &load_ave, 1, sizeof (load_ave));
fbc29f1ddd08 (getloadavg): Add OSF_ALPHA support.
Richard M. Stallman <rms@gnu.org>
parents: 7784
diff changeset
822 for (elem = 0; elem < nelem; elem++)
fbc29f1ddd08 (getloadavg): Add OSF_ALPHA support.
Richard M. Stallman <rms@gnu.org>
parents: 7784
diff changeset
823 loadavg[elem]
fbc29f1ddd08 (getloadavg): Add OSF_ALPHA support.
Richard M. Stallman <rms@gnu.org>
parents: 7784
diff changeset
824 = (load_ave.tl_lscale == 0
fbc29f1ddd08 (getloadavg): Add OSF_ALPHA support.
Richard M. Stallman <rms@gnu.org>
parents: 7784
diff changeset
825 ? load_ave.tl_avenrun.d[elem]
fbc29f1ddd08 (getloadavg): Add OSF_ALPHA support.
Richard M. Stallman <rms@gnu.org>
parents: 7784
diff changeset
826 : (load_ave.tl_avenrun.l[elem] / (double) load_ave.tl_lscale));
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
827 # endif /* OSF_ALPHA */
8816
fbc29f1ddd08 (getloadavg): Add OSF_ALPHA support.
Richard M. Stallman <rms@gnu.org>
parents: 7784
diff changeset
828
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
829 # if !defined (LDAV_DONE) && defined (VMS)
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
830 /* VMS specific code -- read from the Load Ave driver. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
831
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
832 LOAD_AVE_TYPE load_ave[3];
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
833 static int getloadavg_initialized = 0;
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
834 # ifdef eunice
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
835 struct
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
836 {
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
837 int dsc$w_length;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
838 char *dsc$a_pointer;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
839 } descriptor;
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
840 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
841
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
842 /* Ensure that there is a channel open to the load ave device. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
843 if (!getloadavg_initialized)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
844 {
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
845 /* Attempt to open the channel. */
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
846 # ifdef eunice
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
847 descriptor.dsc$w_length = 18;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
848 descriptor.dsc$a_pointer = "$$VMS_LOAD_AVERAGE";
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
849 # else
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
850 $DESCRIPTOR (descriptor, "LAV0:");
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
851 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
852 if (sys$assign (&descriptor, &channel, 0, 0) & 1)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
853 getloadavg_initialized = 1;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
854 }
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
855
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
856 /* Read the load average vector. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
857 if (getloadavg_initialized
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
858 && !(sys$qiow (0, channel, IO$_READVBLK, 0, 0, 0,
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
859 load_ave, 12, 0, 0, 0, 0) & 1))
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
860 {
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
861 sys$dassgn (channel);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
862 getloadavg_initialized = 0;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
863 }
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
864
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
865 if (!getloadavg_initialized)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
866 return -1;
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
867 # endif /* VMS */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
868
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
869 # if !defined (LDAV_DONE) && defined(LOAD_AVE_TYPE) && !defined(VMS)
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
870
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
871 /* UNIX-specific code -- read the average from /dev/kmem. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
872
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
873 # define LDAV_PRIVILEGED /* This code requires special installation. */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
874
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
875 LOAD_AVE_TYPE load_ave[3];
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
876
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
877 /* Get the address of LDAV_SYMBOL. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
878 if (offset == 0)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
879 {
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
880 # ifndef sgi
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
881 # ifndef NLIST_STRUCT
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
882 strcpy (nl[0].n_name, LDAV_SYMBOL);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
883 strcpy (nl[1].n_name, "");
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
884 # else /* NLIST_STRUCT */
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
885 # ifdef HAVE_STRUCT_NLIST_N_UN_N_NAME
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
886 nl[0].n_un.n_name = LDAV_SYMBOL;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
887 nl[1].n_un.n_name = 0;
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
888 # else /* not HAVE_STRUCT_NLIST_N_UN_N_NAME */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
889 nl[0].n_name = LDAV_SYMBOL;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
890 nl[1].n_name = 0;
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
891 # endif /* not HAVE_STRUCT_NLIST_N_UN_N_NAME */
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
892 # endif /* NLIST_STRUCT */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
893
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
894 # ifndef SUNOS_5
11788
3a2d34fad6fb AIX support from Tim Bell <tbel@afsmail.cern.ch>:
Roland McGrath <roland@gnu.org>
parents: 10363
diff changeset
895 if (
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
896 # if !(defined (_AIX) && !defined (ps2))
11788
3a2d34fad6fb AIX support from Tim Bell <tbel@afsmail.cern.ch>:
Roland McGrath <roland@gnu.org>
parents: 10363
diff changeset
897 nlist (KERNEL_FILE, nl)
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
898 # else /* _AIX */
11788
3a2d34fad6fb AIX support from Tim Bell <tbel@afsmail.cern.ch>:
Roland McGrath <roland@gnu.org>
parents: 10363
diff changeset
899 knlist (nl, 1, sizeof (nl[0]))
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
900 # endif
11788
3a2d34fad6fb AIX support from Tim Bell <tbel@afsmail.cern.ch>:
Roland McGrath <roland@gnu.org>
parents: 10363
diff changeset
901 >= 0)
3a2d34fad6fb AIX support from Tim Bell <tbel@afsmail.cern.ch>:
Roland McGrath <roland@gnu.org>
parents: 10363
diff changeset
902 /* Omit "&& nl[0].n_type != 0 " -- it breaks on Sun386i. */
3a2d34fad6fb AIX support from Tim Bell <tbel@afsmail.cern.ch>:
Roland McGrath <roland@gnu.org>
parents: 10363
diff changeset
903 {
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
904 # ifdef FIXUP_KERNEL_SYMBOL_ADDR
11788
3a2d34fad6fb AIX support from Tim Bell <tbel@afsmail.cern.ch>:
Roland McGrath <roland@gnu.org>
parents: 10363
diff changeset
905 FIXUP_KERNEL_SYMBOL_ADDR (nl);
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
906 # endif
11788
3a2d34fad6fb AIX support from Tim Bell <tbel@afsmail.cern.ch>:
Roland McGrath <roland@gnu.org>
parents: 10363
diff changeset
907 offset = nl[0].n_value;
3a2d34fad6fb AIX support from Tim Bell <tbel@afsmail.cern.ch>:
Roland McGrath <roland@gnu.org>
parents: 10363
diff changeset
908 }
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
909 # endif /* !SUNOS_5 */
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
910 # else /* sgi */
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
911 int ldav_off;
11788
3a2d34fad6fb AIX support from Tim Bell <tbel@afsmail.cern.ch>:
Roland McGrath <roland@gnu.org>
parents: 10363
diff changeset
912
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
913 ldav_off = sysmp (MP_KERNADDR, MPKA_AVENRUN);
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
914 if (ldav_off != -1)
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
915 offset = (long) ldav_off & 0x7fffffff;
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
916 # endif /* sgi */
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
917 }
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
918
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
919 /* Make sure we have /dev/kmem open. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
920 if (!getloadavg_initialized)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
921 {
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
922 # ifndef SUNOS_5
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
923 channel = open ("/dev/kmem", 0);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
924 if (channel >= 0)
12738
d06973e701f8 (getloadavg): Set FD_CLOEXEC flag on /dev/kmem file descriptor.
Roland McGrath <roland@gnu.org>
parents: 12332
diff changeset
925 {
d06973e701f8 (getloadavg): Set FD_CLOEXEC flag on /dev/kmem file descriptor.
Roland McGrath <roland@gnu.org>
parents: 12332
diff changeset
926 /* Set the channel to close on exec, so it does not
d06973e701f8 (getloadavg): Set FD_CLOEXEC flag on /dev/kmem file descriptor.
Roland McGrath <roland@gnu.org>
parents: 12332
diff changeset
927 litter any child's descriptor table. */
24977
35dbf8bf3588 * Fix memory leaks, fd leaks, and some long-standing bugs recognizing when
Paul D. Smith <psmith@BayNetworks.com>
parents: 23370
diff changeset
928 # ifdef F_SETFD
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
929 # ifndef FD_CLOEXEC
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
930 # define FD_CLOEXEC 1
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
931 # endif
12738
d06973e701f8 (getloadavg): Set FD_CLOEXEC flag on /dev/kmem file descriptor.
Roland McGrath <roland@gnu.org>
parents: 12332
diff changeset
932 (void) fcntl (channel, F_SETFD, FD_CLOEXEC);
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
933 # endif
12738
d06973e701f8 (getloadavg): Set FD_CLOEXEC flag on /dev/kmem file descriptor.
Roland McGrath <roland@gnu.org>
parents: 12332
diff changeset
934 getloadavg_initialized = 1;
d06973e701f8 (getloadavg): Set FD_CLOEXEC flag on /dev/kmem file descriptor.
Roland McGrath <roland@gnu.org>
parents: 12332
diff changeset
935 }
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
936 # else /* SUNOS_5 */
4011
1117ec91799c *** empty log message ***
David J. MacKenzie <djm@gnu.org>
parents: 3597
diff changeset
937 /* We pass 0 for the kernel, corefile, and swapfile names
1117ec91799c *** empty log message ***
David J. MacKenzie <djm@gnu.org>
parents: 3597
diff changeset
938 to use the currently running kernel. */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
939 kd = kvm_open (0, 0, 0, O_RDONLY, 0);
15281
dd275783c873 [WIN32]: No-op as for [MSDOS].
Roland McGrath <roland@gnu.org>
parents: 14457
diff changeset
940 if (kd != 0)
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
941 {
4011
1117ec91799c *** empty log message ***
David J. MacKenzie <djm@gnu.org>
parents: 3597
diff changeset
942 /* nlist the currently running kernel. */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
943 kvm_nlist (kd, nl);
4011
1117ec91799c *** empty log message ***
David J. MacKenzie <djm@gnu.org>
parents: 3597
diff changeset
944 offset = nl[0].n_value;
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
945 getloadavg_initialized = 1;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
946 }
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
947 # endif /* SUNOS_5 */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
948 }
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
949
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
950 /* If we can, get the load average values. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
951 if (offset && getloadavg_initialized)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
952 {
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
953 /* Try to read the load. */
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
954 # ifndef SUNOS_5
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
955 if (lseek (channel, offset, 0) == -1L
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
956 || read (channel, (char *) load_ave, sizeof (load_ave))
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
957 != sizeof (load_ave))
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
958 {
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
959 close (channel);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
960 getloadavg_initialized = 0;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
961 }
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
962 # else /* SUNOS_5 */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
963 if (kvm_read (kd, offset, (char *) load_ave, sizeof (load_ave))
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
964 != sizeof (load_ave))
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
965 {
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
966 kvm_close (kd);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
967 getloadavg_initialized = 0;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
968 }
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
969 # endif /* SUNOS_5 */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
970 }
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
971
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
972 if (offset == 0 || !getloadavg_initialized)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
973 return -1;
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
974 # endif /* LOAD_AVE_TYPE and not VMS */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
975
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
976 # if !defined (LDAV_DONE) && defined (LOAD_AVE_TYPE) /* Including VMS. */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
977 if (nelem > 0)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
978 loadavg[elem++] = LDAV_CVT (load_ave[0]);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
979 if (nelem > 1)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
980 loadavg[elem++] = LDAV_CVT (load_ave[1]);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
981 if (nelem > 2)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
982 loadavg[elem++] = LDAV_CVT (load_ave[2]);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
983
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
984 # define LDAV_DONE
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
985 # endif /* !LDAV_DONE && LOAD_AVE_TYPE */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
986
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
987 # ifdef LDAV_DONE
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
988 return elem;
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
989 # else
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
990 /* Set errno to zero to indicate that there was no particular error;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
991 this function just can't work at all on this system. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
992 errno = 0;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
993 return -1;
16869
16ef2bd09de7 [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's pstat_getdynamic so
Jim Meyering <jim@meyering.net>
parents: 16413
diff changeset
994 # endif
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
995 }
4409
084df29978c7 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4398
diff changeset
996
084df29978c7 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4398
diff changeset
997 #endif /* ! HAVE_GETLOADAVG */
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
998
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
999 #ifdef TEST
51485
f129be4cf98e Set NLIST_STRUCT from HAVE_NLIST_H. Use
Dave Love <fx@gnu.org>
parents: 29782
diff changeset
1000 void
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1001 main (argc, argv)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1002 int argc;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1003 char **argv;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1004 {
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1005 int naptime = 0;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1006
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1007 if (argc > 1)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1008 naptime = atoi (argv[1]);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1009
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1010 while (1)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1011 {
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1012 double avg[3];
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1013 int loads;
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1014
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1015 errno = 0; /* Don't be misled if it doesn't set errno. */
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1016 loads = getloadavg (avg, 3);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1017 if (loads == -1)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1018 {
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1019 perror ("Error getting load average");
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1020 exit (1);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1021 }
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1022 if (loads > 0)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1023 printf ("1-minute: %f ", avg[0]);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1024 if (loads > 1)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1025 printf ("5-minute: %f ", avg[1]);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1026 if (loads > 2)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1027 printf ("15-minute: %f ", avg[2]);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1028 if (loads > 0)
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1029 putchar ('\n');
4398
67c9f8ba927a *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4349
diff changeset
1030
67c9f8ba927a *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4349
diff changeset
1031 if (naptime == 0)
67c9f8ba927a *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4349
diff changeset
1032 break;
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1033 sleep (naptime);
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1034 }
4398
67c9f8ba927a *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4349
diff changeset
1035
67c9f8ba927a *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 4349
diff changeset
1036 exit (0);
2928
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1037 }
a9e4ef13ce85 Initial revision
Roland McGrath <roland@gnu.org>
parents:
diff changeset
1038 #endif /* TEST */
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51485
diff changeset
1039
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51485
diff changeset
1040 /* arch-tag: 2b37a242-6289-41f4-8cd5-0e73fd615db1
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51485
diff changeset
1041 (do not change this comment) */