diff options
Diffstat (limited to 'sysutils/xfce4-diskperf-plugin/patches/patch-aa')
-rw-r--r-- | sysutils/xfce4-diskperf-plugin/patches/patch-aa | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/sysutils/xfce4-diskperf-plugin/patches/patch-aa b/sysutils/xfce4-diskperf-plugin/patches/patch-aa new file mode 100644 index 00000000000..1ad37a8301e --- /dev/null +++ b/sysutils/xfce4-diskperf-plugin/patches/patch-aa @@ -0,0 +1,84 @@ +$NetBSD: patch-aa,v 1.3 2006/07/02 10:13:11 martti Exp $ + +--- panel-plugin/devperf.c.orig 2003-11-30 12:58:54.000000000 +0200 ++++ panel-plugin/devperf.c 2006-07-02 10:05:44.000000000 +0300 +@@ -264,21 +264,39 @@ + const char *device = (const char *) p_pvDevice; + struct timeval tv; + size_t size, i, ndrives; ++#ifdef HW_DISKSTATS + struct disk_sysctl *drives, drive; ++#else ++ struct io_sysctl *drives, drive; ++#endif + int mib[3]; + + mib[0] = CTL_HW; ++#ifdef HW_DISKSTATS + mib[1] = HW_DISKSTATS; + mib[2] = sizeof(struct disk_sysctl); ++#else ++ mib[1] = HW_IOSTATS; ++ mib[2] = sizeof(struct io_sysctl); ++#endif ++ + if (sysctl(mib, 3, NULL, &size, NULL, 0) == -1) + return(-1); ++#ifdef HW_DISKSTATS + ndrives = size / sizeof(struct disk_sysctl); ++#else ++ ndrives = size / sizeof(struct io_sysctl); ++#endif + drives = malloc(size); + if (sysctl(mib, 3, drives, &size, NULL, 0) == -1) + return(-1); + + for (i = 0; i < ndrives; i++) { ++#ifdef HW_DISKSTATS + if (strcmp(drives[i].dk_name, device) == 0) { ++#else ++ if (strcmp(drives[i].name, device) == 0) { ++#endif + drive = drives[i]; + break; + } +@@ -292,13 +310,18 @@ + gettimeofday (&tv, 0); + perf->timestamp_ns = (uint64_t)1000ull * 1000ull * 1000ull * + tv.tv_sec + 1000ull * tv.tv_usec; +-#if defined(__NetBSD_Version__) && (__NetBSD_Version__ < 106110000) ++#ifdef HW_DISKSTATS ++# if defined(__NetBSD_Version__) && (__NetBSD_Version__ < 106110000) + /* NetBSD < 1.6K does not have separate read/write statistics. */ + perf->rbytes = drive.dk_bytes; + perf->wbytes = drive.dk_bytes; +-#else ++# else + perf->rbytes = drive.dk_rbytes; + perf->wbytes = drive.dk_wbytes; ++# endif ++#else ++ perf->rbytes = drive.rbytes; ++ perf->wbytes = drive.wbytes; + #endif + + /* +@@ -306,10 +329,18 @@ + * time separatly. + * -- Benedikt + */ ++#ifdef HW_DISKSTATS + perf->qlen = drive.dk_xfer; + perf->rbusy_ns = ((uint64_t)1000ull * 1000ull * 1000ull * drive.dk_time_sec + + 1000ull * drive.dk_time_usec) / 2ull; + perf->wbusy_ns = perf->rbusy_ns; ++#else ++ perf->qlen = drive.xfer; ++ perf->rbusy_ns = ((uint64_t)1000ull * 1000ull * 1000ull * drive.time_sec ++ + 1000ull * drive.time_usec) / 2ull; ++ perf->wbusy_ns = perf->rbusy_ns; ++ ++#endif + + return(0); + } |