View | Details | Raw Unified | Return to bug 220426
Collapse All | Expand All

(-)sysutils/xosview/Makefile (-2 / +1 lines)
Lines 2-9 Link Here
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	xosview
4
PORTNAME=	xosview
5
PORTVERSION=	1.17
5
PORTVERSION=	1.19
6
PORTREVISION=	1
7
CATEGORIES=	sysutils
6
CATEGORIES=	sysutils
8
7
9
MAINTAINER=	otacilio.neto@bsd.com.br
8
MAINTAINER=	otacilio.neto@bsd.com.br
(-)sysutils/xosview/distinfo (-2 / +3 lines)
Lines 1-2 Link Here
1
SHA256 (hills-xosview-1.17_GH0.tar.gz) = a5a84cbcee21805922781d3532cf5c4436331f031fa39e741a699f83ad5ddda9
1
TIMESTAMP = 1498958595
2
SIZE (hills-xosview-1.17_GH0.tar.gz) = 144327
2
SHA256 (hills-xosview-1.19_GH0.tar.gz) = 4bf31738c49f950b1f8b9574e9c850b3cb7448c5d600b560bd24a55ae4497a16
3
SIZE (hills-xosview-1.19_GH0.tar.gz) = 144229
(-)sysutils/xosview/files/patch-bsd-kernel.cc (-238 lines)
Lines 1-235 Link Here
1
--- bsd/kernel.cc.orig	2015-09-23 13:28:14 UTC
2
+++ bsd/kernel.cc
3
@@ -28,6 +28,7 @@
4
 #include <string.h>
5
 #include <err.h>
6
 #include <errno.h>
7
+#include <ifaddrs.h>
8
 #include <sysexits.h>
9
 #include <sys/types.h>
10
 #include <sys/queue.h>
11
@@ -44,7 +45,6 @@
12
 static const char ACPIDEV[] = "/dev/acpi";
13
 static const char APMDEV[] = "/dev/apm";
14
 static int maxcpus = 1;
15
-#include <net/if_var.h>
16
 #include <sys/ioctl.h>
17
 #include <sys/resource.h>
18
 #include <dev/acpica/acpiio.h>
19
@@ -114,56 +114,41 @@ static struct nlist nlst[] =
20
 // this later on.  This keeps the indices within the nlist constant.
21
 #define DUMMY_SYM "dummy_sym"
22
 
23
-#if defined(XOSVIEW_FREEBSD)
24
-{ "_cnt" },
25
-#define VMMETER_SYM_INDEX    0
26
-#else
27
-{ DUMMY_SYM },
28
-#define DUMMY_0
29
-#endif
30
-#if !defined(XOSVIEW_OPENBSD)
31
-{ "_ifnet" },
32
-#define IFNET_SYM_INDEX      1
33
-#else
34
-{ DUMMY_SYM },
35
-#define DUMMY_1
36
-#endif
37
-
38
 #if defined(XOSVIEW_OPENBSD)
39
 { "_disklist" },
40
-#define DISKLIST_SYM_INDEX   2
41
+#define DISKLIST_SYM_INDEX   0
42
 #else
43
 { DUMMY_SYM },
44
-#define DUMMY_2
45
+#define DUMMY_0
46
 #endif
47
 #if defined(XOSVIEW_NETBSD)
48
 { "_allevents" },
49
-#define ALLEVENTS_SYM_INDEX  3
50
+#define ALLEVENTS_SYM_INDEX  1
51
 { "_bufmem" },
52
-#define BUFMEM_SYM_INDEX     4
53
+#define BUFMEM_SYM_INDEX     2
54
 #else
55
 { DUMMY_SYM },
56
-#define DUMMY_3
57
+#define DUMMY_1
58
 { DUMMY_SYM },
59
-#define DUMMY_4
60
+#define DUMMY_2
61
 #endif
62
 #if defined(XOSVIEW_FREEBSD)
63
 { "_intrnames" },
