summaryrefslogtreecommitdiff
path: root/devel/libgtop/patches
diff options
context:
space:
mode:
authorwiz <wiz>2000-06-30 03:13:36 +0000
committerwiz <wiz>2000-06-30 03:13:36 +0000
commitfe93dbff5dc0fa70c432eec89ff907d01154767e (patch)
treecef34c5b78b6c9f26b91c227955d2bffe2152edf /devel/libgtop/patches
parent00a8552333523260d07f5a276d47663e918798ff (diff)
downloadpkgsrc-fe93dbff5dc0fa70c432eec89ff907d01154767e.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.
Diffstat (limited to 'devel/libgtop/patches')
-rw-r--r--devel/libgtop/patches/patch-ae74
1 files changed, 71 insertions, 3 deletions
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);