implement NetBSD support, and some build problems on FreeBSD (Closes:
2004-03-09 Bastien Nocera <hadess@hadess.net> * Makefile.am: * cpu.c: (glibtop_init_cpu_p), (glibtop_get_cpu_p): * glibtop_machine.h: * mem.c: * netload.c: (glibtop_get_netload_p): * prockernel.c: (glibtop_get_proc_kernel_p): * proclist.c: (glibtop_get_proclist_p): * procmap.c: (glibtop_get_proc_map_p): * procmem.c: (glibtop_get_proc_mem_p): * procsignal.c: (glibtop_get_proc_signal_p): * procstate.c: (glibtop_get_proc_state_p): * proctime.c: * procuid.c: (glibtop_get_proc_uid_p): * uptime.c: (glibtop_get_uptime_p): implement NetBSD support, and some build problems on FreeBSD (Closes: #135674)
This commit is contained in:
committed by
Bastien Nocera
parent
a795ff4847
commit
4bd9752d52
@@ -31,9 +31,21 @@
|
||||
#include <sys/param.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/resource.h>
|
||||
#if defined(__NetBSD__) && (__NetBSD_Version__ < 105020000)
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_prot.h>
|
||||
#include <vm/vm_map.h>
|
||||
#elif defined(__NetBSD__) && (__NetBSD_Version__ >= 105020000)
|
||||
#include <uvm/uvm_extern.h>
|
||||
#else
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_map.h>
|
||||
#if (__FreeBSD_version >= 400011)
|
||||
#include <vm/vm.h>
|
||||
#else
|
||||
#include <vm/vm_prot.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <sys/vnode.h>
|
||||
#include <sys/mount.h>
|
||||
@@ -45,7 +57,9 @@
|
||||
#include <sys/user.h>
|
||||
#endif
|
||||
#include <sys/sysctl.h>
|
||||
#if !defined(__NetBSD__) || (__NetBSD_Version__ < 105020000)
|
||||
#include <vm/vm.h>
|
||||
#endif
|
||||
|
||||
#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000)
|
||||
/* Fixme ... */
|
||||
@@ -90,8 +104,9 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
||||
glibtop_map_entry *maps;
|
||||
#if defined __FreeBSD__
|
||||
struct vnode vnode;
|
||||
#if __FreeBSD_version >= 500039
|
||||
struct inode inode;
|
||||
struct mount mount;
|
||||
#endif
|
||||
#endif
|
||||
int count, i = 0;
|
||||
int update = 0;
|
||||
@@ -113,7 +128,11 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
||||
/* Now we get the memory maps. */
|
||||
|
||||
if (kvm_read (server->machine.kd,
|
||||
#if defined(__FreeBSD__) && (__FreeBSD_version >= 500013)
|
||||
(unsigned long) pinfo [0].ki_vmspace,
|
||||
#else
|
||||
(unsigned long) pinfo [0].kp_proc.p_vmspace,
|
||||
#endif
|
||||
(char *) &vmspace, sizeof (vmspace)) != sizeof (vmspace))
|
||||
glibtop_error_io_r (server, "kvm_read (vmspace)");
|
||||
|
||||
@@ -213,9 +232,10 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
||||
#endif
|
||||
|
||||
#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000)
|
||||
#if defined(UVM_VNODE_VALID)
|
||||
if (!vnode.v_uvm.u_flags & UVM_VNODE_VALID)
|
||||
continue;
|
||||
|
||||
#endif
|
||||
if ((vnode.v_type != VREG) || (vnode.v_tag != VT_UFS) ||
|
||||
!vnode.v_data) continue;
|
||||
|
||||
@@ -243,6 +263,15 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
||||
&vnode, sizeof (vnode)) != sizeof (vnode))
|
||||
glibtop_error_io_r (server, "kvm_read (vnode)");
|
||||
|
||||
#if defined(__FreeBSD__) && (__FreeBSD_version >= 500039)
|
||||
switch (vnode.v_type) {
|
||||
case VREG:
|
||||
maps [i-1].inode = vnode.v_cachedid;
|
||||
maps [i-1].device = vnode.v_cachedfs;
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
#else
|
||||
if ((vnode.v_type != VREG) || (vnode.v_tag != VT_UFS) ||
|
||||
!vnode.v_data) continue;
|
||||
|
||||
@@ -255,7 +284,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
||||
(unsigned long) vnode.v_mount,
|
||||
&mount, sizeof (mount)) != sizeof (mount))
|
||||
glibtop_error_io_r (server, "kvm_read (mount)");
|
||||
|
||||
#endif
|
||||
maps [i-1].inode = inode.i_number;
|
||||
maps [i-1].device = inode.i_dev;
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user