64
-#define INTRNAMES_SYM_INDEX  5
65
+#define INTRNAMES_SYM_INDEX  3
66
 # if __FreeBSD_version >= 900040
67
 { "_sintrnames" },
68
 # else
69
 { "_eintrnames" },
70
 # endif
71
-#define EINTRNAMES_SYM_INDEX 6
72
+#define EINTRNAMES_SYM_INDEX 4
73
 { "_intrcnt" },
74
-#define INTRCNT_SYM_INDEX    7
75
+#define INTRCNT_SYM_INDEX    5
76
 # if __FreeBSD_version >= 900040
77
 { "_sintrcnt" },
78
 # else
79
 { "_eintrcnt" },
80
 # endif
81
-#define EINTRCNT_SYM_INDEX   8
82
+#define EINTRCNT_SYM_INDEX   6
83
 #endif
84
 { NULL }
85
 };
86
@@ -338,7 +323,23 @@ BSDGetPageStats(uint64_t *meminfo, uint6
87
 #else  /* HAVE_UVM */
88
 	struct vmmeter vm;
89
 #if defined(XOSVIEW_FREEBSD)
90
-	safe_kvm_read_symbol(VMMETER_SYM_INDEX, &vm, sizeof(vm));
91
+	size_t size = sizeof(unsigned int);
92
+
93
+#define	GET_VM_STATS(name) \
94
+	sysctlbyname("vm.stats.vm." #name, &vm.name, &size, NULL, 0)
95
+	GET_VM_STATS(v_active_count);
96
+	GET_VM_STATS(v_inactive_count);
97
+	GET_VM_STATS(v_wire_count);
98
+#if __FreeBSD_version < 1200017
99
+	GET_VM_STATS(v_cache_count);
100
+#endif
101
+	GET_VM_STATS(v_free_count);
102
+	GET_VM_STATS(v_page_size);
103
+	GET_VM_STATS(v_vnodepgsin);
104
+	GET_VM_STATS(v_vnodepgsout);
105
+	GET_VM_STATS(v_swappgsin);
106
+	GET_VM_STATS(v_swappgsout);
107
+#undef GET_VM_STATS
108
 #else  /* XOSVIEW_DFBSD */
109
 	struct vmstats vms;
110
 	size_t size = sizeof(vms);
111
@@ -353,7 +354,11 @@ BSDGetPageStats(uint64_t *meminfo, uint6
112
 		meminfo[0] = (uint64_t)vm.v_active_count * vm.v_page_size;
113
 		meminfo[1] = (uint64_t)vm.v_inactive_count * vm.v_page_size;
114
 		meminfo[2] = (uint64_t)vm.v_wire_count * vm.v_page_size;
115
+#if __FreeBSD_version < 1200017
116
 		meminfo[3] = (uint64_t)vm.v_cache_count * vm.v_page_size;
117
+#else
118
+		meminfo[3] = 0;
119
+#endif
120
 		meminfo[4] = (uint64_t)vm.v_free_count * vm.v_page_size;
121
 #else  /* XOSVIEW_DFBSD */
122
 		meminfo[0] = (uint64_t)vms.v_active_count * vms.v_page_size;
123
@@ -468,99 +473,37 @@ BSDGetCPUTimes(uint64_t *timeArray, unsi
124
 int
125
 BSDNetInit() {
126
 	OpenKDIfNeeded();
127
-#if defined(XOSVIEW_NETBSD)
128
-	return ValidSymbol(IFNET_SYM_INDEX);
129
-#else
130
 	return 1;
131
-#endif
132
 }
133
 
134
 void
135
 BSDGetNetInOut(uint64_t *inbytes, uint64_t *outbytes, const char *netIface, bool ignored) {
136
-	char ifname[IFNAMSIZ];
137
+	struct ifaddrs *ifap, *ifa;
138
 	*inbytes = 0;
139
 	*outbytes = 0;
140
-#if defined(XOSVIEW_OPENBSD)
141
-	size_t size;
142
-	char *buf, *next;
143
-	struct if_msghdr *ifm;
144
-	struct if_data ifd;
145
-	struct sockaddr_dl *sdl;
146
 
147
-	if ( sysctl(mib_ifl, 6, NULL, &size, NULL, 0) < 0 )
148
-		err(EX_OSERR, "BSDGetNetInOut(): sysctl 1 failed");
149
-	if ( (buf = (char *)malloc(size)) == NULL)
150
-		err(EX_OSERR, "BSDGetNetInOut(): malloc failed");
151
-	if ( sysctl(mib_ifl, 6, buf, &size, NULL, 0) < 0 )
152
-		err(EX_OSERR, "BSDGetNetInOut(): sysctl 2 failed");
153
+	if (getifaddrs(&ifap) != 0)
154
+		return;
155
 
156
-	for (next = buf; next < buf + size; next += ifm->ifm_msglen) {
157
+	for (ifa = ifap; ifa; ifa = ifa->ifa_next) {
158
 		bool skipif = false;
159
-		ifm = (struct if_msghdr *)next;
160
-		if (ifm->ifm_type != RTM_IFINFO || ifm->ifm_addrs & RTAX_IFP == 0)
161
-			continue;
162
-		ifd = ifm->ifm_data;
163
-		sdl = (struct sockaddr_dl *)(ifm + 1);
164
-		if (sdl->sdl_family != AF_LINK)
165
-			continue;
166
-		if ( strncmp(netIface, "False", 5) != 0 ) {
167
-			memcpy(ifname, sdl->sdl_data, (sdl->sdl_nlen >= IFNAMSIZ ? IFNAMSIZ - 1 : sdl->sdl_nlen));
168
-			if ( (!ignored && strncmp(sdl->sdl_data, netIface, sdl->sdl_nlen) != 0) ||
169
-				 ( ignored && strncmp(sdl->sdl_data, netIface, sdl->sdl_nlen) == 0) )
170
-				skipif = true;
171
-		}
172
-		if (!skipif) {
173
-			*inbytes += ifd.ifi_ibytes;
174
-			*outbytes += ifd.ifi_obytes;
175
-		}
176
-	}
177
-	free(buf);
178
-#else  /* XOSVIEW_OPENBSD */
179
-	struct ifnet *ifnetp;
180
-	struct ifnet ifnet;
181
-#if defined (XOSVIEW_NETBSD)
182
-	struct ifnet_head ifnethd;
183
-#else
184
-	struct ifnethead ifnethd;
185
-#endif
186
-	safe_kvm_read(nlst[IFNET_SYM_INDEX].n_value, &ifnethd, sizeof(ifnethd));
187
-	ifnetp = TAILQ_FIRST(&ifnethd);
188
 
189
-	while (ifnetp) {
190
-		bool skipif = false;
191
-		//  Now, dereference the pointer to get the ifnet struct.
192
-		safe_kvm_read((unsigned long)ifnetp, &ifnet, sizeof(ifnet));
193
-		strlcpy(ifname, ifnet.if_xname, sizeof(ifname));
194
-#if defined(XOSVIEW_NETBSD)
195
-		ifnetp = TAILQ_NEXT(&ifnet, if_list);
196
-#else
197
-		ifnetp = TAILQ_NEXT(&ifnet, if_link);
198
-#endif
199
-		if (!(ifnet.if_flags & IFF_UP))
200
+		if (ifa->ifa_addr->sa_family != AF_LINK)
201
 			continue;
202
+
203
 		if ( strncmp(netIface, "False", 5) != 0 ) {
204
-			if ( (!ignored && strncmp(ifname, netIface, 256) != 0) ||
205
-			     ( ignored && strncmp(ifname, netIface, 256) == 0) )
206
+			if ( (!ignored && strncmp(ifa->ifa_name, netIface, 256) != 0) ||
207
+			     ( ignored && strncmp(ifa->ifa_name, netIface, 256) == 0) )
208
 				skipif = true;
209
 		}
210
+#define	IFA_STAT(s)	(((struct if_data *)ifa->ifa_data)->ifi_ ## s)
211
 		if (!skipif) {
212
-#if defined(XOSVIEW_DFBSD) && __DragonFly_version > 300304
213
-			struct ifdata_pcpu *ifdatap = ifnet.if_data_pcpu;
214
-			struct ifdata_pcpu ifdata;
215
-			int ncpus = BSDCountCpus();
216
-			for (int cpu = 0; cpu < ncpus; cpu++) {
217
-				safe_kvm_read((unsigned long)ifdatap + cpu * sizeof(ifdata),
218
-				              &ifdata, sizeof(ifdata));
219
-				*inbytes  += ifdata.ifd_ibytes;
220
-				*outbytes += ifdata.ifd_obytes;
221
-			}
222
-#else
223
-			*inbytes  += ifnet.if_ibytes;
224
-			*outbytes += ifnet.if_obytes;
225
-#endif
226
+			*inbytes  += IFA_STAT(ibytes);
227
+			*outbytes += IFA_STAT(obytes);
228
 		}
229
+#undef IFA_STAT
230
 	}
231
-#endif  /* XOSVIEW_OPENBSD */
232
+	freeifaddrs(ifap);
233
 }
234
 
235
 
236
yes
237
native
238
text/plain
(-)sysutils/xosview/files/patch-bsd_kernel.cc (+35 lines)
Line 0 Link Here
1
--- bsd/kernel.cc.orig	2017-07-02 01:38:15 UTC
2
+++ bsd/kernel.cc
3
@@ -93,6 +93,9 @@ static int mib_uvm[2] = { CTL_VM, VM_UVMEXP2 };
4
 static int mib_uvm[2] = { CTL_VM, VM_UVMEXP };
5
 #endif
6
 #else
7
+#if defined(XOSVIEW_FREEBSD)
8
+#define _WANT_VMMETER
9
+#endif
10
 #include <sys/vmmeter.h>
11
 #endif
12
 
13
@@ -328,7 +331,9 @@ BSDGetPageStats(uint64_t *meminfo, uint64_t *pageinfo)
14
 	GET_VM_STATS(v_active_count);
15
 	GET_VM_STATS(v_inactive_count);
16
 	GET_VM_STATS(v_wire_count);
17
+#if __FreeBSD_version < 1200017
18
 	GET_VM_STATS(v_cache_count);
19
+#endif
20
 	GET_VM_STATS(v_free_count);
21
 	GET_VM_STATS(v_page_size);
22
 	GET_VM_STATS(v_vnodepgsin);
23
@@ -350,7 +355,9 @@ BSDGetPageStats(uint64_t *meminfo, uint64_t *pageinfo)
24
 		meminfo[0] = (uint64_t)vm.v_active_count * vm.v_page_size;
25
 		meminfo[1] = (uint64_t)vm.v_inactive_count * vm.v_page_size;
26
 		meminfo[2] = (uint64_t)vm.v_wire_count * vm.v_page_size;
27
+#if __FreeBSD_version < 1200017
28
 		meminfo[3] = (uint64_t)vm.v_cache_count * vm.v_page_size;
29
+#endif
30
 		meminfo[4] = (uint64_t)vm.v_free_count * vm.v_page_size;
31
 #else  /* XOSVIEW_DFBSD */
32
 		meminfo[0] = (uint64_t)vms.v_active_count * vms.v_page_size;
33
yes
34
native
35
text/plain
(-)sysutils/xosview/pkg-plist (+1 lines)
Lines 1-3 Link Here
1
@(,kmem,2555) bin/xosview
1
@(,kmem,2555) bin/xosview
2
lib/X11/app-defaults/XOsview
2
lib/X11/app-defaults/XOsview
3
man/man1/xosview.1.gz
3
man/man1/xosview.1.gz
4
share/applications/xosview.desktop

Return to bug 220426