(ts)->tv_sec = (tv)->tv_sec; \\r
(ts)->tv_nsec = (tv)->tv_usec * 1000; \\r
} while (/*CONSTCOND*/0)\r
+\r
#define TIMESPEC_TO_TIMEVAL(tv, ts) do { \\r
(tv)->tv_sec = (ts)->tv_sec; \\r
(tv)->tv_usec = (ts)->tv_nsec / 1000; \\r
/* Operations on timevals. */\r
#define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0\r
#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)\r
+\r
#define timercmp(tvp, uvp, cmp) \\r
(((tvp)->tv_sec == (uvp)->tv_sec) ? \\r
((tvp)->tv_usec cmp (uvp)->tv_usec) : \\r
((tvp)->tv_sec cmp (uvp)->tv_sec))\r
+\r
#define timeradd(tvp, uvp, vvp) \\r
do { \\r
(vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \\r
(vvp)->tv_usec -= 1000000; \\r
} \\r
} while (/* CONSTCOND */ 0)\r
+\r
#define timersub(tvp, uvp, vvp) \\r
do { \\r
(vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \\r
/* Operations on timespecs. */\r
#define timespecclear(tsp) (tsp)->tv_sec = (tsp)->tv_nsec = 0\r
#define timespecisset(tsp) ((tsp)->tv_sec || (tsp)->tv_nsec)\r
+\r
#define timespeccmp(tsp, usp, cmp) \\r
(((tsp)->tv_sec == (usp)->tv_sec) ? \\r
((tsp)->tv_nsec cmp (usp)->tv_nsec) : \\r
((tsp)->tv_sec cmp (usp)->tv_sec))\r
+\r
#define timespecadd(tsp, usp, vsp) \\r
do { \\r
(vsp)->tv_sec = (tsp)->tv_sec + (usp)->tv_sec; \\r
(vsp)->tv_nsec -= 1000000000L; \\r
} \\r
} while (/* CONSTCOND */ 0)\r
+\r
#define timespecsub(tsp, usp, vsp) \\r
do { \\r
(vsp)->tv_sec = (tsp)->tv_sec - (usp)->tv_sec; \\r
\r
/* BSD compatibility functions */\r
int gettimeofday (struct timeval *tp, void *ignore);\r
+/* POSIX compatibility functions */\r
+int getitimer (int which, struct itimerval *value);\r
+int setitimer (int which, const struct itimerval *value, struct itimerval *ovalue);\r
\r
#endif /* !_SYS_TIME_H_ */\r