1 #ifndef SYS_TIME_H_INCLUDED
2 #define SYS_TIME_H_INCLUDED
5 * sys/time.h either doesn't exist on Windows, or doesn't necessarily
6 * have the below stuff.
9 /* The guards are for MinGW64, which defines these structs on its
10 system headers which are included by ms-w32.h. */
11 /* Allow inclusion of sys/time.h and winsock2.h in any order. Needed
12 for running the configure test, which is only relevant to MinGW. */
13 #ifndef _TIMEVAL_DEFINED
14 #define _TIMEVAL_DEFINED
17 long tv_sec
; /* seconds */
18 long tv_usec
; /* microseconds */
20 #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
21 #define timercmp(tvp, uvp, cmp) \
22 (((tvp)->tv_sec != (uvp)->tv_sec) ? \
23 ((tvp)->tv_sec cmp (uvp)->tv_sec) : \
24 ((tvp)->tv_usec cmp (uvp)->tv_usec))
25 #define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0
26 #endif /* _TIMEVAL_DEFINED */
28 #ifndef _TIMEZONE_DEFINED
29 #define _TIMEZONE_DEFINED
32 int tz_minuteswest
; /* minutes west of Greenwich */
33 int tz_dsttime
; /* type of dst correction */
38 /* This needs to be compatible with Posix signature, in order to pass
39 the configure test for the type of the second argument; see
40 m4/gettimeofday.m4. We use '__restrict' here, rather than
41 'restrict', for the benefit of the old nt/configure.bat build,
42 which does not force the use of -std= switch to GCC, and that
43 causes compilation errors with 'restrict', which is a C99
45 int gettimeofday (struct timeval
*__restrict
, struct timezone
*__restrict
);
52 struct timeval it_interval
; /* timer interval */
53 struct timeval it_value
; /* current value */
56 int getitimer (int, struct itimerval
*);
57 int setitimer (int, struct itimerval
*, struct itimerval
*);
59 #endif /* SYS_TIME_H_INCLUDED */
61 /* end of sys/time.h */