1#include <time.h>
2#include <limits.h>
3
4int __clock_gettime(clockid_t, struct timespec *);
5
6clock_t clock()
7{
8	struct timespec ts;
9
10	if (__clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts))
11		return -1;
12
13	if (ts.tv_sec > LONG_MAX/1000000
14	 || ts.tv_nsec/1000 > LONG_MAX-1000000*ts.tv_sec)
15		return -1;
16
17	return ts.tv_sec*1000000 + ts.tv_nsec/1000;
18}
19