/*
* COPYRIGHT (c) International Business Machines Corp. 2001-2017
*
* This program is provided under the terms of the Common Public License,
* version 1.0 (CPL-1.0). Any use, reproduction or distribution for this
* software constitutes recipient's acceptance of CPL-1.0 terms which can be
* found in the file LICENSE file or at
* https://opensource.org/licenses/cpl1.0.php
*/
#ifndef GARBAGE_LINUX_H
#define GARBAGE_LINUX_H
typedef struct {
int pid; /* process id */
char
cmd[16], /* command line string vector for /proc/<pid>/cmdline */
state; /* single-char code for process state
* [R, S, D, Z, or T] */
int
ppid, /* pid of parent process */
pgrp, /* process group id */
session, /* session id */
tty, /* full device number of controlling terminal */
tpgid; /* terminal process group id */
unsigned long
flags, /* kernel flags for the process */
min_flt, /* number of minor page faults since process start */
cmin_flt, /* cumulative min_flt of process and child processes */
maj_flt, /* number of major page faults since process start */
cmaj_flt, /* cumulative maj_flt of process and child processes */
utime, /* user-mode CPU time accumulated by process */
stime; /* kernel-mode CPU time accumulated by process */
long
cutime, /* cumulative utime of process and reaped children */
cstime, /* cumulative stime of process and reaped children */
priority, /* kernel scheduling priority */
nice, /* standard unix nice level of process */
timeout, /* ? */
it_real_value; /* ? */
unsigned long
start_time, /* start time of process -- seconds since 1-1-70 */
vsize; /* number of pages of virtual memory ... */
long rss; /* resident set size from /proc/<pid>/stat (pages) */
unsigned long
rss_rlim, /* resident set size limit? */
start_code, /* address of beginning of code segment */
end_code, /* address of end of code segment */
start_stack, /* address of the bottom of stack for the process */
kstk_esp, /* kernel stack pointer */
kstk_eip; /* kernel instruction pointer */
/* Linux 2.1.7x and up have more signals. This handles 88. */
/* long long (instead of char xxxxxx[24]) handles 64 */
char
signal[24], /* mask of pending signals */
blocked[24], /* mask of blocked signals */
sigignore[24], /* mask of ignored signals */
sigcatch[24]; /* mask of caught signals */
unsigned long
wchan, /* address of kernel wait channel proc is sleeping in */
nswap, /* ? */
cnswap; /* cumulative nswap ? */
int
exit_signal,
processor;
} proc_t;
#endif