summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King <rmk@arm.linux.org.uk>2012-10-18 11:54:00 +0100
committerRussell King <rmk@arm.linux.org.uk>2012-10-20 22:04:04 +0100
commitcd2a540b2af83f057fce5a2f6ea64dd4f1d91ffb (patch)
treeed002e8e109ddd2a00e22977ba2e239f2244fd79
parent6bf3df0b28d2938d65ad455d9b4d5ea1a68031c6 (diff)
Correctly type kernel_share_va/io_mem_virt_addr/vdec_obj_va
This avoids a whole raft of completely unnecessary casts.
-rw-r--r--vmeta_lib.c109
-rw-r--r--vmeta_lib.h6
2 files changed, 59 insertions, 56 deletions
diff --git a/vmeta_lib.c b/vmeta_lib.c
index dd588d2..fe561e5 100644
--- a/vmeta_lib.c
+++ b/vmeta_lib.c
@@ -400,6 +400,7 @@ static UNSG32 get_mem_addr(char *msg)
// init vdec os driver
SIGN32 vdec_os_driver_init(void)
{
+ void *addr;
int ret = 0;
int rv;
@@ -469,21 +470,23 @@ SIGN32 vdec_os_driver_init(void)
dbg_printf(VDEC_DEBUG_MEM, "vdec os driver io mem phy addr: 0x%x\n", vdec_iface->io_mem_phy_addr);
// mmap the io mem area
- vdec_iface->io_mem_virt_addr = (SIGN32) mmap(NULL, vdec_iface->io_mem_size,
- PROT_READ|PROT_WRITE, MAP_SHARED, vdec_iface->uiofd, 0);
-
- if(vdec_iface->io_mem_virt_addr == -1) {
+ addr = mmap(NULL, vdec_iface->io_mem_size, PROT_READ | PROT_WRITE,
+ MAP_SHARED, vdec_iface->uiofd, 0);
+ if(addr == MAP_FAILED) {
ret = -VDEC_OS_DRIVER_MMAP_FAIL;
goto err_mmap_fail;
}
- dbg_printf(VDEC_DEBUG_MEM, "vdec os driver io mem map to: 0x%x\n", vdec_iface->io_mem_virt_addr);
+
+ dbg_printf(VDEC_DEBUG_MEM, "vdec os driver io mem map to: 0x%p\n", addr);
+
+ vdec_iface->io_mem_virt_addr = addr;
pthread_mutex_unlock(&pmt);
return ret;
err_mmap_fail:
if(vdec_iface->io_mem_virt_addr > 0)
- munmap((void*)vdec_iface->io_mem_virt_addr, vdec_iface->io_mem_size);
+ munmap(vdec_iface->io_mem_virt_addr, vdec_iface->io_mem_size);
close(vdec_iface->uiofd);
err_open_fail:
free((void*)vdec_iface);
@@ -521,22 +524,25 @@ SIGN32 vdec_os_driver_clean(void)
}
// unmap memory area
- if(vdec_iface->io_mem_virt_addr > 0) {
+ if(vdec_iface->io_mem_virt_addr != NULL) {
dbg_printf(VDEC_DEBUG_MEM, "munmap with io_mem_virt_addr = 0x%x\n", vdec_iface->io_mem_virt_addr);
- munmap((void*)vdec_iface->io_mem_virt_addr, vdec_iface->io_mem_size);
- vdec_iface->io_mem_virt_addr = vdec_iface->io_mem_size = 0;
+ munmap(vdec_iface->io_mem_virt_addr, vdec_iface->io_mem_size);
+ vdec_iface->io_mem_virt_addr = NULL;
+ vdec_iface->io_mem_size = 0;
}
- if(vdec_iface->kernel_share_va > 0) {
- dbg_printf(VDEC_DEBUG_MEM, "munmap with kernel_share_va = 0x%x size=%d\n", vdec_iface->kernel_share_va,vdec_iface->kernel_share_size);
- munmap((void*)vdec_iface->kernel_share_va, vdec_iface->kernel_share_size);
- vdec_iface->kernel_share_va = vdec_iface->kernel_share_size = 0;
+ if(vdec_iface->kernel_share_va != NULL) {
+ dbg_printf(VDEC_DEBUG_MEM, "munmap with kernel_share_va = 0x%p size=%d\n", vdec_iface->kernel_share_va,vdec_iface->kernel_share_size);
+ munmap(vdec_iface->kernel_share_va, vdec_iface->kernel_share_size);
+ vdec_iface->kernel_share_va = NULL;
+ vdec_iface->kernel_share_size = 0;
}
- if(vdec_iface->vdec_obj_va > 0) {
+ if(vdec_iface->vdec_obj_va != NULL) {
dbg_printf(VDEC_DEBUG_MEM, "munmap with vdec_obj_va = 0x%x size=%d\n", vdec_iface->vdec_obj_va, vdec_iface->vdec_obj_size);
- munmap((void*)vdec_iface->vdec_obj_va,vdec_iface->vdec_obj_size );
- vdec_iface->vdec_obj_va = vdec_iface->vdec_obj_size = 0;
+ munmap(vdec_iface->vdec_obj_va,vdec_iface->vdec_obj_size );
+ vdec_iface->vdec_obj_va = NULL;
+ vdec_iface->vdec_obj_size = 0;
}
// close fd
@@ -610,13 +616,13 @@ SIGN32 vdec_os_api_get_hw_obj_addr(UNSG32* vaddr,UNSG32 size)
{
UNSG32 io_mem_size;
UNSG32 io_mem_addr;
- SIGN32 io_mem_virt_addr;
UNSG32 ret = VDEC_OS_DRIVER_OK;
+ void *addr;
- if(vdec_iface->vdec_obj_va > 0)
+ if(vdec_iface->vdec_obj_va != NULL)
{
dbg_printf(VDEC_DEBUG_MEM, "Already get vdec obj\n");
- *vaddr = vdec_iface->vdec_obj_va;
+ *vaddr = (UNSG32)vdec_iface->vdec_obj_va;
return VDEC_OS_DRIVER_OK;
}
@@ -630,18 +636,18 @@ SIGN32 vdec_os_api_get_hw_obj_addr(UNSG32* vaddr,UNSG32 size)
dbg_printf(VDEC_DEBUG_MEM, "vdec_os_api_get_hw_obj_addr: get_mem_size io_mem_size=%d, requested size=%d\n", \
io_mem_size,size);
- io_mem_virt_addr = (SIGN32)mmap(NULL, size,
- PROT_READ|PROT_WRITE, MAP_SHARED, vdec_iface->uiofd, UIO_IO_VMETA_OBJ_INDEX*getpagesize());
- if(io_mem_virt_addr == -1) {
+ addr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED,
+ vdec_iface->uiofd, UIO_IO_VMETA_OBJ_INDEX*getpagesize());
+ if(addr == MAP_FAILED) {
ret = -VDEC_OS_DRIVER_MMAP_FAIL;
dbg_printf(VDEC_DEBUG_MEM, "vdec_os_api_get_hw_obj_addr: mmap hw obj error\n");
goto get_vdec_obj_fail;
}
- dbg_printf(VDEC_DEBUG_MEM, "UIO_IO_VMETA_OBJ_ADDR virtual 0x%x size=%d \n", io_mem_virt_addr,io_mem_size);
+ dbg_printf(VDEC_DEBUG_MEM, "UIO_IO_VMETA_OBJ_ADDR virtual 0x%p size=%d \n", addr,io_mem_size);
- *vaddr = io_mem_virt_addr;
- vdec_iface->vdec_obj_va = io_mem_virt_addr;
+ *vaddr = (UNSG32)addr;
+ vdec_iface->vdec_obj_va = addr;
vdec_iface->vdec_obj_size = size;
get_vdec_obj_fail:
@@ -652,8 +658,6 @@ SIGN32 vdec_os_api_get_hw_context_addr(UNSG32* paddr, UNSG32* vaddr, UNSG32 size
{
UNSG32 io_mem_size;
UNSG32 io_mem_addr;
- UNSG32 io_mem_virt_addr;
-
UNSG32 ret = VDEC_OS_DRIVER_OK;
if(vdec_iface->hw_context_pa != 0)
@@ -694,11 +698,11 @@ SIGN32 vdec_os_api_get_ks(kernel_share** pp_ks)
{
UNSG32 io_mem_size;
UNSG32 io_mem_addr;
- SIGN32 io_mem_virt_addr;
+ void *addr;
UNSG32 ret = VDEC_OS_DRIVER_OK;
- if(vdec_iface->kernel_share_va != 0)
+ if(vdec_iface->kernel_share_va != NULL)
{
dbg_printf(VDEC_DEBUG_MEM, "Already get kernel share\n");
return 0;
@@ -712,19 +716,18 @@ SIGN32 vdec_os_api_get_ks(kernel_share** pp_ks)
}
dbg_printf(VDEC_DEBUG_MEM, "vdec_os_api_get_ks: get_mem_size io_mem_size=%d\n",io_mem_size);
- io_mem_virt_addr = (SIGN32)mmap(NULL, io_mem_size, \
- PROT_READ|PROT_WRITE, MAP_SHARED, vdec_iface->uiofd, \
- UIO_IO_KERNEL_SHARE_INDEX*getpagesize());
- if(io_mem_virt_addr == -1) {
+ addr = mmap(NULL, io_mem_size, PROT_READ | PROT_WRITE, MAP_SHARED,
+ vdec_iface->uiofd, UIO_IO_KERNEL_SHARE_INDEX*getpagesize());
+ if(addr == MAP_FAILED) {
ret = -VDEC_OS_DRIVER_MMAP_FAIL;
dbg_printf(VDEC_DEBUG_MEM, "vdec_os_api_get_ks: mmap ks error\n");
goto get_vos_fail;
}
- dbg_printf(VDEC_DEBUG_MEM, "kernel share virtual address: 0x%x size=%d \n", io_mem_virt_addr,io_mem_size);
+ dbg_printf(VDEC_DEBUG_MEM, "kernel share virtual address: 0x%p size=%d \n", addr,io_mem_size);
- *pp_ks = (kernel_share *)io_mem_virt_addr;
- vdec_iface->kernel_share_va = (UNSG32)io_mem_virt_addr;
+ *pp_ks = addr;
+ vdec_iface->kernel_share_va = addr;
vdec_iface->kernel_share_size = io_mem_size;
get_vos_fail:
@@ -749,13 +752,13 @@ SIGN32 vdec_os_api_force_ini(void)
vdec_os_driver_cb_t *p_cb = vdec_driver_get_cb();
int rv;
- if(p_cb->kernel_share_va==0)
+ if(p_cb->kernel_share_va == NULL)
{
vdec_os_api_get_ks(&p_ks);
}
else
{
- p_ks = (kernel_share *)p_cb->kernel_share_va;
+ p_ks = p_cb->kernel_share_va;
}
vmeta_private_lock();
@@ -774,13 +777,13 @@ SIGN32 vdec_os_api_get_user_id(void)
SIGN32 ret = -1;
vdec_os_driver_cb_t *p_cb = vdec_driver_get_cb();
- if(p_cb->kernel_share_va==0)
+ if(p_cb->kernel_share_va == NULL)
{
vdec_os_api_get_ks(&p_ks);
}
else
{
- p_ks = (kernel_share *)p_cb->kernel_share_va;
+ p_ks = p_cb->kernel_share_va;
}
vmeta_private_lock();
@@ -799,7 +802,7 @@ SIGN32 vdec_os_api_free_user_id(SIGN32 user_id)
kernel_share *p_ks;
vdec_os_driver_cb_t *p_cb = vdec_driver_get_cb();
- if(p_cb->kernel_share_va==0)
+ if(p_cb->kernel_share_va == NULL)
{
dbg_printf(VDEC_DEBUG_ALL,"vdec_os_api_free_user_id error: not init yet\n");
return VDEC_OS_DRIVER_USER_ID_FAIL;
@@ -809,7 +812,7 @@ SIGN32 vdec_os_api_free_user_id(SIGN32 user_id)
dbg_printf(VDEC_DEBUG_ALL,"vdec_os_api_free_user_id error: exceeds max user_id\n");
return VDEC_OS_DRIVER_USER_ID_FAIL;
}
- p_ks = (kernel_share *)p_cb->kernel_share_va;
+ p_ks = p_cb->kernel_share_va;
vmeta_private_lock();
@@ -833,7 +836,7 @@ static void *vmeta_thread_monitor(void *_data)
pthread_mutex_lock(&pmt);
- if(p_cb->kernel_share_va==0 || pmd == NULL)
+ if(p_cb->kernel_share_va == NULL || pmd == NULL)
{
dbg_printf(VDEC_DEBUG_ALL,"vdec_os_api_free_user_id error: not init yet\n");
free(pmd);
@@ -854,7 +857,7 @@ static void *vmeta_thread_monitor(void *_data)
memcpy(p_md,pmd,sizeof(struct monitor_data));
dbg_printf(VDEC_DEBUG_LOCK,"ori 0x%x 0x%x pt=0x%x user_id=0x%x \n",pmd->pt, pmd->user_id, p_md->pt,p_md->user_id);
- p_ks = (kernel_share *)p_cb->kernel_share_va;
+ p_ks = p_cb->kernel_share_va;
if(pthread_getattr_np(p_md->pt,&pat) != 0)
{
@@ -885,7 +888,7 @@ static void *vmeta_thread_monitor(void *_data)
if(p_cb) {
if(p_cb->kernel_share_va) {
- p_ks = (kernel_share *)p_cb->kernel_share_va;
+ p_ks = p_cb->kernel_share_va;
if(p_md->user_id==p_ks->active_user_id) {
dbg_printf(VDEC_DEBUG_LOCK,"vmeta thread exit abnormally, instance id=%d lock flag=%d\n",p_md->user_id,p_ks->lock_flag);
if( p_ks->lock_flag==VMETA_LOCK_ON ) {
@@ -934,13 +937,13 @@ SIGN32 vdec_os_api_register_user_id(SIGN32 user_id)
return VDEC_OS_DRIVER_USER_ID_FAIL;
}
- if(p_cb->kernel_share_va==0)
+ if(p_cb->kernel_share_va == NULL)
{
vdec_os_api_get_ks(&p_ks);
}
else
{
- p_ks = (kernel_share *)p_cb->kernel_share_va;
+ p_ks = p_cb->kernel_share_va;
}
if(set_bit(VMETA_STATUS_BIT_REGISTED, &(p_ks->user_id_list[user_id].status)) == 1) {
@@ -976,14 +979,14 @@ SIGN32 vdec_os_api_unregister_user_id(SIGN32 user_id)
return VDEC_OS_DRIVER_USER_ID_FAIL;
}
- if(p_cb->kernel_share_va==0)
+ if(p_cb->kernel_share_va == NULL)
{
dbg_printf(VDEC_DEBUG_ALL,"vdec_os_api_unregister_user_id error: not init yet\n");
return VDEC_OS_DRIVER_USER_ID_FAIL;
}
else
{
- p_ks = (kernel_share *)p_cb->kernel_share_va;
+ p_ks = p_cb->kernel_share_va;
}
if(clear_bit(VMETA_STATUS_BIT_REGISTED,&(p_ks->user_id_list[user_id].status)) == 0) {
@@ -1019,13 +1022,13 @@ SIGN32 vdec_os_api_get_user_count(void)
return -1;
}
- if(p_cb->kernel_share_va==0)
+ if(p_cb->kernel_share_va == NULL)
{
vdec_os_api_get_ks(&p_ks);
}
else
{
- p_ks = (kernel_share *)p_cb->kernel_share_va;
+ p_ks = p_cb->kernel_share_va;
}
dbg_printf(VDEC_DEBUG_ALL, "get_user_count=%d \n",p_ks->ref_count);
@@ -1045,7 +1048,7 @@ SIGN32 vdec_os_api_lock(SIGN32 user_id, long to_ms)
dbg_printf(VDEC_DEBUG_ALL,"vdec_os_api_lock error: point is NULL\n");
return LOCK_RET_ERROR_UNKNOWN;
}
- p_ks = (kernel_share*)p_cb->kernel_share_va;
+ p_ks = p_cb->kernel_share_va;
if(p_ks->active_user_id == user_id) {
dbg_printf(VDEC_DEBUG_LOCK,"lock same user=%d, lock_flag=%d,ref_count=%d\n",\
@@ -1083,7 +1086,7 @@ SIGN32 vdec_os_api_unlock(SIGN32 user_id)
return LOCK_RET_ERROR_UNKNOWN;
}
- p_ks = (kernel_share*)p_cb->kernel_share_va;
+ p_ks = p_cb->kernel_share_va;
vmeta_private_lock();
if(p_ks->active_user_id == user_id) {
p_ks->active_user_id = MAX_VMETA_INSTANCE;
diff --git a/vmeta_lib.h b/vmeta_lib.h
index c2367e1..013d881 100644
--- a/vmeta_lib.h
+++ b/vmeta_lib.h
@@ -183,13 +183,13 @@ typedef struct vdec_os_driver_cb_s
{
int uiofd; // the uio file descriptor
UNSG32 io_mem_phy_addr; // the physical addr of io register base
- SIGN32 io_mem_virt_addr; // the reg base addr that maped from kernel
+ void *io_mem_virt_addr; // the reg base addr that maped from kernel
UNSG32 io_mem_size; // the size of io mem area
int refcount; // reference count in current process
- SIGN32 vdec_obj_va;
+ void *vdec_obj_va;
UNSG32 vdec_obj_size;
UNSG32 hw_context_pa;
- SIGN32 kernel_share_va;
+ struct _kernel_share *kernel_share_va;
UNSG32 kernel_share_size;
int kern_ver; //vmeta kernel version
} vdec_os_driver_cb_t;