Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
session: allow rx events independnt of state
[vpp.git]
/
src
/
vppinfra
/
tw_timer_template.h
diff --git
a/src/vppinfra/tw_timer_template.h
b/src/vppinfra/tw_timer_template.h
index
0404e3f
..
f77b64e
100644
(file)
--- a/
src/vppinfra/tw_timer_template.h
+++ b/
src/vppinfra/tw_timer_template.h
@@
-170,6
+170,13
@@
typedef enum
} tw_ring_index_t;
#endif /* __defined_tw_timer_wheel_slot__ */
} tw_ring_index_t;
#endif /* __defined_tw_timer_wheel_slot__ */
+typedef CLIB_PACKED (struct
+ {
+ u8 timer_id;
+ u32 pool_index;
+ u32 handle;
+ }) TWT (trace);
+
typedef struct
{
/** Timer pool */
typedef struct
{
/** Timer pool */
@@
-190,9
+197,6
@@
typedef struct
/** current tick */
u64 current_tick;
/** current tick */
u64 current_tick;
- /** first expiration time */
- u64 first_expires_tick;
-
/** current wheel indices */
u32 current_index[TW_TIMER_WHEELS];
/** current wheel indices */
u32 current_index[TW_TIMER_WHEELS];
@@
-211,17
+215,29
@@
typedef struct
/** expired timer callback, receives a vector of handles */
void (*expired_timer_callback) (u32 * expired_timer_handles);
/** expired timer callback, receives a vector of handles */
void (*expired_timer_callback) (u32 * expired_timer_handles);
- /** vector of expired timers */
+ /** vector
s
of expired timers */
u32 *expired_timer_handles;
/** maximum expirations */
u32 max_expirations;
u32 *expired_timer_handles;
/** maximum expirations */
u32 max_expirations;
+
+ /** current trace index */
+#if TW_START_STOP_TRACE_SIZE > 0
+ /* Start/stop/expire tracing */
+ u32 trace_index;
+ u32 trace_wrapped;
+ TWT (trace) traces[TW_START_STOP_TRACE_SIZE];
+#endif
+
} TWT (tw_timer_wheel);
u32 TW (tw_timer_start) (TWT (tw_timer_wheel) * tw,
u32 pool_index, u32 timer_id, u64 interval);
void TW (tw_timer_stop) (TWT (tw_timer_wheel) * tw, u32 handle);
} TWT (tw_timer_wheel);
u32 TW (tw_timer_start) (TWT (tw_timer_wheel) * tw,
u32 pool_index, u32 timer_id, u64 interval);
void TW (tw_timer_stop) (TWT (tw_timer_wheel) * tw, u32 handle);
+int TW (tw_timer_handle_is_free) (TWT (tw_timer_wheel) * tw, u32 handle);
+void TW (tw_timer_update) (TWT (tw_timer_wheel) * tw, u32 handle,
+ u64 interval);
void TW (tw_timer_wheel_init) (TWT (tw_timer_wheel) * tw,
void *expired_timer_callback,
void TW (tw_timer_wheel_init) (TWT (tw_timer_wheel) * tw,
void *expired_timer_callback,
@@
-236,6
+252,12
@@
u32 *TW (tw_timer_expire_timers_vec) (TWT (tw_timer_wheel) * tw, f64 now,
u32 TW (tw_timer_first_expires_in_ticks) (TWT (tw_timer_wheel) * tw);
#endif
u32 TW (tw_timer_first_expires_in_ticks) (TWT (tw_timer_wheel) * tw);
#endif
+#if TW_START_STOP_TRACE_SIZE > 0
+void TW (tw_search_trace) (TWT (tw_timer_wheel) * tw, u32 handle);
+void TW (tw_timer_trace) (TWT (tw_timer_wheel) * tw, u32 timer_id,
+ u32 pool_index, u32 handle);
+#endif
+
/*
* fd.io coding-style-patch-verification: ON
*
/*
* fd.io coding-style-patch-verification: ON
*