summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King <rmk@arm.linux.org.uk>2012-10-18 12:38:53 +0100
committerRussell King <rmk@arm.linux.org.uk>2012-10-20 22:04:24 +0100
commit62434114f9c514d769a940a87c66f2b40d7c72ff (patch)
tree1cc55075c9f5f13ff3097e48d581a6f66a62a068
parent0158ea89f27df1173b54dcb9e8862f34d5312f2f (diff)
Consolidate get_mem_size() and get_mem_addr()
There's no need to have two functions doing exactly the same thing; consolidate these into one function - and adjust the error reporting to report the file which we failed on.
-rw-r--r--vmeta_lib.c48
1 files changed, 15 insertions, 33 deletions
diff --git a/vmeta_lib.c b/vmeta_lib.c
index bfcd2d3..324ef71 100644
--- a/vmeta_lib.c
+++ b/vmeta_lib.c
@@ -342,7 +342,7 @@ static int get_version(char *msg)
FILE *file = fopen(msg, "r");
if(!file) {
- dbg_printf(VDEC_DEBUG_ALL, "Error: get_mem_size -> fopen failed\n");
+ dbg_printf(VDEC_DEBUG_ALL, "Error: %s -> fopen failed\n", __FUNCTION__);
return -1;
}
@@ -356,41 +356,23 @@ static int get_version(char *msg)
return version;
}
-static UNSG32 get_mem_size(char *msg)
-{
- int ret;
- UNSG32 result;
- FILE *file = fopen(msg, "r");
-
- if(!file) {
- dbg_printf(VDEC_DEBUG_ALL, "Error: get_mem_size -> fopen failed\n");
- return -VDEC_OS_DRIVER_OPEN_FAIL;
- }
-
- ret = fscanf(file, "0x%x", &result);
- if(ret<0) {
- dbg_printf(VDEC_DEBUG_ALL, "Error: get_mem_size -> fscanf failed\n");
- result = 0;
- }
-
- fclose(file);
- return result;
-}
-
-static UNSG32 get_mem_addr(char *msg)
+static UNSG32 get_file_unsg32(const char *filename)
{
+ FILE *file;
UNSG32 result;
int ret;
- FILE *file = fopen(msg, "r");
+ file = fopen(filename, "r");
if(!file) {
- dbg_printf(VDEC_DEBUG_ALL, "Error: get_mem_addr -> fopen failed\n");
+ dbg_printf(VDEC_DEBUG_ALL, "Error: %s: fopen %s failed\n",
+ __FUNCTION__, filename);
return -VDEC_OS_DRIVER_OPEN_FAIL;
}
ret = fscanf(file, "0x%x", &result);
- if(ret<0) {
- dbg_printf(VDEC_DEBUG_ALL, "Error: get_mem_addr -> fscanf failed\n");
+ if (ret != 1) {
+ dbg_printf(VDEC_DEBUG_ALL, "Error: %s: fscanf %s failed\n",
+ __FUNCTION__, filename);
result = 0;
}
@@ -453,7 +435,7 @@ SIGN32 vdec_os_driver_init(void)
dbg_printf(VDEC_DEBUG_VER, "vdec os driver kern=%d user=%s\n", vdec_iface->kern_ver,VMETA_USER_VER);
// Get the IO mem size of vPro's register
- vdec_iface->io_mem_size = get_mem_size(UIO_IO_MEM_SIZE);
+ vdec_iface->io_mem_size = get_file_unsg32(UIO_IO_MEM_SIZE);
if(vdec_iface->io_mem_size <= 0) {
ret = -VDEC_OS_DRIVER_MMAP_FAIL;
goto err_mmap_fail;
@@ -461,7 +443,7 @@ SIGN32 vdec_os_driver_init(void)
dbg_printf(VDEC_DEBUG_MEM, "vdec os driver io mem size: 0x%x\n", vdec_iface->io_mem_size);
// Get the IO mem phy addr
- vdec_iface->io_mem_phy_addr = get_mem_addr(UIO_IO_MEM_ADDR);
+ vdec_iface->io_mem_phy_addr = get_file_unsg32(UIO_IO_MEM_ADDR);
if(vdec_iface->io_mem_phy_addr <= 0) {
ret = -VDEC_OS_DRIVER_MMAP_FAIL;
goto err_mmap_fail;
@@ -624,7 +606,7 @@ SIGN32 vdec_os_api_get_hw_obj_addr(UNSG32* vaddr,UNSG32 size)
return VDEC_OS_DRIVER_OK;
}
- io_mem_size = get_mem_size(UIO_IO_VMETA_OBJ_SIZE);
+ io_mem_size = get_file_unsg32(UIO_IO_VMETA_OBJ_SIZE);
if(io_mem_size <= 0 || io_mem_size < size) {
ret = -VDEC_OS_DRIVER_MMAP_FAIL;
dbg_printf(VDEC_DEBUG_MEM, "vdec_os_api_get_hw_obj_addr error: get_mem_size io_mem_size=%d, requested size=%d!!!\n", \
@@ -665,7 +647,7 @@ SIGN32 vdec_os_api_get_hw_context_addr(UNSG32* paddr, UNSG32* vaddr, UNSG32 size
return VDEC_OS_DRIVER_OK;
}
- io_mem_size = get_mem_size(UIO_IO_HW_CONTEXT_SIZE);
+ io_mem_size = get_file_unsg32(UIO_IO_HW_CONTEXT_SIZE);
if(io_mem_size <= 0 || io_mem_size < size) {
ret = -VDEC_OS_DRIVER_MMAP_FAIL;
dbg_printf(VDEC_DEBUG_MEM, "vdec_os_api_get_hw_context_addr error: get_mem_size io_mem_size=%d, requested size=%d!!!\n", \
@@ -675,7 +657,7 @@ SIGN32 vdec_os_api_get_hw_context_addr(UNSG32* paddr, UNSG32* vaddr, UNSG32 size
dbg_printf(VDEC_DEBUG_MEM, "vdec_os_api_get_hw_context_addr: get_mem_size io_mem_size=%d, requested size=%d\n", \
io_mem_size,size);
- io_mem_addr = get_mem_addr(UIO_IO_HW_CONTEXT_ADDR);
+ io_mem_addr = get_file_unsg32(UIO_IO_HW_CONTEXT_ADDR);
if(io_mem_addr <= 0) {
ret = -VDEC_OS_DRIVER_MMAP_FAIL;
dbg_printf(VDEC_DEBUG_MEM, "vdec_os_api_get_hw_context_addr: get_mem_addr error\n");
@@ -705,7 +687,7 @@ SIGN32 vdec_os_api_get_ks(kernel_share** pp_ks)
return 0;
}
- io_mem_size = get_mem_size(UIO_IO_KERNEL_SHARE_SIZE);
+ io_mem_size = get_file_unsg32(UIO_IO_KERNEL_SHARE_SIZE);
if(io_mem_size <= 0 ) {
ret = -VDEC_OS_DRIVER_MMAP_FAIL;
dbg_printf(VDEC_DEBUG_MEM, "vdec_os_api_get_ks: get_mem_size error\n");