+#if SESSION_CLOCKS_EVT_DBG
+
+#define SESSION_EVT_DSP_CNTRS_UPDATE_TIME_HANDLER(_wrk, _diff, _args...) \
+ session_dbg_evts_t *sde = &session_dbg_main.wrk[_wrk->vm->thread_index]; \
+ sde->counters[SESS_Q_CLK_UPDATE_TIME].f64 += _diff; \
+
+#define SESSION_EVT_DSP_CNTRS_MQ_DEQ_HANDLER(_wrk, _diff, _cnt, _dq, _args...) \
+ session_dbg_evts_t *sde = &session_dbg_main.wrk[_wrk->vm->thread_index]; \
+ sde->counters[SESS_Q_CNT_MQ_EVTS].u64 += _dq * _cnt; \
+ sde->counters[SESS_Q_CLK_MQ_DEQ].f64 += _diff; \
+
+#define SESSION_EVT_DSP_CNTRS_CTRL_EVTS_HANDLER(_wrk, _diff, _args...) \
+ session_dbg_evts_t *sde = &session_dbg_main.wrk[_wrk->vm->thread_index]; \
+ sde->counters[SESS_Q_CLK_CTRL_EVTS].f64 += _diff; \
+ sde->prev_io = sde->counters[SESS_Q_CNT_IO_EVTS].u64; \
+
+#define SESSION_EVT_DSP_CNTRS_NEW_IO_EVTS_HANDLER(_wrk, _diff, _args...) \
+ session_dbg_evts_t *sde = &session_dbg_main.wrk[_wrk->vm->thread_index]; \
+ sde->counters[SESS_Q_CLK_NEW_IO_EVTS].f64 += _diff; \
+ sde->counters[SESS_Q_CNT_NEW_EVTS].u64 += \
+ sde->counters[SESS_Q_CNT_IO_EVTS].u64 - sde->prev_io; \
+ sde->prev_io = sde->counters[SESS_Q_CNT_IO_EVTS].u64; \
+
+#define SESSION_EVT_DSP_CNTRS_OLD_IO_EVTS_HANDLER(_wrk, _diff, _args...) \
+ session_dbg_evts_t *sde = &session_dbg_main.wrk[_wrk->vm->thread_index]; \
+ sde->counters[SESS_Q_CLK_OLD_IO_EVTS].f64 += _diff; \
+ sde->counters[SESS_Q_CNT_OLD_EVTS].u64 += \
+ sde->counters[SESS_Q_CNT_IO_EVTS].u64 - sde->prev_io; \
+
+#define SESSION_EVT_DSP_CNTRS_HANDLER(_disp_evt, _wrk, _args...) \
+{ \
+ f64 time_now = vlib_time_now (_wrk->vm), diff; \
+ diff = time_now - session_dbg_main.wrk[_wrk->vm->thread_index].last_time; \
+ session_dbg_main.wrk[_wrk->vm->thread_index].last_time = time_now; \
+ CC(CC(SESSION_EVT_DSP_CNTRS_,_disp_evt),_HANDLER)(wrk, diff, _args); \
+}
+#else
+#define SESSION_EVT_DSP_CNTRS_HANDLER(_disp_evt, _wrk, _args...)
+#endif /*SESSION_CLOCKS_EVT_DBG */
+
+#if SESSION_COUNTS_EVT_DBG
+#define SESSION_EVT_COUNTS_HANDLER(_node_evt, _cnt, _wrk) \
+{ \
+ session_dbg_main.wrk[_wrk->vm->thread_index]. \
+ counters[SESS_Q_##_node_evt].u64 += _cnt; \
+}
+
+#define SESSION_IO_EVT_COUNTS_HANDLER(_node_evt, _cnt, _wrk) \
+{ \
+ u8 type = SESS_Q_BASE_OFFSET_IO_EVTS + _node_evt + 1; \
+ session_dbg_evts_t *sde; \
+ sde = &session_dbg_main.wrk[_wrk->vm->thread_index]; \
+ sde->counters[type].u64 += _cnt; \
+ sde->counters[SESS_Q_CNT_IO_EVTS].u64 += _cnt ; \
+}
+#else
+#define SESSION_EVT_COUNTS_HANDLER(_node_evt, _cnt, _wrk)
+#define SESSION_IO_EVT_COUNTS_HANDLER(_node_evt, _cnt, _wrk)
+#endif /*SESSION_COUNTS_EVT_DBG */
+
+
+#define SESSION_EVT_DISPATCH_START_HANDLER(_wrk) \