1 /* times.c 4.2 83/06/02 */ 2 3 #include <sys/time.h> 4 #include <sys/resource.h> 5 6 /* 7 * Backwards compatible times. 8 */ 9 struct tms { 10 int tms_utime; /* user time */ 11 int tms_stime; /* system time */ 12 int tms_cutime; /* user time, children */ 13 int tms_cstime; /* system time, children */ 14 }; 15 16 times(tmsp) 17 register struct tms *tmsp; 18 { 19 struct rusage ru; 20 21 if (getrusage(RUSAGE_SELF, &ru) < 0) 22 return (-1); 23 tmsp->tms_utime = scale60(&ru.ru_utime); 24 tmsp->tms_stime = scale60(&ru.ru_stime); 25 if (getrusage(RUSAGE_CHILDREN, &ru) < 0) 26 return (-1); 27 tmsp->tms_cutime = scale60(&ru.ru_utime); 28 tmsp->tms_cstime = scale60(&ru.ru_stime); 29 return (0); 30 } 31 32 static 33 scale60(tvp) 34 register struct timeval *tvp; 35 { 36 37 return (tvp->tv_sec * 60 + tvp->tv_usec / 16667); 38 } 39