summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
58828ed)
The TDM backend ABI version should be separated with TDM front-end ABI.
Therefore, tdm defines the TDM backend ABI version at the tbm_backend.h.
The tdm checks the module ABI version with this backend ABI version
when the libtdm loads the backend modules.
Change-Id: I80d842f225d261f7fc024c6928dc66c9d4a95a65
(((major) << 16) & TDM_BACKEND_MAJOR_VERSION_MASK) | \
((minor) & TDM_BACKEND_MINOR_VERSION_MASK)
(((major) << 16) & TDM_BACKEND_MAJOR_VERSION_MASK) | \
((minor) & TDM_BACKEND_MINOR_VERSION_MASK)
+
+#define TDM_BACKEND_ABI_VERSION_1_0 TDM_BACKEND_SET_ABI_VERSION(1, 0)
+#define TDM_BACKEND_ABI_VERSION_2_0 TDM_BACKEND_SET_ABI_VERSION(2, 0)
+#define TDM_BACKEND_ABI_LATEST_VERSION TDM_BACKEND_ABI_VERSION_2_0 /**< the latest version of the tdm backend abi */
+
/**
* @brief
* This MACRO is deprecated since 1.2.0. Use TDM_BACKEND_SET_ABI_VERSION instead of this.
/**
* @brief
* This MACRO is deprecated since 1.2.0. Use TDM_BACKEND_SET_ABI_VERSION instead of this.
static tdm_error
_tdm_display_check_module(tdm_backend_module *module)
{
static tdm_error
_tdm_display_check_module(tdm_backend_module *module)
{
+ int tdm_backend_major, tdm_backend_minor;
+ int backend_module_major, backend_module_minor;
- TDM_INFO("TDM ABI version : %d.%d",
- TDM_MAJOR_VERSION, TDM_MINOR_VERSION);
+ tdm_backend_major = TDM_BACKEND_GET_ABI_MAJOR(TDM_BACKEND_ABI_LATEST_VERSION);
+ tdm_backend_minor = TDM_BACKEND_GET_ABI_MINOR(TDM_BACKEND_ABI_LATEST_VERSION);
+
+ TDM_INFO("TDM Backend ABI version : %d.%d",
+ tdm_backend_major, tdm_backend_minor);
if (!module->name) {
TDM_ERR("TDM backend doesn't have name");
if (!module->name) {
TDM_ERR("TDM backend doesn't have name");
return TDM_ERROR_BAD_MODULE;
}
return TDM_ERROR_BAD_MODULE;
}
- major = TDM_BACKEND_GET_ABI_MAJOR(module->abi_version);
- minor = TDM_BACKEND_GET_ABI_MINOR(module->abi_version);
+ backend_module_major = TDM_BACKEND_GET_ABI_MAJOR(module->abi_version);
+ backend_module_minor = TDM_BACKEND_GET_ABI_MINOR(module->abi_version);
TDM_INFO("TDM module name: %s", module->name);
TDM_INFO("'%s' vendor: %s", module->name, module->vendor);
TDM_INFO("TDM module name: %s", module->name);
TDM_INFO("'%s' vendor: %s", module->name, module->vendor);
- TDM_INFO("'%s' version: %d.%d", module->name, major, minor);
+ TDM_INFO("'%s' backend ABI version: %d.%d", module->name, backend_module_major, backend_module_minor);
- if (major != TDM_MAJOR_VERSION) {
- TDM_ERR("'%s' major version mismatch, %d != %d",
- module->name, major, TDM_MAJOR_VERSION);
+ if (backend_module_major > tdm_backend_major) {
+ TDM_ERR("'%s' major version(%d) is newer than %d",
+ module->name, backend_module_major, tdm_backend_major);
return TDM_ERROR_BAD_MODULE;
}
return TDM_ERROR_BAD_MODULE;
}
- if (minor > TDM_MINOR_VERSION) {
+ if (tdm_backend_major == backend_module_major &&
+ backend_module_minor > tdm_backend_minor) {
TDM_ERR("'%s' minor version(%d) is newer than %d",
TDM_ERR("'%s' minor version(%d) is newer than %d",
- module->name, minor, TDM_MINOR_VERSION);
+ module->name, backend_module_minor, tdm_backend_minor);
return TDM_ERROR_BAD_MODULE;
}
return TDM_ERROR_BAD_MODULE;
}
assert(private_display->current_module);
module = private_display->current_module->module_data;
assert(private_display->current_module);
module = private_display->current_module->module_data;
- /* FIX ME:
- Temporarily, we set the version of hwc window to 1.1 for the development.
- Originally the hwc window version is 2.0. */
- if (_check_abi_version(module, 1, 1) < 0)
+ if (_check_abi_version(module, 2, 0) < 0)
return TDM_ERROR_BAD_MODULE;
private_display->current_module->func_hwc = *func_hwc;
return TDM_ERROR_BAD_MODULE;
private_display->current_module->func_hwc = *func_hwc;
assert(private_display->current_module);
module = private_display->current_module->module_data;
assert(private_display->current_module);
module = private_display->current_module->module_data;
- /* FIX ME:
- Temporarily, we set the version of hwc window to 1.1 for the development.
- Originally the hwc window version is 2.0. */
- if (_check_abi_version(module, 1, 1) < 0)
+ if (_check_abi_version(module, 2, 0) < 0)
return TDM_ERROR_BAD_MODULE;
private_display->current_module->func_hwc_window = *func_hwc_window;
return TDM_ERROR_BAD_MODULE;
private_display->current_module->func_hwc_window = *func_hwc_window;