lib/timer: Add current_time_now() function for immediate timestamp

Add a current_time_now() function which gets an immediate monotonic
timestamp instead of using the cached value from the event loop. This is
useful for callers that need precise times, such as the Babel RTT
measurement code.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
This commit is contained in:
Toke Høiland-Jørgensen 2022-04-19 00:24:14 +02:00 committed by Jerry
parent 8657e7e703
commit 071354da5b
Signed by: Jerry
GPG key ID: 22618F758B5BE2E5
2 changed files with 14 additions and 0 deletions

View file

@ -76,6 +76,19 @@ current_time(void)
return timeloop_current()->last_time;
}
btime
current_time_now(void)
{
struct timespec ts;
int rv;
rv = clock_gettime(CLOCK_MONOTONIC, &ts);
if (rv < 0)
die("clock_gettime: %m");
return ts.tv_sec S + ts.tv_nsec NS;
}
btime
current_real_time(void)
{

View file

@ -44,6 +44,7 @@ static inline timer *timers_first(struct timeloop *loop)
extern struct timeloop main_timeloop;
btime current_time(void);
btime current_time_now(void);
btime current_real_time(void);
//#define now (current_time() TO_S)