halapi: Get backend library name always regardless of usage_count 11/257511/1
authorChanwoo Choi <cw00.choi@samsung.com>
Wed, 21 Apr 2021 11:48:59 +0000 (20:48 +0900)
committerChanwoo Choi <cw00.choi@samsung.com>
Tue, 27 Apr 2021 05:54:34 +0000 (14:54 +0900)
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 <cw00.choi@samsung.com>
src/hal-api-common.c

index e66446d..769da13 100644 (file)
@@ -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);