#ifndef suseconds_t /* PLAN9 */ typedef int suseconds_t; #endif struct timer { struct timeval begin; struct timeval end; int (*expired)(struct timer *timer); }; struct timer *new_timer(time_t sec, suseconds_t usec); #define DELAY_SELECT_METHOD 1 #if defined(DELAY_NANOSLEEP_METHOD) int delay(int64_t ns); #elif defined(DELAY_SELECT_METHOD) int delay(int us); #endif double timeval_to_double(struct timeval *tv); double timeval_diff(struct timeval *tv0, struct timeval *tv1); void update_timer(struct timer *tp, time_t sec, suseconds_t usec); int64_t timer_remaining(struct timer *tp); void free_timer(struct timer *tp);