| @@ -1,29 +1,32 @@ | | | @@ -1,29 +1,32 @@ |
1 | $NetBSD: patch-ab,v 1.12 2006/10/28 02:15:12 christos Exp $ | | 1 | $NetBSD: patch-ab,v 1.13 2013/01/11 23:33:36 joerg Exp $ |
2 | | | 2 | |
3 | --- bsd/memmeter.cc.orig 2002-07-13 23:48:45.000000000 -0400 | | 3 | --- bsd/memmeter.cc.orig 2002-07-14 03:48:45.000000000 +0000 |
4 | +++ bsd/memmeter.cc 2006-10-27 22:09:54.000000000 -0400 | | 4 | +++ bsd/memmeter.cc |
5 | @@ -77,7 +77,7 @@ | | 5 | @@ -26,6 +26,8 @@ |
6 | struct vmtotal meminfo; | | 6 | #include <sys/sysctl.h> /* Needed for kvm_cnt, kvm_uvm_exp. */ |
7 | int params[] = {CTL_VM, VM_METER}; | | 7 | -#if defined(XOSVIEW_BSDI) || defined(XOSVIEW_FREEBSD) || defined(XOSVIEW_OPENBSD) /* Does |
| | | 8 | - OpenBSD need this? */ |
| | | 9 | +#if defined(XOSVIEW_BSDI) || defined(XOSVIEW_FREEBSD) || defined(XOSVIEW_OPENBSD) |
| | | 10 | # include <sys/vmmeter.h> |
| | | 11 | #endif |
| | | 12 | +#if defined(__NetBSD__) |
| | | 13 | +#include <uvm/uvm_extern.h> |
| | | 14 | +#endif |
| | | 15 | |
| | | 16 | @@ -79,3 +81,3 @@ void MemMeter::getmeminfo (void) { |
8 | size_t meminfosize = sizeof (struct vmtotal); | | 17 | size_t meminfosize = sizeof (struct vmtotal); |
9 | - sysctl (params, 2, &meminfo, &meminfosize, NULL, NULL); | | 18 | - sysctl (params, 2, &meminfo, &meminfosize, NULL, NULL); |
10 | + sysctl (params, 2, &meminfo, &meminfosize, NULL, 0); | | 19 | + sysctl (params, 2, &meminfo, &meminfosize, NULL, 0); |
11 | /* Note that the numbers are in terms of 4K pages. */ | | 20 | /* Note that the numbers are in terms of 4K pages. */ |
12 | | | 21 | @@ -93,4 +95,11 @@ void MemMeter::getmeminfo (void) { |
13 | total_ = 4096*(meminfo.t_free+meminfo.t_rm); | | | |
14 | @@ -91,8 +91,15 @@ | | | |
15 | * this, and later we'll add all the common fields to this. */ | | | |
16 | total_ = 0.0; | | | |
17 | #if defined(UVM) && (defined(XOSVIEW_NETBSD) || defined(XOSVIEW_OPENBSD)) | | 22 | #if defined(UVM) && (defined(XOSVIEW_NETBSD) || defined(XOSVIEW_OPENBSD)) |
18 | +#ifdef VM_UVMEXP2 | | 23 | +#ifdef VM_UVMEXP2 |
19 | + int params[] = {CTL_VM, VM_UVMEXP2}; | | 24 | + int params[] = {CTL_VM, VM_UVMEXP2}; |
20 | + struct uvmexp_sysctl kvm_uvm_exp; | | 25 | + struct uvmexp_sysctl kvm_uvm_exp; |
21 | + size_t kvm_uvm_exp_size = sizeof (kvm_uvm_exp); | | 26 | + size_t kvm_uvm_exp_size = sizeof (kvm_uvm_exp); |
22 | + sysctl (params, 2, &kvm_uvm_exp, &kvm_uvm_exp_size, NULL, 0); | | 27 | + sysctl (params, 2, &kvm_uvm_exp, &kvm_uvm_exp_size, NULL, 0); |
23 | +#else | | 28 | +#else |
24 | struct uvmexp kvm_uvm_exp; | | 29 | struct uvmexp kvm_uvm_exp; |
25 | BSDGetUVMPageStats(&kvm_uvm_exp); | | 30 | BSDGetUVMPageStats(&kvm_uvm_exp); |
26 | +#endif | | 31 | +#endif |
27 | int pgsize = kvm_uvm_exp.pagesize; | | 32 | int pgsize = kvm_uvm_exp.pagesize; |
28 | fields_[0] = kvm_uvm_exp.active*pgsize; | | | |
29 | fields_[1] = kvm_uvm_exp.inactive*pgsize; | | | |