We should consider making these strong types to be consistent with the rest
of the ODP types.  In linux-generic to do that you'd just change the
current uint32_t typedefs to:

typedef odp_handle_t odp_timer_t;
typedef odp_handle_t odp_timeout_t;

If there is a need to display odp_timer_t and odp_timeout_t handles then
the odp_timer_to_u64() and odp_timeout_to_u64() conversion functions should
be added.  I would recommend deferring those APIs until ODP v1.1 as it's
not used and the need is not urgent.  Making these strong will probably
require a bit of tweaking in the implementation to make use of
_odp_typeval() as needed.  See the other types as models.

Note that odp_timer_pool_t is already strongly typed with the above
definition and needs no change, but it too should have an
odp_timer_pool_to_u64() converter function for completeness.

Bill

On Mon, Feb 2, 2015 at 12:52 PM, Ola Liljedahl <ola.liljed...@linaro.org>
wrote:

> Move the platform specific definitions for timer pool, timer and timeout to
> the platform's include/odp/plat/timer_types.h file.
>
> Signed-off-by: Ola Liljedahl <ola.liljed...@linaro.org>
> ---
> (This document/code contribution attached is provided under the terms of
> agreement LES-LTM-21309)
>
>  include/odp/api/timer.h                            | 32 +++++++--------
>  .../linux-generic/include/odp/plat/timer_types.h   | 48
> ++++++++++++++++++++++
>  platform/linux-generic/include/odp/timer.h         |  1 +
>  3 files changed, 64 insertions(+), 17 deletions(-)
>  create mode 100644 platform/linux-generic/include/odp/plat/timer_types.h
>
> diff --git a/include/odp/api/timer.h b/include/odp/api/timer.h
> index 1b813da..b5435c3 100644
> --- a/include/odp/api/timer.h
> +++ b/include/odp/api/timer.h
> @@ -22,17 +22,15 @@ extern "C" {
>   *  @{
>   */
>
> -struct odp_timer_pool_s; /**< Forward declaration */
> -
>  /**
> -* ODP timer pool handle (platform dependent)
> -*/
> -typedef struct odp_timer_pool_s *odp_timer_pool_t;
> + * @typedef odp_timer_pool_t
> + * ODP timer pool handle
> + */
>
>  /**
> - * Invalid timer pool handle (platform dependent).
> + * @def ODP_TIMER_POOL_INVALID
> + * Invalid timer pool handle
>   */
> -#define ODP_TIMER_POOL_INVALID NULL
>
>  /**
>   * Clock sources for timers in timer pool.
> @@ -46,24 +44,24 @@ typedef enum {
>  } odp_timer_clk_src_t;
>
>  /**
> -* ODP timer handle (platform dependent).
> -*/
> -typedef uint32_t odp_timer_t;
> + * @typedef odp_timer_t
> + * ODP timer handle
> + */
>
>  /**
> -* ODP timeout handle (platform dependent).
> -*/
> -typedef void *odp_timeout_t;
> + * @def ODP_TIMER_INVALID
> + * Invalid timer handle
> + */
>
>  /**
> - * Invalid timer handle (platform dependent).
> + * @typedef odp_timeout_t
> + * ODP timeout handle
>   */
> -#define ODP_TIMER_INVALID ((uint32_t)~0U)
>
>  /**
> - * Invalid timeout handle (platform dependent).
> + * @def ODP_TIMEOUT_INVALID
> + * Invalid timeout handle
>   */
> -#define ODP_TIMEOUT_INVALID NULL
>
>  /**
>   * Return values of timer set calls.
> diff --git a/platform/linux-generic/include/odp/plat/timer_types.h
> b/platform/linux-generic/include/odp/plat/timer_types.h
> new file mode 100644
> index 0000000..c21a667
> --- /dev/null
> +++ b/platform/linux-generic/include/odp/plat/timer_types.h
> @@ -0,0 +1,48 @@
> +/* Copyright (c) 2013, Linaro Limited
> + * All rights reserved.
> + *
> + * SPDX-License-Identifier:     BSD-3-Clause
> + */
> +
> +
> +/**
> + * @file
> + *
> + * ODP timer service
> + */
> +
> +#ifndef ODP_TIMER_TYPES_H_
> +#define ODP_TIMER_TYPES_H_
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +/** @addtogroup odp_packet ODP TIMER
> + *  Operations on a timer.
> + *  @{
> + **/
> +
> +struct odp_timer_pool_s; /**< Forward declaration */
> +
> +typedef struct odp_timer_pool_s *odp_timer_pool_t;
> +
> +#define ODP_TIMER_POOL_INVALID NULL
> +
> +typedef uint32_t odp_timer_t;
> +
> +#define ODP_TIMER_INVALID ((uint32_t)~0U)
> +
> +typedef void *odp_timeout_t;
> +
> +#define ODP_TIMEOUT_INVALID NULL
> +
> +/**
> + * @}
> + */
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif
> diff --git a/platform/linux-generic/include/odp/timer.h
> b/platform/linux-generic/include/odp/timer.h
> index df071f2..eb9a3a2 100644
> --- a/platform/linux-generic/include/odp/timer.h
> +++ b/platform/linux-generic/include/odp/timer.h
> @@ -22,6 +22,7 @@ extern "C" {
>  #include <odp/plat/buffer_types.h>
>  #include <odp/plat/pool_types.h>
>  #include <odp/plat/queue_types.h>
> +#include <odp/plat/timer_types.h>
>
>  /** @ingroup odp_timer
>   *  @{
> --
> 1.9.1
>
>
> _______________________________________________
> lng-odp mailing list
> lng-odp@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/lng-odp
>
_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to