From e5091651ed1a47b987b3b06cbf1e2142fa0020d0 Mon Sep 17 00:00:00 2001 From: Sebastian Reimers Date: Thu, 26 May 2022 12:56:47 +0200 Subject: [PATCH 1/2] tmr: add tmr_start_dbg --- include/re_tmr.h | 16 +++++++++++++++- src/tmr/tmr.c | 23 +++++++++-------------- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/include/re_tmr.h b/include/re_tmr.h index 5f22693ba..426f10dde 100644 --- a/include/re_tmr.h +++ b/include/re_tmr.h @@ -18,6 +18,8 @@ struct tmr { tmr_h *th; /**< Timeout handler */ void *arg; /**< Handler argument */ uint64_t jfs; /**< Jiffies for timeout */ + char *file; + int line; }; @@ -29,7 +31,19 @@ void tmr_debug(void); int tmr_status(struct re_printf *pf, void *unused); void tmr_init(struct tmr *tmr); -void tmr_start(struct tmr *tmr, uint64_t delay, tmr_h *th, void *arg); +void tmr_start_dbg(struct tmr *tmr, uint64_t delay, tmr_h *th, void *arg, + char *file, int line); +/** + * Start a timer + * + * @param tmr Timer to start + * @param delay Timer delay in [ms] + * @param th Timeout handler + * @param arg Handler argument + */ +#define tmr_start(tmr, delay, th, arg) \ + tmr_start_dbg(tmr, delay, th, arg, __FILE__, __LINE__) + void tmr_cancel(struct tmr *tmr); uint64_t tmr_get_expire(const struct tmr *tmr); diff --git a/src/tmr/tmr.c b/src/tmr/tmr.c index 63ed31ebd..3ee28b975 100644 --- a/src/tmr/tmr.c +++ b/src/tmr/tmr.c @@ -211,10 +211,10 @@ int tmr_status(struct re_printf *pf, void *unused) for (le = tmrl->head; le; le = le->next) { const struct tmr *tmr = le->data; - - err |= re_hprintf(pf, " %p: th=%p expire=%llums\n", + err |= re_hprintf(pf, " %p: th=%p expire=%llums file=%s:%d\n", tmr, tmr->th, - (unsigned long long)tmr_get_expire(tmr)); + (unsigned long long)tmr_get_expire(tmr), + tmr->file, tmr->line); } if (n > 100) @@ -248,15 +248,8 @@ void tmr_init(struct tmr *tmr) } -/** - * Start a timer - * - * @param tmr Timer to start - * @param delay Timer delay in [ms] - * @param th Timeout handler - * @param arg Handler argument - */ -void tmr_start(struct tmr *tmr, uint64_t delay, tmr_h *th, void *arg) +void tmr_start_dbg(struct tmr *tmr, uint64_t delay, tmr_h *th, void *arg, + char *file, int line) { struct list *tmrl = tmrl_get(); struct le *le; @@ -268,8 +261,10 @@ void tmr_start(struct tmr *tmr, uint64_t delay, tmr_h *th, void *arg) list_unlink(&tmr->le); } - tmr->th = th; - tmr->arg = arg; + tmr->th = th; + tmr->arg = arg; + tmr->file = file; + tmr->line = line; if (!th) return; From 3a6e5c4255c827586e0869e687b253ba5fcf31b1 Mon Sep 17 00:00:00 2001 From: Sebastian Reimers Date: Fri, 27 May 2022 20:46:28 +0200 Subject: [PATCH 2/2] add definition for doxygen --- include/re_tmr.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/include/re_tmr.h b/include/re_tmr.h index 426f10dde..d4ee255e8 100644 --- a/include/re_tmr.h +++ b/include/re_tmr.h @@ -33,7 +33,10 @@ int tmr_status(struct re_printf *pf, void *unused); void tmr_init(struct tmr *tmr); void tmr_start_dbg(struct tmr *tmr, uint64_t delay, tmr_h *th, void *arg, char *file, int line); + /** + * @def tmr_start(tmr, delay, th, arg) + * * Start a timer * * @param tmr Timer to start @@ -41,8 +44,8 @@ void tmr_start_dbg(struct tmr *tmr, uint64_t delay, tmr_h *th, void *arg, * @param th Timeout handler * @param arg Handler argument */ -#define tmr_start(tmr, delay, th, arg) \ - tmr_start_dbg(tmr, delay, th, arg, __FILE__, __LINE__) +#define tmr_start(tmr, delay, th, arg) \ + tmr_start_dbg(tmr, delay, th, arg, __FILE__, __LINE__) void tmr_cancel(struct tmr *tmr); uint64_t tmr_get_expire(const struct tmr *tmr);