--- projects/libstatgrab/src/libstatgrab/statgrab.h 2004/01/19 16:49:21 1.23 +++ projects/libstatgrab/src/libstatgrab/statgrab.h 2004/04/03 22:59:30 1.32 @@ -18,7 +18,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307 USA * - * $Id: statgrab.h,v 1.23 2004/01/19 16:49:21 tdb Exp $ + * $Id: statgrab.h,v 1.32 2004/04/03 22:59:30 tdb Exp $ */ #include @@ -108,15 +108,64 @@ typedef struct{ char *interface_name; long long tx; long long rx; + long long ipackets; + long long opackets; + long long ierrors; + long long oerrors; + long long collisions; time_t systime; }network_stat_t; +typedef enum{ + FULL_DUPLEX, + HALF_DUPLEX, + UNKNOWN_DUPLEX +}statgrab_duplex; + typedef struct{ + char *interface_name; + int speed; /* In megabits/sec */ + statgrab_duplex dup; + int up; +}network_iface_stat_t; + +typedef struct{ long long pages_pagein; long long pages_pageout; time_t systime; }page_stat_t; +typedef enum{ + RUNNING, + SLEEPING, + STOPPED, + ZOMBIE, + UNKNOWN +}process_status; + +typedef struct{ + char *process_name; + char *proctitle; + + pid_t pid; + pid_t parent; /* Parent pid */ + pid_t pgid; /* process id of process group leader */ + + uid_t uid; + uid_t euid; + gid_t gid; + gid_t egid; + + unsigned long long proc_size; /* in bytes */ + unsigned long long proc_resident; /* in bytes */ + time_t time_spent; /* time running in seconds */ + double cpu_percent; + int nice; + process_status state; +}proc_state_t; + +int get_proc_snapshot(proc_state_t **proc_state); + cpu_states_t *get_cpu_totals(); cpu_states_t *get_cpu_diff(); cpu_percent_t *cpu_percent_usage(); @@ -139,6 +188,8 @@ process_stat_t *get_process_stats(); network_stat_t *get_network_stats(int *entries); network_stat_t *get_network_stats_diff(int *entries); + +network_iface_stat_t *get_network_iface_stats(int *entries); page_stat_t *get_page_stats(); page_stat_t *get_page_stats_diff();