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