Fix some more procmap.c issues
Commit acinclude getmntinfo workaround
This commit is contained in:
@@ -263,8 +263,7 @@ AC_CACHE_VAL(fu_cv_sys_mounted_getmntinfo,
|
|||||||
[
|
[
|
||||||
ok=
|
ok=
|
||||||
if test $ac_cv_func_getmntinfo = yes; then
|
if test $ac_cv_func_getmntinfo = yes; then
|
||||||
AC_EGREP_HEADER(f_type;, sys/mount.h,
|
AC_EGREP_HEADER(getmntinfo, sys/mount.h, ok=yes)
|
||||||
ok=yes)
|
|
||||||
fi
|
fi
|
||||||
test -n "$ok" \
|
test -n "$ok" \
|
||||||
&& fu_cv_sys_mounted_getmntinfo=yes \
|
&& fu_cv_sys_mounted_getmntinfo=yes \
|
||||||
|
@@ -206,12 +206,12 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
RB_INIT(&root);
|
//RB_INIT(&root);
|
||||||
nentries = load_vmmap_entries(server,
|
nentries = load_vmmap_entries(server,
|
||||||
(unsigned long) RB_ROOT(&vmspace.vm_map.addr),
|
(unsigned long) &RB_ROOT(&vmspace.vm_map.addr),
|
||||||
&RB_ROOT(&root), NULL);
|
&RB_ROOT(&root), NULL);
|
||||||
if (nentries == -1) {
|
if (nentries == -1) {
|
||||||
unload_vmmap_entries(RB_ROOT(&root));
|
unload_vmmap_entries(&RB_ROOT(&root));
|
||||||
glibtop_error_io_r (server, "kvm_read (entry)");
|
glibtop_error_io_r (server, "kvm_read (entry)");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -231,7 +231,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
|||||||
* to OBJT_DEFAULT so it seems this really works.
|
* to OBJT_DEFAULT so it seems this really works.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
RBT_FOREACH(entry, uvm_map_addr, &root) {
|
RB_FOREACH(entry, uvm_map_addr, &root) {
|
||||||
glibtop_map_entry *mentry;
|
glibtop_map_entry *mentry;
|
||||||
unsigned long inum, dev;
|
unsigned long inum, dev;
|
||||||
guint len;
|
guint len;
|
||||||
@@ -247,7 +247,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
|||||||
(unsigned long) entry->object.uvm_obj,
|
(unsigned long) entry->object.uvm_obj,
|
||||||
&vnode, sizeof (vnode)) != sizeof (vnode)) {
|
&vnode, sizeof (vnode)) != sizeof (vnode)) {
|
||||||
glibtop_warn_io_r (server, "kvm_read (vnode)");
|
glibtop_warn_io_r (server, "kvm_read (vnode)");
|
||||||
unload_vmmap_entries(RB_ROOT(&root));
|
unload_vmmap_entries(&RB_ROOT(&root));
|
||||||
glibtop_suid_leave (server);
|
glibtop_suid_leave (server);
|
||||||
return (glibtop_map_entry*) g_array_free(maps, TRUE);
|
return (glibtop_map_entry*) g_array_free(maps, TRUE);
|
||||||
}
|
}
|
||||||
@@ -263,7 +263,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
|||||||
(unsigned long) vnode.v_data,
|
(unsigned long) vnode.v_data,
|
||||||
&inode, sizeof (inode)) != sizeof (inode)) {
|
&inode, sizeof (inode)) != sizeof (inode)) {
|
||||||
glibtop_warn_io_r (server, "kvm_read (inode)");
|
glibtop_warn_io_r (server, "kvm_read (inode)");
|
||||||
unload_vmmap_entries(RB_ROOT(&root));
|
unload_vmmap_entries(&RB_ROOT(&root));
|
||||||
glibtop_suid_leave (server);
|
glibtop_suid_leave (server);
|
||||||
return (glibtop_map_entry*) g_array_free(maps, TRUE);
|
return (glibtop_map_entry*) g_array_free(maps, TRUE);
|
||||||
}
|
}
|
||||||
@@ -301,7 +301,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
|||||||
buf->size = sizeof (glibtop_map_entry);
|
buf->size = sizeof (glibtop_map_entry);
|
||||||
buf->total = buf->number * buf->size;
|
buf->total = buf->number * buf->size;
|
||||||
|
|
||||||
unload_vmmap_entries(RB_ROOT(&root));
|
unload_vmmap_entries(&RB_ROOT(&root));
|
||||||
return (glibtop_map_entry*) g_array_free(maps, FALSE);
|
return (glibtop_map_entry*) g_array_free(maps, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user