xref: /original-bsd/lib/libc/gen/times.c (revision 3e5087d8)
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