FD.io VPP
v21.01.1
Vector Packet Processing
|
TW timer implementation TEMPLATE ONLY, do not compile directly. More...
Go to the source code of this file.
Functions | |
static u32 TW() | make_internal_timer_handle (u32 pool_index, u32 timer_id) |
static void | timer_addhead (TWT(tw_timer) *pool, u32 head_index, u32 new_index) |
static void | timer_remove (TWT(tw_timer) *pool, TWT(tw_timer) *elt) |
static void | timer_add (TWT(tw_timer_wheel) *tw, TWT(tw_timer) *t, u64 interval) |
__clib_export u32 TW() | tw_timer_start (TWT(tw_timer_wheel) *tw, u32 user_id, u32 timer_id, u64 interval) |
Start a Tw Timer. More... | |
__clib_export void TW() | tw_timer_stop (TWT(tw_timer_wheel) *tw, u32 handle) |
Stop a tw timer. More... | |
__clib_export int TW() | tw_timer_handle_is_free (TWT(tw_timer_wheel) *tw, u32 handle) |
__clib_export void TW() | tw_timer_update (TWT(tw_timer_wheel) *tw, u32 handle, u64 interval) |
Update a tw timer. More... | |
__clib_export void TW() | tw_timer_wheel_init (TWT(tw_timer_wheel) *tw, void *expired_timer_callback, f64 timer_interval_in_seconds, u32 max_expirations) |
Initialize a tw timer wheel template instance. More... | |
__clib_export void TW() | tw_timer_wheel_free (TWT(tw_timer_wheel) *tw) |
Free a tw timer wheel template instance. More... | |
static u32 *TW() | tw_timer_expire_timers_internal (TWT(tw_timer_wheel) *tw, f64 now, u32 *callback_vector_arg) |
Advance a tw timer wheel. More... | |
__clib_export u32 *TW() | tw_timer_expire_timers (TWT(tw_timer_wheel) *tw, f64 now) |
__clib_export u32 *TW() | tw_timer_expire_timers_vec (TWT(tw_timer_wheel) *tw, f64 now, u32 *vec) |
TW timer implementation TEMPLATE ONLY, do not compile directly.
Definition in file tw_timer_template.c.
Definition at line 161 of file tw_timer_template.c.
Definition at line 814 of file tw_timer_template.c.
|
inlinestatic |
Advance a tw timer wheel.
Calls the expired timer callback as needed. This routine should be called once every timer_interval seconds
tw_timer_wheel_t | * tw timer wheel template instance pointer |
f64 | now the current time, e.g. from vlib_time_now(vm) |
Definition at line 504 of file tw_timer_template.c.
Definition at line 380 of file tw_timer_template.c.
__clib_export u32 TW() tw_timer_start | ( | TWT(tw_timer_wheel) * | tw, |
u32 | user_id, | ||
u32 | timer_id, | ||
u64 | interval | ||
) |
Start a Tw Timer.
tw_timer_wheel_t | * tw timer wheel object pointer |
u32 | user_id user defined timer id, presumably for a tw session |
u32 | timer_id app-specific timer ID. 4 bits. |
u64 | interval timer interval in ticks |
Definition at line 296 of file tw_timer_template.c.
Stop a tw timer.
tw_timer_wheel_t | * tw timer wheel object pointer |
u32 | handle timer cancellation returned by tw_timer_start |
Definition at line 352 of file tw_timer_template.c.
Update a tw timer.
tw_timer_wheel_t | * tw timer wheel object pointer |
u32 | handle timer returned by tw_timer_start |
u32 | interval timer interval in ticks |
Definition at line 392 of file tw_timer_template.c.
Free a tw timer wheel template instance.
tw_timer_wheel_t | * tw timer wheel object pointer |
Definition at line 454 of file tw_timer_template.c.
__clib_export void TW() tw_timer_wheel_init | ( | TWT(tw_timer_wheel) * | tw, |
void * | expired_timer_callback, | ||
f64 | timer_interval_in_seconds, | ||
u32 | max_expirations | ||
) |
Initialize a tw timer wheel template instance.
tw_timer_wheel_t | * tw timer wheel object pointer |
void | * expired_timer_callback. Passed a u32 * vector of expired timer handles. The callback is optional. |
f64 | timer_interval_in_seconds |
Definition at line 408 of file tw_timer_template.c.