From: Chanwoo Choi Date: Wed, 21 Apr 2021 11:48:59 +0000 (+0900) Subject: halapi: Get backend library name always regardless of usage_count X-Git-Tag: submit/tizen/20210428.073114~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a82677839e8a5b6ada81eea39c9a3710d1af283c;p=platform%2Fhal%2Fapi%2Fcommon.git halapi: Get backend library name always regardless of usage_count The backend_library_name value is necessary to show the backend library name always. So that get backend library name always regardless of usage_count and then print 'close' message when close the fd of backend library. Change-Id: I338bf22ac678bc80ceab020c7fd0c1ca1662254b Signed-off-by: Chanwoo Choi --- diff --git a/src/hal-api-common.c b/src/hal-api-common.c index e66446d..769da13 100644 --- a/src/hal-api-common.c +++ b/src/hal-api-common.c @@ -160,19 +160,19 @@ static int __get_backend(enum hal_module module, void **data, const char *librar goto err; } + backend_library_name = get_backend_library_name(info); + if (!backend_library_name) { + _E("%s: Failed to get backend library name\n", + info->module_name); + ret = TIZEN_ERROR_INVALID_PARAMETER; + goto err; + } + if (info->usage_count == 0) { /* * Load HAL backend library at first loading time * when usage_count is 0. */ - backend_library_name = get_backend_library_name(info); - if (!backend_library_name) { - _E("%s: Failed to get backend library name\n", - info->module_name); - ret = TIZEN_ERROR_INVALID_PARAMETER; - goto err; - } - ret = access(backend_library_name, F_OK); if (ret < 0) { _E("%s: Failed to find backend library (%s)\n", @@ -205,6 +205,10 @@ static int __get_backend(enum hal_module module, void **data, const char *librar goto err_dlclose; } + _I("%s: Open HAL backend: name(%s)/vendor(%s)/library(%s)/count(%d)\n", + info->module_name, backend->name, backend->vendor, + backend_library_name, info->usage_count); + info->library_backend = backend; info->library_handle = handle; } else { @@ -288,12 +292,6 @@ static int __put_backend(enum hal_module module, void *data, const char *library goto out; } - info->usage_count--; - if (info->usage_count > 0) { - ret = TIZEN_ERROR_NONE; - goto out; - } - if (backend->exit) { ret = backend->exit(data); if (ret < 0) { @@ -304,10 +302,21 @@ static int __put_backend(enum hal_module module, void *data, const char *library } } + info->usage_count--; + _I("%s: Put HAL backend: name(%s)/vendor(%s)/library(%s)/count(%d)\n", info->module_name, backend->name, backend->vendor, get_backend_library_name(info), info->usage_count); + if (info->usage_count > 0) { + ret = TIZEN_ERROR_NONE; + goto out; + } + + _I("%s: Close HAL backend: name(%s)/vendor(%s)/library(%s)/count(%d)\n", + info->module_name, backend->name, backend->vendor, + get_backend_library_name(info), info->usage_count); + if (handle) dlclose(handle);