1 2 #ifndef _GETRUSAGE_H 3 #define _GETRUSAGE_H 4 5 #if defined(__cplusplus) 6 extern "C" 7 { 8 #endif 9 10 #define ENODATA 61 11 #define RUSAGE_SELF 0 12 #define RUSAGE_CHILDREN -1 13 14 typedef struct 15 { 16 long tv_sec; 17 long tv_usec; 18 } timeval; 19 20 typedef struct rusage 21 { 22 timeval ru_utime; /* user time used */ 23 timeval ru_stime; /* system time used */ 24 long ru_maxrss; /* integral max resident set size */ 25 long ru_ixrss; /* integral shared text memory size */ 26 long ru_idrss; /* integral unshared data size */ 27 long ru_isrss; /* integral unshared stack size */ 28 long ru_minflt; /* page reclaims */ 29 long ru_majflt; /* page faults */ 30 long ru_nswap; /* swaps */ 31 long ru_inblock; /* block input operations */ 32 long ru_oublock; /* block output operations */ 33 long ru_msgsnd; /* messages sent */ 34 long ru_msgrcv; /* messages received */ 35 long ru_nsignals;/* signals received */ 36 long ru_nvcsw; /* voluntary context switches */ 37 long ru_nivcsw; /* involuntary context switches */ 38 } rusage; 39 40 int getrusage(int who, rusage *usage); 41 42 #if defined(__cplusplus) 43 } 44 #endif 45 46 #endif 47