diff options
author | wiz <wiz@pkgsrc.org> | 2000-06-30 03:13:36 +0000 |
---|---|---|
committer | wiz <wiz@pkgsrc.org> | 2000-06-30 03:13:36 +0000 |
commit | 1881d3df91dc350bff14b275760b48458b9e7c66 (patch) | |
tree | cef34c5b78b6c9f26b91c227955d2bffe2152edf | |
parent | d6b5f7380413878804020451ee684e75ea5a4b1d (diff) | |
download | pkgsrc-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-sum | 4 | ||||
-rw-r--r-- | devel/libgtop/patches/patch-ae | 74 |
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); |