diff options
Diffstat (limited to 'sysutils/xosview/files/patch-kernel.cc')
-rw-r--r-- | sysutils/xosview/files/patch-kernel.cc | 137 |
1 files changed, 133 insertions, 4 deletions
diff --git a/sysutils/xosview/files/patch-kernel.cc b/sysutils/xosview/files/patch-kernel.cc index 9d2909e3d4a7..43121c712a1c 100644 --- a/sysutils/xosview/files/patch-kernel.cc +++ b/sysutils/xosview/files/patch-kernel.cc @@ -1,5 +1,5 @@ ---- bsd/kernel.cc.orig Mon Jul 17 11:52:31 2000 -+++ bsd/kernel.cc Tue Aug 21 12:23:41 2001 +--- bsd/kernel.cc.orig Tue Oct 9 10:40:51 2001 ++++ bsd/kernel.cc Mon Oct 27 20:03:03 2003 @@ -46,6 +46,7 @@ #endif @@ -30,7 +30,136 @@ int totalinuse, totalsize; int rnswap, nswap = swapctl(SWAP_NSWAP, 0, 0); struct swapent *swapiter; -@@ -828,25 +834,25 @@ +@@ -557,13 +563,21 @@ + * Make sure that the userland devstat version matches the kernel + * devstat version. + */ ++#if __FreeBSD_version >= 500000 ++ if (devstat_checkversion(kd) < 0) { ++#else + if (checkversion() < 0) { ++#endif + nodisk++; + return; + } + + /* find out how many devices we have */ ++#if __FreeBSD_version >= 500000 ++ if ((num_devices = devstat_getnumdevs(kd)) < 0) { ++#else + if ((num_devices = getnumdevs()) < 0) { ++#endif + nodisk++; + return; + } +@@ -578,7 +592,11 @@ + * changed here, since it almost certainly has. We only look for + * errors. + */ ++#if __FreeBSD_version >= 500000 ++ if (devstat_getdevs(kd,&cur) == -1) { ++#else + if (getdevs(&cur) == -1) { ++#endif + nodisk++; + return; + } +@@ -590,7 +608,11 @@ + + /* only interested in disks */ + matches = NULL; ++#if __FreeBSD_version >= 500000 ++ if (devstat_buildmatch("da", &matches, &num_matches) != 0) { ++#else + if (buildmatch("da", &matches, &num_matches) != 0) { ++#endif + nodisk++; + return; + } +@@ -605,7 +627,11 @@ + * device list has changed, so we don't look for return values of 0 + * or 1. If we get back -1, though, there is an error. + */ ++#if __FreeBSD_version >= 500000 ++ if (devstat_selectdevs(&dev_select, &num_selected, ++#else + if (selectdevs(&dev_select, &num_selected, ++#endif + &num_selections, &select_generation, + generation, cur.dinfo->devices, num_devices, + matches, num_matches, +@@ -632,7 +658,11 @@ + * the selection process again, in case a device that we + * were previously displaying has gone away. + */ ++#if __FreeBSD_version >= 500000 ++ switch (devstat_getdevs(kd,&cur)) { ++#else + switch (getdevs(&cur)) { ++#endif + case -1: + return (0); + case 1: { +@@ -640,7 +670,11 @@ + + num_devices = cur.dinfo->numdevs; + generation = cur.dinfo->generation; ++#if __FreeBSD_version >= 500000 ++ retval = devstat_selectdevs(&dev_select, &num_selected, ++#else + retval = selectdevs(&dev_select, &num_selected, ++#endif + &num_selections, &select_generation, + generation, cur.dinfo->devices, + num_devices, matches, num_matches, +@@ -664,14 +698,22 @@ + * Calculate elapsed time up front, since it's the same for all + * devices. + */ ++#if __FreeBSD_version >= 500000 ++ busy_seconds = cur.snap_time - last.snap_time; ++#else + busy_seconds = compute_etime(cur.busy_time, last.busy_time); ++#endif + + /* this is the first time thru so just copy cur to last */ + if (last.dinfo->numdevs == 0) { + tmp_dinfo = last.dinfo; + last.dinfo = cur.dinfo; + cur.dinfo = tmp_dinfo; ++#if __FreeBSD_version >= 500000 ++ last.snap_time = cur.snap_time; ++#else + last.busy_time = cur.busy_time; ++#endif + return (0); + } + +@@ -685,7 +727,11 @@ + + di = dev_select[dn].position; + ++#if __FreeBSD_version >= 500000 ++ if (devstat_compute_statistics(&cur.dinfo->devices[di], ++#else + if (compute_stats(&cur.dinfo->devices[di], ++#endif + &last.dinfo->devices[di], busy_seconds, + &total_bytes, &total_transfers, + NULL, NULL, +@@ -700,7 +746,11 @@ + last.dinfo = cur.dinfo; + cur.dinfo = tmp_dinfo; + ++#if __FreeBSD_version >= 500000 ++ last.snap_time = cur.snap_time; ++#else + last.busy_time = cur.busy_time; ++#endif + + } else { + /* no disks found ? */ +@@ -828,25 +878,25 @@ OpenKDIfNeeded(); nintr = (nlst[EINTRCNT_SYM_INDEX].n_value - nlst[INTRCNT_SYM_INDEX].n_value) / sizeof(int); @@ -63,7 +192,7 @@ /* FreeBSD has an array of interrupt counts, indexed by device number. These are also indirected by IRQ num with intr_countp: */ safe_kvm_read (nlst[INTRCOUNTP_SYM_INDEX].n_value, -@@ -875,8 +881,8 @@ +@@ -875,8 +925,8 @@ intrCount[i] = kvm_intrptrs[i]; #endif /* _BSDI_VERSION */ |