halapi: Show process name when using hal-api library 14/257514/1
authorChanwoo Choi <cw00.choi@samsung.com>
Fri, 23 Apr 2021 07:02:45 +0000 (16:02 +0900)
committerChanwoo Choi <cw00.choi@samsung.com>
Tue, 27 Apr 2021 05:54:54 +0000 (14:54 +0900)
The hal-api library are used by the various process.
In order to support the easy debugging, show the process name
who get/put the hal-api library.

Example log with process name,
HAL_MODULE_TBM: Get HAL backend: name(vc4)/vendor(Samsung)/library(/hal/lib64/libhal-backend-tbm.so)/count(1) by /usr/bin/enlightenment
HAL_MODULE_TBM: Get HAL backend: name(vc4)/vendor(Samsung)/library(/hal/lib64/libhal-backend-tbm.so)/count(1) by /usr/bin/boot-animation

Change-Id: I7befe874d17585cfffc79e05e32f90f1edcb284d
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
src/hal-api-common.c

index 769da13..530d18c 100644 (file)
 #include <dlfcn.h>
 #include <dlog.h>
 
+#define _GNU_SOURCE
+#include <errno.h>
+
 #include <glib-object.h>
 
 #include "common.h"
 #include "hal-api-conf.h"
 
+extern char *program_invocation_name;
+
 #ifndef EXPORT
 #define EXPORT __attribute__ ((visibility("default")))
 #endif
@@ -205,9 +210,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",
+               _I("%s: Open HAL backend: name(%s)/vendor(%s)/library(%s)/count(%d) by %s\n",
                        info->module_name, backend->name, backend->vendor,
-                       backend_library_name, info->usage_count);
+                       get_backend_library_name(info), info->usage_count,
+                       program_invocation_name);
 
                info->library_backend = backend;
                info->library_handle = handle;
@@ -246,9 +252,10 @@ static int __get_backend(enum hal_module module, void **data, const char *librar
 
        info->usage_count++;
 
-       _I("%s: Get HAL backend: name(%s)/vendor(%s)/library(%s)/count(%d)\n",
+       _I("%s: Get HAL backend: name(%s)/vendor(%s)/library(%s)/count(%d) by %s\n",
                info->module_name, backend->name, backend->vendor,
-               backend_library_name, info->usage_count);
+               backend_library_name, info->usage_count,
+               program_invocation_name);
 
        G_UNLOCK(hal_common_lock);
        return TIZEN_ERROR_NONE;
@@ -304,18 +311,20 @@ 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",
+       _I("%s: Put HAL backend: name(%s)/vendor(%s)/library(%s)/count(%d) by %s\n",
                info->module_name, backend->name, backend->vendor,
-               get_backend_library_name(info), info->usage_count);
+               get_backend_library_name(info), info->usage_count,
+               program_invocation_name);
 
        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",
+       _I("%s: Close HAL backend: name(%s)/vendor(%s)/library(%s)/count(%d) by %s\n",
                info->module_name, backend->name, backend->vendor,
-               get_backend_library_name(info), info->usage_count);
+               get_backend_library_name(info), info->usage_count,
+               program_invocation_name);
 
        if (handle)
                dlclose(handle);