Message ID | 1461825544-5360-2-git-send-email-matias.elo@nokia.com |
---|---|
State | Superseded |
Headers | show |
Matias, this patch also breaks 32 bit, needed immediate casting: odp_timer.c: In function 'odp_timer_pool_to_u64': odp_timer.c:834:9: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] return (uint64_t)tpid; ^ odp_timer.c: In function 'odp_timeout_to_u64': odp_timer.c:930:9: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] return (uint64_t)tmo; ^ On 04/28/16 09:39, Matias Elo wrote: > Add missing odp_timer_pool_to_u64(), odp_timer_to_u64(), and > odp_timeout_to_u64() functions. Use the functions in timer > validation tests. > > Signed-off-by: Matias Elo <matias.elo@nokia.com> > --- > > Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> > > platform/linux-generic/odp_timer.c | 15 +++++++++++++++ > test/validation/timer/timer.c | 3 +++ > 2 files changed, 18 insertions(+) > > diff --git a/platform/linux-generic/odp_timer.c b/platform/linux-generic/odp_timer.c > index f4fb1f6..793cf0b 100644 > --- a/platform/linux-generic/odp_timer.c > +++ b/platform/linux-generic/odp_timer.c > @@ -829,6 +829,11 @@ int odp_timer_pool_info(odp_timer_pool_t tpid, > return 0; > } > > +uint64_t odp_timer_pool_to_u64(odp_timer_pool_t tpid) > +{ > + return (uint64_t)tpid; > +} > + > odp_timer_t odp_timer_alloc(odp_timer_pool_t tpid, > odp_queue_t queue, > void *user_ptr) > @@ -902,6 +907,11 @@ int odp_timer_cancel(odp_timer_t hdl, odp_event_t *tmo_ev) > } > } > > +uint64_t odp_timer_to_u64(odp_timer_t hdl) > +{ > + return (uint64_t)hdl; > +} > + > odp_timeout_t odp_timeout_from_event(odp_event_t ev) > { > /* This check not mandated by the API specification */ > @@ -915,6 +925,11 @@ odp_event_t odp_timeout_to_event(odp_timeout_t tmo) > return (odp_event_t)tmo; > } > > +uint64_t odp_timeout_to_u64(odp_timeout_t tmo) > +{ > + return (uint64_t)tmo; > +} > + > int odp_timeout_fresh(odp_timeout_t tmo) > { > const odp_timeout_hdr_t *hdr = timeout_hdr(tmo); > diff --git a/test/validation/timer/timer.c b/test/validation/timer/timer.c > index aad11aa..c8ef785 100644 > --- a/test/validation/timer/timer.c > +++ b/test/validation/timer/timer.c > @@ -168,6 +168,7 @@ void timer_test_odp_timer_cancel(void) > tim = odp_timer_alloc(tp, queue, USER_PTR); > if (tim == ODP_TIMER_INVALID) > CU_FAIL_FATAL("Failed to allocate timer"); > + LOG_DBG("Timer handle: %" PRIu64 "\n", odp_timer_to_u64(tim)); > > ev = odp_timeout_to_event(odp_timeout_alloc(pool)); > if (ev == ODP_EVENT_INVALID) > @@ -189,6 +190,7 @@ void timer_test_odp_timer_cancel(void) > tmo = odp_timeout_from_event(ev); > if (tmo == ODP_TIMEOUT_INVALID) > CU_FAIL_FATAL("Cancel did not return timeout"); > + LOG_DBG("Timeout handle: %" PRIu64 "\n", odp_timeout_to_u64(tmo)); > > if (odp_timeout_timer(tmo) != tim) > CU_FAIL("Cancel invalid tmo.timer"); > @@ -501,6 +503,7 @@ void timer_test_odp_timer_all(void) > CU_ASSERT(tpinfo.param.max_tmo == MAX); > CU_ASSERT(strcmp(tpinfo.name, NAME) == 0); > > + LOG_DBG("Timer pool handle: %" PRIu64 "\n", odp_timer_pool_to_u64(tp)); > LOG_DBG("#timers..: %u\n", NTIMERS); > LOG_DBG("Tmo range: %u ms (%" PRIu64 " ticks)\n", RANGE_MS, > odp_timer_ns_to_tick(tp, 1000000ULL * RANGE_MS));
Hello Matias, something wrong with my check-odp.git, looks like arm compilation is broken there. I think you just need to use _odp_pri() like that: static inline uint64_t odp_pktio_to_u64(odp_pktio_t hdl) { return _odp_pri(hdl); } Maxim. On 04/28/16 09:39, Matias Elo wrote: > Add missing odp_timer_pool_to_u64(), odp_timer_to_u64(), and > odp_timeout_to_u64() functions. Use the functions in timer > validation tests. > > Signed-off-by: Matias Elo <matias.elo@nokia.com> > --- > > Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> > > platform/linux-generic/odp_timer.c | 15 +++++++++++++++ > test/validation/timer/timer.c | 3 +++ > 2 files changed, 18 insertions(+) > > diff --git a/platform/linux-generic/odp_timer.c b/platform/linux-generic/odp_timer.c > index f4fb1f6..793cf0b 100644 > --- a/platform/linux-generic/odp_timer.c > +++ b/platform/linux-generic/odp_timer.c > @@ -829,6 +829,11 @@ int odp_timer_pool_info(odp_timer_pool_t tpid, > return 0; > } > > +uint64_t odp_timer_pool_to_u64(odp_timer_pool_t tpid) > +{ > + return (uint64_t)tpid; > +} > + > odp_timer_t odp_timer_alloc(odp_timer_pool_t tpid, > odp_queue_t queue, > void *user_ptr) > @@ -902,6 +907,11 @@ int odp_timer_cancel(odp_timer_t hdl, odp_event_t *tmo_ev) > } > } > > +uint64_t odp_timer_to_u64(odp_timer_t hdl) > +{ > + return (uint64_t)hdl; > +} > + > odp_timeout_t odp_timeout_from_event(odp_event_t ev) > { > /* This check not mandated by the API specification */ > @@ -915,6 +925,11 @@ odp_event_t odp_timeout_to_event(odp_timeout_t tmo) > return (odp_event_t)tmo; > } > > +uint64_t odp_timeout_to_u64(odp_timeout_t tmo) > +{ > + return (uint64_t)tmo; > +} > + > int odp_timeout_fresh(odp_timeout_t tmo) > { > const odp_timeout_hdr_t *hdr = timeout_hdr(tmo); > diff --git a/test/validation/timer/timer.c b/test/validation/timer/timer.c > index aad11aa..c8ef785 100644 > --- a/test/validation/timer/timer.c > +++ b/test/validation/timer/timer.c > @@ -168,6 +168,7 @@ void timer_test_odp_timer_cancel(void) > tim = odp_timer_alloc(tp, queue, USER_PTR); > if (tim == ODP_TIMER_INVALID) > CU_FAIL_FATAL("Failed to allocate timer"); > + LOG_DBG("Timer handle: %" PRIu64 "\n", odp_timer_to_u64(tim)); > > ev = odp_timeout_to_event(odp_timeout_alloc(pool)); > if (ev == ODP_EVENT_INVALID) > @@ -189,6 +190,7 @@ void timer_test_odp_timer_cancel(void) > tmo = odp_timeout_from_event(ev); > if (tmo == ODP_TIMEOUT_INVALID) > CU_FAIL_FATAL("Cancel did not return timeout"); > + LOG_DBG("Timeout handle: %" PRIu64 "\n", odp_timeout_to_u64(tmo)); > > if (odp_timeout_timer(tmo) != tim) > CU_FAIL("Cancel invalid tmo.timer"); > @@ -501,6 +503,7 @@ void timer_test_odp_timer_all(void) > CU_ASSERT(tpinfo.param.max_tmo == MAX); > CU_ASSERT(strcmp(tpinfo.name, NAME) == 0); > > + LOG_DBG("Timer pool handle: %" PRIu64 "\n", odp_timer_pool_to_u64(tp)); > LOG_DBG("#timers..: %u\n", NTIMERS); > LOG_DBG("Tmo range: %u ms (%" PRIu64 " ticks)\n", RANGE_MS, > odp_timer_ns_to_tick(tp, 1000000ULL * RANGE_MS));
diff --git a/platform/linux-generic/odp_timer.c b/platform/linux-generic/odp_timer.c index f4fb1f6..793cf0b 100644 --- a/platform/linux-generic/odp_timer.c +++ b/platform/linux-generic/odp_timer.c @@ -829,6 +829,11 @@ int odp_timer_pool_info(odp_timer_pool_t tpid, return 0; } +uint64_t odp_timer_pool_to_u64(odp_timer_pool_t tpid) +{ + return (uint64_t)tpid; +} + odp_timer_t odp_timer_alloc(odp_timer_pool_t tpid, odp_queue_t queue, void *user_ptr) @@ -902,6 +907,11 @@ int odp_timer_cancel(odp_timer_t hdl, odp_event_t *tmo_ev) } } +uint64_t odp_timer_to_u64(odp_timer_t hdl) +{ + return (uint64_t)hdl; +} + odp_timeout_t odp_timeout_from_event(odp_event_t ev) { /* This check not mandated by the API specification */ @@ -915,6 +925,11 @@ odp_event_t odp_timeout_to_event(odp_timeout_t tmo) return (odp_event_t)tmo; } +uint64_t odp_timeout_to_u64(odp_timeout_t tmo) +{ + return (uint64_t)tmo; +} + int odp_timeout_fresh(odp_timeout_t tmo) { const odp_timeout_hdr_t *hdr = timeout_hdr(tmo); diff --git a/test/validation/timer/timer.c b/test/validation/timer/timer.c index aad11aa..c8ef785 100644 --- a/test/validation/timer/timer.c +++ b/test/validation/timer/timer.c @@ -168,6 +168,7 @@ void timer_test_odp_timer_cancel(void) tim = odp_timer_alloc(tp, queue, USER_PTR); if (tim == ODP_TIMER_INVALID) CU_FAIL_FATAL("Failed to allocate timer"); + LOG_DBG("Timer handle: %" PRIu64 "\n", odp_timer_to_u64(tim)); ev = odp_timeout_to_event(odp_timeout_alloc(pool)); if (ev == ODP_EVENT_INVALID) @@ -189,6 +190,7 @@ void timer_test_odp_timer_cancel(void) tmo = odp_timeout_from_event(ev); if (tmo == ODP_TIMEOUT_INVALID) CU_FAIL_FATAL("Cancel did not return timeout"); + LOG_DBG("Timeout handle: %" PRIu64 "\n", odp_timeout_to_u64(tmo)); if (odp_timeout_timer(tmo) != tim) CU_FAIL("Cancel invalid tmo.timer"); @@ -501,6 +503,7 @@ void timer_test_odp_timer_all(void) CU_ASSERT(tpinfo.param.max_tmo == MAX); CU_ASSERT(strcmp(tpinfo.name, NAME) == 0); + LOG_DBG("Timer pool handle: %" PRIu64 "\n", odp_timer_pool_to_u64(tp)); LOG_DBG("#timers..: %u\n", NTIMERS); LOG_DBG("Tmo range: %u ms (%" PRIu64 " ticks)\n", RANGE_MS, odp_timer_ns_to_tick(tp, 1000000ULL * RANGE_MS));