1 8ad51794 2004-03-25 devnull #include <u.h>
2 fd04aace 2003-11-23 devnull #include <sys/time.h>
3 8ad51794 2004-03-25 devnull #include <time.h>
4 fd04aace 2003-11-23 devnull #include <sys/resource.h>
5 fd04aace 2003-11-23 devnull #define NOPLAN9DEFINES
6 fd04aace 2003-11-23 devnull #include <libc.h>
9 fd04aace 2003-11-23 devnull p9times(long *t)
11 fd04aace 2003-11-23 devnull struct rusage ru, cru;
13 fd04aace 2003-11-23 devnull if(getrusage(0, &ru) < 0 || getrusage(-1, &cru) < 0)
14 fd04aace 2003-11-23 devnull return -1;
16 fd04aace 2003-11-23 devnull t[0] = ru.ru_utime.tv_sec*1000 + ru.ru_utime.tv_usec/1000;
17 fd04aace 2003-11-23 devnull t[1] = ru.ru_stime.tv_sec*1000 + ru.ru_stime.tv_usec/1000;
18 fd04aace 2003-11-23 devnull t[2] = cru.ru_utime.tv_sec*1000 + cru.ru_utime.tv_usec/1000;
19 fd04aace 2003-11-23 devnull t[3] = cru.ru_stime.tv_sec*1000 + cru.ru_stime.tv_usec/1000;
21 fd04aace 2003-11-23 devnull /* BUG */
22 fd04aace 2003-11-23 devnull return t[0]+t[1]+t[2]+t[3];
26 fd04aace 2003-11-23 devnull p9cputime(void)
28 fd04aace 2003-11-23 devnull long t[4];
29 fd04aace 2003-11-23 devnull double d;
31 fd04aace 2003-11-23 devnull if(p9times(t) < 0)
32 fd04aace 2003-11-23 devnull return -1.0;
34 fd04aace 2003-11-23 devnull d = (double)t[0]+(double)t[1]+(double)t[2]+(double)t[3];
35 fd04aace 2003-11-23 devnull return d/1000.0;
39 fd04aace 2003-11-23 devnull p9nsec(void)
41 fd04aace 2003-11-23 devnull struct timeval tv;
43 fd04aace 2003-11-23 devnull if(gettimeofday(&tv, 0) < 0)
44 fd04aace 2003-11-23 devnull return -1;
46 fd04aace 2003-11-23 devnull return (vlong)tv.tv_sec*1000*1000*1000 + tv.tv_usec*1000;
50 fd04aace 2003-11-23 devnull p9time(long *tt)
53 fd04aace 2003-11-23 devnull t = time(0);
56 fd04aace 2003-11-23 devnull return t;