void timer_init(void) { start_sec = timespec_read().tv_sec; timer_repeat_until.tv_sec = start_sec + 2; timespec_update(); timer_kick(); }
void timespec_add_timespec(struct timespec *one, struct timespec *two, bool reset) { assert(one != NULL && two != NULL); if (reset) timespec_update(one); one->tv_sec += two->tv_sec; one->tv_nsec += two->tv_nsec; }
struct timespec *timespec_now() { struct timespec *time; if (!(time = malloc(sizeof(struct timespec)))) error("malloc"); timespec_update(time); return (time); }
struct timespec *timespec_init(struct timespec *base) { struct timespec *time; if (!(time = malloc(sizeof(struct timespec)))) error("malloc"); if (!base) timespec_update(time); else { time->tv_sec = base->tv_sec; time->tv_nsec = base->tv_nsec; } return (time); }