summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwiz <wiz@pkgsrc.org>2000-06-30 03:13:36 +0000
committerwiz <wiz@pkgsrc.org>2000-06-30 03:13:36 +0000
commit1881d3df91dc350bff14b275760b48458b9e7c66 (patch)
treecef34c5b78b6c9f26b91c227955d2bffe2152edf
parentd6b5f7380413878804020451ee684e75ea5a4b1d (diff)
downloadpkgsrc-1881d3df91dc350bff14b275760b48458b9e7c66.tar.gz
Don't use kvm_read for cp_time, use sysctl instead.
Patch provided by Simon Burge; thanks to Dan McMahill for further testing.
-rw-r--r--devel/libgtop/files/patch-sum4
-rw-r--r--devel/libgtop/patches/patch-ae74
2 files changed, 73 insertions, 5 deletions
diff --git a/devel/libgtop/files/patch-sum b/devel/libgtop/files/patch-sum
index 838fbd7507d..3f82237267d 100644
--- a/devel/libgtop/files/patch-sum
+++ b/devel/libgtop/files/patch-sum
@@ -1,9 +1,9 @@
-$NetBSD: patch-sum,v 1.15 2000/06/26 18:05:46 dmcmahill Exp $
+$NetBSD: patch-sum,v 1.16 2000/06/30 03:13:36 wiz Exp $
MD5 (patch-ab) = 1be0d48b1e41fea46ee459a320fb11c7
MD5 (patch-ac) = f84a83914548206edccb11e1f84bf1bf
MD5 (patch-ad) = 617e9e681d3576d14d2b9dd4185dfd68
-MD5 (patch-ae) = 0a5362d02bbce6f831ad54078b951326
+MD5 (patch-ae) = 500e5a7bf247842cef93af16027a7cbf
MD5 (patch-al) = 010ee10f093b399b82479da2f64ee92e
MD5 (patch-an) = 92fc474edf1d713540f7ee0a35a6dbf2
MD5 (patch-ao) = ae10e3b4bd4ee612c4fac54fccbb15a8
diff --git a/devel/libgtop/patches/patch-ae b/devel/libgtop/patches/patch-ae
index 55972ae632a..a643eb1616f 100644
--- a/devel/libgtop/patches/patch-ae
+++ b/devel/libgtop/patches/patch-ae
@@ -1,8 +1,8 @@
-$NetBSD: patch-ae,v 1.6 2000/06/08 11:43:18 tron Exp $
+$NetBSD: patch-ae,v 1.7 2000/06/30 03:13:37 wiz Exp $
--- sysdeps/freebsd/cpu.c.orig Sun Feb 13 16:47:58 2000
-+++ sysdeps/freebsd/cpu.c Thu Jun 8 13:30:08 2000
-@@ -27,6 +27,10 @@
++++ sysdeps/freebsd/cpu.c Thu Jun 29 00:01:11 2000
+@@ -27,11 +27,16 @@
#include <glibtop_suid.h>
@@ -13,3 +13,71 @@ $NetBSD: patch-ae,v 1.6 2000/06/08 11:43:18 tron Exp $
static const unsigned long _glibtop_sysdeps_cpu =
(1L << GLIBTOP_CPU_TOTAL) + (1L << GLIBTOP_CPU_USER) +
(1L << GLIBTOP_CPU_NICE) + (1L << GLIBTOP_CPU_SYS) +
+ (1L << GLIBTOP_CPU_IDLE) + (1L << GLIBTOP_CPU_FREQUENCY);
+
++#ifndef KERN_CP_TIME
+ /* nlist structure for kernel access */
+ static struct nlist nlst [] = {
+ #ifdef __bsdi__
+@@ -41,16 +46,21 @@
+ #endif
+ { 0 }
+ };
++#endif
+
+ /* MIB array for sysctl */
+ static int mib_length=2;
+ static int mib [] = { CTL_KERN, KERN_CLOCKRATE };
++#ifdef KERN_CP_TIME
++static int mib2 [] = { CTL_KERN, KERN_CP_TIME };
++#endif
+
+ /* Init function. */
+
+ void
+ glibtop_init_cpu_p (glibtop *server)
+ {
++#ifndef KERN_CP_TIME
+ if (kvm_nlist (server->machine.kd, nlst) < 0) {
+ glibtop_warn_io_r (server, "kvm_nlist (cpu)");
+ return;
+@@ -58,6 +68,7 @@
+
+ /* Set this only if kvm_nlist () succeeded. */
+ server->sysdeps.cpu = _glibtop_sysdeps_cpu;
++#endif
+ }
+
+ /* Provides information about cpu usage. */
+@@ -65,7 +76,11 @@
+ void
+ glibtop_get_cpu_p (glibtop *server, glibtop_cpu *buf)
+ {
++#ifdef KERN_CP_TIME
++ u_int64_t cpts [CPUSTATES];
++#else
+ long cpts [CPUSTATES];
++#endif
+ /* sysctl vars*/
+ struct clockinfo ci;
+ size_t length;
+@@ -78,11 +93,19 @@
+ if (server->sysdeps.cpu == 0)
+ return;
+
++#ifdef KERN_CP_TIME
++ length = sizeof (cpts);
++ if (sysctl (mib2, mib_length, cpts, &length, NULL, 0)) {
++ glibtop_warn_io_r (server, "sysctl");
++ return;
++ }
++#else
+ if (kvm_read (server->machine.kd, nlst [0].n_value,
+ &cpts, sizeof (cpts)) != sizeof (cpts)) {
+ glibtop_warn_io_r (server, "kvm_read (cp_time)");
+ return;
+ }
++#endif
+
+ /* Get the clockrate data */
+ length = sizeof (struct clockinfo);