1*12887Ssam /* times.c 4.2 83/06/02 */ 212843Ssam 312843Ssam #include <sys/time.h> 412843Ssam #include <sys/resource.h> 512843Ssam 612843Ssam /* 712843Ssam * Backwards compatible times. 812843Ssam */ 912843Ssam struct tms { 1012843Ssam int tms_utime; /* user time */ 1112843Ssam int tms_stime; /* system time */ 1212843Ssam int tms_cutime; /* user time, children */ 1312843Ssam int tms_cstime; /* system time, children */ 1412843Ssam }; 1512843Ssam 1612843Ssam times(tmsp) 17*12887Ssam register struct tms *tmsp; 1812843Ssam { 1912843Ssam struct rusage ru; 2012843Ssam 2112843Ssam if (getrusage(RUSAGE_SELF, &ru) < 0) 2212843Ssam return (-1); 23*12887Ssam tmsp->tms_utime = scale60(&ru.ru_utime); 2412843Ssam tmsp->tms_stime = scale60(&ru.ru_stime); 2512843Ssam if (getrusage(RUSAGE_CHILDREN, &ru) < 0) 2612843Ssam return (-1); 2712843Ssam tmsp->tms_cutime = scale60(&ru.ru_utime); 2812843Ssam tmsp->tms_cstime = scale60(&ru.ru_stime); 2912843Ssam return (0); 3012843Ssam } 3112843Ssam 3212843Ssam static 3312843Ssam scale60(tvp) 3412843Ssam register struct timeval *tvp; 3512843Ssam { 3612843Ssam 3712843Ssam return (tvp->tv_sec * 60 + tvp->tv_usec / 16667); 3812843Ssam } 39