4.3BSD beta release manual page
[unix-history] / usr / src / lib / libc / gen / times.c
CommitLineData
59cb1e5a 1/* times.c 4.2 83/06/02 */
9af2a874
SL
2
3#include <sys/time.h>
4#include <sys/resource.h>
5
6/*
7 * Backwards compatible times.
8 */
9struct 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
16times(tmsp)
59cb1e5a 17 register struct tms *tmsp;
9af2a874
SL
18{
19 struct rusage ru;
20
21 if (getrusage(RUSAGE_SELF, &ru) < 0)
22 return (-1);
59cb1e5a 23 tmsp->tms_utime = scale60(&ru.ru_utime);
9af2a874
SL
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
32static
33scale60(tvp)
34 register struct timeval *tvp;
35{
36
37 return (tvp->tv_sec * 60 + tvp->tv_usec / 16667);
38}