/* time.h -- An implementation of the standard Unix file. Written by Geoffrey Noer Public domain; no rights reserved. */ #ifndef _SYS_TIME_H_ #define _SYS_TIME_H_ #include <_ansi.h> #include #include #ifdef __cplusplus extern "C" { #endif #ifndef _TIMEVAL_DEFINED #define _TIMEVAL_DEFINED struct timeval { time_t tv_sec; suseconds_t tv_usec; }; /* BSD time macros used by RTEMS code */ #if defined (__rtems__) || defined (__CYGWIN__) /* Convenience macros for operations on timevals. NOTE: `timercmp' does not work for >= or <=. */ #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) #define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0) #define timercmp(a, b, CMP) \ (((a)->tv_sec == (b)->tv_sec) ? \ ((a)->tv_usec CMP (b)->tv_usec) : \ ((a)->tv_sec CMP (b)->tv_sec)) #define timeradd(a, b, result) \ do { \ (result)->tv_sec = (a)->tv_sec + (b)->tv_sec; \ (result)->tv_usec = (a)->tv_usec + (b)->tv_usec; \ if ((result)->tv_usec >= 1000000) \ { \ ++(result)->tv_sec; \ (result)->tv_usec -= 1000000; \ } \ } while (0) #define timersub(a, b, result) \ do { \ (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \ (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \ if ((result)->tv_usec < 0) { \ --(result)->tv_sec; \ (result)->tv_usec += 1000000; \ } \ } while (0) #endif /* defined (__rtems__) || defined (__CYGWIN__) */ #endif /* !_TIMEVAL_DEFINED */ struct timezone { int tz_minuteswest; int tz_dsttime; }; #ifdef __CYGWIN__ #include #endif /* __CYGWIN__ */ #define ITIMER_REAL 0 #define ITIMER_VIRTUAL 1 #define ITIMER_PROF 2 struct itimerval { struct timeval it_interval; struct timeval it_value; }; #ifdef _COMPILING_NEWLIB int _EXFUN(_gettimeofday, (struct timeval *__p, void *__tz)); #endif int _EXFUN(gettimeofday, (struct timeval *__restrict __p, void *__restrict __tz)); #if __BSD_VISIBLE int _EXFUN(settimeofday, (const struct timeval *, const struct timezone *)); int _EXFUN(adjtime, (const struct timeval *, struct timeval *)); #endif int _EXFUN(utimes, (const char *__path, const struct timeval *__tvp)); int _EXFUN(getitimer, (int __which, struct itimerval *__value)); int _EXFUN(setitimer, (int __which, const struct itimerval *__restrict __value, struct itimerval *__restrict __ovalue)); #ifdef __cplusplus } #endif #endif /* _SYS_TIME_H_ */