s/server->machine/server->_priv->machine/g;
This commit is contained in:
@@ -51,7 +51,7 @@ static int mib [] = { CTL_KERN, KERN_CLOCKRATE };
|
|||||||
int
|
int
|
||||||
glibtop_init_cpu_p (glibtop *server)
|
glibtop_init_cpu_p (glibtop *server)
|
||||||
{
|
{
|
||||||
if (kvm_nlist (server->machine.kd, nlst) != 0) {
|
if (kvm_nlist (server->_priv->machine.kd, nlst) != 0) {
|
||||||
glibtop_warn_io_r (server, "kvm_nlist (cpu)");
|
glibtop_warn_io_r (server, "kvm_nlist (cpu)");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@@ -80,7 +80,7 @@ glibtop_get_cpu_p (glibtop *server, glibtop_cpu *buf)
|
|||||||
if (server->sysdeps.cpu == 0)
|
if (server->sysdeps.cpu == 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd, nlst [0].n_value,
|
if (kvm_read (server->_priv->machine.kd, nlst [0].n_value,
|
||||||
&cpts, sizeof (cpts)) != sizeof (cpts)) {
|
&cpts, sizeof (cpts)) != sizeof (cpts)) {
|
||||||
glibtop_warn_io_r (server, "kvm_read (cp_time)");
|
glibtop_warn_io_r (server, "kvm_read (cp_time)");
|
||||||
return -1;
|
return -1;
|
||||||
|
@@ -37,11 +37,13 @@ BEGIN_LIBGTOP_DECLS
|
|||||||
#define UREADOK(ki) (FORCEUREAD || (KI_PROC(ki)->p_flag & P_INMEM))
|
#define UREADOK(ki) (FORCEUREAD || (KI_PROC(ki)->p_flag & P_INMEM))
|
||||||
|
|
||||||
static inline void glibtop_suid_enter (glibtop *server) {
|
static inline void glibtop_suid_enter (glibtop *server) {
|
||||||
setregid (server->machine.gid, server->machine.egid);
|
setregid (server->_priv->machine.gid,
|
||||||
|
server->_priv->machine.egid);
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline void glibtop_suid_leave (glibtop *server) {
|
static inline void glibtop_suid_leave (glibtop *server) {
|
||||||
if (setregid (server->machine.egid, server->machine.gid))
|
if (setregid (server->_priv->machine.egid,
|
||||||
|
server->_priv->machine.gid))
|
||||||
_exit (1);
|
_exit (1);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -92,7 +92,7 @@ glibtop_init_mem_p (glibtop *server)
|
|||||||
{
|
{
|
||||||
register int pagesize;
|
register int pagesize;
|
||||||
|
|
||||||
if (kvm_nlist (server->machine.kd, nlst) != 0) {
|
if (kvm_nlist (server->_priv->machine.kd, nlst) != 0) {
|
||||||
glibtop_warn_io_r (server, "kvm_nlist (mem)");
|
glibtop_warn_io_r (server, "kvm_nlist (mem)");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@@ -156,14 +156,14 @@ glibtop_get_mem_p (glibtop *server, glibtop_mem *buf)
|
|||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
/* Get the data from kvm_* */
|
/* Get the data from kvm_* */
|
||||||
if (kvm_read (server->machine.kd, nlst[1].n_value,
|
if (kvm_read (server->_priv->machine.kd, nlst[1].n_value,
|
||||||
&vmm, sizeof (vmm)) != sizeof (vmm)) {
|
&vmm, sizeof (vmm)) != sizeof (vmm)) {
|
||||||
glibtop_warn_io_r (server, "kvm_read (cnt)");
|
glibtop_warn_io_r (server, "kvm_read (cnt)");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd, nlst[0].n_value,
|
if (kvm_read (server->_priv->machine.kd, nlst[0].n_value,
|
||||||
&bufspace, sizeof (bufspace)) != sizeof (bufspace)) {
|
&bufspace, sizeof (bufspace)) != sizeof (bufspace)) {
|
||||||
glibtop_warn_io_r (server, "kvm_read (bufspace)");
|
glibtop_warn_io_r (server, "kvm_read (bufspace)");
|
||||||
return -1;
|
return -1;
|
||||||
|
@@ -80,12 +80,12 @@ static struct nlist nlst [] = {
|
|||||||
int
|
int
|
||||||
glibtop_init_msg_limits_p (glibtop *server)
|
glibtop_init_msg_limits_p (glibtop *server)
|
||||||
{
|
{
|
||||||
if (kvm_nlist (server->machine.kd, nlst) != 0) {
|
if (kvm_nlist (server->_priv->machine.kd, nlst) != 0) {
|
||||||
glibtop_warn_io_r (server, "kvm_nlist (msg_limits)");
|
glibtop_warn_io_r (server, "kvm_nlist (msg_limits)");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd, nlst [0].n_value,
|
if (kvm_read (server->_priv->machine.kd, nlst [0].n_value,
|
||||||
&_msginfo, sizeof (_msginfo)) != sizeof (_msginfo)) {
|
&_msginfo, sizeof (_msginfo)) != sizeof (_msginfo)) {
|
||||||
glibtop_warn_io_r (server, "kvm_read (msginfo)");
|
glibtop_warn_io_r (server, "kvm_read (msginfo)");
|
||||||
return -1;
|
return -1;
|
||||||
|
@@ -57,7 +57,7 @@ glibtop_init_netinfo_p (glibtop *server)
|
|||||||
{
|
{
|
||||||
server->sysdeps.netinfo = _glibtop_sysdeps_netinfo;
|
server->sysdeps.netinfo = _glibtop_sysdeps_netinfo;
|
||||||
|
|
||||||
if (kvm_nlist (server->machine.kd, nlst) != 0)
|
if (kvm_nlist (server->_priv->machine.kd, nlst) != 0)
|
||||||
glibtop_error_io_r (server, "kvm_nlist");
|
glibtop_error_io_r (server, "kvm_nlist");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -83,7 +83,7 @@ glibtop_get_netinfo_p (glibtop *server, glibtop_netinfo *buf,
|
|||||||
|
|
||||||
memset (buf, 0, sizeof (glibtop_netinfo));
|
memset (buf, 0, sizeof (glibtop_netinfo));
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd, nlst [0].n_value,
|
if (kvm_read (server->_priv->machine.kd, nlst [0].n_value,
|
||||||
&ifnetaddr, sizeof (ifnetaddr)) != sizeof (ifnetaddr))
|
&ifnetaddr, sizeof (ifnetaddr)) != sizeof (ifnetaddr))
|
||||||
glibtop_error_io_r (server, "kvm_read (ifnet)");
|
glibtop_error_io_r (server, "kvm_read (ifnet)");
|
||||||
|
|
||||||
@@ -95,12 +95,12 @@ glibtop_get_netinfo_p (glibtop *server, glibtop_netinfo *buf,
|
|||||||
if (ifaddraddr == 0) {
|
if (ifaddraddr == 0) {
|
||||||
ifnetfound = ifnetaddr;
|
ifnetfound = ifnetaddr;
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd, ifnetaddr, &ifnet,
|
if (kvm_read (server->_priv->machine.kd, ifnetaddr, &ifnet,
|
||||||
sizeof (ifnet)) != sizeof (ifnet))
|
sizeof (ifnet)) != sizeof (ifnet))
|
||||||
glibtop_error_io_r (server, "kvm_read (ifnetaddr)");
|
glibtop_error_io_r (server, "kvm_read (ifnetaddr)");
|
||||||
|
|
||||||
#if defined(__FreeBSD__) || defined(__bsdi__)
|
#if defined(__FreeBSD__) || defined(__bsdi__)
|
||||||
if (kvm_read (server->machine.kd, (u_long) ifnet.if_name,
|
if (kvm_read (server->_priv->machine.kd, (u_long) ifnet.if_name,
|
||||||
tname, 16) != 16)
|
tname, 16) != 16)
|
||||||
glibtop_error_io_r (server, "kvm_read (if_name)");
|
glibtop_error_io_r (server, "kvm_read (if_name)");
|
||||||
#else
|
#else
|
||||||
@@ -118,7 +118,7 @@ glibtop_get_netinfo_p (glibtop *server, glibtop_netinfo *buf,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ifaddraddr) {
|
if (ifaddraddr) {
|
||||||
if ((kvm_read (server->machine.kd, ifaddraddr, &ifaddr,
|
if ((kvm_read (server->_priv->machine.kd, ifaddraddr, &ifaddr,
|
||||||
sizeof (ifaddr)) != sizeof (ifaddr)))
|
sizeof (ifaddr)) != sizeof (ifaddr)))
|
||||||
glibtop_error_io_r (server, "kvm_read (ifaddraddr)");
|
glibtop_error_io_r (server, "kvm_read (ifaddraddr)");
|
||||||
|
|
||||||
|
@@ -63,7 +63,7 @@ glibtop_init_netload_p (glibtop *server)
|
|||||||
{
|
{
|
||||||
server->sysdeps.netload = _glibtop_sysdeps_netload;
|
server->sysdeps.netload = _glibtop_sysdeps_netload;
|
||||||
|
|
||||||
if (kvm_nlist (server->machine.kd, nlst) != 0)
|
if (kvm_nlist (server->_priv->machine.kd, nlst) != 0)
|
||||||
glibtop_error_io_r (server, "kvm_nlist");
|
glibtop_error_io_r (server, "kvm_nlist");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -90,7 +90,7 @@ glibtop_get_netload_p (glibtop *server, glibtop_netload *buf,
|
|||||||
|
|
||||||
memset (buf, 0, sizeof (glibtop_netload));
|
memset (buf, 0, sizeof (glibtop_netload));
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd, nlst [0].n_value,
|
if (kvm_read (server->_priv->machine.kd, nlst [0].n_value,
|
||||||
&ifnetaddr, sizeof (ifnetaddr)) != sizeof (ifnetaddr))
|
&ifnetaddr, sizeof (ifnetaddr)) != sizeof (ifnetaddr))
|
||||||
glibtop_error_io_r (server, "kvm_read (ifnet)");
|
glibtop_error_io_r (server, "kvm_read (ifnet)");
|
||||||
|
|
||||||
@@ -102,12 +102,12 @@ glibtop_get_netload_p (glibtop *server, glibtop_netload *buf,
|
|||||||
if (ifaddraddr == 0) {
|
if (ifaddraddr == 0) {
|
||||||
ifnetfound = ifnetaddr;
|
ifnetfound = ifnetaddr;
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd, ifnetaddr, &ifnet,
|
if (kvm_read (server->_priv->machine.kd, ifnetaddr, &ifnet,
|
||||||
sizeof (ifnet)) != sizeof (ifnet))
|
sizeof (ifnet)) != sizeof (ifnet))
|
||||||
glibtop_error_io_r (server, "kvm_read (ifnetaddr)");
|
glibtop_error_io_r (server, "kvm_read (ifnetaddr)");
|
||||||
|
|
||||||
#if defined(__FreeBSD__) || defined(__bsdi__)
|
#if defined(__FreeBSD__) || defined(__bsdi__)
|
||||||
if (kvm_read (server->machine.kd, (u_long) ifnet.if_name,
|
if (kvm_read (server->_priv->machine.kd, (u_long) ifnet.if_name,
|
||||||
tname, 16) != 16)
|
tname, 16) != 16)
|
||||||
glibtop_error_io_r (server, "kvm_read (if_name)");
|
glibtop_error_io_r (server, "kvm_read (if_name)");
|
||||||
#else
|
#else
|
||||||
@@ -125,7 +125,7 @@ glibtop_get_netload_p (glibtop *server, glibtop_netload *buf,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ifaddraddr) {
|
if (ifaddraddr) {
|
||||||
if ((kvm_read (server->machine.kd, ifaddraddr, &ifaddr,
|
if ((kvm_read (server->_priv->machine.kd, ifaddraddr, &ifaddr,
|
||||||
sizeof (ifaddr)) != sizeof (ifaddr)))
|
sizeof (ifaddr)) != sizeof (ifaddr)))
|
||||||
glibtop_error_io_r (server, "kvm_read (ifaddraddr)");
|
glibtop_error_io_r (server, "kvm_read (ifaddraddr)");
|
||||||
|
|
||||||
|
@@ -59,27 +59,30 @@ glibtop_open_p (glibtop *server, const char *program_name,
|
|||||||
|
|
||||||
/* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */
|
/* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */
|
||||||
|
|
||||||
server->machine.uid = getuid ();
|
server->_priv->machine.uid = getuid ();
|
||||||
server->machine.euid = geteuid ();
|
server->_priv->machine.euid = geteuid ();
|
||||||
server->machine.gid = getgid ();
|
server->_priv->machine.gid = getgid ();
|
||||||
server->machine.egid = getegid ();
|
server->_priv->machine.egid = getegid ();
|
||||||
|
|
||||||
#ifdef __FreeBSD__
|
#ifdef __FreeBSD__
|
||||||
server->os_version_code = __FreeBSD_version;
|
server->os_version_code = __FreeBSD_version;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Setup machine-specific data */
|
/* Setup machine-specific data */
|
||||||
server->machine.kd = kvm_open (NULL, NULL, NULL, O_RDONLY, "kvm_open");
|
server->_priv->machine.kd = kvm_open
|
||||||
|
(NULL, NULL, NULL, O_RDONLY, "kvm_open");
|
||||||
|
|
||||||
if (server->machine.kd == NULL)
|
if (server->_priv->machine.kd == NULL)
|
||||||
glibtop_error_io_r (server, "kvm_open");
|
glibtop_error_io_r (server, "kvm_open");
|
||||||
|
|
||||||
/* Drop priviledges. */
|
/* Drop priviledges. */
|
||||||
|
|
||||||
if (setreuid (server->machine.euid, server->machine.uid))
|
if (setreuid (server->_priv->machine.euid,
|
||||||
|
server->_priv->machine.uid))
|
||||||
_exit (1);
|
_exit (1);
|
||||||
|
|
||||||
if (setregid (server->machine.egid, server->machine.gid))
|
if (setregid (server->_priv->machine.egid,
|
||||||
|
server->_priv->machine.gid))
|
||||||
_exit (1);
|
_exit (1);
|
||||||
|
|
||||||
/* !!! END OF SUID ROOT PART !!! */
|
/* !!! END OF SUID ROOT PART !!! */
|
||||||
|
@@ -82,7 +82,7 @@ glibtop_init_ppp_p (glibtop *server)
|
|||||||
#endif
|
#endif
|
||||||
#endif /* HAVE_I4B */
|
#endif /* HAVE_I4B */
|
||||||
|
|
||||||
if (kvm_nlist (server->machine.kd, nlst) != 0)
|
if (kvm_nlist (server->_priv->machine.kd, nlst) != 0)
|
||||||
glibtop_error_io_r (server, "kvm_nlist");
|
glibtop_error_io_r (server, "kvm_nlist");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -105,7 +105,7 @@ glibtop_get_ppp_p (glibtop *server, glibtop_ppp *buf, unsigned short device)
|
|||||||
|
|
||||||
memset (buf, 0, sizeof (glibtop_ppp));
|
memset (buf, 0, sizeof (glibtop_ppp));
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd, nlst [0].n_value,
|
if (kvm_read (server->_priv->machine.kd, nlst [0].n_value,
|
||||||
&data, sizeof (data)) != sizeof (data))
|
&data, sizeof (data)) != sizeof (data))
|
||||||
glibtop_error_io_r (server, "kvm_read (i4bisppp_softc)");
|
glibtop_error_io_r (server, "kvm_read (i4bisppp_softc)");
|
||||||
|
|
||||||
|
@@ -47,14 +47,13 @@ glibtop_init_proc_args_p (glibtop *server)
|
|||||||
|
|
||||||
/* Provides detailed information about a process. */
|
/* Provides detailed information about a process. */
|
||||||
|
|
||||||
char *
|
char **
|
||||||
glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf,
|
glibtop_get_proc_args_p (glibtop *server, glibtop_array *buf, pid_t pid)
|
||||||
pid_t pid, unsigned max_len)
|
|
||||||
{
|
{
|
||||||
struct kinfo_proc *pinfo;
|
struct kinfo_proc *pinfo;
|
||||||
char *retval, **args, **ptr;
|
char *retval, **args, **ptr;
|
||||||
unsigned size = 0, pos = 0;
|
unsigned size = 0, pos = 0;
|
||||||
int count;
|
int max_len = BUFSIZ, count;
|
||||||
|
|
||||||
#ifndef __bsdi__
|
#ifndef __bsdi__
|
||||||
char filename [BUFSIZ];
|
char filename [BUFSIZ];
|
||||||
@@ -76,14 +75,15 @@ glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf,
|
|||||||
glibtop_suid_enter (server);
|
glibtop_suid_enter (server);
|
||||||
|
|
||||||
/* Get the process data */
|
/* Get the process data */
|
||||||
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
|
pinfo = kvm_getprocs (server->_priv->machine.kd,
|
||||||
|
KERN_PROC_PID, pid, &count);
|
||||||
if ((pinfo == NULL) || (count < 1)) {
|
if ((pinfo == NULL) || (count < 1)) {
|
||||||
glibtop_suid_leave (server);
|
glibtop_suid_leave (server);
|
||||||
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
|
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
args = kvm_getargv (server->machine.kd, pinfo, max_len);
|
args = kvm_getargv (server->_priv->machine.kd, pinfo, max_len);
|
||||||
if (args == NULL) {
|
if (args == NULL) {
|
||||||
glibtop_suid_leave (server);
|
glibtop_suid_leave (server);
|
||||||
glibtop_warn_io_r (server, "kvm_getargv (%d)", pid);
|
glibtop_warn_io_r (server, "kvm_getargv (%d)", pid);
|
||||||
|
@@ -99,7 +99,8 @@ glibtop_get_proc_kernel_p (glibtop *server,
|
|||||||
if (pid == 0) return -1;
|
if (pid == 0) return -1;
|
||||||
|
|
||||||
/* Get the process information */
|
/* Get the process information */
|
||||||
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
|
pinfo = kvm_getprocs (server->_priv->machine.kd,
|
||||||
|
KERN_PROC_PID, pid, &count);
|
||||||
if ((pinfo == NULL) || (count != 1))
|
if ((pinfo == NULL) || (count != 1))
|
||||||
glibtop_error_io_r (server, "kvm_getprocs (%d)", pid);
|
glibtop_error_io_r (server, "kvm_getprocs (%d)", pid);
|
||||||
|
|
||||||
@@ -132,7 +133,7 @@ glibtop_get_proc_kernel_p (glibtop *server,
|
|||||||
glibtop_suid_enter (server);
|
glibtop_suid_enter (server);
|
||||||
|
|
||||||
if ((pinfo [0].kp_proc.p_flag & P_INMEM) &&
|
if ((pinfo [0].kp_proc.p_flag & P_INMEM) &&
|
||||||
kvm_uread (server->machine.kd, &(pinfo [0]).kp_proc,
|
kvm_uread (server->_priv->machine.kd, &(pinfo [0]).kp_proc,
|
||||||
(unsigned long) &u_addr->u_stats,
|
(unsigned long) &u_addr->u_stats,
|
||||||
(char *) &pstats, sizeof (pstats)) == sizeof (pstats))
|
(char *) &pstats, sizeof (pstats)) == sizeof (pstats))
|
||||||
{
|
{
|
||||||
@@ -152,7 +153,7 @@ glibtop_get_proc_kernel_p (glibtop *server,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((pinfo [0].kp_proc.p_flag & P_INMEM) &&
|
if ((pinfo [0].kp_proc.p_flag & P_INMEM) &&
|
||||||
kvm_uread (server->machine.kd, &(pinfo [0]).kp_proc,
|
kvm_uread (server->_priv->machine.kd, &(pinfo [0]).kp_proc,
|
||||||
(unsigned long) &u_addr->u_pcb,
|
(unsigned long) &u_addr->u_pcb,
|
||||||
(char *) &pcb, sizeof (pcb)) == sizeof (pcb))
|
(char *) &pcb, sizeof (pcb)) == sizeof (pcb))
|
||||||
{
|
{
|
||||||
|
@@ -76,7 +76,7 @@ glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf,
|
|||||||
which = (int)(real_which & GLIBTOP_KERN_PROC_MASK);
|
which = (int)(real_which & GLIBTOP_KERN_PROC_MASK);
|
||||||
|
|
||||||
/* Get the process data */
|
/* Get the process data */
|
||||||
pinfo = kvm_getprocs (server->machine.kd, which, arg, &count);
|
pinfo = kvm_getprocs (server->_priv->machine.kd, which, arg, &count);
|
||||||
if ((pinfo == NULL) || (count < 1)) {
|
if ((pinfo == NULL) || (count < 1)) {
|
||||||
glibtop_warn_io_r (server, "kvm_getprocs (proclist)");
|
glibtop_warn_io_r (server, "kvm_getprocs (proclist)");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@@ -109,20 +109,21 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
|||||||
glibtop_suid_enter (server);
|
glibtop_suid_enter (server);
|
||||||
|
|
||||||
/* Get the process data */
|
/* Get the process data */
|
||||||
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
|
pinfo = kvm_getprocs (server->_priv->machine.kd,
|
||||||
|
KERN_PROC_PID, pid, &count);
|
||||||
if ((pinfo == NULL) || (count < 1))
|
if ((pinfo == NULL) || (count < 1))
|
||||||
glibtop_error_io_r (server, "kvm_getprocs (%d)", pid);
|
glibtop_error_io_r (server, "kvm_getprocs (%d)", pid);
|
||||||
|
|
||||||
/* Now we get the memory maps. */
|
/* Now we get the memory maps. */
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
(unsigned long) pinfo [0].kp_proc.p_vmspace,
|
(unsigned long) pinfo [0].kp_proc.p_vmspace,
|
||||||
(char *) &vmspace, sizeof (vmspace)) != sizeof (vmspace))
|
(char *) &vmspace, sizeof (vmspace)) != sizeof (vmspace))
|
||||||
glibtop_error_io_r (server, "kvm_read (vmspace)");
|
glibtop_error_io_r (server, "kvm_read (vmspace)");
|
||||||
|
|
||||||
first = vmspace.vm_map.header.next;
|
first = vmspace.vm_map.header.next;
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
(unsigned long) vmspace.vm_map.header.next,
|
(unsigned long) vmspace.vm_map.header.next,
|
||||||
(char *) &entry, sizeof (entry)) != sizeof (entry))
|
(char *) &entry, sizeof (entry)) != sizeof (entry))
|
||||||
glibtop_error_io_r (server, "kvm_read (entry)");
|
glibtop_error_io_r (server, "kvm_read (entry)");
|
||||||
@@ -148,7 +149,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
if (update) {
|
if (update) {
|
||||||
if (kvm_read (server->machine.kd,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
(unsigned long) entry.next,
|
(unsigned long) entry.next,
|
||||||
&entry, sizeof (entry)) != sizeof (entry))
|
&entry, sizeof (entry)) != sizeof (entry))
|
||||||
glibtop_error_io_r (server, "kvm_read (entry)");
|
glibtop_error_io_r (server, "kvm_read (entry)");
|
||||||
@@ -197,7 +198,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
|||||||
|
|
||||||
/* We're only interested in vnodes */
|
/* We're only interested in vnodes */
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
(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)");
|
||||||
@@ -209,7 +210,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
|||||||
|
|
||||||
/* We're only interested in `vm_object's */
|
/* We're only interested in `vm_object's */
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
(unsigned long) entry.object.vm_object,
|
(unsigned long) entry.object.vm_object,
|
||||||
&object, sizeof (object)) != sizeof (object))
|
&object, sizeof (object)) != sizeof (object))
|
||||||
glibtop_error_io_r (server, "kvm_read (object)");
|
glibtop_error_io_r (server, "kvm_read (object)");
|
||||||
@@ -222,7 +223,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
|||||||
if ((vnode.v_type != VREG) || (vnode.v_tag != VT_UFS) ||
|
if ((vnode.v_type != VREG) || (vnode.v_tag != VT_UFS) ||
|
||||||
!vnode.v_data) continue;
|
!vnode.v_data) continue;
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
(unsigned long) vnode.v_data,
|
(unsigned long) vnode.v_data,
|
||||||
&inode, sizeof (inode)) != sizeof (inode))
|
&inode, sizeof (inode)) != sizeof (inode))
|
||||||
glibtop_error_io_r (server, "kvm_read (inode)");
|
glibtop_error_io_r (server, "kvm_read (inode)");
|
||||||
@@ -241,7 +242,7 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
|||||||
if (!object.handle)
|
if (!object.handle)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
(unsigned long) object.handle,
|
(unsigned long) object.handle,
|
||||||
&vnode, sizeof (vnode)) != sizeof (vnode))
|
&vnode, sizeof (vnode)) != sizeof (vnode))
|
||||||
glibtop_error_io_r (server, "kvm_read (vnode)");
|
glibtop_error_io_r (server, "kvm_read (vnode)");
|
||||||
@@ -249,12 +250,12 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
|
|||||||
if ((vnode.v_type != VREG) || (vnode.v_tag != VT_UFS) ||
|
if ((vnode.v_type != VREG) || (vnode.v_tag != VT_UFS) ||
|
||||||
!vnode.v_data) continue;
|
!vnode.v_data) continue;
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
(unsigned long) vnode.v_data,
|
(unsigned long) vnode.v_data,
|
||||||
&inode, sizeof (inode)) != sizeof (inode))
|
&inode, sizeof (inode)) != sizeof (inode))
|
||||||
glibtop_error_io_r (server, "kvm_read (inode)");
|
glibtop_error_io_r (server, "kvm_read (inode)");
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
(unsigned long) vnode.v_mount,
|
(unsigned long) vnode.v_mount,
|
||||||
&mount, sizeof (mount)) != sizeof (mount))
|
&mount, sizeof (mount)) != sizeof (mount))
|
||||||
glibtop_error_io_r (server, "kvm_read (mount)");
|
glibtop_error_io_r (server, "kvm_read (mount)");
|
||||||
|
@@ -133,13 +133,14 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
|
|||||||
if (pid == 0) return -1;
|
if (pid == 0) return -1;
|
||||||
|
|
||||||
/* Get the process data */
|
/* Get the process data */
|
||||||
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
|
pinfo = kvm_getprocs (server->_priv->machine.kd,
|
||||||
|
KERN_PROC_PID, pid, &count);
|
||||||
if ((pinfo == NULL) || (count < 1)) {
|
if ((pinfo == NULL) || (count < 1)) {
|
||||||
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
|
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
(unsigned long) pinfo [0].kp_proc.p_limit,
|
(unsigned long) pinfo [0].kp_proc.p_limit,
|
||||||
(char *) &plimit, sizeof (plimit)) != sizeof (plimit)) {
|
(char *) &plimit, sizeof (plimit)) != sizeof (plimit)) {
|
||||||
glibtop_warn_io_r (server, "kvm_read (plimit)");
|
glibtop_warn_io_r (server, "kvm_read (plimit)");
|
||||||
@@ -159,7 +160,7 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
|
|||||||
|
|
||||||
/* Now we get the shared memory. */
|
/* Now we get the shared memory. */
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
(unsigned long) pinfo [0].kp_proc.p_vmspace,
|
(unsigned long) pinfo [0].kp_proc.p_vmspace,
|
||||||
(char *) &vmspace, sizeof (vmspace)) != sizeof (vmspace)) {
|
(char *) &vmspace, sizeof (vmspace)) != sizeof (vmspace)) {
|
||||||
glibtop_warn_io_r (server, "kvm_read (vmspace)");
|
glibtop_warn_io_r (server, "kvm_read (vmspace)");
|
||||||
@@ -168,7 +169,7 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
|
|||||||
|
|
||||||
first = vmspace.vm_map.header.next;
|
first = vmspace.vm_map.header.next;
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
(unsigned long) vmspace.vm_map.header.next,
|
(unsigned long) vmspace.vm_map.header.next,
|
||||||
(char *) &entry, sizeof (entry)) != sizeof (entry)) {
|
(char *) &entry, sizeof (entry)) != sizeof (entry)) {
|
||||||
glibtop_warn_io_r (server, "kvm_read (entry)");
|
glibtop_warn_io_r (server, "kvm_read (entry)");
|
||||||
@@ -182,7 +183,7 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
|
|||||||
* to OBJT_DEFAULT so if seems this really works. */
|
* to OBJT_DEFAULT so if seems this really works. */
|
||||||
|
|
||||||
while (entry.next != first) {
|
while (entry.next != first) {
|
||||||
if (kvm_read (server->machine.kd,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
(unsigned long) entry.next,
|
(unsigned long) entry.next,
|
||||||
&entry, sizeof (entry)) != sizeof (entry)) {
|
&entry, sizeof (entry)) != sizeof (entry)) {
|
||||||
glibtop_warn_io_r (server, "kvm_read (entry)");
|
glibtop_warn_io_r (server, "kvm_read (entry)");
|
||||||
@@ -213,7 +214,7 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
|
|||||||
|
|
||||||
/* We're only interested in vnodes */
|
/* We're only interested in vnodes */
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
(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)");
|
||||||
@@ -225,7 +226,7 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
|
|||||||
|
|
||||||
/* We're only interested in `vm_object's */
|
/* We're only interested in `vm_object's */
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
(unsigned long) entry.object.vm_object,
|
(unsigned long) entry.object.vm_object,
|
||||||
&object, sizeof (object)) != sizeof (object)) {
|
&object, sizeof (object)) != sizeof (object)) {
|
||||||
glibtop_warn_io_r (server, "kvm_read (object)");
|
glibtop_warn_io_r (server, "kvm_read (object)");
|
||||||
|
@@ -63,7 +63,8 @@ glibtop_get_proc_signal_p (glibtop *server,
|
|||||||
if (pid == 0) return -1;
|
if (pid == 0) return -1;
|
||||||
|
|
||||||
/* Get the process information */
|
/* Get the process information */
|
||||||
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
|
pinfo = kvm_getprocs (server->_priv->machine.kd,
|
||||||
|
KERN_PROC_PID, pid, &count);
|
||||||
if ((pinfo == NULL) || (count != 1)) {
|
if ((pinfo == NULL) || (count != 1)) {
|
||||||
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
|
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
|
||||||
return -1;
|
return -1;
|
||||||
|
@@ -72,7 +72,8 @@ glibtop_get_proc_state_p (glibtop *server,
|
|||||||
if (pid == 0) return -1;
|
if (pid == 0) return -1;
|
||||||
|
|
||||||
/* Get the process information */
|
/* Get the process information */
|
||||||
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
|
pinfo = kvm_getprocs (server->_priv->machine.kd,
|
||||||
|
KERN_PROC_PID, pid, &count);
|
||||||
if ((pinfo == NULL) || (count != 1)) {
|
if ((pinfo == NULL) || (count != 1)) {
|
||||||
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
|
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
|
||||||
return -1;
|
return -1;
|
||||||
|
@@ -155,7 +155,8 @@ glibtop_get_proc_time_p (glibtop *server, glibtop_proc_time *buf,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Get the process information */
|
/* Get the process information */
|
||||||
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
|
pinfo = kvm_getprocs (server->_priv->machine.kd,
|
||||||
|
KERN_PROC_PID, pid, &count);
|
||||||
if ((pinfo == NULL) || (count != 1))
|
if ((pinfo == NULL) || (count != 1))
|
||||||
glibtop_error_io_r (server, "kvm_getprocs (%d)", pid);
|
glibtop_error_io_r (server, "kvm_getprocs (%d)", pid);
|
||||||
|
|
||||||
@@ -171,7 +172,7 @@ glibtop_get_proc_time_p (glibtop *server, glibtop_proc_time *buf,
|
|||||||
#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000)
|
#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000)
|
||||||
glibtop_suid_enter (server);
|
glibtop_suid_enter (server);
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
(unsigned long) pinfo [0].kp_proc.p_stats,
|
(unsigned long) pinfo [0].kp_proc.p_stats,
|
||||||
&pstats, sizeof (pstats)) != sizeof (pstats)) {
|
&pstats, sizeof (pstats)) != sizeof (pstats)) {
|
||||||
glibtop_warn_io_r (server, "kvm_read (pstats)");
|
glibtop_warn_io_r (server, "kvm_read (pstats)");
|
||||||
@@ -197,7 +198,7 @@ glibtop_get_proc_time_p (glibtop *server, glibtop_proc_time *buf,
|
|||||||
glibtop_suid_enter (server);
|
glibtop_suid_enter (server);
|
||||||
|
|
||||||
if ((pinfo [0].kp_proc.p_flag & P_INMEM) &&
|
if ((pinfo [0].kp_proc.p_flag & P_INMEM) &&
|
||||||
kvm_uread (server->machine.kd, &(pinfo [0]).kp_proc,
|
kvm_uread (server->_priv->machine.kd, &(pinfo [0]).kp_proc,
|
||||||
(unsigned long) &u_addr->u_stats,
|
(unsigned long) &u_addr->u_stats,
|
||||||
(char *) &pstats, sizeof (pstats)) == sizeof (pstats))
|
(char *) &pstats, sizeof (pstats)) == sizeof (pstats))
|
||||||
{
|
{
|
||||||
|
@@ -80,7 +80,8 @@ glibtop_get_proc_uid_p (glibtop *server, glibtop_proc_uid *buf,
|
|||||||
if (pid == 0) return -1;
|
if (pid == 0) return -1;
|
||||||
|
|
||||||
/* Get the process information */
|
/* Get the process information */
|
||||||
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
|
pinfo = kvm_getprocs (server->_priv->machine.kd,
|
||||||
|
KERN_PROC_PID, pid, &count);
|
||||||
if ((pinfo == NULL) || (count != 1)) {
|
if ((pinfo == NULL) || (count != 1)) {
|
||||||
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
|
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
|
||||||
return -1;
|
return -1;
|
||||||
@@ -110,7 +111,8 @@ glibtop_get_proc_uid_p (glibtop *server, glibtop_proc_uid *buf,
|
|||||||
ucred_ptr = (void *) pinfo [0].kp_eproc.e_pcred.pc_ucred;
|
ucred_ptr = (void *) pinfo [0].kp_eproc.e_pcred.pc_ucred;
|
||||||
|
|
||||||
if (ucred_ptr) {
|
if (ucred_ptr) {
|
||||||
if (kvm_read (server->machine.kd, (unsigned long) ucred_ptr,
|
if (kvm_read (server->_priv->machine.kd,
|
||||||
|
(unsigned long) ucred_ptr,
|
||||||
&ucred, sizeof (ucred)) != sizeof (ucred)) {
|
&ucred, sizeof (ucred)) != sizeof (ucred)) {
|
||||||
glibtop_warn_io_r (server, "kvm_read (ucred)");
|
glibtop_warn_io_r (server, "kvm_read (ucred)");
|
||||||
} else {
|
} else {
|
||||||
|
@@ -83,12 +83,12 @@ static struct nlist nlst [] = {
|
|||||||
int
|
int
|
||||||
glibtop_init_sem_limits_p (glibtop *server)
|
glibtop_init_sem_limits_p (glibtop *server)
|
||||||
{
|
{
|
||||||
if (kvm_nlist (server->machine.kd, nlst) != 0) {
|
if (kvm_nlist (server->_priv->machine.kd, nlst) != 0) {
|
||||||
glibtop_warn_io_r (server, "kvm_nlist (sem_limits)");
|
glibtop_warn_io_r (server, "kvm_nlist (sem_limits)");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd, nlst [0].n_value,
|
if (kvm_read (server->_priv->machine.kd, nlst [0].n_value,
|
||||||
&_seminfo, sizeof (_seminfo)) != sizeof (_seminfo)) {
|
&_seminfo, sizeof (_seminfo)) != sizeof (_seminfo)) {
|
||||||
glibtop_warn_io_r (server, "kvm_read (seminfo)");
|
glibtop_warn_io_r (server, "kvm_read (seminfo)");
|
||||||
return -1;
|
return -1;
|
||||||
|
@@ -81,12 +81,12 @@ static struct nlist nlst [] = {
|
|||||||
int
|
int
|
||||||
glibtop_init_shm_limits_p (glibtop *server)
|
glibtop_init_shm_limits_p (glibtop *server)
|
||||||
{
|
{
|
||||||
if (kvm_nlist (server->machine.kd, nlst) != 0) {
|
if (kvm_nlist (server->_priv->machine.kd, nlst) != 0) {
|
||||||
glibtop_warn_io_r (server, "kvm_nlist (shm_limits)");
|
glibtop_warn_io_r (server, "kvm_nlist (shm_limits)");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (kvm_read (server->machine.kd, nlst [0].n_value,
|
if (kvm_read (server->_priv->machine.kd, nlst [0].n_value,
|
||||||
&_shminfo, sizeof (_shminfo)) != sizeof (_shminfo)) {
|
&_shminfo, sizeof (_shminfo)) != sizeof (_shminfo)) {
|
||||||
glibtop_warn_io_r (server, "kvm_read (shminfo)");
|
glibtop_warn_io_r (server, "kvm_read (shminfo)");
|
||||||
return -1;
|
return -1;
|
||||||
|
Reference in New Issue
Block a user