diff options
-rw-r--r-- | getloadavg.c | 8 |
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 */ |