Place the below functions under hal-api-common.c.
- hal_common_check_backend_compatibility()
- hal_common_check_backend_compatibility_all()
And their implementation details, which are internal use only, has
been listed on hal-api-compatibility-checker.h.
Change-Id: I208363f860c75627f8b7c3d3e1c564d62e6196f3
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
/**
* @brief Check version compatibility of modules specified in manifests and stores its result
- * @param[out] arr_compatibility Pointer for storing array of compatibilities about all modules. The data is owned by caller, so it is responsible for caller to free it using free()
- * @param[out] len Pointer for retrieving length of array
+ * @param[out] backend_compatibilities Pointer for storing array of compatibilities about all \n
+ * modules. The data is owned by caller, so it is responsible for caller to free it \n
+ * using free()
+ * @param[out] length Pointer for retrieving length of array
* @return @c 0 on success, otherwise a negative error value
*/
-int hal_common_check_backend_compatibility_all(enum hal_common_backend_compatibility **arr_compatibility, int *len);
+int hal_common_check_backend_compatibility_all(
+ enum hal_common_backend_compatibility **backend_compatibilities, int *length);
/**
* @brief Check compatibility of the given module
* @param[in] module HAL module for checking compatibility
- * @param[out] compatibility Address for storing compatibility result
+ * @param[out] backend_compatibility Address for storing compatibility result
* @return @c 0 on success, otherwise a negative error value
*/
int hal_common_check_backend_compatibility(enum hal_module module,
- enum hal_common_backend_compatibility *compatibility);
+ enum hal_common_backend_compatibility *backend_compatibility);
#ifdef __cplusplus
}
const char *library_name)
{
int ret;
- enum hal_common_backend_compatibility c = HAL_COMMON_BACKEND_COMPATIBILITY_UNKNOWN;
+ enum hal_common_backend_compatibility compatibility =
+ HAL_COMMON_BACKEND_COMPATIBILITY_UNKNOWN;
if (!info->handle || !info->backend) {
_I("%s: Has not yet dlopend backend\n", info->module_name);
return -EINVAL;
}
- ret = _hal_common_check_backend_compatibility_by_version(info->module,
- info->backend->major_version, info->backend->minor_version, &c);
+ ret = hal_api_cc_check_backend_compatibility_by_version(info->module,
+ info->backend->major_version, info->backend->minor_version,
+ &compatibility);
if (ret != 0) {
/**
* Not return but just print warning for now. Need time to
info->module_name, ret);
}
- if (c == HAL_COMMON_BACKEND_COMPATIBILITY_INCOMPATIBLE) {
+ if (compatibility == HAL_COMMON_BACKEND_COMPATIBILITY_INCOMPATIBLE) {
_E("%s: Incompatible backend version\n", info->module_name);
return -EINVAL;
}
library_count, library_name_size);
return (ret < 0) ? ret : 0;
}
+
+EXPORT
+int hal_common_check_backend_compatibility_all(
+ enum hal_common_backend_compatibility **backend_compatibilities, int *length)
+{
+ return hal_api_cc_check_backend_compatibility_all(backend_compatibilities, length);
+}
+
+EXPORT
+int hal_common_check_backend_compatibility(enum hal_module module,
+ enum hal_common_backend_compatibility *backend_compatibility)
+{
+ return hal_api_cc_check_backend_compatibility(module, backend_compatibility);
+}
return -ENODATA;
}
-EXPORT
-int hal_common_check_backend_compatibility_all(enum hal_common_backend_compatibility **arr_compatibility, int *len)
+int hal_api_cc_check_backend_compatibility_all(
+ enum hal_common_backend_compatibility **backend_compatibilities, int *length)
{
int ret;
enum hal_common_backend_compatibility *arr = NULL;
if (access(HAL_COMMON_DEFAULT_BACKEND_COMPATIBILITY_PATH, F_OK) != 0)
store_backend_compatibility_to_storage();
- if (!arr_compatibility)
+ if (!backend_compatibilities)
return 0;
- if (!len)
+ if (!length)
return -EINVAL;
arr = calloc(HAL_MODULE_END, sizeof(enum hal_common_backend_compatibility));
for (int i = 0; i < HAL_MODULE_END; ++i)
arr[i] = g_compatibility_info[i].compat;
- *len = HAL_MODULE_END;
- *arr_compatibility = arr;
+ *length = HAL_MODULE_END;
+ *backend_compatibilities = arr;
arr = NULL;
return 0;
}
-EXPORT
-int hal_common_check_backend_compatibility(enum hal_module module,
- enum hal_common_backend_compatibility *compatibility)
+int hal_api_cc_check_backend_compatibility(enum hal_module module,
+ enum hal_common_backend_compatibility *backend_compatibility)
{
int ret;
if (module < HAL_MODULE_UNKNOWN || module >= HAL_MODULE_END)
return -EINVAL;
- if (!compatibility)
+ if (!backend_compatibility)
return -EINVAL;
ret = load_backend_compatibility(NULL);
if (access(HAL_COMMON_DEFAULT_BACKEND_COMPATIBILITY_PATH, F_OK) != 0)
store_backend_compatibility_to_storage();
- *compatibility = g_compatibility_info[module].compat;
+ *backend_compatibility = g_compatibility_info[module].compat;
return 0;
}
-int _hal_common_check_backend_compatibility_by_version(enum hal_module module,
+int hal_api_cc_check_backend_compatibility_by_version(enum hal_module module,
int backend_major, int backend_minor,
- enum hal_common_backend_compatibility *compatibility)
+ enum hal_common_backend_compatibility *backend_compatibility)
{
int ret;
if (ret < 0)
return ret;
- *compatibility = g_compatibility_info[module].compat;
+ *backend_compatibility = g_compatibility_info[module].compat;
return 0;
}
#include <hal-common.h>
+int hal_api_cc_check_backend_compatibility_all(
+ enum hal_common_backend_compatibility **backend_compatibilities, int *length);
+
+int hal_api_cc_check_backend_compatibility(enum hal_module module,
+ enum hal_common_backend_compatibility *backend_compatibility);
+
/**
* Special variant of checking compatibility, only for internal use. (Workaround)
*
* It occurs when __get_backend() is followed by __get_backend_data() within
* its subroutine.
*/
-int _hal_common_check_backend_compatibility_by_version(enum hal_module module,
+int hal_api_cc_check_backend_compatibility_by_version(enum hal_module module,
int backend_major, int backend_minor,
- enum hal_common_backend_compatibility *compatibility);
+ enum hal_common_backend_compatibility *backend_compatibility);
#endif // __HAL_API_COMPATIBILITY_CHECKER_H__