Added implementation for the newly added features.
This commit is contained in:
@@ -28,7 +28,10 @@
|
||||
|
||||
static const unsigned long _glibtop_sysdeps_proc_state =
|
||||
(1 << GLIBTOP_PROC_STATE_UID) + (1 << GLIBTOP_PROC_STATE_GID) +
|
||||
(1 << GLIBTOP_PROC_STATE_CMD);
|
||||
(1 << GLIBTOP_PROC_STATE_RUID) + (1 << GLIBTOP_PROC_STATE_RGID) +
|
||||
(1 << GLIBTOP_PROC_STATE_CMD) + (1 << GLIBTOP_PROC_STATE_STATE) +
|
||||
(1 << GLIBTOP_PROC_STATE_HAS_CPU) + (1 << GLIBTOP_PROC_STATE_PROCESSOR) +
|
||||
(1 << GLIBTOP_PROC_STATE_LAST_PROCESSOR);
|
||||
|
||||
/* Init function. */
|
||||
|
||||
@@ -52,8 +55,28 @@ glibtop_get_proc_state_s (glibtop *server, glibtop_proc_state *buf,
|
||||
return;
|
||||
|
||||
memcpy (buf->cmd, proc_state.comm, sizeof (buf->cmd));
|
||||
buf->uid = proc_state.uid;
|
||||
buf->gid = proc_state.gid;
|
||||
|
||||
if (proc_state.state & LIBGTOP_TASK_RUNNING)
|
||||
buf->state |= GLIBTOP_PROCESS_RUNNING;
|
||||
if (proc_state.state & LIBGTOP_TASK_INTERRUPTIBLE)
|
||||
buf->state |= GLIBTOP_PROCESS_INTERRUPTIBLE;
|
||||
if (proc_state.state & LIBGTOP_TASK_UNINTERRUPTIBLE)
|
||||
buf->state |= GLIBTOP_PROCESS_UNINTERRUPTIBLE;
|
||||
if (proc_state.state & LIBGTOP_TASK_ZOMBIE)
|
||||
buf->state |= GLIBTOP_PROCESS_ZOMBIE;
|
||||
if (proc_state.state & LIBGTOP_TASK_STOPPED)
|
||||
buf->state |= GLIBTOP_PROCESS_STOPPED;
|
||||
if (proc_state.state & LIBGTOP_TASK_SWAPPING)
|
||||
buf->state |= GLIBTOP_PROCESS_SWAPPING;
|
||||
|
||||
buf->uid = proc_state.euid;
|
||||
buf->gid = proc_state.egid;
|
||||
buf->ruid = proc_state.uid;
|
||||
buf->rgid = proc_state.gid;
|
||||
|
||||
buf->has_cpu = proc_state.has_cpu;
|
||||
buf->processor = proc_state.processor;
|
||||
buf->last_processor = proc_state.last_processor;
|
||||
|
||||
buf->flags = _glibtop_sysdeps_proc_state;
|
||||
}
|
||||
|
@@ -29,10 +29,17 @@
|
||||
static const unsigned long _glibtop_sysdeps_proc_uid =
|
||||
(1 << GLIBTOP_PROC_UID_UID) + (1 << GLIBTOP_PROC_UID_EUID) +
|
||||
(1 << GLIBTOP_PROC_UID_GID) + (1 << GLIBTOP_PROC_UID_EGID) +
|
||||
(1 << GLIBTOP_PROC_UID_SUID) + (1 << GLIBTOP_PROC_UID_SGID) +
|
||||
(1 << GLIBTOP_PROC_UID_FSUID) + (1 << GLIBTOP_PROC_UID_FSGID) +
|
||||
(1 << GLIBTOP_PROC_UID_PID) + (1 << GLIBTOP_PROC_UID_PPID) +
|
||||
(1 << GLIBTOP_PROC_UID_PGRP) + (1 << GLIBTOP_PROC_UID_SESSION) +
|
||||
(1 << GLIBTOP_PROC_UID_TTY) + (1 << GLIBTOP_PROC_UID_TPGID) +
|
||||
(1 << GLIBTOP_PROC_UID_PRIORITY) + (1 << GLIBTOP_PROC_UID_NICE);
|
||||
(1 << GLIBTOP_PROC_UID_PRIORITY) + (1 << GLIBTOP_PROC_UID_NICE) +
|
||||
(1 << GLIBTOP_PROC_UID_NGROUPS) + (1 << GLIBTOP_PROC_UID_GROUPS);
|
||||
|
||||
#ifndef min
|
||||
#define min(a,b) ((a < b) ? a : b)
|
||||
#endif
|
||||
|
||||
/* Init function. */
|
||||
|
||||
@@ -50,6 +57,7 @@ glibtop_get_proc_uid_s (glibtop *server, glibtop_proc_uid *buf,
|
||||
{
|
||||
libgtop_proc_state_t proc_state;
|
||||
long priority, nice;
|
||||
int i;
|
||||
|
||||
memset (buf, 0, sizeof (glibtop_proc_uid));
|
||||
|
||||
@@ -61,6 +69,11 @@ glibtop_get_proc_uid_s (glibtop *server, glibtop_proc_uid *buf,
|
||||
buf->gid = proc_state.gid;
|
||||
buf->egid = proc_state.egid;
|
||||
|
||||
buf->suid = proc_state.suid;
|
||||
buf->sgid = proc_state.sgid;
|
||||
buf->fsuid = proc_state.fsuid;
|
||||
buf->fsgid = proc_state.fsgid;
|
||||
|
||||
buf->pid = proc_state.pid;
|
||||
buf->ppid = proc_state.ppid;
|
||||
buf->pgrp = proc_state.pgrp;
|
||||
@@ -79,5 +92,9 @@ glibtop_get_proc_uid_s (glibtop *server, glibtop_proc_uid *buf,
|
||||
buf->priority = priority;
|
||||
buf->nice = nice;
|
||||
|
||||
buf->ngroups = min (proc_state.ngroups, GLIBTOP_MAX_GROUPS);
|
||||
for (i = 0; i < buf->ngroups; i++)
|
||||
buf->groups [i] = proc_state.groups [i];
|
||||
|
||||
buf->flags = _glibtop_sysdeps_proc_uid;
|
||||
}
|
||||
|
@@ -27,7 +27,8 @@
|
||||
#include <glibtop_private.h>
|
||||
|
||||
static unsigned long _glibtop_sysdeps_uptime =
|
||||
(1 << GLIBTOP_UPTIME_UPTIME) + (1 << GLIBTOP_UPTIME_IDLETIME);
|
||||
(1 << GLIBTOP_UPTIME_UPTIME) + (1 << GLIBTOP_UPTIME_IDLETIME) +
|
||||
(1 << GLIBTOP_UPTIME_BOOT_TIME);
|
||||
|
||||
/* Init function. */
|
||||
|
||||
@@ -55,5 +56,7 @@ glibtop_get_uptime_s (glibtop *server, glibtop_uptime *buf)
|
||||
buf->uptime = (double) total / (double) stat.frequency;
|
||||
buf->idletime = (double) stat.cpu.idle / (double) stat.frequency;
|
||||
|
||||
buf->boot_time = stat.boot_time;
|
||||
|
||||
buf->flags = _glibtop_sysdeps_uptime;
|
||||
}
|
||||
|
Reference in New Issue
Block a user