2020-06-05 21:44:30 +00:00
|
|
|
#ifndef UTIL_TIME_H
|
|
|
|
#define UTIL_TIME_H
|
|
|
|
|
2023-06-05 20:45:28 +00:00
|
|
|
#include <stdint.h>
|
2020-06-05 21:50:00 +00:00
|
|
|
#include <time.h>
|
|
|
|
|
2024-11-07 09:22:56 +00:00
|
|
|
static const long NSEC_PER_SEC = 1000000000;
|
|
|
|
|
2020-06-05 21:44:30 +00:00
|
|
|
/**
|
|
|
|
* Get the current time, in milliseconds.
|
|
|
|
*/
|
2022-11-23 14:56:37 +00:00
|
|
|
int64_t get_current_time_msec(void);
|
2020-06-05 21:44:30 +00:00
|
|
|
|
2020-06-05 21:50:00 +00:00
|
|
|
/**
|
|
|
|
* Convert a timespec to milliseconds.
|
|
|
|
*/
|
|
|
|
int64_t timespec_to_msec(const struct timespec *a);
|
|
|
|
|
2023-06-05 15:26:50 +00:00
|
|
|
/**
|
|
|
|
* Convert a timespec to nanoseconds.
|
|
|
|
*/
|
|
|
|
int64_t timespec_to_nsec(const struct timespec *a);
|
|
|
|
|
2020-12-13 11:53:43 +00:00
|
|
|
/**
|
|
|
|
* Convert nanoseconds to a timespec.
|
|
|
|
*/
|
|
|
|
void timespec_from_nsec(struct timespec *r, int64_t nsec);
|
|
|
|
|
2020-06-05 21:56:13 +00:00
|
|
|
/**
|
|
|
|
* Subtracts timespec `b` from timespec `a`, and stores the difference in `r`.
|
|
|
|
*/
|
|
|
|
void timespec_sub(struct timespec *r, const struct timespec *a,
|
|
|
|
const struct timespec *b);
|
|
|
|
|
2020-06-05 21:44:30 +00:00
|
|
|
#endif
|