Macros would probably be a good idea, however I wanted to get this fix in
now and let Alex and/or Barry recommend further code restructure based on
their more thorough analysis.

This isn't the first time M32_ON_64 issues have been flagged.  I've added
testing with this to my own checklist and it should probably be added to
the CONTRIBUTING file and/or the Implementer's Guide.

On Mon, Nov 30, 2015 at 1:47 PM, Maxim Uvarov <maxim.uva...@linaro.org>
wrote:

> On 11/30/2015 21:45, Bill Fischofer wrote:
>
>> Signed-off-by: Bill Fischofer <bill.fischo...@linaro.org>
>> ---
>>   .../include/odp_traffic_mngr_internal.h            | 15 +++---
>>   platform/linux-generic/odp_name_table.c            | 58
>> ++++++++++++----------
>>   platform/linux-generic/odp_pkt_queue.c             | 12 ++---
>>   platform/linux-generic/odp_sorted_list.c           | 16 +++---
>>   platform/linux-generic/odp_timer_wheel.c           | 18 +++----
>>   platform/linux-generic/odp_traffic_mngr.c          |  4 +-
>>   6 files changed, 67 insertions(+), 56 deletions(-)
>>
>> diff --git a/platform/linux-generic/include/odp_traffic_mngr_internal.h
>> b/platform/linux-generic/include/odp_traffic_mngr_internal.h
>> index c2d5cf4..e48e213 100644
>> --- a/platform/linux-generic/include/odp_traffic_mngr_internal.h
>> +++ b/platform/linux-generic/include/odp_traffic_mngr_internal.h
>> @@ -48,8 +48,8 @@ typedef struct stat  file_stat_t;
>>     /* Macros to convert handles to internal pointers and vice versa. */
>>   -#define MAKE_ODP_TM_HANDLE(tm_system)  ((odp_tm_t)tm_system)
>> -#define GET_TM_SYSTEM(odp_tm)          ((tm_system_t *)odp_tm)
>> +#define MAKE_ODP_TM_HANDLE(tm_system)  ((odp_tm_t)(uintptr_t)tm_system)
>> +#define GET_TM_SYSTEM(odp_tm)          ((tm_system_t *)(uintptr_t)odp_tm)
>>     #define MAKE_PROFILE_HANDLE(profile_kind, tbl_idx) \
>>         (((profile_kind & 0xF) << 28) | ((tbl_idx + 1) & 0xFFFFFFF))
>> @@ -59,11 +59,14 @@ typedef struct stat  file_stat_t;
>>     #define GET_TBL_IDX(profile_handle)  ((profile_handle & 0xFFFFFFF) -
>> 1)
>>   -#define MAKE_ODP_TM_NODE(tm_node_obj)  ((odp_tm_node_t)(tm_node_obj))
>> -#define GET_TM_NODE_OBJ(odp_tm_node)   ((tm_node_obj_t *)(odp_tm_node))
>> +#define MAKE_ODP_TM_NODE(tm_node_obj)
>> ((odp_tm_node_t)(uintptr_t)(tm_node_obj))
>> +#define GET_TM_NODE_OBJ(odp_tm_node) \
>> +       ((tm_node_obj_t *)(uintptr_t)(odp_tm_node))
>>   -#define MAKE_ODP_TM_QUEUE(tm_queue_obj)
>> ((odp_tm_queue_t)(tm_queue_obj))
>> -#define GET_TM_QUEUE_OBJ(odp_tm_queue)   ((tm_queue_obj_t
>> *)(odp_tm_queue))
>> +#define MAKE_ODP_TM_QUEUE(tm_queue_obj) \
>> +       ((odp_tm_queue_t)(uintptr_t)(tm_queue_obj))
>> +#define GET_TM_QUEUE_OBJ(odp_tm_queue) \
>> +       ((tm_queue_obj_t *)(uintptr_t)(odp_tm_queue))
>>     typedef uint64_t tm_handle_t;
>>   diff --git a/platform/linux-generic/odp_name_table.c
>> b/platform/linux-generic/odp_name_table.c
>> index 10ce099..10a760e 100644
>> --- a/platform/linux-generic/odp_name_table.c
>> +++ b/platform/linux-generic/odp_name_table.c
>> @@ -567,7 +567,7 @@ static hash_tbl_entry_t
>> make_hash_tbl_entry(name_tbl_entry_t *name_tbl_entry,
>>         uint32_t         new_entry_cnt;
>>         new_entry_cnt   = MIN(entry_cnt + 1, 0x3F);
>> -       hash_tbl_entry  = (hash_tbl_entry_t)name_tbl_entry;
>> +       hash_tbl_entry  = (hash_tbl_entry_t)(uintptr_t)name_tbl_entry;
>>         hash_tbl_entry &= ~0x3F;
>>         hash_tbl_entry |= new_entry_cnt;
>>         return hash_tbl_entry;
>> @@ -584,18 +584,18 @@ static name_tbl_entry_t
>> *name_hash_tbl_lookup(uint32_t hash_value)
>>         if (hash_tbl_entry == 0)
>>                 return NULL;
>>         else if ((hash_tbl_entry & 0x3F) != 0)
>> -               return (name_tbl_entry_t *)(hash_tbl_entry & ~0x3F);
>> +               return (name_tbl_entry_t *)(uintptr_t)(hash_tbl_entry &
>> ~0x3F);
>>            /* This hash_tbl_entry references a secondary hash table, so
>> get
>>         * some more hash_value bits and index that table.
>>         */
>>         hash_idx       = (hash_value >> 16) & (SECONDARY_HASH_TBL_SIZE -
>> 1);
>> -       secondary_hash = (secondary_hash_tbl_t *)hash_tbl_entry;
>> +       secondary_hash = (secondary_hash_tbl_t
>> *)(uintptr_t)hash_tbl_entry;
>>         hash_tbl_entry = secondary_hash->hash_entries[hash_idx];
>>         if (hash_tbl_entry == 0)
>>                 return NULL;
>>         else if ((hash_tbl_entry & 0x3F) != 0)
>> -               return (name_tbl_entry_t *)(hash_tbl_entry & ~0x3F);
>> +               return (name_tbl_entry_t *)(uintptr_t)(hash_tbl_entry &
>> ~0x3F);
>>            /* Yet again, this hash_tbl_entry references a secondary hash
>> table,
>>         * so get some more hash_value bits and index that table.  We only
>> @@ -604,12 +604,12 @@ static name_tbl_entry_t
>> *name_hash_tbl_lookup(uint32_t hash_value)
>>         * returning NULL.
>>         */
>>         hash_idx       = (hash_value >> 24) & (SECONDARY_HASH_TBL_SIZE -
>> 1);
>> -       secondary_hash = (secondary_hash_tbl_t *)hash_tbl_entry;
>> +       secondary_hash = (secondary_hash_tbl_t
>> *)(uintptr_t)hash_tbl_entry;
>>         hash_tbl_entry = secondary_hash->hash_entries[hash_idx];
>>         if (hash_tbl_entry == 0)
>>                 return NULL;
>>         else if ((hash_tbl_entry & 0x3F) != 0)
>> -               return (name_tbl_entry_t *)(hash_tbl_entry & ~0x3F);
>> +               return (name_tbl_entry_t *)(uintptr_t)(hash_tbl_entry &
>> ~0x3F);
>>         return NULL;
>>   }
>> @@ -655,7 +655,8 @@ static hash_tbl_entry_t
>> secondary_hash_add(name_tbl_entry_t *name_tbl_entry,
>>                 hash_tbl_entry = secondary_hash->hash_entries[hash_idx];
>>                 entry_cnt      = hash_tbl_entry & 0x3F;
>> -               first_entry    = (name_tbl_entry_t *)(hash_tbl_entry &
>> ~0x3F);
>> +               first_entry    =
>> +                       (name_tbl_entry_t *)(uintptr_t)(hash_tbl_entry &
>> ~0x3F);
>>
>
> maybe to put it to separate inline then copy paste everywhere? Like
>
> static inline name_tbl_entry_t * hash_to_name_tbl_entry(name_tbk_entry_t
> *name){
>     return  (name_tbl_entry_t *)(uintptr_t)name;
> }
>
> ?
>
> Or even to move it to #define
>
> Maxim.
>
>
>                 name_tbl_entry->next_entry = first_entry;
>>                 new_hash_tbl_entry =
>> @@ -666,7 +667,7 @@ static hash_tbl_entry_t
>> secondary_hash_add(name_tbl_entry_t *name_tbl_entry,
>>         }
>>         /* secondary_hash_dump(secondary_hash); */
>> -       return (hash_tbl_entry_t)secondary_hash;
>> +       return (hash_tbl_entry_t)(uintptr_t)secondary_hash;
>>   }
>>     static hash_tbl_entry_t hash_tbl_remove(secondary_hash_tbl_t
>> *hash_tbl,
>> @@ -693,11 +694,11 @@ static hash_tbl_entry_t
>> hash_tbl_remove(secondary_hash_tbl_t *hash_tbl,
>>                                  * new entry onto the front of it.
>>                                  */
>>                                 head_entry = (name_tbl_entry_t *)
>> -                                       (hash_tbl_entry & ~0x3F);
>> +                                       (uintptr_t)(hash_tbl_entry &
>> ~0x3F);
>>                                 tail_entry = head_entry;
>>                         } else {
>>                                 secondary_hash = (secondary_hash_tbl_t *)
>> -                                       hash_tbl_entry;
>> +                                       (uintptr_t)hash_tbl_entry;
>>                                 check_secondary_hash(secondary_hash);
>>                                 if (level == 1)
>>                                         break;
>> @@ -758,7 +759,8 @@ static int name_hash_tbl_add(name_tbl_entry_t
>> *entry_to_add,
>>                 /* This primary hash table entry points to a
>> name_tbl_entry_t
>>                  * linked list, so add this new entry onto the front of
>> it.
>>                  */
>> -               name_tbl_entry = (name_tbl_entry_t *)(hash_tbl_entry &
>> ~0x3F);
>> +               name_tbl_entry =
>> +                       (name_tbl_entry_t *)(uintptr_t)(hash_tbl_entry &
>> ~0x3F);
>>                 entry_to_add->next_entry = name_tbl_entry;
>>                 hash_tbl_entry = make_hash_tbl_entry(entry_to_add,
>> entry_cnt);
>>                 name_hash_tbl.hash_entries[primary_hash_idx] =
>> hash_tbl_entry;
>> @@ -783,7 +785,7 @@ static int name_hash_tbl_add(name_tbl_entry_t
>> *entry_to_add,
>>         * some more hash_value bits and index that table.
>>         */
>>         hash_idx       = (hash_value >> 16) & (SECONDARY_HASH_TBL_SIZE -
>> 1);
>> -       secondary_hash = (secondary_hash_tbl_t *)hash_tbl_entry;
>> +       secondary_hash = (secondary_hash_tbl_t
>> *)(uintptr_t)hash_tbl_entry;
>>         check_secondary_hash(secondary_hash);
>>         hash_tbl_entry = secondary_hash->hash_entries[hash_idx];
>>         entry_cnt      = hash_tbl_entry & 0x3F;
>> @@ -799,7 +801,8 @@ static int name_hash_tbl_add(name_tbl_entry_t
>> *entry_to_add,
>>                  * name_tbl_entry_t linked list, so add this new entry
>> onto
>>                  * the front of it.
>>                  */
>> -               name_tbl_entry = (name_tbl_entry_t *)(hash_tbl_entry &
>> ~0x3F);
>> +               name_tbl_entry =
>> +                       (name_tbl_entry_t *)(uintptr_t)(hash_tbl_entry &
>> ~0x3F);
>>                 entry_to_add->next_entry = name_tbl_entry;
>>                 hash_tbl_entry = make_hash_tbl_entry(entry_to_add,
>> entry_cnt);
>>                 secondary_hash->hash_entries[hash_idx] = hash_tbl_entry;
>> @@ -827,7 +830,7 @@ static int name_hash_tbl_add(name_tbl_entry_t
>> *entry_to_add,
>>         * signal failure by returning -1.
>>         */
>>         hash_idx       = (hash_value >> 24) & (SECONDARY_HASH_TBL_SIZE -
>> 1);
>> -       secondary_hash = (secondary_hash_tbl_t *)hash_tbl_entry;
>> +       secondary_hash = (secondary_hash_tbl_t
>> *)(uintptr_t)hash_tbl_entry;
>>         check_secondary_hash(secondary_hash);
>>         hash_tbl_entry = secondary_hash->hash_entries[hash_idx];
>>         entry_cnt      = hash_tbl_entry & 0x3F;
>> @@ -846,7 +849,8 @@ static int name_hash_tbl_add(name_tbl_entry_t
>> *entry_to_add,
>>                  * linked list, we never add another hash table, so we
>> don't
>>                  * need to update any secondary table counts.
>>                  */
>> -               name_tbl_entry = (name_tbl_entry_t *)(hash_tbl_entry &
>> ~0x3F);
>> +               name_tbl_entry =
>> +                       (name_tbl_entry_t *)(uintptr_t)(hash_tbl_entry &
>> ~0x3F);
>>                 entry_to_add->next_entry = name_tbl_entry;
>>                 hash_tbl_entry = make_hash_tbl_entry(entry_to_add,
>> entry_cnt);
>>                 secondary_hash->hash_entries[hash_idx] = hash_tbl_entry;
>> @@ -875,7 +879,8 @@ static int
>> name_tbl_entry_list_remove(hash_tbl_entry_t *hash_entry_ptr,
>>                          * deleted.
>>                          */
>>                         if (!prev_entry) {
>> -                               hash_tbl_entry  =
>> (hash_tbl_entry_t)next_entry;
>> +                               hash_tbl_entry  =
>> +
>>  (hash_tbl_entry_t)(uintptr_t)next_entry;
>>                                 hash_tbl_entry &= ~0x3F;
>>                                 hash_tbl_entry |= entry_cnt;
>>                                 *hash_entry_ptr = hash_tbl_entry;
>> @@ -922,7 +927,8 @@ static int name_hash_tbl_delete(name_tbl_entry_t
>> *entry_to_delete,
>>                 /* This primary hash table entry points to a
>> name_tbl_entry_t
>>                  * linked list, so remove entry from this linked list.
>>                  */
>> -               name_tbl_entry = (name_tbl_entry_t *)(hash_tbl_entry &
>> ~0x3F);
>> +               name_tbl_entry =
>> +                       (name_tbl_entry_t *)(uintptr_t)(hash_tbl_entry &
>> ~0x3F);
>>                 rc = name_tbl_entry_list_remove(hash_entry_ptr,
>> name_tbl_entry,
>>                                                 entry_to_delete,
>> entry_cnt);
>>                 tbn = (*hash_entry_ptr) & ~0x3F;
>> @@ -940,7 +946,7 @@ static int name_hash_tbl_delete(name_tbl_entry_t
>> *entry_to_delete,
>>         * some more hash_value bits and index that table.
>>         */
>>         hash_idx       = (hash_value >> 16) & (SECONDARY_HASH_TBL_SIZE -
>> 1);
>> -       secondary_hash = (secondary_hash_tbl_t *)hash_tbl_entry;
>> +       secondary_hash = (secondary_hash_tbl_t
>> *)(uintptr_t)hash_tbl_entry;
>>         check_secondary_hash(secondary_hash);
>>         hash_entry_ptr = &secondary_hash->hash_entries[hash_idx];
>>         hash_tbl_entry = *hash_entry_ptr;
>> @@ -955,7 +961,8 @@ static int name_hash_tbl_delete(name_tbl_entry_t
>> *entry_to_delete,
>>                  * name_tbl_entry_t linked list, so try to remove
>>                  * entry_to_delete from this linked list.
>>                  */
>> -               name_tbl_entry = (name_tbl_entry_t *)(hash_tbl_entry &
>> ~0x3F);
>> +               name_tbl_entry =
>> +                       (name_tbl_entry_t *)(uintptr_t)(hash_tbl_entry &
>> ~0x3F);
>>                 rc = name_tbl_entry_list_remove(hash_entry_ptr,
>> name_tbl_entry,
>>                                                 entry_to_delete,
>> entry_cnt);
>>                 tbn = (*hash_entry_ptr) & ~0x3F;
>> @@ -988,7 +995,7 @@ static int name_hash_tbl_delete(name_tbl_entry_t
>> *entry_to_delete,
>>         * signal failure by returning -1.
>>         */
>>         hash_idx       = (hash_value >> 24) & (SECONDARY_HASH_TBL_SIZE -
>> 1);
>> -       secondary_hash = (secondary_hash_tbl_t *)hash_tbl_entry;
>> +       secondary_hash = (secondary_hash_tbl_t
>> *)(uintptr_t)hash_tbl_entry;
>>         check_secondary_hash(secondary_hash);
>>         hash_entry_ptr = &secondary_hash->hash_entries[hash_idx];
>>         hash_tbl_entry = *hash_entry_ptr;
>> @@ -1003,7 +1010,8 @@ static int name_hash_tbl_delete(name_tbl_entry_t
>> *entry_to_delete,
>>                  * name_tbl_entry_t linked list, so try to remove
>>                  * entry_to_delete from this linked list.
>>                  */
>> -               name_tbl_entry = (name_tbl_entry_t *)(hash_tbl_entry &
>> ~0x3F);
>> +               name_tbl_entry =
>> +                       (name_tbl_entry_t *)(uintptr_t)(hash_tbl_entry &
>> ~0x3F);
>>                 rc = name_tbl_entry_list_remove(hash_entry_ptr,
>> name_tbl_entry,
>>                                                 entry_to_delete,
>> entry_cnt);
>>                 tbn = (*hash_entry_ptr) & ~0x3F;
>> @@ -1172,7 +1180,7 @@ static uint32_t
>> level2_hash_histo(secondary_hash_tbl_t *hash_tbl,
>>                         collisions = 0;
>>                 } else {
>>                         name_tbl_entry = (name_tbl_entry_t *)
>> -                               (hash_tbl_entry & ~0x3F);
>> +                               (uintptr_t)(hash_tbl_entry & ~0x3F);
>>                         collisions     = linked_list_len(name_tbl_entry);
>>                 }
>>   @@ -1199,11 +1207,11 @@ static uint32_t
>> level1_hash_histo(secondary_hash_tbl_t *hash_tbl,
>>                         collisions = 0;
>>                 } else if ((hash_tbl_entry & 0x3F) != 0) {
>>                         name_tbl_entry = (name_tbl_entry_t *)
>> -                               (hash_tbl_entry & ~0x3F);
>> +                               (uintptr_t)(hash_tbl_entry & ~0x3F);
>>                         collisions     = linked_list_len(name_tbl_entry);
>>                 } else {
>>                         secondary_hash = (secondary_hash_tbl_t *)
>> -                               hash_tbl_entry;
>> +                               (uintptr_t)hash_tbl_entry;
>>                         collisions     = level2_hash_histo(secondary_hash,
>>                                                            level2_histo);
>>                 }
>> @@ -1232,7 +1240,7 @@ static void secondary_hash_histo_print(void)
>>                          * hash table
>>                          */
>>                         secondary_hash = (secondary_hash_tbl_t *)
>> -                               hash_tbl_entry;
>> +                               (uintptr_t)hash_tbl_entry;
>>                         level1_hash_histo(secondary_hash, level1_histo,
>>                                           level2_histo);
>>                 }
>> diff --git a/platform/linux-generic/odp_pkt_queue.c
>> b/platform/linux-generic/odp_pkt_queue.c
>> index 45508eb..88520b1 100644
>> --- a/platform/linux-generic/odp_pkt_queue.c
>> +++ b/platform/linux-generic/odp_pkt_queue.c
>> @@ -215,7 +215,7 @@ _odp_int_queue_pool_t _odp_queue_pool_create(uint32_t
>> max_num_queues,
>>         pool->min_free_list_size = pool->free_list_size;
>>         pool->peak_free_list_size = pool->free_list_size;
>> -       return (_odp_int_queue_pool_t)pool;
>> +       return (_odp_int_queue_pool_t)(uintptr_t)pool;
>>   }
>>     _odp_int_pkt_queue_t _odp_pkt_queue_create(_odp_int_queue_pool_t
>> queue_pool)
>> @@ -223,7 +223,7 @@ _odp_int_pkt_queue_t
>> _odp_pkt_queue_create(_odp_int_queue_pool_t queue_pool)
>>         queue_pool_t *pool;
>>         uint32_t queue_num;
>>   -     pool = (queue_pool_t *)queue_pool;
>> +       pool = (queue_pool_t *)(uintptr_t)queue_pool;
>>         queue_num = pool->next_queue_num++;
>>         if (pool->max_queue_num < queue_num)
>>                 return _ODP_INT_PKT_QUEUE_INVALID;
>> @@ -239,7 +239,7 @@ int _odp_pkt_queue_append(_odp_int_queue_pool_t
>> queue_pool,
>>         uint32_t queue_num, first_blk_idx, tail_blk_idx, new_tail_blk_idx;
>>         uint32_t idx;
>>   -     pool = (queue_pool_t *)queue_pool;
>> +       pool = (queue_pool_t *)(uintptr_t)queue_pool;
>>         queue_num = (uint32_t)pkt_queue;
>>         if ((queue_num == 0) || (pool->max_queue_num < queue_num))
>>                 return -2;
>> @@ -296,7 +296,7 @@ int _odp_pkt_queue_remove(_odp_int_queue_pool_t
>> queue_pool,
>>         queue_blk_t *first_blk, *second_blk;
>>         uint32_t queue_num, first_blk_idx, next_blk_idx, idx;
>>   -     pool = (queue_pool_t *)queue_pool;
>> +       pool = (queue_pool_t *)(uintptr_t)queue_pool;
>>         queue_num = (uint32_t)pkt_queue;
>>         if ((queue_num == 0) || (pool->max_queue_num < queue_num))
>>                 return -2;
>> @@ -347,7 +347,7 @@ void _odp_pkt_queue_stats_print(_odp_int_queue_pool_t
>> queue_pool)
>>   {
>>         queue_pool_t *pool;
>>   -     pool = (queue_pool_t *)queue_pool;
>> +       pool = (queue_pool_t *)(uintptr_t)queue_pool;
>>         ODP_DBG("pkt_queue_stats - queue_pool=0x%lX\n", queue_pool);
>>         ODP_DBG("  max_queue_num=%u max_queued_pkts=%u
>> next_queue_num=%u\n",
>>                 pool->max_queue_num, pool->max_queued_pkts,
>> @@ -367,7 +367,7 @@ void _odp_queue_pool_destroy(_odp_int_queue_pool_t
>> queue_pool)
>>         queue_pool_t *pool;
>>         uint32_t idx;
>>   -     pool = (queue_pool_t *)queue_pool;
>> +       pool = (queue_pool_t *)(uintptr_t)queue_pool;
>>         for (idx = 0; idx < 16; idx++) {
>>                 queue_region_desc = &pool->queue_region_descs[idx];
>>                 if (queue_region_desc->queue_blks)
>> diff --git a/platform/linux-generic/odp_sorted_list.c
>> b/platform/linux-generic/odp_sorted_list.c
>> index 221754d..5811266 100644
>> --- a/platform/linux-generic/odp_sorted_list.c
>> +++ b/platform/linux-generic/odp_sorted_list.c
>> @@ -56,7 +56,7 @@ _odp_int_sorted_pool_t _odp_sorted_pool_create(uint32_t
>> max_sorted_lists)
>>         list_descs = malloc(malloc_len);
>>         memset(list_descs, 0, malloc_len);
>>         pool->list_descs = list_descs;
>> -       return (_odp_int_sorted_pool_t)pool;
>> +       return (_odp_int_sorted_pool_t)(uintptr_t)pool;
>>   }
>>     _odp_int_sorted_list_t
>> @@ -66,7 +66,7 @@ _odp_sorted_list_create(_odp_int_sorted_pool_t
>> sorted_pool,
>>         sorted_pool_t *pool;
>>         uint32_t       list_idx;
>>   -     pool     = (sorted_pool_t *)sorted_pool;
>> +       pool     = (sorted_pool_t *)(uintptr_t)sorted_pool;
>>         list_idx = pool->next_list_idx++;
>>         return (_odp_int_sorted_list_t)list_idx;
>>   }
>> @@ -81,7 +81,7 @@ int _odp_sorted_list_insert(_odp_int_sorted_pool_t
>> sorted_pool,
>>         sorted_pool_t      *pool;
>>         uint32_t            list_idx;
>>   -     pool     = (sorted_pool_t *)sorted_pool;
>> +       pool     = (sorted_pool_t *)(uintptr_t)sorted_pool;
>>         list_idx = (uint32_t)sorted_list;
>>         if ((pool->next_list_idx    <= list_idx) ||
>>             (pool->max_sorted_lists <= list_idx))
>> @@ -125,7 +125,7 @@ int _odp_sorted_list_find(_odp_int_sorted_pool_t
>> sorted_pool,
>>         sorted_pool_t      *pool;
>>         uint32_t            list_idx;
>>   -     pool     = (sorted_pool_t *)sorted_pool;
>> +       pool     = (sorted_pool_t *)(uintptr_t)sorted_pool;
>>         list_idx = (uint32_t)sorted_list;
>>         if ((pool->next_list_idx    <= list_idx) ||
>>             (pool->max_sorted_lists <= list_idx))
>> @@ -161,7 +161,7 @@ int _odp_sorted_list_delete(_odp_int_sorted_pool_t
>> sorted_pool,
>>         sorted_pool_t      *pool;
>>         uint32_t            list_idx;
>>   -     pool     = (sorted_pool_t *)sorted_pool;
>> +       pool     = (sorted_pool_t *)(uintptr_t)sorted_pool;
>>         list_idx = (uint32_t)sorted_list;
>>         if ((pool->next_list_idx    <= list_idx) ||
>>             (pool->max_sorted_lists <= list_idx))
>> @@ -207,7 +207,7 @@ int _odp_sorted_list_remove(_odp_int_sorted_pool_t
>> sorted_pool,
>>         sorted_pool_t      *pool;
>>         uint32_t            list_idx;
>>   -     pool     = (sorted_pool_t *)sorted_pool;
>> +       pool     = (sorted_pool_t *)(uintptr_t)sorted_pool;
>>         list_idx = (uint32_t)sorted_list;
>>         if ((pool->next_list_idx    <= list_idx) ||
>>             (pool->max_sorted_lists <= list_idx))
>> @@ -237,7 +237,7 @@ void
>> _odp_sorted_list_stats_print(_odp_int_sorted_pool_t sorted_pool)
>>   {
>>         sorted_pool_t *pool;
>>   -     pool = (sorted_pool_t *)sorted_pool;
>> +       pool = (sorted_pool_t *)(uintptr_t)sorted_pool;
>>         ODP_DBG("sorted_pool=0x%lX\n", sorted_pool);
>>         ODP_DBG("  max_sorted_lists=%u next_list_idx=%u\n",
>>                 pool->max_sorted_lists, pool->next_list_idx);
>> @@ -253,7 +253,7 @@ void _odp_sorted_pool_destroy(_odp_int_sorted_pool_t
>> sorted_pool)
>>         sorted_pool_t       *pool;
>>         uint32_t             list_idx;
>>   -     pool       = (sorted_pool_t *)sorted_pool;
>> +       pool       = (sorted_pool_t *)(uintptr_t)sorted_pool;
>>         list_descs = pool->list_descs;
>>         for (list_idx = 0; list_idx < pool->next_list_idx; list_idx++) {
>> diff --git a/platform/linux-generic/odp_timer_wheel.c
>> b/platform/linux-generic/odp_timer_wheel.c
>> index bcab01b..21be3ef 100644
>> --- a/platform/linux-generic/odp_timer_wheel.c
>> +++ b/platform/linux-generic/odp_timer_wheel.c
>> @@ -748,7 +748,7 @@ _odp_timer_wheel_t _odp_timer_wheel_create(uint32_t
>> max_concurrent_timers,
>>         free_list_add(timer_wheels, max_concurrent_timers / 4);
>>         timer_wheels->min_free_list_size  = timer_wheels->free_list_size;
>>         timer_wheels->peak_free_list_size = timer_wheels->free_list_size;
>> -       return (_odp_timer_wheel_t)timer_wheels;
>> +       return (_odp_timer_wheel_t)(uintptr_t)timer_wheels;
>>   }
>>     uint32_t _odp_timer_wheel_curr_time_update(_odp_timer_wheel_t
>> timer_wheel,
>> @@ -759,7 +759,7 @@ uint32_t
>> _odp_timer_wheel_curr_time_update(_odp_timer_wheel_t timer_wheel,
>>         uint32_t        desc_idx;
>>         int             rc;
>>   -     timer_wheels      = (timer_wheels_t *)timer_wheel;
>> +       timer_wheels      = (timer_wheels_t *)(uintptr_t)timer_wheel;
>>         new_current_ticks = current_time >> CYCLES_TO_TICKS_SHIFT;
>>         elapsed_ticks     = new_current_ticks -
>> timer_wheels->current_ticks;
>>         if (elapsed_ticks == 0)
>> @@ -787,13 +787,13 @@ int _odp_timer_wheel_insert(_odp_timer_wheel_t
>> timer_wheel,
>>         uint64_t        user_data, wakeup_ticks;
>>         int             rc;
>>   -     user_data = (uint64_t)user_ptr;
>> +       user_data = (uint64_t)(uintptr_t)user_ptr;
>>         if (user_data == 0)
>>                 return -4;  /* user_data cannot be 0! */
>>         else if ((user_data & 0x3) != 0)
>>                 return -5;  /* user_data ptr must be at least 4-byte
>> aligned. */
>>   -     timer_wheels = (timer_wheels_t *)timer_wheel;
>> +       timer_wheels = (timer_wheels_t *)(uintptr_t)timer_wheel;
>>         wakeup_ticks = (wakeup_time >> CYCLES_TO_TICKS_SHIFT) + 1;
>>         if (wakeup_time <= timer_wheels->current_ticks)
>>                 return -6;
>> @@ -828,21 +828,21 @@ void
>> *_odp_timer_wheel_next_expired(_odp_timer_wheel_t timer_wheel)
>>         int             rc;
>>         /* Remove the head of the timer wheel. */
>> -       timer_wheels = (timer_wheels_t *)timer_wheel;
>> +       timer_wheels = (timer_wheels_t *)(uintptr_t)timer_wheel;
>>         rc = expired_timers_remove(timer_wheels, &user_data);
>>         if (rc <= 0)
>>                 return NULL;
>>         user_data &= ~0x3;
>>         timer_wheels->total_timer_removes++;
>> -       return (void *)user_data;
>> +       return (void *)(uintptr_t)user_data;
>>   }
>>     uint32_t _odp_timer_wheel_count(_odp_timer_wheel_t timer_wheel)
>>   {
>>         timer_wheels_t *timer_wheels;
>>   -     timer_wheels = (timer_wheels_t *)timer_wheel;
>> +       timer_wheels = (timer_wheels_t *)(uintptr_t)timer_wheel;
>>         return timer_wheels->total_timer_inserts -
>>                 timer_wheels->total_timer_removes;
>>   }
>> @@ -862,7 +862,7 @@ void _odp_timer_wheel_stats_print(_odp_timer_wheel_t
>> timer_wheel)
>>         expired_ring_t *expired_ring;
>>         uint32_t        wheel_idx;
>>   -     timer_wheels = (timer_wheels_t *)timer_wheel;
>> +       timer_wheels = (timer_wheels_t *)(uintptr_t)timer_wheel;
>>         expired_ring = timer_wheels->expired_timers_ring;
>>         ODP_DBG("_odp_int_timer_wheel_stats current_ticks=%lu\n",
>> @@ -894,7 +894,7 @@ void _odp_timer_wheel_destroy(_odp_timer_wheel_t
>> timer_wheel)
>>         timer_wheels_t *timer_wheels;
>>         expired_ring_t *expired_ring;
>>   -     timer_wheels = (timer_wheels_t *)timer_wheel;
>> +       timer_wheels = (timer_wheels_t *)(uintptr_t)timer_wheel;
>>         expired_ring = timer_wheels->expired_timers_ring;
>>         /* First free all of the block_of_timer_blks @TODO */
>> diff --git a/platform/linux-generic/odp_traffic_mngr.c
>> b/platform/linux-generic/odp_traffic_mngr.c
>> index 88e0ada..6179568 100644
>> --- a/platform/linux-generic/odp_traffic_mngr.c
>> +++ b/platform/linux-generic/odp_traffic_mngr.c
>> @@ -658,7 +658,7 @@ static int tm_delay_pkt(tm_system_t *tm_system,
>> tm_shaper_obj_t *shaper_obj,
>>         timer_context = (((uint64_t)tm_queue_obj->timer_seq) << 32) |
>>                 (((uint64_t)tm_queue_obj->queue_num) << 4);
>>         _odp_timer_wheel_insert(tm_system->_odp_int_timer_wheel,
>> -                               wakeup_time, (void *)timer_context);
>> +                               wakeup_time, (void
>> *)(uintptr_t)timer_context);
>>         tm_queue_obj->timer_reason = UNDELAY_PKT;
>>         tm_queue_obj->timer_shaper = shaper_obj;
>> @@ -1680,7 +1680,7 @@ static int tm_process_expired_timers(tm_system_t
>> *tm_system,
>>                 if (!ptr)
>>                         return work_done;
>>   -             timer_context = (uint64_t)ptr;
>> +               timer_context = (uint64_t)(uintptr_t)ptr;
>>                 queue_num = (timer_context & 0xFFFFFFFF) >> 4;
>>                 timer_seq = timer_context >> 32;
>>                 tm_queue_obj = tm_system->queue_num_tbl[queue_num];
>>
>
> _______________________________________________
> lng-odp mailing list
> lng-odp@lists.linaro.org
> https://lists.linaro.org/mailman/listinfo/lng-odp
>
_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to