diff options
author | Jim Warner <james.warner@comcast.net> | 2011-05-18 10:33:44 +0200 |
---|---|---|
committer | Jan Görig <jgorig@redhat.com> | 2011-05-18 10:33:44 +0200 |
commit | 7b0fc19e9d28380dc9790615b93bc3653d6d686e (patch) | |
tree | 844b4136dd63dedda7b1834d64cdd41f0b7a72a6 /proc/readproc.h | |
parent | 8621387c774df2cac53090f59de6b109d1af9786 (diff) | |
download | procps-ng-7b0fc19e9d28380dc9790615b93bc3653d6d686e.tar.gz |
enhanced libproc cgroup/cmdline support, exploited by topnewtop
Library Changes
. added PROC_EDITCMDLCVT flag
. added an internal (static) fill_cmdline_cvt function:
- reads and "escapes" /proc/#/cmdline
- returns result as a single string in a single vector
- callers are guaranteed a cmdline (no more NULL)
. added vectorize_this_str function, exploited by
fill_cgroup_cvt, fill_cmdline_cvt
. generalized read_cmdline function as read_unvectored, now
exploited by fill_cgroup_cvt, fill_cmdline_cvt, read_cmdline
( cgroup and cmdline no longer need be converted to string )
( vectors before being transformed to final representation )
. fixed bug regarding skipped group numbers (when enabled)
. escape_str made responsible for all single byte translation
with distinction between control chars + other unprintable
. added escaped_copy function for already escaped strings
. reorganized parts of proc_t to restore formatting standards
( displacement changes shouldn't matter with new version # )
. former ZAP_SUSEONLY #define now OOMEM_ENABLE
. added to library.map: escaped_copy; read_cmdline
Top Program Changes
. exploited the new PROC_EDITCMDLCVT provision
. eliminated now obsolete #include "proc/escape.h"
. changed the P_WCH display format if no kernel symbol table
. fixed very old bug in lflgs for out-of-view sort fields
. former ZAP_SUSEONLY #define now OOMEM_ENABLE
Ps Program Changes
. exploited the new PROC_EDITCMDLCVT provision
. exploited the new escaped_copy function
. consolidated pr_args and pr_comm into pr_argcom
Signed-off-by: Jan Görig <jgorig@redhat.com>
Diffstat (limited to 'proc/readproc.h')
-rw-r--r-- | proc/readproc.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/proc/readproc.h b/proc/readproc.h index c6c9bbe..b8d97bb 100644 --- a/proc/readproc.h +++ b/proc/readproc.h @@ -111,8 +111,9 @@ typedef struct proc_t { cmin_flt, // stat cumulative min_flt of process and child processes cmaj_flt; // stat cumulative maj_flt of process and child processes char - **environ, // (special) environment string vector (/proc/#/environ) - **cmdline; // (special) command line string vector (/proc/#/cmdline) + **environ, // (special) environment string vector (/proc/#/environ) + **cmdline, // (special) command line string vector (/proc/#/cmdline) + **cgroup; // (special) cgroup string vector (/proc/#/cgroup) char // Be compatible: Digital allows 16 and NT allows 14 ??? euser[P_G_SZ], // stat(),status effective user name @@ -140,11 +141,11 @@ typedef struct proc_t { tpgid, // stat terminal process group id exit_signal, // stat might not be SIGCHLD processor; // stat current (or most recent?) CPU -#ifdef ZAP_SUSEONLY - int oom_score, // oom_score (badness for OOM killer) - oom_adj; // oom_adj (adjustment to OOM score) +#ifdef OOMEM_ENABLE + int + oom_score, // oom_score (badness for OOM killer) + oom_adj; // oom_adj (adjustment to OOM score) #endif - char **cgroup; // cgroup current cgroup, looks like a classic filepath } proc_t; // PROCTAB: data structure holding the persistent information readproc needs @@ -252,6 +253,7 @@ extern proc_t * get_proc_stats(pid_t pid, proc_t *p); #define PROC_UID 0x4000 // user id numbers ( length needed ) #define PROC_EDITCGRPCVT 0x10000 // edit `cgroup' as single vector +#define PROC_EDITCMDLCVT 0x20000 // edit `cmdline' as single vector // it helps to give app code a few spare bits #define PROC_SPARE_1 0x01000000 |