halapi: Add new backend_module_name information 38/261138/3
authorChanwoo Choi <cw00.choi@samsung.com>
Tue, 6 Jul 2021 11:02:12 +0000 (20:02 +0900)
committerChanwoo Choi <cw00.choi@samsung.com>
Tue, 13 Jul 2021 06:19:48 +0000 (15:19 +0900)
Change-Id: I186359becfb908d3bd8bb78efc741da3daa87001
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
packaging/hal-api.json
src/common.h
src/hal-api-conf.c
src/hal-api-list.h

index a2b172f..fe30ac6 100644 (file)
@@ -5,6 +5,7 @@
                {
                        "group" :"HAL_GROUP_GRAPHICS",
                        "module" :"HAL_MODULE_TBM",
+                       "backend_module" :"tbm",
                        "license" :"MIT",
                        "library_name" :"/hal/lib/libhal-backend-tbm.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-tbm.so",
@@ -19,6 +20,7 @@
                {
                        "group" :"HAL_GROUP_GRAPHICS",
                        "module" :"HAL_MODULE_TDM",
+                       "backend_module" :"tdm",
                        "license" :"MIT",
                        "library_name" :"/hal/lib/libhal-backend-tdm.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-tdm.so",
@@ -33,6 +35,7 @@
                {
                        "group" :"HAL_GROUP_GRAPHICS",
                        "module" :"HAL_MODULE_COREGL",
+                       "backend_module" :null,
                        "license" :"UNKNOWN",
                        "library_name" :null,
                        "library_name_64bit" :null,
@@ -42,6 +45,7 @@
                {
                        "group" :"HAL_GROUP_GRAPHICS",
                        "module" :"HAL_MODULE_INPUT",
+                       "backend_module" :null,
                        "license" :"MIT",
                        "library_name" :null,
                        "library_name_64bit" :null,
@@ -52,6 +56,7 @@
                {
                        "group" :"HAL_GROUP_MULTIMEDIA",
                        "module" :"HAL_MODULE_AUDIO",
+                       "backend_module" :"audio",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-audio.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-audio.so",
@@ -66,6 +71,7 @@
                {
                        "group" :"HAL_GROUP_MULTIMEDIA",
                        "module" :"HAL_MODULE_CAMERA",
+                       "backend_module" :"camera",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-camera.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-camera.so",
@@ -80,6 +86,7 @@
                {
                        "group" :"HAL_GROUP_MULTIMEDIA",
                        "module" :"HAL_MODULE_RADIO",
+                       "backend_module" :"radio",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-radio.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-radio.so",
                {
                        "group" :"HAL_GROUP_MULTIMEDIA",
                        "module" :"HAL_MODULE_CODEC",
+                       "backend_module" :null,
                        "license" :"APACHE_2_0",
                        "library_name" :null,
                        "library_name_64bit" :null,
                {
                        "group" :"HAL_GROUP_MULTIMEDIA",
                        "module" :"HAL_MODULE_USB_AUDIO",
+                       "backend_module" :null,
                        "license" :"APACHE_2_0",
                        "library_name" :null,
                        "library_name_64bit" :null,
                {
                        "group" :"HAL_GROUP_MULTIMEDIA",
                        "module" :"HAL_MODULE_ALSAUCM",
+                       "backend_module" :null,
                        "license" :"APACHE_2_0",
                        "library_name" :null,
                        "library_name_64bit" :null,
                {
                        "group" :"HAL_GROUP_CONNECTIVITY",
                        "module" :"HAL_MODULE_BLUETOOTH",
+                       "backend_module" :"bluetooth",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-bluetooth.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-bluetooth.so",
                {
                        "group" :"HAL_GROUP_CONNECTIVITY",
                        "module" :"HAL_MODULE_WIFI",
+                       "backend_module" :"wifi",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-wifi.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-wifi.so",
                {
                        "group" :"HAL_GROUP_CONNECTIVITY",
                        "module" :"HAL_MODULE_NAN",
+                       "backend_module" :null,
                        "license" :"APACHE_2_0",
                        "library_name" :null,
                        "library_name_64bit" :null,
                {
                        "group" :"HAL_GROUP_CONNECTIVITY",
                        "module" :"HAL_MODULE_NFC",
+                       "backend_module" :"nfc",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-nfc.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-nfc.so",
                {
                        "group" :"HAL_GROUP_CONNECTIVITY",
                        "module" :"HAL_MODULE_ZIGBEE",
+                       "backend_module" :"zigbee",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-zigbee.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-zigbee.so",
                {
                        "group" :"HAL_GROUP_CONNECTIVITY",
                        "module" :"HAL_MODULE_UWB",
+                       "backend_module" :"uwb",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-uwb.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-uwb.so",
                {
                        "group" :"HAL_GROUP_CONNECTIVITY",
                        "module" :"HAL_MODULE_MTP",
+                       "backend_module" :null,
                        "license" :"APACHE_2_0",
                        "library_name" :null,
                        "library_name_64bit" :null,
                {
                        "group" :"HAL_GROUP_TELEPHONY",
                        "module" :"HAL_MODULE_TELEPHONY",
+                       "backend_module" :null,
                        "license" :"APACHE_2_0",
                        "library_name" :null,
                        "library_name_64bit" :null,
                {
                        "group" :"HAL_GROUP_LOCATION",
                        "module" :"HAL_MODULE_LOCATION",
+                       "backend_module" :"location",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-location.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-location.so",
                {
                        "group" :"HAL_GROUP_SYSTEM",
                        "module" :"HAL_MODULE_COMMON",
+                       "backend_module" :null,
                        "license" :"APACHE_2_0",
                        "library_name" :null,
                        "library_name_64bit" :null,
                {
                        "group" :"HAL_GROUP_SYSTEM",
                        "module" :"HAL_MODULE_POWER",
+                       "backend_module" :"power",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-power.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-power.so",
                {
                        "group" :"HAL_GROUP_SYSTEM",
                        "module" :"HAL_MODULE_SENSOR",
+                       "backend_module" :"sensor",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-sensor.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-sensor.so",
                {
                        "group" :"HAL_GROUP_SYSTEM",
                        "module" :"HAL_MODULE_PERIPHERAL",
+                       "backend_module" :null,
                        "license" :"APACHE_2_0",
                        "library_name" :null,
                        "library_name_64bit" :null,
                {
                        "group" :"HAL_GROUP_SYSTEM",
                        "module" :"HAL_MODULE_DEVICE_BATTERY",
+                       "backend_module" :"device-battery",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-device-battery.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-device-battery.so",
                {
                        "group" :"HAL_GROUP_SYSTEM",
                        "module" :"HAL_MODULE_DEVICE_BEZEL",
+                       "backend_module" :"device-bezel",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-device-bezel.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-device-bezel.so",
                {
                        "group" :"HAL_GROUP_SYSTEM",
                        "module" :"HAL_MODULE_DEVICE_DISPLAY",
+                       "backend_module" :"device-display",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-device-display.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-device-display.so",
                {
                        "group" :"HAL_GROUP_SYSTEM",
                        "module" :"HAL_MODULE_DEVICE_IR",
+                       "backend_module" :"device-ir",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-device-ir.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-device-ir.so",
                {
                        "group" :"HAL_GROUP_SYSTEM",
                        "module" :"HAL_MODULE_DEVICE_TOUCHSCREEN",
+                       "backend_module" :"device-touchscreen",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-device-touchscreen.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-device-touchscreen.so",
                {
                        "group" :"HAL_GROUP_SYSTEM",
                        "module" :"HAL_MODULE_DEVICE_LED",
+                       "backend_module" :"device-led",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-device-led.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-device-led.so",
                {
                        "group" :"HAL_GROUP_SYSTEM",
                        "module" :"HAL_MODULE_DEVICE_BOARD",
+                       "backend_module" :"device-board",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-device-board.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-device-board.so",
                {
                        "group" :"HAL_GROUP_SYSTEM",
                        "module" :"HAL_MODULE_DEVICE_EXTERNAL_CONNECTION",
+                       "backend_module" :"device-external-connection",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-device-external-connection.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-device-external-connection.so",
                {
                        "group" :"HAL_GROUP_SYSTEM",
                        "module" :"HAL_MODULE_DEVICE_THERMAL",
+                       "backend_module" :"device-thermal",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-device-thermal.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-device-thermal.so",
                {
                        "group" :"HAL_GROUP_SYSTEM",
                        "module" :"HAL_MODULE_DEVICE_USB_GADGET",
+                       "backend_module" :"device-usb-gadget",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-device-usb-gadget.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-device-usb-gadget.so",
                {
                        "group" :"HAL_GROUP_SYSTEM",
                        "module" :"HAL_MODULE_DEVICE_HAPTIC",
+                       "backend_module" :"device-haptic",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-device-haptic.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-device-haptic.so",
                {
                        "group" :"HAL_GROUP_SYSTEM",
                        "module" :"HAL_MODULE_DEVICE_MEMORY",
+                       "backend_module" :"device-memory",
                        "license" :"APACHE_2_0",
                        "library_name" :"/hal/lib/libhal-backend-device-memory.so",
                        "library_name_64bit" :"/hal/lib64/libhal-backend-device-memory.so",
index 69d7c13..b567f8b 100644 (file)
@@ -90,6 +90,7 @@ struct __hal_module_info {
        enum hal_module module;
        enum hal_license license;
        char *module_name;
+       char *backend_module_name;
 
        char *library_name;
        char *library_name_64bit;
index 65e67f4..d511354 100644 (file)
@@ -54,6 +54,7 @@ do { \
 
        if (info) {
                SAFE_FREE_AND_NULL(info->module_name);
+               SAFE_FREE_AND_NULL(info->backend_module_name);
                SAFE_FREE_AND_NULL(info->library_name);
                SAFE_FREE_AND_NULL(info->library_name_64bit);
                SAFE_FREE_AND_NULL(info->symbol_name);
@@ -130,6 +131,7 @@ static struct __hal_module_info *__create_hal_module_info(enum hal_module module
 
        info->module = module;
        info->module_name = g_strdup(__convert_module_to_string(module));
+       info->backend_module_name = g_strdup(__convert_module_to_string(backend_module));
 
        tmp = __get_json_object_string(object, "group");
        info->group = __convert_group_str_to_enum(tmp);
@@ -218,10 +220,11 @@ static struct __hal_module_info* _get_module_info(enum hal_module module)
 static struct __hal_module_info* _get_module_info_with_library_name(enum hal_module module,
                                                                const char *library_name)
 {
-       struct __hal_module_info *info = NULL, *new_info = NULL;
+       struct __hal_module_info *info = NULL, *new_info = NULL, *tmp_info = NULL;
        json_object *module_array_object = NULL;
        const char *group_name = NULL;
        const char *module_name = NULL;
+       char *library_name_prefix = NULL;
        int ret;
 
 #ifdef HAL_API_CONF_JSON
@@ -232,30 +235,47 @@ static struct __hal_module_info* _get_module_info_with_library_name(enum hal_mod
        if (!_module_hash | !library_name)
                return NULL;
 
-       if (!g_str_has_prefix(library_name, "libhal-backend-")) {
-               _E("Invalid library name(%s) of HAL module(%d)\n",
-                               library_name, module);
+       tmp_info = _get_module_info(module);
+       if (tmp_info == NULL) {
+               _E("Failed to get HAL module(%d) information\n", module);
+               return NULL;
+       }
+
+       if (tmp_info->backend_module_name == NULL) {
+               _E("Don't support HAL backend of HAL module(%s)\n",
+                               tmp_info->module_name);
                return NULL;
        }
+       library_name_prefix = g_strdup_printf("libhal-backend-%s",
+                               tmp_info->backend_module_name);
+       if (!library_name_prefix) {
+               _E("Failed to allocate library_name_prefix of HAL module(%s)\n",
+                               tmp_info->module_name);
+               return NULL;
+       }
+
+       if (!g_str_has_prefix(library_name, library_name_prefix)) {
+               _E("Invalid library name(%s) of HAL module(%s)\n",
+                               library_name, tmp_info->module_name);
+               goto out;
+       }
 
        /* Find module info with the passed library name */
        info = (struct __hal_module_info*)g_hash_table_lookup(_module_hash,
                                                (gpointer)library_name);
-       if (info)
+       if (info) {
+               g_free(library_name_prefix);
                return info;
+       }
 
        /* Create new module info with the passed library name */
-       info = _get_module_info(module);
-       if (info == NULL) {
-               _E("Failed to get HAL module(%d) information\n", module);
-               return NULL;
-       }
+       info = tmp_info;
 
        new_info = (struct __hal_module_info *)calloc(1,
                                        sizeof(struct __hal_module_info));
        if (new_info == NULL) {
                _E("Failed to allocate the memory\n");
-               return NULL;
+               goto out;
        }
 
        new_info->usage_count = 0;
@@ -276,6 +296,9 @@ static struct __hal_module_info* _get_module_info_with_library_name(enum hal_mod
 
        g_hash_table_insert(_module_hash, (gpointer)library_name, new_info);
 
+out:
+       g_free(library_name_prefix);
+
        return new_info;
 }
 
index a7e0ece..f86b50f 100644 (file)
@@ -276,6 +276,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_TBM,
                .license                = HAL_LICENSE_MIT,
                .module_name            = "HAL_MODULE_TBM",
+               .backend_module_name    = "tbm",
                .library_name           = "/hal/lib/libhal-backend-tbm.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-tbm.so",
                .symbol_name            = "hal_backend_tbm_data",
@@ -288,6 +289,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_TDM,
                .license                = HAL_LICENSE_MIT,
                .module_name            = "HAL_MODULE_TDM",
+               .backend_module_name    = "tdm",
                .library_name           = "/hal/lib/libhal-backend-tdm.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-tdm.so",
                .symbol_name            = "hal_backend_tdm_data",
@@ -300,6 +302,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_COREGL,
                .license                = HAL_LICENSE_UNKNOWN,
                .module_name            = "HAL_MODULE_COREGL",
+               .backend_module_name    = NULL,
                .library_name           = NULL,
                .library_name_64bit     = NULL,
                .symbol_name            = NULL,
@@ -312,6 +315,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_INPUT,
                .license                = HAL_LICENSE_MIT,
                .module_name            = "HAL_MODULE_INPUT",
+               .backend_module_name    = NULL,
                .library_name           = NULL,
                .library_name_64bit     = NULL,
                .symbol_name            = NULL,
@@ -326,6 +330,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_AUDIO,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_AUDIO",
+               .backend_module_name    = "audio",
                .library_name           = "/hal/lib/libhal-backend-audio.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-audio.so",
                .symbol_name            = "hal_backend_audio_data",
@@ -338,6 +343,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_CAMERA,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_CAMERA",
+               .backend_module_name    = "camera",
                .library_name           = "/hal/lib/libhal-backend-camera.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-camera.so",
                .symbol_name            = "hal_backend_camera_data",
@@ -350,6 +356,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_RADIO,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_RADIO",
+               .backend_module_name    = "radio",
                .library_name           = "/hal/lib/libhal-backend-radio.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-radio.so",
                .symbol_name            = "hal_backend_radio_data",
@@ -362,6 +369,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_CODEC,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_CODEC",
+               .backend_module_name    = NULL,
                .library_name           = NULL,
                .library_name_64bit     = NULL,
                .symbol_name            = NULL,
@@ -374,6 +382,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_USB_AUDIO,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_USB_AUDIO",
+               .backend_module_name    = NULL,
                .library_name           = NULL,
                .library_name_64bit     = NULL,
                .symbol_name            = NULL,
@@ -386,6 +395,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_ALSAUCM,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_ALSAUCM",
+               .backend_module_name    = NULL,
                .library_name           = NULL,
                .library_name_64bit     = NULL,
                .symbol_name            = NULL,
@@ -400,6 +410,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_BLUETOOTH,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_BLUETOOTH",
+               .backend_module_name    = "bluetooth",
                .library_name           = "/hal/lib/libhal-backend-bluetooth.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-bluetooth.so",
                .symbol_name            = "hal_backend_bluetooth_data",
@@ -412,6 +423,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_WIFI,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_WIFI",
+               .backend_module_name    = "wifi",
                .library_name           = "/hal/lib/libhal-backend-wifi.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-wifi.so",
                .symbol_name            = "hal_backend_wifi_data",
@@ -424,6 +436,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_NAN,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_NAN",
+               .backend_module_name    = NULL,
                .library_name           = NULL,
                .library_name_64bit     = NULL,
                .symbol_name            = NULL,
@@ -436,6 +449,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_NFC,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_NFC",
+               .backend_module_name    = "nfc",
                .library_name           = "/hal/lib/libhal-backend-nfc.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-nfc.so",
                .symbol_name            = "hal_backend_nfc_data",
@@ -448,6 +462,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_ZIGBEE,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_ZIGBEE",
+               .backend_module_name    = "zigbee",
                .library_name           = "/hal/lib/libhal-backend-zigbee.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-zigbee.so",
                .symbol_name            = "hal_backend_zigbee_data",
@@ -460,6 +475,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_UWB,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_UWB",
+               .backend_module_name    = "uwb",
                .library_name           = "/hal/lib/libhal-backend-uwb.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-uwb.so",
                .symbol_name            = "hal_backend_uwb_data",
@@ -472,6 +488,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_MTP,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_MTP",
+               .backend_module_name    = NULL,
                .library_name           = NULL,
                .library_name_64bit     = NULL,
                .symbol_name            = NULL,
@@ -486,6 +503,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_TELEPHONY,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_TELEPHONY",
+               .backend_module_name    = NULL,
                .library_name           = NULL,
                .library_name_64bit     = NULL,
                .symbol_name            = NULL,
@@ -500,6 +518,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_LOCATION,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_LOCATION",
+               .backend_module_name    = "location",
                .library_name           = "/hal/lib/libhal-backend-location.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-location.so",
                .symbol_name            = "hal_backend_location_data",
@@ -514,6 +533,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_COMMON,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_COMMON",
+               .backend_module_name    = NULL,
                .library_name           = NULL,
                .library_name_64bit     = NULL,
                .symbol_name            = NULL,
@@ -526,6 +546,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_POWER,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_POWER",
+               .backend_module_name    = "power",
                .library_name           = "/hal/lib/libhal-backend-power.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-power.so",
                .symbol_name            = "hal_backend_power_data",
@@ -538,6 +559,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_SENSOR,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_SENSOR",
+               .backend_module_name    = "sensor",
                .library_name           = "/hal/lib/libhal-backend-sensor.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-sensor.so",
                .symbol_name            = "hal_backend_sensor_data",
@@ -550,6 +572,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_PERIPHERAL,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_PERIPHERAL",
+               .backend_module_name    = NULL,
                .library_name           = NULL,
                .library_name_64bit     = NULL,
                .symbol_name            = NULL,
@@ -562,6 +585,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_DEVICE_BATTERY,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_DEVICE_BATTERY",
+               .backend_module_name    = "device-battery",
                .library_name           = "/hal/lib/libhal-backend-device-battery.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-device-battery.so",
                .symbol_name            = "hal_backend_device_battery_data",
@@ -574,6 +598,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_DEVICE_BEZEL,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_DEVICE_BEZEL",
+               .backend_module_name    = "device-bezel",
                .library_name           = "/hal/lib/libhal-backend-device-bezel.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-device-bezel.so",
                .symbol_name            = "hal_backend_device_bezel_data",
@@ -586,6 +611,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_DEVICE_DISPLAY,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_DEVICE_DISPLAY",
+               .backend_module_name    = "device-display",
                .library_name           = "/hal/lib/libhal-backend-device-display.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-device-display.so",
                .symbol_name            = "hal_backend_device_display_data",
@@ -598,6 +624,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_DEVICE_IR,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_DEVICE_IR",
+               .backend_module_name    = "device-ir",
                .library_name           = "/hal/lib/libhal-backend-device-ir.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-device-ir.so",
                .symbol_name            = "hal_backend_device_ir_data",
@@ -610,6 +637,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_DEVICE_TOUCHSCREEN,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_DEVICE_TOUCHSCREEN",
+               .backend_module_name    = "device-touchscreen",
                .library_name           = "/hal/lib/libhal-backend-device-touchscreen.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-device-touchscreen.so",
                .symbol_name            = "hal_backend_device_touchscreen_data",
@@ -622,6 +650,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_DEVICE_LED,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_DEVICE_LED",
+               .backend_module_name    = "device-led",
                .library_name           = "/hal/lib/libhal-backend-device-led.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-device-led.so",
                .symbol_name            = "hal_backend_device_led_data",
@@ -634,6 +663,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_DEVICE_BOARD,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_DEVICE_BOARD",
+               .backend_module_name    = "device-board",
                .library_name           = "/hal/lib/libhal-backend-device-board.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-device-board.so",
                .symbol_name            = "hal_backend_device_board_data",
@@ -646,6 +676,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_DEVICE_EXTERNAL_CONNECTION,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_DEVICE_EXTERNAL_CONNECTION",
+               .backend_module_name    = "device-external-connection",
                .library_name           = "/hal/lib/libhal-backend-device-external-connection.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-device-external-connection.so",
                .symbol_name            = "hal_backend_device_external_connection_data",
@@ -658,6 +689,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_DEVICE_THERMAL,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_DEVICE_THERMAL",
+               .backend_module_name    = "device-thermal",
                .library_name           = "/hal/lib/libhal-backend-device-thermal.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-device-thermal.so",
                .symbol_name            = "hal_backend_device_thermal_data",
@@ -670,6 +702,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_DEVICE_USB_GADGET,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_DEVICE_USB_GADGET",
+               .backend_module_name    = "device-usb-gadget",
                .library_name           = "/hal/lib/libhal-backend-device-usb-gadget.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-device-usb-gadget.so",
                .symbol_name            = "hal_backend_device_usb_gadget_data",
@@ -682,6 +715,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_DEVICE_HAPTIC,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_DEVICE_HAPTIC",
+               .backend_module_name    = "device-haptic",
                .library_name           = "/hal/lib/libhal-backend-device-haptic.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-device-haptic.so",
                .symbol_name            = "hal_backend_device_haptic_data",
@@ -694,6 +728,7 @@ static struct __hal_module_info g_hal_module_info[] = {
                .module                 = HAL_MODULE_DEVICE_MEMORY,
                .license                = HAL_LICENSE_APACHE_2_0,
                .module_name            = "HAL_MODULE_DEVICE_MEMORY",
+               .backend_module_name    = "device-memory",
                .library_name           = "/hal/lib/libhal-backend-device-memory.so",
                .library_name_64bit     = "/hal/lib64/libhal-backend-device-memory.so",
                .symbol_name            = "hal_backend_device_memory_data",