From: Matias Elo <matias....@nokia.com> Signed-off-by: Matias Elo <matias....@nokia.com> --- /** Email created from pull request 667 (matiaselo:dev/abi_clean_invalid) ** https://github.com/Linaro/odp/pull/667 ** Patch: https://github.com/Linaro/odp/pull/667.patch ** Base sha: 7c87b66edc84e8c713fefc68d46464660adaf71e ** Merge commit sha: 0c5d0fdd232cad0a55d68e819ff9f707fea014f5 **/ include/odp/api/abi-default/timer.h | 2 +- platform/linux-generic/include-abi/odp/api/abi/timer.h | 2 +- platform/linux-generic/odp_timer.c | 7 ++++--- 3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/include/odp/api/abi-default/timer.h b/include/odp/api/abi-default/timer.h index 2cf69d920..a7da8ff7a 100644 --- a/include/odp/api/abi-default/timer.h +++ b/include/odp/api/abi-default/timer.h @@ -37,7 +37,7 @@ typedef struct timer_pool_s *odp_timer_pool_t; typedef _odp_abi_timer_t *odp_timer_t; -#define ODP_TIMER_INVALID ((odp_timer_t)0xffffffff) +#define ODP_TIMER_INVALID ((odp_timer_t)0) typedef _odp_abi_timeout_t *odp_timeout_t; diff --git a/platform/linux-generic/include-abi/odp/api/abi/timer.h b/platform/linux-generic/include-abi/odp/api/abi/timer.h index 9bc67e058..48138f72f 100644 --- a/platform/linux-generic/include-abi/odp/api/abi/timer.h +++ b/platform/linux-generic/include-abi/odp/api/abi/timer.h @@ -34,7 +34,7 @@ typedef struct timer_pool_s *odp_timer_pool_t; typedef ODP_HANDLE_T(odp_timer_t); -#define ODP_TIMER_INVALID _odp_cast_scalar(odp_timer_t, 0xffffffff) +#define ODP_TIMER_INVALID _odp_cast_scalar(odp_timer_t, 0) typedef ODP_HANDLE_T(odp_timeout_t); diff --git a/platform/linux-generic/odp_timer.c b/platform/linux-generic/odp_timer.c index a030036a8..716571ca0 100644 --- a/platform/linux-generic/odp_timer.c +++ b/platform/linux-generic/odp_timer.c @@ -231,7 +231,7 @@ static inline timer_pool_t *handle_to_tp(odp_timer_t hdl) static inline uint32_t handle_to_idx(odp_timer_t hdl, timer_pool_t *tp) { - uint32_t idx = _odp_typeval(hdl) & ((1U << INDEX_BITS) - 1U); + uint32_t idx = (_odp_typeval(hdl) & ((1U << INDEX_BITS) - 1U)) - 1; __builtin_prefetch(&tp->tick_buf[idx], 0, 0); if (odp_likely(idx < odp_atomic_load_u32(&tp->high_wm))) return idx; @@ -241,8 +241,9 @@ static inline uint32_t handle_to_idx(odp_timer_t hdl, static inline odp_timer_t tp_idx_to_handle(timer_pool_t *tp, uint32_t idx) { - ODP_ASSERT(idx < (1U << INDEX_BITS)); - return _odp_cast_scalar(odp_timer_t, (tp->tp_idx << INDEX_BITS) | idx); + ODP_ASSERT((idx + 1) < (1U << INDEX_BITS)); + return _odp_cast_scalar(odp_timer_t, (tp->tp_idx << INDEX_BITS) | + (idx + 1)); } /* Forward declarations */