@@ -13,6 +13,9 @@
#ifndef ODP_POOL_TYPES_H_
#define ODP_POOL_TYPES_H_
+#include <odp/std_types.h>
+#include <odp/plat/strong_types.h>
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -22,9 +25,15 @@ extern "C" {
* @{
*/
-typedef uint32_t odp_pool_t;
+typedef odp_handle_t odp_pool_t;
+
+#define ODP_POOL_INVALID _odp_cast_scalar(odp_pool_t, 0xffffffff)
-#define ODP_POOL_INVALID (0xffffffff)
+/** Get printable format of odp_pool_t */
+static inline uint64_t odp_pool_to_u64(odp_pool_t hdl)
+{
+ return _odp_pri(hdl);
+}
/**
* @}
@@ -106,7 +106,9 @@ static inline odp_buffer_hdr_t *validate_buf(odp_buffer_t buf)
if (handle.seg != 0 || handle.pool_id >= ODP_CONFIG_POOLS)
return NULL;
- pool_entry_t *pool = odp_pool_to_entry(handle.pool_id);
+ pool_entry_t *pool =
+ odp_pool_to_entry(_odp_cast_scalar(odp_pool_t,
+ handle.pool_id));
/* If pool not created, handle is invalid */
if (pool->s.pool_shm == ODP_SHM_INVALID)
@@ -335,12 +335,12 @@ static inline void flush_cache(local_cache_t *buf_cache,
static inline odp_pool_t pool_index_to_handle(uint32_t pool_id)
{
- return pool_id;
+ return _odp_cast_scalar(odp_pool_t, pool_id);
}
static inline uint32_t pool_handle_to_index(odp_pool_t pool_hdl)
{
- return pool_hdl;
+ return _odp_typeval(pool_hdl);
}
static inline void *get_pool_entry(uint32_t pool_id)
@@ -76,7 +76,8 @@ int odp_buffer_snprint(char *str, uint32_t n, odp_buffer_t buf)
len += snprintf(&str[len], n-len,
"Buffer\n");
len += snprintf(&str[len], n-len,
- " pool %i\n", hdr->pool_hdl);
+ " pool %" PRIu64 "\n",
+ odp_pool_to_u64(hdr->pool_hdl));
len += snprintf(&str[len], n-len,
" addr %p\n", hdr->addr);
len += snprintf(&str[len], n-len,
@@ -558,7 +558,8 @@ void odp_pool_print(odp_pool_t pool_hdl)
ODP_DBG("Pool info\n");
ODP_DBG("---------\n");
- ODP_DBG(" pool %i\n", pool->s.pool_hdl);
+ ODP_DBG(" pool %" PRIu64 "\n",
+ odp_pool_to_u64(pool->s.pool_hdl));
ODP_DBG(" name %s\n",
pool->s.flags.has_name ? pool->s.name : "Unnamed Pool");
ODP_DBG(" pool type %s\n",
Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org> --- platform/linux-generic/include/odp/plat/pool_types.h | 13 +++++++++++-- platform/linux-generic/include/odp_buffer_inlines.h | 4 +++- platform/linux-generic/include/odp_buffer_pool_internal.h | 4 ++-- platform/linux-generic/odp_buffer.c | 3 ++- platform/linux-generic/odp_buffer_pool.c | 3 ++- 5 files changed, 20 insertions(+), 7 deletions(-)