*/
unsigned int hal_common_get_backend_abi_version(enum hal_module module);
+/**
+ * @brief Get the backend HAL major/minor version according to the type of HAL module
+ * @param[in] HAL module id among enum hal_moudle
+ * @return @c 0 on success, otherwise a negative error value
+ */
+int hal_common_get_backend_version(enum hal_module module, unsigned int *major_version, unsigned int *minor_version);
+
/**
* @brief Get the backend name according to the type of HAL module
* @param[in] HAL module id among enum hal_moudle
}
static int __get_backend_data(enum hal_module module, unsigned int *abi_version,
- char *name, int name_size, char *vendor, int vendor_size)
+ char *name, int name_size, char *vendor, int vendor_size,
+ unsigned int *major_version, unsigned int *minor_version)
{
struct __hal_module_info *info = NULL;
int ret, len;
}
strncpy(vendor, info->backend->vendor, vendor_size);
+ } else if (major_version && minor_version) {
+ *major_version = info->backend->major_version;
+ *minor_version = info->backend->minor_version;
} else {
_E("%s: Failed to get backend data\n", info->module_name);
ret = -EINVAL;
unsigned int abi_version;
int ret;
- ret = __get_backend_data(module, &abi_version, NULL, 0, NULL, 0);
+ ret = __get_backend_data(module, &abi_version, NULL, 0, NULL, 0, NULL, NULL);
if (ret < 0)
return HAL_ABI_VERSION_UNKNOWN;
return abi_version;
}
+EXPORT
+int hal_common_get_backend_version(enum hal_module module, unsigned int *major_version, unsigned int *minor_version)
+{
+ return __get_backend_data(module, NULL, NULL, 0, NULL, 0, major_version, minor_version);
+}
+
EXPORT
int hal_common_get_backend_name(enum hal_module module, char *name, int size)
{
- return __get_backend_data(module, NULL, name, size, NULL, 0);
+ return __get_backend_data(module, NULL, name, size, NULL, 0, NULL ,NULL);
}
EXPORT
int hal_common_get_backend_vendor(enum hal_module module, char *vendor, int size)
{
- return __get_backend_data(module, NULL, NULL, 0, vendor, size);
+ return __get_backend_data(module, NULL, NULL, 0, vendor, size, NULL, NULL);
}