ProxMon/src/process.h

51 lines
1.2 KiB
C

#ifndef PROCESS_MON_H
#define PROCESS_MON_H
#include <stdint.h>
typedef struct st_process {
// For our own purposes
struct st_process *next; // next process in order we read them
struct st_process *parent; // parent process
struct st_process *child; // pointer to first child
struct st_process *sibling; // pointer to next sibling
int visited;
uint32_t flags;
char cpuset[128];
int tgid;
// attributes identifying thread
int lxc;
int pid;
int ppid;
char label[128];
// statistics - each outputs 1 line per process
int level;
int iskernel;
uint64_t cpuTime;
uint64_t nThreads;
uint64_t resident;
uint64_t swap;
uint64_t written;
uint64_t read;
// cumulative fields - process + children
uint64_t cCpuTime;
uint64_t cMemory;
uint64_t cSwap;
uint64_t cRead;
uint64_t cWrite;
} Process;
char *readProcesses(char *procdir);
void aggregateStats(Process *head);
int resetVisits(Process *head);
void linkFamily(Process *head);
void printFamilyTree(Process *head);
int parseStatFile(Process *proc, char *filedata);
int parseStatusFile(Process *proc, char *filedata);
int parseIOFile(Process *proc, char *filedata);
#endif