summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--getloadavg.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/getloadavg.c b/getloadavg.c
index 339e9ba..49612bf 100644
--- a/getloadavg.c
+++ b/getloadavg.c
@@ -699,7 +699,6 @@ getloadavg (loadavg, nelem)
/* Get the address of LDAV_SYMBOL. */
if (offset == 0)
{
-#ifndef SUNOS_5
#ifndef sgi
#ifndef NLIST_STRUCT
strcpy (nl[0].n_name, LDAV_SYMBOL);
@@ -714,6 +713,7 @@ getloadavg (loadavg, nelem)
#endif /* not NLIST_NAME_UNION */
#endif /* NLIST_STRUCT */
+#ifndef SUNOS_5
if (nlist (KERNEL_FILE, nl) >= 0)
/* Omit "&& nl[0].n_type != 0 " -- it breaks on Sun386i. */
{
@@ -722,6 +722,7 @@ getloadavg (loadavg, nelem)
#endif
offset = nl[0].n_value;
}
+#endif /* !SUNOS_5 */
#else /* sgi */
int ldav_off;
@@ -729,7 +730,6 @@ getloadavg (loadavg, nelem)
if (ldav_off != -1)
offset = (long) ldav_off & 0x7fffffff;
#endif /* sgi */
-#endif /* !SUNOS_5 */
}
/* Make sure we have /dev/kmem open. */
@@ -740,10 +740,14 @@ getloadavg (loadavg, nelem)
if (channel >= 0)
getloadavg_initialized = 1;
#else /* SUNOS_5 */
+ /* We pass 0 for the kernel, corefile, and swapfile names
+ to use the currently running kernel. */
kd = kvm_open (0, 0, 0, O_RDONLY, 0);
if (kd != 0)
{
+ /* nlist the currently running kernel. */
kvm_nlist (kd, nl);
+ offset = nl[0].n_value;
getloadavg_initialized = 1;
}
#endif /* SUNOS_5 */