summaryrefslogtreecommitdiffstats
path: root/sysutils/xsysinfo
diff options
context:
space:
mode:
authorgj <gj@FreeBSD.org>1999-04-07 19:23:33 +0000
committergj <gj@FreeBSD.org>1999-04-07 19:23:33 +0000
commit3172c58cf99301f3f33e149e4070a30081661730 (patch)
tree53196030a2e2447d325dfa8039c9ed68c0f13e7a /sysutils/xsysinfo
parentda9ea9d0842d149c83125fa52268ab07603aeaea (diff)
downloadFreeBSD-ports-3172c58cf99301f3f33e149e4070a30081661730.zip
FreeBSD-ports-3172c58cf99301f3f33e149e4070a30081661730.tar.gz
Add patch-af to use kvm_getswapinfo for -current.
I would have liked to pass this by the maintainer but "he's in the army now" and inaccessible. PR: ports/10091
Diffstat (limited to 'sysutils/xsysinfo')
-rw-r--r--sysutils/xsysinfo/files/patch-af68
1 files changed, 68 insertions, 0 deletions
diff --git a/sysutils/xsysinfo/files/patch-af b/sysutils/xsysinfo/files/patch-af
new file mode 100644
index 0000000..7ce0df3
--- /dev/null
+++ b/sysutils/xsysinfo/files/patch-af
@@ -0,0 +1,68 @@
+--- sysinfo.c.orig Tue Apr 6 22:53:17 1999
++++ sysinfo.c Tue Apr 6 23:09:37 1999
+@@ -102,6 +102,7 @@
+ struct nlist nl[] = {
+ #define X_CP_TIME 0
+ { "_cp_time" },
++#if __FreeBSD_version < 400000
+ #define VM_SWAPLIST 1
+ { "_swaplist" },/* list of free swap areas */
+ #define VM_SWDEVT 2
+@@ -129,6 +130,27 @@
+ #define X_DKXFER 12
+ { "_dk_xfer" },
+ #endif
++#else /* __FreeBSD_version < 400000 */
++#define VM_DMMAX 1
++ { "_dmmax" }, /* maximum size of a swap block */
++#define V_MOUNTLIST 2
++ { "_mountlist" }, /* address of head of mount list. */
++#define V_NUMV 3
++ { "_numvnodes" },
++#define FNL_NFILE 4
++ {"_nfiles"},
++#define FNL_MAXFILE 5
++ {"_maxfiles"},
++#define NLMANDATORY FNL_MAXFILE /* names up to here are mandatory */
++#define X_CNT 6
++ { "_cnt" }, /* struct vmmeter cnt */
++#define N_IFNET 7
++ { "_ifnet" },
++#ifndef HAVE_DEVSTAT
++#define X_DKXFER 8
++ { "_dk_xfer" },
++#endif
++#endif /* __FreeBSD_version < 400000 */
+ { "" },
+ };
+
+@@ -444,6 +466,21 @@
+ void
+ swapmode(int *used, int *avail)
+ {
++#if __FreeBSD_version >= 400000
++ /* based on swapmode from /usr/src/usr.bin/top/machine.c */
++ int n;
++ struct kvm_swap swapary[1];
++
++ n = kvm_getswapinfo(kd, swapary, 1, 0);
++ if (n < 0) {
++ *avail = *used = 0;
++ return;
++ }
++
++ *avail = swapary[0].ksw_total - swapary[0].ksw_used;
++ *used = swapary[0].ksw_used;
++ return;
++#else
+ char *header;
+ int hlen, nswap, nswdev, dmmax;
+ int i, div, nfree, npfree;
+@@ -552,6 +589,7 @@
+ *used = *avail - nfree;
+ free(sw);
+ free(perdev);
++#endif /* __FreeBSD_version >= 400000 */
+ }
+
+ /*
OpenPOWER on IntegriCloud