Initial import from FreeBSD RELENG_4:
[dragonfly.git] / contrib / libf2c / libF77 / dtime_.c
1 #include "time.h"
2
3 #ifdef MSDOS
4 #undef USE_CLOCK
5 #define USE_CLOCK
6 #endif
7
8 #ifndef USE_CLOCK
9 #define _INCLUDE_POSIX_SOURCE   /* for HP-UX */
10 #define _INCLUDE_XOPEN_SOURCE   /* for HP-UX */
11 #include "sys/types.h"
12 #include "sys/times.h"
13 #endif
14
15 #undef Hz
16 #ifdef CLK_TCK
17 #define Hz CLK_TCK
18 #else
19 #ifdef HZ
20 #define Hz HZ
21 #else
22 #define Hz 60
23 #endif
24 #endif
25
26  double
27 #ifdef KR_headers
28 dtime_(tarray) float *tarray;
29 #else
30 dtime_(float *tarray)
31 #endif
32 {
33 #ifdef USE_CLOCK
34 #ifndef CLOCKS_PER_SECOND
35 #define CLOCKS_PER_SECOND Hz
36 #endif
37         static double t0;
38         double t = clock();
39         tarray[1] = 0;
40         tarray[0] = (t - t0) / CLOCKS_PER_SECOND;
41         t0 = t;
42         return tarray[0];
43 #else
44         struct tms t;
45         static struct tms t0;
46
47         times(&t);
48         tarray[0] = (t.tms_utime - t0.tms_utime) / Hz;
49         tarray[1] = (t.tms_stime - t0.tms_stime) / Hz;
50         t0 = t;
51         return tarray[0] + tarray[1];
52 #endif
53         }