diff options
author | youri <youri@pkgsrc.org> | 2015-06-29 11:16:48 +0000 |
---|---|---|
committer | youri <youri@pkgsrc.org> | 2015-06-29 11:16:48 +0000 |
commit | 3d2256d79d4170b8947718d25e96b15b964da87d (patch) | |
tree | 25fd6ae2dd654e3e4138a05304f061066362abba /sysutils/xfce4-diskperf-plugin/patches/patch-panel-plugin_devperf.c | |
parent | 57e9973b1fd664fd2904ef3f44a90c7ea0144566 (diff) | |
download | pkgsrc-3d2256d79d4170b8947718d25e96b15b964da87d.tar.gz |
Update to 2.5.5 (2015/3/3):
-----------------
* Use the new GtkTooltip API
* Fix a memory leak in the FreeBSD codepath (#11153)
* Add support for FreeBSD (bug #10350)
* New translations: th, ms, bg, oc, hr, en_AU, sr
* Updated translations: ar, ast, bg, cs, de, es, fr, it,
hr, hu. ko, nb, nl, ug, pl, sv, tr, zh_CN, zh_TW
Diffstat (limited to 'sysutils/xfce4-diskperf-plugin/patches/patch-panel-plugin_devperf.c')
-rw-r--r-- | sysutils/xfce4-diskperf-plugin/patches/patch-panel-plugin_devperf.c | 106 |
1 files changed, 6 insertions, 100 deletions
diff --git a/sysutils/xfce4-diskperf-plugin/patches/patch-panel-plugin_devperf.c b/sysutils/xfce4-diskperf-plugin/patches/patch-panel-plugin_devperf.c index 420757ed6e8..edb5597e975 100644 --- a/sysutils/xfce4-diskperf-plugin/patches/patch-panel-plugin_devperf.c +++ b/sysutils/xfce4-diskperf-plugin/patches/patch-panel-plugin_devperf.c @@ -1,103 +1,9 @@ -$NetBSD: patch-panel-plugin_devperf.c,v 1.1 2015/04/21 08:56:40 jperkin Exp $ +$NetBSD: patch-panel-plugin_devperf.c,v 1.2 2015/06/29 11:16:48 youri Exp $ -Add FreeBSD support and fix NetBSD support. ---- panel-plugin/devperf.c.orig 2015-02-09 23:25:33.000000000 +0000 +Fix NetBSD support. +--- panel-plugin/devperf.c.orig 2014-09-11 13:45:46.000000000 +0000 +++ panel-plugin/devperf.c -@@ -225,6 +225,93 @@ int main () - - /************************** Linux End ***************/ - -+#elif defined(__FreeBSD__) -+ -+#include <sys/disk.h> -+#include <sys/param.h> -+#include <sys/sysctl.h> -+#include <sys/types.h> -+#include <sys/errno.h> -+#include <sys/resource.h> -+#include <sys/time.h> -+#include <devstat.h> -+#include <fcntl.h> -+#include <limits.h> -+#include <string.h> -+#include <syslog.h> -+#include <stdarg.h> -+ -+#define MAXNAMELEN 256 -+ -+struct statinfo stats; -+struct devinfo dinfo; -+ -+int DevPerfInit () -+{ -+ stats.dinfo = &dinfo; -+ -+ return (0); -+} -+ -+int DevCheckStatAvailability(char const **strptr) -+{ -+ return (0); -+} -+ -+int DevGetPerfData (const void *p_pvDevice, struct devperf_t *perf) -+{ -+ struct timeval tv; -+ struct timespec ts; -+ struct devstat dev; -+ kvm_t *kd = NULL; -+ int i, found = 0; -+ char *check_dev = (char *) p_pvDevice; -+ -+ if(devstat_getdevs(kd, &stats) == -1) { -+ syslog(0, "DISKPERF: getdevs fail"); -+ } -+ -+ for(found = 0, i = 0; i < (stats.dinfo)->numdevs; i++) { -+ char dev_name[MAXNAMELEN]; -+ dev = (stats.dinfo)->devices[i]; -+ snprintf(dev_name, MAXNAMELEN-1, "%s%d", -+ dev.device_name, dev.unit_number); -+ if ((check_dev != NULL) && (strcmp(check_dev, dev_name) != 0)) -+ continue; -+ else { -+ found = 1; -+ break; -+ } -+ -+ } -+ -+ if(check_dev != NULL && found) { -+ perf->wbytes = dev.bytes[DEVSTAT_WRITE]; -+ perf->rbytes = dev.bytes[DEVSTAT_READ]; -+ gettimeofday (&tv, 0); -+ perf->timestamp_ns = (uint64_t)1000ull * 1000ull * 1000ull * -+ tv.tv_sec + 1000ull * tv.tv_usec; -+ perf->qlen = dev.start_count - dev.end_count; -+ // I'm not sure about rbusy and wbusy calculation -+ bintime2timespec(&dev.busy_time, &ts); -+ perf->rbusy_ns = (uint64_t) ts.tv_nsec; -+ perf->wbusy_ns = perf->rbusy_ns; -+ } -+ -+ return (0); -+} -+ -+#if 0 /* Standalone test purpose */ -+int main () -+{ -+ struct devperf_t oPerf; -+ DevGetPerfData ((void*)"ada0", &oPerf); -+ printf ("%lu\t%lu\n", oPerf.rbytes, oPerf.wbytes); -+ return (0); -+} -+#endif -+ -+ - - #elif defined(__NetBSD__) - /**************************************************************/ -@@ -251,21 +338,39 @@ int DevGetPerfData (const void *p_pvDevi +@@ -335,21 +335,39 @@ int DevGetPerfData (const void *p_pvDevi const char *device = (const char *) p_pvDevice; struct timeval tv; size_t size, i, ndrives; @@ -137,7 +43,7 @@ Add FreeBSD support and fix NetBSD support. drive = drives[i]; break; } -@@ -279,13 +384,18 @@ int DevGetPerfData (const void *p_pvDevi +@@ -363,13 +381,18 @@ int DevGetPerfData (const void *p_pvDevi gettimeofday (&tv, 0); perf->timestamp_ns = (uint64_t)1000ull * 1000ull * 1000ull * tv.tv_sec + 1000ull * tv.tv_usec; @@ -158,7 +64,7 @@ Add FreeBSD support and fix NetBSD support. #endif /* -@@ -293,10 +403,18 @@ int DevGetPerfData (const void *p_pvDevi +@@ -377,10 +400,18 @@ int DevGetPerfData (const void *p_pvDevi * time separatly. * -- Benedikt */ |