inline susec_t dt_usec_signed(struct timeval *now, struct timeval *old) { usec_t ts1 = timeval_usec(now); usec_t ts2 = timeval_usec(old); if(likely(ts1 >= ts2)) return (susec_t)(ts1 - ts2); return -((susec_t)(ts2 - ts1)); }
inline unsigned long long usec_dt(struct timeval *now, struct timeval *old) { unsigned long long tv1 = timeval_usec(now); unsigned long long tv2 = timeval_usec(old); return (tv1 > tv2) ? (tv1 - tv2) : (tv2 - tv1); }
// time(NULL) in nanoseconds inline unsigned long long time_usec(void) { struct timeval now; gettimeofday(&now, NULL); return timeval_usec(&now); }
inline usec_t dt_usec(struct timeval *now, struct timeval *old) { usec_t ts1 = timeval_usec(now); usec_t ts2 = timeval_usec(old); return (ts1 > ts2) ? (ts1 - ts2) : (ts2 - ts1); }