Proc-ProcessTable

 view release on metacpan or  search on metacpan

os/Linux.h  view on Meta::CPAN

{
    /* user/group id of the user running it */
    int             uid;
    int             gid;
    /* values scraped from /proc/{$pid}/stat */
    pid_t               pid;
    char                comm[16];                   /* limit in kernel, likewise in procps */
    char                state_c;
    int                 ppid;
    int                 pgrp;
    int                 sid;
    int                 tracer;
    int                 tty;
    unsigned            flags;
    unsigned long       minflt, cminflt, majflt, cmajflt;
    unsigned long long  utime, stime;
    long long           cutime, cstime;
    long                priority;
    unsigned long long  start_time;
    unsigned long       vsize;
    long                rss;
    unsigned long       wchan;
    /* these are derived from above time values */
    unsigned long long  time, ctime;
    /* from above state_c but fixed up elsewhere */
    const char      *state;
    /* values scraped from /proc/{$pid}/status */
    int             euid, suid, fuid;
    int             egid, sgid, fgid;
    /* cwd, cmdline & exec files; values allocated at the end of obstacks */
    char            *cwd;
    char            *cmndline;
    char            *cmdline;
    int         cmdline_len;
    char            *environ;
    int         environ_len;
    char            *exec;
    /* other values */
    char            pctcpu[LENGTH_PCTCPU];  /* precent cpu, without '%' char */
    char            pctmem[sizeof("100.00")];   /* precent memory, without '%' char */
};


enum state
{
    SLEEP,
    WAIT,
    RUN,
    IDLE,
    DEFUNCT,
    STOP,
    UWAIT,
    DEAD,
    WAKEKILL,
    TRACINGSTOP,
    PARKED
};


/* strings, to make sure they get placed in read only memory,
 * ditto for pointers to them and so we avoid relocations */
static const char strings[] =
{
/* process state */
    "sleep\0"
    "wait\0"
    "run\0"
    "idle\0"
    "defunct\0"
    "stop\0"
    "uwait\0"
    "dead\0"
    "wakekill\0"
    "tracingstop\0"
/* error messages */
    "/proc unavailable\0"
    "intilization failed\0"
/* fields */
    "uid\0"
    "gid\0"
    "pid\0"
    "fname\0"
    "ppid\0"
    "pgrp\0"
    "sess\0"
    "ttynum\0"
    "flags\0"
    "minflt\0"
    "cminflt\0"
    "majflt\0"
    "cmajflt\0"
    "utime\0"
    "stime\0"
    "cutime\0"
    "cstime\0"
    "priority\0"
    "start\0"
    "size\0"
    "rss\0"
    "wchan\0"
    "time\0"
    "ctime\0"
    "state\0"
    "euid\0"
    "suid\0"
    "fuid\0"
    "egid\0"
    "sgid\0"
    "fgid\0"
    "pctcpu\0"
    "pctmem\0"
    "cmndline\0"
    "exec\0"
    "cwd\0"
    "cmdline\0"
    "environ\0"
    "tracer\0"
/* format string */
    "IIISIIIILLLLLJJJJIJPLLJJSIIIIIISSSSSAAI\0"
};



( run in 0.415 second using v1.01-cache-2.11-cpan-5511b514fd6 )