MMAL and vcsm fixups for 64bit builds

Fixes various casts to/from integer of a different size, and printf
for size_t not using %zu.
This commit is contained in:
Dave Stevenson
2019-10-24 17:44:32 +01:00
committed by popcornmix
parent 4946eb203f
commit 76c0680083
8 changed files with 23 additions and 23 deletions

View File

@@ -906,7 +906,7 @@ unsigned int vcsm_vc_hdl_from_ptr( void *usr_ptr )
memset( &map, 0, sizeof(map) ); memset( &map, 0, sizeof(map) );
map.pid = getpid(); map.pid = getpid();
map.addr = (unsigned int) usr_ptr; map.addr = (uintptr_t) usr_ptr;
rc = ioctl( vcsm_handle, rc = ioctl( vcsm_handle,
VMCS_SM_IOCTL_MAP_VC_HDL_FR_ADDR, VMCS_SM_IOCTL_MAP_VC_HDL_FR_ADDR,
@@ -1163,7 +1163,7 @@ void *vcsm_usr_address( unsigned int handle )
map.handle, map.handle,
map.addr ); map.addr );
return (void*)map.addr; return (void*)(uintptr_t)map.addr;
} }
} }
} }
@@ -1211,7 +1211,7 @@ unsigned int vcsm_usr_handle( void *usr_ptr )
memset( &map, 0, sizeof(map) ); memset( &map, 0, sizeof(map) );
map.pid = getpid(); map.pid = getpid();
map.addr = (unsigned int) usr_ptr; map.addr = (uintptr_t) usr_ptr;
rc = ioctl( vcsm_handle, rc = ioctl( vcsm_handle,
VMCS_SM_IOCTL_MAP_USR_HDL, VMCS_SM_IOCTL_MAP_USR_HDL,
@@ -1360,14 +1360,14 @@ void *vcsm_lock( unsigned int handle )
goto out; goto out;
} }
usr_ptr = (void *) lock_unlock.addr; usr_ptr = (void *) (uintptr_t)lock_unlock.addr;
/* If applicable, invalidate the cache now. /* If applicable, invalidate the cache now.
*/ */
if ( usr_ptr && sz.size ) if ( usr_ptr && sz.size )
{ {
cache.handle = sz.handle; cache.handle = sz.handle;
cache.addr = (unsigned int) usr_ptr; cache.addr = (uintptr_t) usr_ptr;
cache.size = sz.size; cache.size = sz.size;
rc = ioctl( vcsm_handle, rc = ioctl( vcsm_handle,
@@ -1527,7 +1527,7 @@ void *vcsm_lock_cache( unsigned int handle,
*/ */
if ( chk.addr && chk.size ) if ( chk.addr && chk.size )
{ {
munmap( (void *)chk.addr, chk.size ); munmap( (void *)(uintptr_t)chk.addr, chk.size );
vcos_log_trace( "[%s]: [%d]: ioctl unmap hdl: %x", vcos_log_trace( "[%s]: [%d]: ioctl unmap hdl: %x",
__func__, __func__,
@@ -1608,7 +1608,7 @@ void *vcsm_lock_cache( unsigned int handle,
if ( usr_ptr && cache.size ) if ( usr_ptr && cache.size )
{ {
cache.handle = chk.handle; cache.handle = chk.handle;
cache.addr = (unsigned int) usr_ptr; cache.addr = (uintptr_t) usr_ptr;
rc = ioctl( vcsm_handle, rc = ioctl( vcsm_handle,
VMCS_SM_IOCTL_MEM_INVALID, VMCS_SM_IOCTL_MEM_INVALID,
@@ -1728,7 +1728,7 @@ int vcsm_unlock_ptr_sp( void *usr_ptr, int cache_no_flush )
/* Retrieve the handle of the memory we want to unlock. /* Retrieve the handle of the memory we want to unlock.
*/ */
map.pid = getpid(); map.pid = getpid();
map.addr = (unsigned int) usr_ptr; map.addr = (uintptr_t) usr_ptr;
rc = ioctl( vcsm_handle, rc = ioctl( vcsm_handle,
VMCS_SM_IOCTL_MAP_USR_HDL, VMCS_SM_IOCTL_MAP_USR_HDL,

View File

@@ -136,7 +136,7 @@ static void *test_mmal_camcorder(void *id)
value = test_mmal_start_camcorder(&stop, behaviour); value = test_mmal_start_camcorder(&stop, behaviour);
LOG_TRACE("Thread terminating, result %d", value); LOG_TRACE("Thread terminating, result %d", value);
return (void *)value; return (void *)(uintptr_t)value;
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@@ -189,7 +189,7 @@ static MMAL_BOOL_T spdif_do_processing(MMAL_COMPONENT_T *component)
goto end; goto end;
} }
LOG_DEBUG("frame: %lld, size %i", in->pts, in->length); LOG_DEBUG("frame: %" PRId64 ", size %i", in->pts, in->length);
mmal_buffer_header_mem_lock(out); mmal_buffer_header_mem_lock(out);
mmal_buffer_header_mem_lock(in); mmal_buffer_header_mem_lock(in);
in_data = in->data + in->offset; in_data = in->data + in->offset;

View File

@@ -102,7 +102,7 @@ static MMAL_STATUS_T mmal_port_clock_process_buffer(MMAL_PORT_T *port, MMAL_BUFF
if (buffer->length != sizeof(MMAL_CLOCK_EVENT_T)) if (buffer->length != sizeof(MMAL_CLOCK_EVENT_T))
{ {
LOG_ERROR("invalid buffer length %d expected %d", LOG_ERROR("invalid buffer length %d expected %zu",
buffer->length, sizeof(MMAL_CLOCK_EVENT_T)); buffer->length, sizeof(MMAL_CLOCK_EVENT_T));
return MMAL_EINVAL; return MMAL_EINVAL;
} }

View File

@@ -1145,7 +1145,7 @@ static MMAL_STATUS_T mmal_vc_port_parameter_set(MMAL_PORT_T *port, const MMAL_PA
if(param->size > MMAL_WORKER_PORT_PARAMETER_SET_MAX) if(param->size > MMAL_WORKER_PORT_PARAMETER_SET_MAX)
{ {
LOG_ERROR("parameter too large (%u > %u)", param->size, MMAL_WORKER_PORT_PARAMETER_SET_MAX); LOG_ERROR("parameter too large (%u > %zu)", param->size, MMAL_WORKER_PORT_PARAMETER_SET_MAX);
return MMAL_ENOSPC; return MMAL_ENOSPC;
} }
@@ -1204,7 +1204,7 @@ static MMAL_STATUS_T mmal_vc_port_parameter_get(MMAL_PORT_T *port, MMAL_PARAMETE
if(param->size > MMAL_WORKER_PORT_PARAMETER_GET_MAX) if(param->size > MMAL_WORKER_PORT_PARAMETER_GET_MAX)
{ {
LOG_ERROR("parameter too large (%u > %u) id %u", param->size, LOG_ERROR("parameter too large (%u > %zu) id %u", param->size,
MMAL_WORKER_PORT_PARAMETER_GET_MAX, param->id); MMAL_WORKER_PORT_PARAMETER_GET_MAX, param->id);
return MMAL_ENOMEM; return MMAL_ENOMEM;
} }
@@ -1275,7 +1275,7 @@ static uint8_t *mmal_vc_port_payload_alloc(MMAL_PORT_T *port, uint32_t payload_s
{ {
MMAL_OPAQUE_IMAGE_HANDLE_T h = mmal_vc_opaque_alloc_desc(port->name); MMAL_OPAQUE_IMAGE_HANDLE_T h = mmal_vc_opaque_alloc_desc(port->name);
can_deref = MMAL_FALSE; can_deref = MMAL_FALSE;
ret = (void*)h; ret = (void*)(uintptr_t)h;
if (!ret) if (!ret)
{ {
LOG_ERROR("%s: failed to allocate %d bytes opaque memory", LOG_ERROR("%s: failed to allocate %d bytes opaque memory",
@@ -1324,7 +1324,7 @@ static void mmal_vc_port_payload_free(MMAL_PORT_T *port, uint8_t *payload)
if (module->opaque_allocs) if (module->opaque_allocs)
{ {
module->opaque_allocs--; module->opaque_allocs--;
mmal_vc_opaque_release((MMAL_OPAQUE_IMAGE_HANDLE_T)payload); mmal_vc_opaque_release((MMAL_OPAQUE_IMAGE_HANDLE_T)(uintptr_t)payload);
return; return;
} }

View File

@@ -854,7 +854,7 @@ MMAL_STATUS_T mmal_vc_send_message(MMAL_CLIENT_T *client,
VCHIQ_ELEMENT_T elems[] = {{msg_header, size}}; VCHIQ_ELEMENT_T elems[] = {{msg_header, size}};
MMAL_BOOL_T using_bulk_transfer = (data_size != 0); MMAL_BOOL_T using_bulk_transfer = (data_size != 0);
LOG_TRACE("len %d", data_size); LOG_TRACE("len %zu", data_size);
vcos_assert(size >= sizeof(mmal_worker_msg_header)); vcos_assert(size >= sizeof(mmal_worker_msg_header));
if (!client->inited) if (!client->inited)
@@ -882,7 +882,7 @@ MMAL_STATUS_T mmal_vc_send_message(MMAL_CLIENT_T *client,
if (using_bulk_transfer) if (using_bulk_transfer)
{ {
LOG_TRACE("bulk transmit: %p, %i", data, data_size); LOG_TRACE("bulk transmit: %p, %zu", data, data_size);
data_size = (data_size + 3) & ~3; data_size = (data_size + 3) & ~3;
vst = vchiq_queue_bulk_transmit(client->service, data, data_size, msg_header); vst = vchiq_queue_bulk_transmit(client->service, data, data_size, msg_header);

View File

@@ -379,13 +379,13 @@ static int do_eventlog(int argc, const char **argv)
} }
if (log.size != sizeof(log)) if (log.size != sizeof(log))
{ {
fprintf(stderr,"MMAL Log size mismatch (got %d, expected %d)\n", fprintf(stderr,"MMAL Log size mismatch (got %d, expected %zu)\n",
log.size, sizeof(log)); log.size, sizeof(log));
goto fail; goto fail;
} }
if (log.elemsize != sizeof(MMAL_DBG_ENTRY_T)) if (log.elemsize != sizeof(MMAL_DBG_ENTRY_T))
{ {
fprintf(stderr,"MMAL log element size mismatch (got %d, expected %d)\n", fprintf(stderr,"MMAL log element size mismatch (got %d, expected %zu)\n",
log.elemsize, sizeof(MMAL_DBG_ENTRY_T)); log.elemsize, sizeof(MMAL_DBG_ENTRY_T));
goto fail; goto fail;
} }

View File

@@ -218,8 +218,8 @@ uint8_t *mmal_vc_shm_alloc(uint32_t size)
vcsm_unlock_hdl(vcsm_handle); vcsm_unlock_hdl(vcsm_handle);
payload_elem->mem = mem; payload_elem->mem = mem;
payload_elem->handle = (void *)vcsm_handle; payload_elem->handle = (void *)(intptr_t)vcsm_handle;
payload_elem->vc_handle = (void *)vc_handle; payload_elem->vc_handle = (void *)(intptr_t)vc_handle;
#else /* ENABLE_MMAL_VCSM */ #else /* ENABLE_MMAL_VCSM */
MMAL_PARAM_UNUSED(size); MMAL_PARAM_UNUSED(size);
mmal_vc_payload_list_release(payload_elem); mmal_vc_payload_list_release(payload_elem);
@@ -235,7 +235,7 @@ MMAL_STATUS_T mmal_vc_shm_free(uint8_t *mem)
if (payload_elem) if (payload_elem)
{ {
#ifdef ENABLE_MMAL_VCSM #ifdef ENABLE_MMAL_VCSM
vcsm_free((unsigned int)payload_elem->handle); vcsm_free((uintptr_t)payload_elem->handle);
#endif /* ENABLE_MMAL_VCSM */ #endif /* ENABLE_MMAL_VCSM */
mmal_vc_payload_list_release(payload_elem); mmal_vc_payload_list_release(payload_elem);
return MMAL_SUCCESS; return MMAL_SUCCESS;
@@ -254,7 +254,7 @@ uint8_t *mmal_vc_shm_lock(uint8_t *mem, uint32_t workaround)
if (elem) { if (elem) {
mem = elem->mem; mem = elem->mem;
#ifdef ENABLE_MMAL_VCSM #ifdef ENABLE_MMAL_VCSM
void *p = vcsm_lock((unsigned int)elem->handle); void *p = vcsm_lock((uintptr_t)elem->handle);
if (!p) if (!p)
assert(0); assert(0);
#endif /* ENABLE_MMAL_VCSM */ #endif /* ENABLE_MMAL_VCSM */