diff options
Diffstat (limited to 'devel/libgtop2')
-rw-r--r-- | devel/libgtop2/files/patch-sysdeps::freebsd::procmem.c | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/devel/libgtop2/files/patch-sysdeps::freebsd::procmem.c b/devel/libgtop2/files/patch-sysdeps::freebsd::procmem.c index a174fda33..83e508054 100644 --- a/devel/libgtop2/files/patch-sysdeps::freebsd::procmem.c +++ b/devel/libgtop2/files/patch-sysdeps::freebsd::procmem.c @@ -1,9 +1,22 @@ ---- sysdeps/freebsd/procmem.c.orig Fri May 28 03:56:49 1999 -+++ sysdeps/freebsd/procmem.c Sun Sep 7 21:37:38 2003 -@@ -137,6 +137,23 @@ +--- sysdeps/freebsd/procmem.c.orig Sun Oct 19 12:55:32 2003 ++++ sysdeps/freebsd/procmem.c Sat Feb 7 22:48:12 2004 +@@ -117,7 +117,7 @@ + #else + struct vm_object object; + #endif +- struct plimit plimit; ++ struct rlimit rlimit; + int count; + + glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_PROC_MEM), 0); +@@ -137,15 +137,29 @@ return; } +- if (kvm_read (server->machine.kd, +- (unsigned long) pinfo [0].kp_proc.p_limit, +- (char *) &plimit, sizeof (plimit)) != sizeof (plimit)) { +- glibtop_warn_io_r (server, "kvm_read (plimit)"); +#if __FreeBSD_version >= 500013 + +#define XXX_P_VMSPACE ki_vmspace @@ -21,10 +34,18 @@ + +#define XXX_P_VMSPACE kp_proc.p_vmspace + - if (kvm_read (server->machine.kd, - (unsigned long) pinfo [0].kp_proc.p_limit, - (char *) &plimit, sizeof (plimit)) != sizeof (plimit)) { -@@ -154,11 +171,12 @@ ++ if (getrlimit (RLIMIT_RSS, &rlimit) < 0) { ++ glibtop_warn_io_r (server, "getrlimit"); + return; + } + +- buf->rss_rlim = (u_int64_t) +- (plimit.pl_rlimit [RLIMIT_RSS].rlim_cur); ++ buf->rss_rlim = (u_int64_t) (rlimit.rlim_cur); + + vms = &pinfo [0].kp_eproc.e_vm; + +@@ -154,11 +168,12 @@ buf->resident = buf->rss = (u_int64_t) pagetok (vms->vm_rssize) << LOG1024; |