summaryrefslogtreecommitdiff
path: root/sysdeps/freebsd/procmap.c
diff options
context:
space:
mode:
authorBenoît Dejean <bdejean@src.gnome.org>2008-08-18 16:11:07 +0000
committerBenoît Dejean <bdejean@src.gnome.org>2008-08-18 16:11:07 +0000
commit10a04fc9c7ddf97a735f22a465b15469f7b587b6 (patch)
tree465f70e6e409e9149900af72f23b4c4f714c0e41 /sysdeps/freebsd/procmap.c
parent10e512477078385844b4d8cfa902e562e147c096 (diff)
downloadlibgtop-10a04fc9c7ddf97a735f22a465b15469f7b587b6.tar.gz
Improved freebsd port.
Patch by Joe Marcus Clarke <marcus@freebsd.org>. Closes #548184. svn path=/trunk/; revision=2767
Diffstat (limited to 'sysdeps/freebsd/procmap.c')
-rw-r--r--sysdeps/freebsd/procmap.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/sysdeps/freebsd/procmap.c b/sysdeps/freebsd/procmap.c
index a82b2f02..d4022dde 100644
--- a/sysdeps/freebsd/procmap.c
+++ b/sysdeps/freebsd/procmap.c
@@ -41,7 +41,17 @@
#define _KERNEL
#include <sys/pipe.h>
#include <sys/conf.h>
+#undef _KERNEL
+#if __FreeBSD_version >= 800038
+#define _WANT_FILE
#include <sys/file.h>
+#undef _WANT_FILE
+#else
+#define _KERNEL
+#include <sys/file.h>
+#undef _KERNEL
+#endif
+#define _KERNEL
#include <sys/mount.h>
#include <ufs/ufs/quota.h>
#include <ufs/ufs/inode.h>
@@ -103,8 +113,14 @@ _glibtop_sysdeps_freebsd_dev_inode (glibtop *server, struct vnode *vnode,
if (kvm_read (server->machine.kd, (gulong) inode.i_dev, (char *) &si,
sizeof (si)) != sizeof (si) ||
+#if __FreeBSD_version >= 800039
+ kvm_read (server->machine.kd, (gulong) cdev2priv(&si), (char *) &priv,
+ sizeof (priv))
+#else
kvm_read (server->machine.kd, (gulong) si.si_priv, (char *) &priv,
- sizeof (priv)) != sizeof (priv))
+ sizeof (priv))
+#endif
+ != sizeof (priv))
{
glibtop_warn_io_r (server, "kvm_read (si)");
return;