TIOCGPGRP copies an int out of the kernel
[unix-history] / usr / src / lib / libc / gen / clock.c
CommitLineData
93d75995
KB
1/*
2 * Copyright (c) 1989 The Regents of the University of California.
3 * All rights reserved.
4 *
269a7923 5 * %sccs.include.redist.c%
93d75995
KB
6 */
7
8#if defined(LIBC_SCCS) && !defined(lint)
428b8f00 9static char sccsid[] = "@(#)clock.c 5.4 (Berkeley) %G%";
93d75995
KB
10#endif /* LIBC_SCCS and not lint */
11
428b8f00 12#include <sys/param.h>
93d75995
KB
13#include <sys/time.h>
14#include <sys/resource.h>
15
428b8f00
KB
16/*
17 * Convert usec to clock ticks; could do (usec * CLK_TCK) / 1000000,
18 * but this would overflow if we switch to nanosec.
19 */
20#define CONVTCK(r) (r.tv_sec * CLK_TCK + r.tv_usec / (1000000 / CLK_TCK))
21
93d75995
KB
22clock_t
23clock()
24{
428b8f00 25 struct rusage ru;
93d75995 26
428b8f00 27 if (getrusage(RUSAGE_SELF, &ru))
675fd207 28 return ((clock_t) -1);
428b8f00 29 return((clock_t)((CONVTCK(ru.ru_utime) + CONVTCK(ru.ru_stime))));
93d75995 30}