From 47b464519d4227459677a1b86838d67f7090b83c Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 5 Nov 2017 07:20:21 +0000 Subject: Updated OS-less osal for Cortex-M. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10948 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/osal/lib/osal_vt.c | 20 ++++++++++---------- os/hal/osal/lib/osal_vt.h | 14 +++----------- 2 files changed, 13 insertions(+), 21 deletions(-) (limited to 'os/hal/osal/lib') diff --git a/os/hal/osal/lib/osal_vt.c b/os/hal/osal/lib/osal_vt.c index 8954b5c8f..b6f520a8e 100644 --- a/os/hal/osal/lib/osal_vt.c +++ b/os/hal/osal/lib/osal_vt.c @@ -66,7 +66,7 @@ void vtInit(void) { /* Virtual Timers initialization.*/ vtlist.vt_next = vtlist.vt_prev = (void *)&vtlist; - vtlist.vt_time = (systime_t)-1; + vtlist.vt_delta = (sysinterval_t)-1; vtlist.vt_systime = 0; } @@ -97,8 +97,8 @@ void vtDoTickI(void) { if (&vtlist != (virtual_timers_list_t *)vtlist.vt_next) { virtual_timer_t *vtp; - --vtlist.vt_next->vt_time; - while (!(vtp = vtlist.vt_next)->vt_time) { + --vtlist.vt_next->vt_delta; + while (!(vtp = vtlist.vt_next)->vt_delta) { vtfunc_t fn = vtp->vt_func; vtp->vt_func = (vtfunc_t)NULL; vtp->vt_next->vt_prev = (void *)&vtlist; @@ -115,7 +115,7 @@ void vtDoTickI(void) { * @note The associated function is invoked from interrupt context. * * @param[out] vtp the @p virtual_timer_t structure pointer - * @param[in] time the number of ticks before the operation timeouts, the + * @param[in] timeout the number of ticks before the operation timeouts, the * special values are handled as follow: * - @a TIME_INFINITE is allowed but interpreted as a * normal time specification. @@ -129,23 +129,23 @@ void vtDoTickI(void) { * * @iclass */ -void vtSetI(virtual_timer_t *vtp, systime_t time, +void vtSetI(virtual_timer_t *vtp, sysinterval_t timeout, vtfunc_t vtfunc, void *par) { virtual_timer_t *p; vtp->vt_par = par; vtp->vt_func = vtfunc; p = vtlist.vt_next; - while (p->vt_time < time) { - time -= p->vt_time; + while (p->vt_delta < timeout) { + timeout -= p->vt_delta; p = p->vt_next; } vtp->vt_prev = (vtp->vt_next = p)->vt_prev; vtp->vt_prev->vt_next = p->vt_prev = vtp; - vtp->vt_time = time; + vtp->vt_delta = timeout; if (p != (void *)&vtlist) - p->vt_time -= time; + p->vt_delta -= timeout; } /** @@ -159,7 +159,7 @@ void vtSetI(virtual_timer_t *vtp, systime_t time, void vtResetI(virtual_timer_t *vtp) { if (vtp->vt_next != (void *)&vtlist) - vtp->vt_next->vt_time += vtp->vt_time; + vtp->vt_next->vt_delta += vtp->vt_delta; vtp->vt_prev->vt_next = vtp->vt_next; vtp->vt_next->vt_prev = vtp->vt_prev; vtp->vt_func = (vtfunc_t)NULL; diff --git a/os/hal/osal/lib/osal_vt.h b/os/hal/osal/lib/osal_vt.h index e46365c37..14e54efc8 100644 --- a/os/hal/osal/lib/osal_vt.h +++ b/os/hal/osal/lib/osal_vt.h @@ -29,14 +29,6 @@ /* Module constants. */ /*===========================================================================*/ -/** - * @name Special time constants - * @{ - */ -#define TIME_IMMEDIATE ((systime_t)0) -#define TIME_INFINITE ((systime_t)-1) -/** @} */ - /*===========================================================================*/ /* Module pre-compile time settings. */ /*===========================================================================*/ @@ -73,7 +65,7 @@ typedef struct { list. */ virtual_timer_t *vt_prev; /**< @brief Last timer in the timers list. */ - systime_t vt_time; /**< @brief Must be initialized to -1. */ + sysinterval_t vt_delta; /**< @brief Must be initialized to -1. */ volatile systime_t vt_systime; /**< @brief System Time counter. */ } virtual_timers_list_t; @@ -90,7 +82,7 @@ struct virtual_timer { list. */ virtual_timer_t *vt_prev; /**< @brief Previous timer in the timers list. */ - systime_t vt_time; /**< @brief Time delta before timeout. */ + sysinterval_t vt_delta; /**< @brief Time delta before timeout. */ vtfunc_t vt_func; /**< @brief Timer callback function pointer. */ void *vt_par; /**< @brief Timer callback function @@ -115,7 +107,7 @@ extern "C" { void vtInit(void); bool vtIsArmedI(virtual_timer_t *vtp); void vtDoTickI(void); - void vtSetI(virtual_timer_t *vtp, systime_t time, + void vtSetI(virtual_timer_t *vtp, sysinterval_t timeout, vtfunc_t vtfunc, void *par); void vtResetI(virtual_timer_t *vtp); #ifdef __cplusplus -- cgit v1.2.3