*** empty log message ***
This commit is contained in:
@@ -665,9 +665,7 @@ libgtop_sysctl_proc (ctl_table *table, int nlen, int *name,
|
|||||||
libgtop_proc_segment_t *proc_segment;
|
libgtop_proc_segment_t *proc_segment;
|
||||||
libgtop_proc_signal_t *proc_signal;
|
libgtop_proc_signal_t *proc_signal;
|
||||||
libgtop_proc_mem_t *proc_mem;
|
libgtop_proc_mem_t *proc_mem;
|
||||||
#ifdef __SMP__
|
|
||||||
int i;
|
int i;
|
||||||
#endif
|
|
||||||
|
|
||||||
switch (table->ctl_name) {
|
switch (table->ctl_name) {
|
||||||
case LIBGTOP_PROC_STATE:
|
case LIBGTOP_PROC_STATE:
|
||||||
@@ -676,7 +674,6 @@ libgtop_sysctl_proc (ctl_table *table, int nlen, int *name,
|
|||||||
|
|
||||||
proc_state->uid = tsk->uid;
|
proc_state->uid = tsk->uid;
|
||||||
proc_state->gid = tsk->gid;
|
proc_state->gid = tsk->gid;
|
||||||
proc_state->state = tsk->state;
|
|
||||||
proc_state->flags = tsk->flags;
|
proc_state->flags = tsk->flags;
|
||||||
memcpy (proc_state->comm, tsk->comm, sizeof (proc_state->comm));
|
memcpy (proc_state->comm, tsk->comm, sizeof (proc_state->comm));
|
||||||
proc_state->uid = tsk->uid;
|
proc_state->uid = tsk->uid;
|
||||||
@@ -762,6 +759,26 @@ libgtop_sysctl_proc (ctl_table *table, int nlen, int *name,
|
|||||||
|
|
||||||
}
|
}
|
||||||
proc_state->rlim = tsk->rlim ? tsk->rlim[RLIMIT_RSS].rlim_cur : 0;
|
proc_state->rlim = tsk->rlim ? tsk->rlim[RLIMIT_RSS].rlim_cur : 0;
|
||||||
|
|
||||||
|
proc_state->ngroups = tsk->ngroups;
|
||||||
|
for (i = 0; i < min (tsk->ngroups, LIBGTOP_MAX_GROUPS); i++)
|
||||||
|
proc_state->groups [i] = tsk->groups [i];
|
||||||
|
|
||||||
|
if (tsk->state & TASK_INTERRUPTIBLE)
|
||||||
|
proc_state->state |= LIBGTOP_TASK_INTERRUPTIBLE;
|
||||||
|
if (tsk->state & TASK_UNINTERRUPTIBLE)
|
||||||
|
proc_state->state |= LIBGTOP_TASK_UNINTERRUPTIBLE;
|
||||||
|
if (tsk->state & TASK_ZOMBIE)
|
||||||
|
proc_state->state |= LIBGTOP_TASK_ZOMBIE;
|
||||||
|
if (tsk->state & TASK_STOPPED)
|
||||||
|
proc_state->state |= LIBGTOP_TASK_STOPPED;
|
||||||
|
if (tsk->state & TASK_SWAPPING)
|
||||||
|
proc_state->state |= LIBGTOP_TASK_SWAPPING;
|
||||||
|
|
||||||
|
if (!(tsk->state & (TASK_RUNNING | TASK_INTERRUPTIBLE |
|
||||||
|
TASK_UNINTERRUPTIBLE | TASK_ZOMBIE |
|
||||||
|
TASK_STOPPED | TASK_SWAPPING)))
|
||||||
|
proc_state->state |= LIBGTOP_TASK_RUNNING;
|
||||||
break;
|
break;
|
||||||
case LIBGTOP_PROC_KERNEL:
|
case LIBGTOP_PROC_KERNEL:
|
||||||
proc_kernel = table->data;
|
proc_kernel = table->data;
|
||||||
|
@@ -31,11 +31,23 @@ enum {
|
|||||||
#define LIBGTOP_NSIG 4
|
#define LIBGTOP_NSIG 4
|
||||||
|
|
||||||
#define LIBGTOP_PROCLIST_MASK 15
|
#define LIBGTOP_PROCLIST_MASK 15
|
||||||
|
#define LIBGTOP_MAX_GROUPS 32
|
||||||
|
|
||||||
#define LIBGTOP_EXCLUDE_IDLE 0x1000
|
#define LIBGTOP_EXCLUDE_IDLE 0x1000
|
||||||
#define LIBGTOP_EXCLUDE_SYSTEM 0x2000
|
#define LIBGTOP_EXCLUDE_SYSTEM 0x2000
|
||||||
#define LIBGTOP_EXCLUDE_NOTTY 0x4000
|
#define LIBGTOP_EXCLUDE_NOTTY 0x4000
|
||||||
|
|
||||||
|
#define LIBGTOP_TASK_RUNNING 1
|
||||||
|
#define LIBGTOP_TASK_INTERRUPTIBLE 2
|
||||||
|
#define LIBGTOP_TASK_UNINTERRUPTIBLE 4
|
||||||
|
#define LIBGTOP_TASK_ZOMBIE 8
|
||||||
|
#define LIBGTOP_TASK_STOPPED 16
|
||||||
|
#define LIBGTOP_TASK_SWAPPING 32
|
||||||
|
|
||||||
|
#ifndef min
|
||||||
|
#define min(a,b) ((a < b) ? a : b)
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct libgtop_stat libgtop_stat_t;
|
typedef struct libgtop_stat libgtop_stat_t;
|
||||||
|
|
||||||
typedef struct libgtop_cpu libgtop_cpu_t;
|
typedef struct libgtop_cpu libgtop_cpu_t;
|
||||||
@@ -123,6 +135,8 @@ struct libgtop_proc_state
|
|||||||
unsigned long keip, kesp;
|
unsigned long keip, kesp;
|
||||||
unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
|
unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
|
||||||
unsigned long nswap, cnswap;
|
unsigned long nswap, cnswap;
|
||||||
|
|
||||||
|
int ngroups, groups [LIBGTOP_MAX_GROUPS];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct libgtop_proc_kernel
|
struct libgtop_proc_kernel
|
||||||
|
Reference in New Issue
Block a user