0,0 → 1,112 |
/*!\file sys/wtime.h |
* |
* Watt-32 time functions. |
*/ |
|
#ifndef __SYS_WTIME_H |
#define __SYS_WTIME_H |
|
/* |
* The naming <sys/wtime.h> is required for those compilers that |
* have <sys/time.h> in the usual place but doesn't define |
* the following. |
*/ |
|
#include <time.h> |
|
#ifdef __BORLANDC__ |
#undef timezone /* a macro in bcc 5+ */ |
#endif |
|
#ifndef __SYS_W32API_H |
#include <sys/w32api.h> |
#endif |
|
#ifndef __SYS_CDEFS_H |
#include <sys/cdefs.h> |
#endif |
|
#if defined(__DJGPP__) |
#include <sys/time.h> |
#include <sys/times.h> |
|
#elif defined(__MINGW32__) |
#include <sys/time.h> |
|
#else |
struct timeval { |
time_t tv_sec; |
long tv_usec; |
}; |
#define STRUCT_TIMEVAL_DEFINED |
#endif |
|
#if !defined(__DJGPP__) |
struct timezone { |
int tz_minuteswest; |
int tz_dsttime; |
}; |
|
struct tms { |
unsigned long tms_utime; |
unsigned long tms_cstime; |
unsigned long tms_cutime; |
unsigned long tms_stime; |
}; |
#define STRUCT_TIMEZONE_DEFINED |
#define STRUCT_TMS_DEFINED |
|
__BEGIN_DECLS |
|
#define ITIMER_REAL 0 |
#define ITIMER_PROF 1 |
|
struct itimerval { |
struct timeval it_interval; /* timer interval */ |
struct timeval it_value; /* current value */ |
}; |
|
W32_FUNC int getitimer (int, struct itimerval *); |
W32_FUNC int setitimer (int, struct itimerval *, struct itimerval *); |
|
W32_FUNC int gettimeofday (struct timeval *tp, struct timezone *tz); |
|
__END_DECLS |
|
#endif /* !__DJGPP__ */ |
|
#if !defined(_STRUCT_TIMESPEC) && !defined(_pthread_signal_h) |
#define _STRUCT_TIMESPEC |
struct timespec { |
time_t tv_sec; |
long tv_nsec; |
}; |
#endif |
|
#ifndef HZ |
#define HZ 18.2F |
#endif |
|
__BEGIN_DECLS |
|
W32_FUNC unsigned long net_times (struct tms *buffer); |
W32_FUNC int gettimeofday2 (struct timeval *tv, struct timezone *tz); |
|
__END_DECLS |
|
/* |
* Operations on timevals. |
* |
* NB: timercmp does not work for >= or <=. |
*/ |
#ifndef timerisset |
#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) |
|
#define timercmp(tvp, uvp, cmp) ((tvp)->tv_sec cmp (uvp)->tv_sec || \ |
((tvp)->tv_sec == (uvp)->tv_sec && \ |
(tvp)->tv_usec cmp (uvp)->tv_usec)) |
|
#define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 |
#endif |
|
#endif /* !__SYS_WTIME_H */ |