e576bb | 2002-10-11 | Martin Nilsson | |
|
1b10db | 2002-10-08 | Martin Nilsson | |
|
026a35 | 1996-06-21 | Fredrik Hübinette (Hubbe) | | #ifndef TIME_STUFF_H
#define TIME_STUFF_H
|
22549b | 2006-08-02 | Martin Stjernholm | | #include "global.h"
|
026a35 | 1996-06-21 | Fredrik Hübinette (Hubbe) | |
#if TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
|
ab926b | 2003-04-30 | Henrik Grubbström (Grubba) | | #ifdef HAVE_WINSOCK2_H
# include <winsock2.h>
#elif defined(HAVE_WINSOCK_H)
|
2043ba | 1998-02-10 | Fredrik Hübinette (Hubbe) | | # include <winsock.h>
|
bdfb86 | 1997-12-22 | Fredrik Hübinette (Hubbe) | | #endif
|
026a35 | 1996-06-21 | Fredrik Hübinette (Hubbe) | | #undef HAVE_SYS_TIME_H
#undef HAVE_TIME_H
#undef TIME_WITH_SYS_TIME
#define my_timercmp(tvp, cmp, uvp) \
|
0cdad2 | 1996-07-01 | Fredrik Hübinette (Hubbe) | | ( (tvp)->tv_sec == (uvp)->tv_sec ? \
(tvp)->tv_usec cmp (uvp)->tv_usec : \
(tvp)->tv_sec cmp (uvp)->tv_sec )
|
026a35 | 1996-06-21 | Fredrik Hübinette (Hubbe) | |
#define my_subtract_timeval(X, Y) \
do { \
struct timeval *_a=(X), *_b=(Y); \
_a->tv_sec -= _b->tv_sec; \
|
0cdad2 | 1996-07-01 | Fredrik Hübinette (Hubbe) | | _a->tv_usec -= _b->tv_usec; \
if(_a->tv_usec < 0) { \
_a->tv_sec--; \
_a->tv_usec+=1000000; \
|
026a35 | 1996-06-21 | Fredrik Hübinette (Hubbe) | | } \
} while(0)
#define my_add_timeval(X, Y) \
do { \
struct timeval *_a=(X), *_b=(Y); \
_a->tv_sec += _b->tv_sec; \
|
0cdad2 | 1996-07-01 | Fredrik Hübinette (Hubbe) | | _a->tv_usec += _b->tv_usec; \
if(_a->tv_usec >= 1000000) { \
_a->tv_sec++; \
_a->tv_usec-=1000000; \
|
026a35 | 1996-06-21 | Fredrik Hübinette (Hubbe) | | } \
} while(0)
|
5e116c | 2006-06-20 | Martin Stjernholm | |
|
dfa5b3 | 1996-12-05 | Fredrik Hübinette (Hubbe) | | #ifndef STRUCT_TIMEVAL_DECLARED
#define STRUCT_TIMEVAL_DECLARED
#endif
|
211d6b | 1996-12-05 | Fredrik Hübinette (Hubbe) | |
#ifndef HAVE_STRUCT_TIMEVAL
|
026a35 | 1996-06-21 | Fredrik Hübinette (Hubbe) | | struct timeval
{
long tv_sec;
long tv_usec;
};
#endif
|
f01020 | 2011-11-16 | Tobias S. Josefowitz | | PMOD_EXPORT extern struct timeval current_time;
PMOD_EXPORT extern int current_time_invalid;
#define INVALIDATE_CURRENT_TIME() do { current_time_invalid = 1; } while (0)
#define UPDATE_CURRENT_TIME() do { \
GETTIMEOFDAY(¤t_time); \
current_time_invalid = 0; \
} while (0)
#define ACCURATE_GETTIMEOFDAY(X) do { \
UPDATE_CURRENT_TIME(); \
*(X) = current_time; \
} while (0)
#define ACCURATE_GETTIMEOFDAY_RVAL(X, ___rval) do { \
(___rval) = GETTIMEOFDAY(¤t_time); \
current_time_invalid = 0; \
*(X) = current_time; \
} while (0)
#define INACCURATE_GETTIMEOFDAY(X) do { \
/* unlikely() not available */ \
if (!(current_time_invalid)) { } \
else UPDATE_CURRENT_TIME(); \
*(X) = current_time; \
} while (0)
|
026a35 | 1996-06-21 | Fredrik Hübinette (Hubbe) | | #endif
|