From 649baccba8c256ee7f3b7f53c25f559e1c194f27 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Thu, 27 May 2021 15:26:00 +0900 Subject: [PATCH] add external functions to get the backend information 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 | 3 +++ src/hal-api-tdm.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) diff --git a/include/hal-tdm.h b/include/hal-tdm.h index 9c5d696..2650f2e 100644 --- a/include/hal-tdm.h +++ b/include/hal-tdm.h @@ -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); diff --git a/src/hal-api-tdm.c b/src/hal-api-tdm.c index d3b6f2b..d1fac87 100644 --- a/src/hal-api-tdm.c +++ b/src/hal-api-tdm.c @@ -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) -- 2.7.4