diff mbox

[API-NEXT,v2,2/2] linux-generic: timer: add missing odp_time*_to_u64() functions

Message ID 1461825544-5360-2-git-send-email-matias.elo@nokia.com
State Superseded
Headers show

Commit Message

Elo, Matias (Nokia - FI/Espoo) April 28, 2016, 6:39 a.m. UTC
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(+)

Comments

Maxim Uvarov April 28, 2016, 8:40 a.m. UTC | #1
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));
Maxim Uvarov April 28, 2016, 3:11 p.m. UTC | #2
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 mbox

Patch

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));