diff options
author | bsam <bsam@FreeBSD.org> | 2013-11-04 19:40:15 +0800 |
---|---|---|
committer | bsam <bsam@FreeBSD.org> | 2013-11-04 19:40:15 +0800 |
commit | a216b0f2cc5203fea9d0a8905014883e2dc02a04 (patch) | |
tree | ee49abc8346c9bcbbff91a6b7784c88d5f42e43d /x11/fbpanel/files | |
parent | 4dcf24d2f18caf8892698c94091fc3af1eea26eb (diff) | |
download | freebsd-ports-gnome-a216b0f2cc5203fea9d0a8905014883e2dc02a04.tar.gz freebsd-ports-gnome-a216b0f2cc5203fea9d0a8905014883e2dc02a04.tar.zst freebsd-ports-gnome-a216b0f2cc5203fea9d0a8905014883e2dc02a04.zip |
. fix cpu plugin (core dumped without the fix);
. bump PORTREVISION;
. take maintainership.
Submitted by: bsam (me, via e-mail)
Approved by: nemysis (former maintainer)
Diffstat (limited to 'x11/fbpanel/files')
-rw-r--r-- | x11/fbpanel/files/patch-plugins__cpu__cpu.c | 59 |
1 files changed, 18 insertions, 41 deletions
diff --git a/x11/fbpanel/files/patch-plugins__cpu__cpu.c b/x11/fbpanel/files/patch-plugins__cpu__cpu.c index ed679d860e3a..8c50bd994d13 100644 --- a/x11/fbpanel/files/patch-plugins__cpu__cpu.c +++ b/x11/fbpanel/files/patch-plugins__cpu__cpu.c @@ -1,5 +1,5 @@ --- ./plugins/cpu/cpu.c.orig 2010-03-07 00:14:04.000000000 -0800 -+++ ./plugins/cpu/cpu.c 2010-11-17 11:06:07.000000000 -0800 ++++ ./plugins/cpu/cpu.c 2013-11-04 01:56:23.388313800 +0400 @@ -18,9 +18,20 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * @@ -22,24 +22,7 @@ #include "misc.h" #include "../chart/chart.h" -@@ -29,9 +40,16 @@ - #include "dbg.h" - - /* cpu.c */ -+#if defined __FreeBSD__ -+struct cpu_stat { -+ gulong u, n, s, i; // user, nice, system, idle -+}; -+#else - struct cpu_stat { - gulong u, n, s, i, w; // user, nice, system, idle, wait - }; -+#endif -+ - - typedef struct { - chart_priv chart; -@@ -84,6 +102,65 @@ +@@ -84,6 +102,59 @@ RET(TRUE); } @@ -47,11 +30,11 @@ +static int +cpu_get_load(cpu_priv * c) +{ -+ static int mib[2] = {-1, -1}, init = 0, j, realhz; ++ static int mib[2] = {-1, -1}, init = 0, j; + long ct[CPUSTATES]; + + gfloat a , b; -+ struct cpu_stat cpu, cpu_diff; ++ struct cpu_stat cpu; + float total; + gchar buf[40]; + @@ -59,19 +42,16 @@ + total = 0; + + if (init == 0) { -+ struct clockinfo ci; -+ j = sizeof(ci); -+ if (sysctlbyname("kern.clockrate", &ci, &j, NULL, 0) == -1) { -+ DBG("Couldn't get kern.clockrate"); -+ RET(FALSE); -+ } else -+ realhz = ci.stathz ? ci.stathz : ci.hz; -+ + j = 2; + if (sysctlnametomib("kern.cp_time", mib, &j) == -1) { + DBG("Couldn't get mib for kern.cp_time"); + RET(FALSE); + } ++ c->cpu_prev.u = 0; ++ c->cpu_prev.n = 0; ++ c->cpu_prev.s = 0; ++ c->cpu_prev.i = 0; ++ c->cpu_prev.w = 0; + init = 1; + j = sizeof(ct); + } @@ -79,20 +59,17 @@ + DBG("Couldn't get cpu stats"); + RET(FALSE); + } -+ cpu.u = ct[CP_USER] / realhz; -+ cpu.n = ct[CP_NICE] / realhz; -+ cpu.s = ct[CP_SYS] / realhz; -+ cpu.i = ct[CP_IDLE] / realhz; + -+ cpu_diff.u = cpu.u - c->cpu_prev.u; -+ cpu_diff.n = cpu.n - c->cpu_prev.n; -+ cpu_diff.s = cpu.s - c->cpu_prev.s; -+ cpu_diff.i = cpu.i - c->cpu_prev.i; -+ c->cpu_prev = cpu; ++ a = ct[CP_USER] + ct[CP_NICE] + ct[CP_SYS] + ct[CP_INTR] - ++ (c->cpu_prev.u + c->cpu_prev.n + c->cpu_prev.s + c->cpu_prev.i); ++ b = a + ct[CP_IDLE] - c->cpu_prev.w; ++ total = b ? (float)a / b : 1.0; + -+ a = cpu_diff.u + cpu_diff.n + cpu_diff.s; -+ b = a + cpu_diff.i; -+ total = b ? a / b : 1.0; ++ c->cpu_prev.u = ct[CP_USER]; ++ c->cpu_prev.n = ct[CP_NICE]; ++ c->cpu_prev.s = ct[CP_SYS] ; ++ c->cpu_prev.i = ct[CP_INTR]; ++ c->cpu_prev.w = ct[CP_IDLE]; + +end: + DBG("total=%f a=%f b=%f\n", total, a, b); |