add external functions to get the backend information 01/259401/1
authorSooChan Lim <sc1.lim@samsung.com>
Thu, 27 May 2021 06:26:00 +0000 (15:26 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Mon, 7 Jun 2021 06:59:44 +0000 (15:59 +0900)
There are three functions below.
char     *hal_tdm_backend_get_name(hal_tdm_backend *backend);
char     *hal_tdm_backend_get_vendor(hal_tdm_backend *backend);
unsigned long   hal_tdm_backend_get_abi_version(hal_tdm_backend *backend);

Change-Id: Idee055920dec63ba722eb9433045caa421573dfa

include/hal-tdm.h
src/hal-api-tdm.c

index 9c5d696..2650f2e 100644 (file)
@@ -53,6 +53,9 @@ int                     hal_tdm_backend_has_drm_device(hal_tdm_backend *backend,
 hal_tdm_fd              hal_tdm_backend_get_master_drm_fd(hal_tdm_backend *backend, hal_tdm_error *error);
 hal_tdm_error           hal_tdm_backend_set_master_drm_fd(hal_tdm_backend *backend, hal_tdm_fd master_drm_fd);
 hal_tdm_event_source  **hal_tdm_backend_get_event_sources(hal_tdm_backend *backend, int *num_event_sources, hal_tdm_error *error);
+char                   *hal_tdm_backend_get_name(hal_tdm_backend *backend);
+char                   *hal_tdm_backend_get_vendor(hal_tdm_backend *backend);
+unsigned long           hal_tdm_backend_get_abi_version(hal_tdm_backend *backend);
 
 /* tdm_display_funcs */
 hal_tdm_error    hal_tdm_display_get_capability(hal_tdm_display *display, hal_tdm_caps_display *caps);
index d3b6f2b..d1fac87 100644 (file)
@@ -342,6 +342,78 @@ hal_tdm_backend_get_event_sources(hal_tdm_backend *backend, int *num_event_sourc
        return backend_data->event_sources;
 }
 
+EXTERN char *
+hal_tdm_backend_get_name(hal_tdm_backend *backend)
+{
+       char *name;
+       int ret;
+
+       name = calloc(HAL_TDM_NAME_LEN, sizeof(char));
+       if (!name) {
+               _E("no memory");
+               return NULL;
+       }
+
+       ret = hal_common_get_backend_name(HAL_MODULE_TDM, name, HAL_TDM_NAME_LEN);
+       if (ret < 0) {
+               _E("hal_common_get_backend_name failed.\n");
+               free(name);
+               return NULL;
+       }
+
+       return name;
+}
+
+EXTERN char *
+hal_tdm_backend_get_vendor(hal_tdm_backend *backend)
+{
+       char *vendor;
+       int ret;
+
+       vendor = calloc(HAL_TDM_NAME_LEN, sizeof(char));
+       if (!vendor) {
+               _E("no memory");
+               return NULL;
+       }
+
+       ret = hal_common_get_backend_vendor(HAL_MODULE_TDM, vendor, HAL_TDM_NAME_LEN);
+       if (ret < 0) {
+               _E("hal_common_get_backend_name failed.\n");
+               free(vendor);
+               return NULL;
+       }
+
+       return vendor;
+}
+
+#define TDM_BACKEND_MINOR_VERSION_MASK  0x0000FFFF
+#define TDM_BACKEND_MAJOR_VERSION_MASK  0xFFFF0000
+#define TDM_BACKEND_GET_ABI_MINOR(v)    ((v) & TDM_BACKEND_MINOR_VERSION_MASK)
+#define TDM_BACKEND_GET_ABI_MAJOR(v)    (((v) & TDM_BACKEND_MAJOR_VERSION_MASK) >> 16)
+#define TDM_BACKEND_SET_ABI_VERSION(major, minor) \
+       (((major) << 16) & TDM_BACKEND_MAJOR_VERSION_MASK) | \
+       ((minor) & TDM_BACKEND_MINOR_VERSION_MASK)
+
+EXTERN unsigned long
+hal_tdm_backend_get_abi_version(hal_tdm_backend *backend)
+{
+       unsigned long abi_version = 0;
+       unsigned int hal_abi_version;
+
+       hal_abi_version = hal_common_get_backend_abi_version(HAL_MODULE_TDM);
+
+       switch (hal_abi_version) {
+       case HAL_ABI_VERSION_TIZEN_6_5:
+               abi_version = TDM_BACKEND_SET_ABI_VERSION(6,5);
+               break;
+       default:
+               abi_version = 0;
+               break;
+       }
+
+       return abi_version;
+}
+
 /* tdm_display_funcs */
 EXTERN hal_tdm_error
 hal_tdm_display_get_capability(hal_tdm_display *display, hal_tdm_caps_display *caps)