47#define OSMO_SEC2MIN(sec) ((sec % (60 * 60)) / 60)
48#define OSMO_SEC2HRS(sec) ((sec % (60 * 60 * 24)) / (60 * 60))
49#define OSMO_SEC2DAY(sec) ((sec % (60 * 60 * 24 * 365)) / (60 * 60 * 24))
77 const struct timeval *now,
78 struct timeval *remaining);
struct timespec * osmo_clock_override_gettimespec(clockid_t clk_id)
int osmo_timer_remaining(const struct osmo_timer_list *timer, const struct timeval *now, struct timeval *remaining)
compute the remaining time of a timer
Definition: timer.c:148
void osmo_timer_del(struct osmo_timer_list *timer)
delete a timer from timer management
Definition: timer.c:116
void osmo_clock_override_enable(clockid_t clk_id, bool enable)
void osmo_timers_prepare(void)
Find the nearest time and update nearest_p.
Definition: timer.c:224
struct timeval * osmo_timers_nearest(void)
Determine time between now and the nearest timer.
Definition: timer.c:175
void osmo_timer_setup(struct osmo_timer_list *timer, void(*cb)(void *data), void *data)
set up timer callback and data
Definition: timer.c:70
void osmo_clock_override_add(clockid_t clk_id, time_t secs, long nsecs)
int osmo_gettimeofday(struct timeval *tv, struct timezone *tz)
shim around gettimeofday to be able to set the time manually.
Definition: timer_gettimeofday.c:56
void osmo_timer_add(struct osmo_timer_list *timer)
add a new timer to the timer management
Definition: timer.c:80
void osmo_timer_schedule(struct osmo_timer_list *timer, int seconds, int microseconds)
schedule a timer at a given future relative time
Definition: timer.c:99
struct timeval osmo_gettimeofday_override_time
Definition: timer_gettimeofday.c:45
bool osmo_gettimeofday_override
Definition: timer_gettimeofday.c:44
int osmo_clock_gettime(clockid_t clk_id, struct timespec *tp)
int osmo_timer_pending(const struct osmo_timer_list *timer)
check if given timer is still pending
Definition: timer.c:134
int osmo_timers_check(void)
Check how many timers we have in the system.
Definition: timer.c:288
int osmo_timers_nearest_ms(void)
Determine time between now and the nearest timer in milliseconds.
Definition: timer.c:186
int osmo_timers_update(void)
fire all timers... and remove them
Definition: timer.c:242
void osmo_gettimeofday_override_add(time_t secs, suseconds_t usecs)
convenience function to advance the fake time.
Definition: timer_gettimeofday.c:68
Simple doubly linked list implementation.
(double) linked list header structure
Definition: linuxlist.h:46
A structure representing a single instance of a timer.
Definition: timer.h:52
struct llist_head list
internal list header
Definition: timer.h:54
unsigned int active
is it active?
Definition: timer.h:56
struct rb_node node
rb-tree node header
Definition: timer.h:53
void(* cb)(void *)
call-back called at timeout
Definition: timer.h:58
void * data
user data for callback
Definition: timer.h:59
struct timeval timeout
expiration time
Definition: timer.h:55
Definition: linuxrbtree.h:95
Compatibility header with some helpers.