This is an automated email from the ASF dual-hosted git repository. janc pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
commit 5218d9b93e1c7dbf3e6ca4365162795ea0efe8da Author: Michal Gorecki <[email protected]> AuthorDate: Fri Jul 14 10:48:22 2023 +0200 Change pointers type casting to uintptr_t Thanks to this the type casting code can be compiled on both 32-bit and 64-bit architectures. This also changes some printf functions, so they are also compatible with both types of architectures. --- encoding/json/src/json_encode.c | 4 ++-- hw/mcu/native/src/hal_uart.c | 2 +- kernel/os/include/os/os_mempool.h | 2 +- kernel/os/src/os_callout.c | 6 +++--- kernel/os/src/os_eventq.c | 20 ++++++++++---------- kernel/os/src/os_mbuf.c | 12 ++++++------ kernel/os/src/os_mempool.c | 29 +++++++++++++---------------- kernel/os/src/os_mutex.c | 6 +++--- kernel/os/src/os_sem.c | 6 +++--- kernel/sim/include/sim/sim.h | 8 ++++---- net/oic/src/messaging/coap/coap.c | 2 +- sys/config/src/config.c | 4 ++-- sys/log/full/src/log_cbmem.c | 4 ++-- sys/log/full/src/log_console.c | 2 +- 14 files changed, 52 insertions(+), 55 deletions(-) diff --git a/encoding/json/src/json_encode.c b/encoding/json/src/json_encode.c index b18528534..356066d8a 100644 --- a/encoding/json/src/json_encode.c +++ b/encoding/json/src/json_encode.c @@ -63,12 +63,12 @@ json_encode_value(struct json_encoder *encoder, struct json_value *jv) break; case JSON_VALUE_TYPE_UINT64: len = sprintf(encoder->je_encode_buf, "%llu", - jv->jv_val.u); + (long long unsigned)jv->jv_val.u); encoder->je_write(encoder->je_arg, encoder->je_encode_buf, len); break; case JSON_VALUE_TYPE_INT64: len = sprintf(encoder->je_encode_buf, "%lld", - jv->jv_val.u); + (long long)jv->jv_val.u); encoder->je_write(encoder->je_arg, encoder->je_encode_buf, len); break; case JSON_VALUE_TYPE_STRING: diff --git a/hw/mcu/native/src/hal_uart.c b/hw/mcu/native/src/hal_uart.c index e95e7ed37..d16854bf8 100644 --- a/hw/mcu/native/src/hal_uart.c +++ b/hw/mcu/native/src/hal_uart.c @@ -132,7 +132,7 @@ uart_log_data(struct uart *u, int istx, uint8_t data) } if (u && state.uart == NULL) { len = snprintf(tmpbuf, sizeof(tmpbuf), "%u:uart%d %s\n\t%c (%02x) ", - now, u - uarts, istx ? "tx" : "rx", isalnum(data) ? data : '?', data); + now, (int)(u - uarts), istx ? "tx" : "rx", isalnum(data) ? data : '?', data); if (write(uart_log_fd, tmpbuf, len) != len) { assert(0); } diff --git a/kernel/os/include/os/os_mempool.h b/kernel/os/include/os/os_mempool.h index ff6937388..d5cf018de 100644 --- a/kernel/os/include/os/os_mempool.h +++ b/kernel/os/include/os/os_mempool.h @@ -66,7 +66,7 @@ struct os_mempool { /** Bitmap of OS_MEMPOOL_F_[...] values. */ uint8_t mp_flags; /** Address of memory buffer used by pool */ - uint32_t mp_membuf_addr; + uintptr_t mp_membuf_addr; STAILQ_ENTRY(os_mempool) mp_list; SLIST_HEAD(,os_memblock); /** Name for memory block */ diff --git a/kernel/os/src/os_callout.c b/kernel/os/src/os_callout.c index 77a5ef68f..0526a4c91 100644 --- a/kernel/os/src/os_callout.c +++ b/kernel/os/src/os_callout.c @@ -31,7 +31,7 @@ struct os_callout_list g_callout_list; void os_callout_init(struct os_callout *c, struct os_eventq *evq, os_event_fn *ev_cb, void *ev_arg) { - os_trace_api_u32x2(OS_TRACE_ID_CALLOUT_INIT, (uint32_t)c, (uint32_t)evq); + os_trace_api_u32x2(OS_TRACE_ID_CALLOUT_INIT, (uintptr_t)c, (uintptr_t)evq); memset(c, 0, sizeof(*c)); c->c_ev.ev_cb = ev_cb; @@ -46,7 +46,7 @@ os_callout_stop(struct os_callout *c) { os_sr_t sr; - os_trace_api_u32(OS_TRACE_ID_CALLOUT_STOP, (uint32_t)c); + os_trace_api_u32(OS_TRACE_ID_CALLOUT_STOP, (uintptr_t)c); OS_ENTER_CRITICAL(sr); @@ -74,7 +74,7 @@ os_callout_reset(struct os_callout *c, os_time_t ticks) /* Ensure this callout has been initialized. */ assert(c->c_evq != NULL); - os_trace_api_u32x2(OS_TRACE_ID_CALLOUT_RESET, (uint32_t)c, (uint32_t)ticks); + os_trace_api_u32x2(OS_TRACE_ID_CALLOUT_RESET, (uintptr_t)c, (uint32_t)ticks); if (ticks > INT32_MAX) { ret = OS_EINVAL; diff --git a/kernel/os/src/os_eventq.c b/kernel/os/src/os_eventq.c index b3d4d7fae..c070ab08c 100644 --- a/kernel/os/src/os_eventq.c +++ b/kernel/os/src/os_eventq.c @@ -48,7 +48,7 @@ os_eventq_put(struct os_eventq *evq, struct os_event *ev) assert(evq != NULL && os_eventq_inited(evq)); - os_trace_api_u32x2(OS_TRACE_ID_EVENTQ_PUT, (uint32_t)evq, (uint32_t)ev); + os_trace_api_u32x2(OS_TRACE_ID_EVENTQ_PUT, (uintptr_t)evq, (uintptr_t)ev); OS_ENTER_CRITICAL(sr); @@ -93,7 +93,7 @@ os_eventq_get_no_wait(struct os_eventq *evq) { struct os_event *ev; - os_trace_api_u32(OS_TRACE_ID_EVENTQ_GET_NO_WAIT, (uint32_t)evq); + os_trace_api_u32(OS_TRACE_ID_EVENTQ_GET_NO_WAIT, (uintptr_t)evq); ev = STAILQ_FIRST(&evq->evq_list); if (ev) { @@ -101,7 +101,7 @@ os_eventq_get_no_wait(struct os_eventq *evq) ev->ev_queued = 0; } - os_trace_api_ret_u32(OS_TRACE_ID_EVENTQ_GET_NO_WAIT, (uint32_t)ev); + os_trace_api_ret_u32(OS_TRACE_ID_EVENTQ_GET_NO_WAIT, (uintptr_t)ev); return ev; } @@ -113,7 +113,7 @@ os_eventq_get(struct os_eventq *evq) os_sr_t sr; struct os_task *t; - os_trace_api_u32(OS_TRACE_ID_EVENTQ_GET, (uint32_t)evq); + os_trace_api_u32(OS_TRACE_ID_EVENTQ_GET, (uintptr_t)evq); t = os_sched_get_current_task(); if (evq->evq_owner != t) { @@ -148,7 +148,7 @@ pull_one: } OS_EXIT_CRITICAL(sr); - os_trace_api_ret_u32(OS_TRACE_ID_EVENTQ_GET, (uint32_t)ev); + os_trace_api_ret_u32(OS_TRACE_ID_EVENTQ_GET, (uintptr_t)ev); #if MYNEWT_VAL(OS_EVENTQ_DEBUG) evq->evq_prev = ev; @@ -222,7 +222,7 @@ os_eventq_poll_0timo(struct os_eventq **evq, int nevqs) os_sr_t sr; int i; - os_trace_api_u32x2(OS_TRACE_ID_EVENTQ_POLL_0TIMO, (uint32_t)evq[0], + os_trace_api_u32x2(OS_TRACE_ID_EVENTQ_POLL_0TIMO, (uintptr_t)evq[0], (uint32_t)nevqs); ev = NULL; @@ -238,7 +238,7 @@ os_eventq_poll_0timo(struct os_eventq **evq, int nevqs) } OS_EXIT_CRITICAL(sr); - os_trace_api_ret_u32(OS_TRACE_ID_EVENTQ_POLL_0TIMO, (uint32_t)ev); + os_trace_api_ret_u32(OS_TRACE_ID_EVENTQ_POLL_0TIMO, (uintptr_t)ev); return ev; } @@ -258,7 +258,7 @@ os_eventq_poll(struct os_eventq **evq, int nevqs, os_time_t timo) return os_eventq_poll_0timo(evq, nevqs); } - os_trace_api_u32x3(OS_TRACE_ID_EVENTQ_POLL, (uint32_t)evq[0], (uint32_t)nevqs, + os_trace_api_u32x3(OS_TRACE_ID_EVENTQ_POLL, (uintptr_t)evq[0], (uint32_t)nevqs, (uint32_t)timo); ev = NULL; @@ -309,7 +309,7 @@ os_eventq_poll(struct os_eventq **evq, int nevqs, os_time_t timo) OS_EXIT_CRITICAL(sr); has_event: - os_trace_api_ret_u32(OS_TRACE_ID_EVENTQ_POLL, (uint32_t)ev); + os_trace_api_ret_u32(OS_TRACE_ID_EVENTQ_POLL, (uintptr_t)ev); return (ev); } @@ -319,7 +319,7 @@ os_eventq_remove(struct os_eventq *evq, struct os_event *ev) { os_sr_t sr; - os_trace_api_u32x2(OS_TRACE_ID_EVENTQ_REMOVE, (uint32_t)evq, (uint32_t)ev); + os_trace_api_u32x2(OS_TRACE_ID_EVENTQ_REMOVE, (uintptr_t)evq, (uintptr_t)ev); OS_ENTER_CRITICAL(sr); if (OS_EVENT_QUEUED(ev)) { diff --git a/kernel/os/src/os_mbuf.c b/kernel/os/src/os_mbuf.c index 494dedc32..1a1962aa6 100644 --- a/kernel/os/src/os_mbuf.c +++ b/kernel/os/src/os_mbuf.c @@ -124,7 +124,7 @@ os_mbuf_get(struct os_mbuf_pool *omp, uint16_t leadingspace) { struct os_mbuf *om; - os_trace_api_u32x2(OS_TRACE_ID_MBUF_GET, (uint32_t)omp, + os_trace_api_u32x2(OS_TRACE_ID_MBUF_GET, (uintptr_t)omp, (uint32_t)leadingspace); if (leadingspace > omp->omp_databuf_len) { @@ -145,7 +145,7 @@ os_mbuf_get(struct os_mbuf_pool *omp, uint16_t leadingspace) om->om_omp = omp; done: - os_trace_api_ret_u32(OS_TRACE_ID_MBUF_GET, (uint32_t)om); + os_trace_api_ret_u32(OS_TRACE_ID_MBUF_GET, (uintptr_t)om); return om; } @@ -156,7 +156,7 @@ os_mbuf_get_pkthdr(struct os_mbuf_pool *omp, uint8_t user_pkthdr_len) struct os_mbuf_pkthdr *pkthdr; struct os_mbuf *om; - os_trace_api_u32x2(OS_TRACE_ID_MBUF_GET_PKTHDR, (uint32_t)omp, + os_trace_api_u32x2(OS_TRACE_ID_MBUF_GET_PKTHDR, (uintptr_t)omp, (uint32_t)user_pkthdr_len); /* User packet header must fit inside mbuf */ @@ -178,7 +178,7 @@ os_mbuf_get_pkthdr(struct os_mbuf_pool *omp, uint8_t user_pkthdr_len) } done: - os_trace_api_ret_u32(OS_TRACE_ID_MBUF_GET_PKTHDR, (uint32_t)om); + os_trace_api_ret_u32(OS_TRACE_ID_MBUF_GET_PKTHDR, (uintptr_t)om); return om; } @@ -187,7 +187,7 @@ os_mbuf_free(struct os_mbuf *om) { int rc; - os_trace_api_u32(OS_TRACE_ID_MBUF_FREE, (uint32_t)om); + os_trace_api_u32(OS_TRACE_ID_MBUF_FREE, (uintptr_t)om); if (om->om_omp != NULL) { rc = os_memblock_put(om->om_omp->omp_pool, om); @@ -209,7 +209,7 @@ os_mbuf_free_chain(struct os_mbuf *om) struct os_mbuf *next; int rc; - os_trace_api_u32(OS_TRACE_ID_MBUF_FREE_CHAIN, (uint32_t)om); + os_trace_api_u32(OS_TRACE_ID_MBUF_FREE_CHAIN, (uintptr_t)om); while (om != NULL) { next = SLIST_NEXT(om, om_next); diff --git a/kernel/os/src/os_mempool.c b/kernel/os/src/os_mempool.c index f892711ad..ad4b18c0a 100644 --- a/kernel/os/src/os_mempool.c +++ b/kernel/os/src/os_mempool.c @@ -137,7 +137,7 @@ os_mempool_init_internal(struct os_mempool *mp, uint16_t blocks, /* Blocks need to be sized properly and memory buffer should be * aligned */ - if (((uint32_t)membuf & (OS_ALIGNMENT - 1)) != 0) { + if (((uintptr_t)membuf & (OS_ALIGNMENT - 1)) != 0) { return OS_MEM_NOT_ALIGNED; } } @@ -148,7 +148,7 @@ os_mempool_init_internal(struct os_mempool *mp, uint16_t blocks, mp->mp_min_free = blocks; mp->mp_flags = flags; mp->mp_num_blocks = blocks; - mp->mp_membuf_addr = (uint32_t)membuf; + mp->mp_membuf_addr = (uintptr_t)membuf; mp->name = name; SLIST_FIRST(mp) = membuf; @@ -302,23 +302,20 @@ int os_memblock_from(const struct os_mempool *mp, const void *block_addr) { uint32_t true_block_size; - uint32_t baddr32; - uint32_t end; + uintptr_t baddr; + uintptr_t end; - static_assert(sizeof block_addr == sizeof baddr32, - "Pointer to void must be 32-bits."); - - baddr32 = (uint32_t)block_addr; + baddr = (uintptr_t)block_addr; true_block_size = OS_MEMPOOL_TRUE_BLOCK_SIZE(mp); end = mp->mp_membuf_addr + (mp->mp_num_blocks * true_block_size); /* Check that the block is in the memory buffer range. */ - if ((baddr32 < mp->mp_membuf_addr) || (baddr32 >= end)) { + if ((baddr < mp->mp_membuf_addr) || (baddr >= end)) { return 0; } /* All freed blocks should be on true block size boundaries! */ - if (((baddr32 - mp->mp_membuf_addr) % true_block_size) != 0) { + if (((baddr - mp->mp_membuf_addr) % true_block_size) != 0) { return 0; } @@ -331,7 +328,7 @@ os_memblock_get(struct os_mempool *mp) os_sr_t sr; struct os_memblock *block; - os_trace_api_u32(OS_TRACE_ID_MEMBLOCK_GET, (uint32_t)mp); + os_trace_api_u32(OS_TRACE_ID_MEMBLOCK_GET, (uintptr_t)mp); /* Check to make sure they passed in a memory pool (or something) */ block = NULL; @@ -359,7 +356,7 @@ os_memblock_get(struct os_mempool *mp) } } - os_trace_api_ret_u32(OS_TRACE_ID_MEMBLOCK_GET, (uint32_t)block); + os_trace_api_ret_u32(OS_TRACE_ID_MEMBLOCK_GET, (uintptr_t)block); return (void *)block; } @@ -370,8 +367,8 @@ os_memblock_put_from_cb(struct os_mempool *mp, void *block_addr) os_sr_t sr; struct os_memblock *block; - os_trace_api_u32x2(OS_TRACE_ID_MEMBLOCK_PUT_FROM_CB, (uint32_t)mp, - (uint32_t)block_addr); + os_trace_api_u32x2(OS_TRACE_ID_MEMBLOCK_PUT_FROM_CB, (uintptr_t)mp, + (uintptr_t)block_addr); os_mempool_guard_check(mp, block_addr); os_mempool_poison(mp, block_addr); @@ -404,8 +401,8 @@ os_memblock_put(struct os_mempool *mp, void *block_addr) int sr; #endif - os_trace_api_u32x2(OS_TRACE_ID_MEMBLOCK_PUT, (uint32_t)mp, - (uint32_t)block_addr); + os_trace_api_u32x2(OS_TRACE_ID_MEMBLOCK_PUT, (uintptr_t)mp, + (uintptr_t)block_addr); /* Make sure parameters are valid */ if ((mp == NULL) || (block_addr == NULL)) { diff --git a/kernel/os/src/os_mutex.c b/kernel/os/src/os_mutex.c index 3044e9577..f15725f53 100644 --- a/kernel/os/src/os_mutex.c +++ b/kernel/os/src/os_mutex.c @@ -34,7 +34,7 @@ os_mutex_init(struct os_mutex *mu) goto done; } - os_trace_api_u32(OS_TRACE_ID_MUTEX_INIT, (uint32_t)mu); + os_trace_api_u32(OS_TRACE_ID_MUTEX_INIT, (uintptr_t)mu); /* Initialize to 0 */ mu->mu_prio = 0; @@ -58,7 +58,7 @@ os_mutex_release(struct os_mutex *mu) struct os_task *rdy; os_error_t ret; - os_trace_api_u32(OS_TRACE_ID_MUTEX_RELEASE, (uint32_t)mu); + os_trace_api_u32(OS_TRACE_ID_MUTEX_RELEASE, (uintptr_t)mu); /* Check if OS is started */ if (!g_os_started) { @@ -145,7 +145,7 @@ os_mutex_pend(struct os_mutex *mu, os_time_t timeout) struct os_task *entry; struct os_task *last; - os_trace_api_u32x2(OS_TRACE_ID_MUTEX_PEND, (uint32_t)mu, (uint32_t)timeout); + os_trace_api_u32x2(OS_TRACE_ID_MUTEX_PEND, (uintptr_t)mu, (uint32_t)timeout); /* OS must be started when calling this function */ if (!g_os_started) { diff --git a/kernel/os/src/os_sem.c b/kernel/os/src/os_sem.c index b28ab0f0b..eb95ec853 100644 --- a/kernel/os/src/os_sem.c +++ b/kernel/os/src/os_sem.c @@ -35,7 +35,7 @@ os_sem_init(struct os_sem *sem, uint16_t tokens) { os_error_t ret; - os_trace_api_u32x2(OS_TRACE_ID_SEM_INIT, (uint32_t)sem, (uint32_t)tokens); + os_trace_api_u32x2(OS_TRACE_ID_SEM_INIT, (uint32_t)(uintptr_t)sem, (uint32_t)tokens); if (!sem) { ret = OS_INVALID_PARM; @@ -61,7 +61,7 @@ os_sem_release(struct os_sem *sem) struct os_task *rdy; os_error_t ret; - os_trace_api_u32(OS_TRACE_ID_SEM_RELEASE, (uint32_t)sem); + os_trace_api_u32(OS_TRACE_ID_SEM_RELEASE, (uint32_t)(uintptr_t)sem); /* OS must be started to release semaphores */ if (!g_os_started) { @@ -129,7 +129,7 @@ os_sem_pend(struct os_sem *sem, os_time_t timeout) struct os_task *last; os_error_t ret; - os_trace_api_u32x2(OS_TRACE_ID_SEM_PEND, (uint32_t)sem, (uint32_t)timeout); + os_trace_api_u32x2(OS_TRACE_ID_SEM_PEND, (uint32_t)(uintptr_t)sem, (uint32_t)timeout); /* Check if OS is started */ if (!g_os_started) { diff --git a/kernel/sim/include/sim/sim.h b/kernel/sim/include/sim/sim.h index bba80530a..84ded14ba 100644 --- a/kernel/sim/include/sim/sim.h +++ b/kernel/sim/include/sim/sim.h @@ -56,11 +56,11 @@ void sim_tick_idle(os_time_t ticks); #define OS_PRINT_ASSERT_SIM(file, line, func, e) do \ { \ if (!(file)) { \ - dprintf(1, "Assert @ 0x%x\n", \ - (unsigned int)__builtin_return_address(0)); \ + dprintf(1, "Assert @ 0x%lx\n", \ + (long unsigned int)__builtin_return_address(0)); \ } else { \ - dprintf(1, "Assert @ 0x%x - %s:%d\n", \ - (unsigned int)__builtin_return_address(0), \ + dprintf(1, "Assert @ 0x%lx - %s:%d\n", \ + (long unsigned int)__builtin_return_address(0), \ (file), (line)); \ } \ } while (0) diff --git a/net/oic/src/messaging/coap/coap.c b/net/oic/src/messaging/coap/coap.c index 4b185f936..5cdfba41a 100644 --- a/net/oic/src/messaging/coap/coap.c +++ b/net/oic/src/messaging/coap/coap.c @@ -353,7 +353,7 @@ coap_serialize_message(coap_packet_t *pkt, struct os_mbuf *m) /* Initialize */ pkt->version = 1; - OC_LOG_DEBUG("coap_tx: 0x%x\n", (unsigned)m); + OC_LOG_DEBUG("coap_tx: 0x%x\n", (uintptr_t)m); tcp_hdr = oc_endpoint_use_tcp(OC_MBUF_ENDPOINT(m)); diff --git a/sys/config/src/config.c b/sys/config/src/config.c index 62c3be9f4..827c9b7e5 100644 --- a/sys/config/src/config.c +++ b/sys/config/src/config.c @@ -288,7 +288,7 @@ conf_str_from_value(enum conf_type type, void *vp, char *buf, int buf_len) } else { val = *(int64_t *)vp; } - snprintf(buf, buf_len, "%lld", val); + snprintf(buf, buf_len, "%" PRId64, val); return buf; case CONF_UINT8: case CONF_UINT16: @@ -303,7 +303,7 @@ conf_str_from_value(enum conf_type type, void *vp, char *buf, int buf_len) } else { uval = *(uint64_t *)vp; } - snprintf(buf, buf_len, "%llu", uval); + snprintf(buf, buf_len, "%" PRIu64, uval); return buf; case CONF_FLOAT: fval = *(float *)vp; diff --git a/sys/log/full/src/log_cbmem.c b/sys/log/full/src/log_cbmem.c index e7194e71b..02cd3503f 100644 --- a/sys/log/full/src/log_cbmem.c +++ b/sys/log/full/src/log_cbmem.c @@ -248,8 +248,8 @@ log_cbmem_storage_info(struct log *log, struct log_storage_info *info) size = cbmem->c_buf_end - cbmem->c_buf; - used = (uint32_t)cbmem->c_entry_end + cbmem->c_entry_end->ceh_len - - (uint32_t)cbmem->c_entry_start; + used = (uintptr_t)cbmem->c_entry_end + cbmem->c_entry_end->ceh_len - + (uintptr_t)cbmem->c_entry_start; if ((int32_t)used < 0) { used += size; } diff --git a/sys/log/full/src/log_console.c b/sys/log/full/src/log_console.c index c75f53e49..69017f0d1 100644 --- a/sys/log/full/src/log_console.c +++ b/sys/log/full/src/log_console.c @@ -53,7 +53,7 @@ log_console_get(void) static void log_console_print_hdr(const struct log_entry_hdr *hdr) { - console_printf("[ts=%lluus, mod=%u level=%u ", + console_printf("[ts=" "%" PRIu64 "us, mod=%u level=%u ", hdr->ue_ts, hdr->ue_module, hdr->ue_level); if (hdr->ue_flags & LOG_FLAGS_IMG_HASH) {
