summaryrefslogtreecommitdiff
path: root/proc/readproc.h
diff options
context:
space:
mode:
authorJim Warner <james.warner@comcast.net>2011-05-18 10:33:44 +0200
committerJan Görig <jgorig@redhat.com>2011-05-18 10:33:44 +0200
commit7b0fc19e9d28380dc9790615b93bc3653d6d686e (patch)
tree844b4136dd63dedda7b1834d64cdd41f0b7a72a6 /proc/readproc.h
parent8621387c774df2cac53090f59de6b109d1af9786 (diff)
downloadprocps-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.h14
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