define the backend ABI version
[platform/core/uifw/libtdm.git] / src / tdm.c
index bc59c3c..6f938ec 100644 (file)
--- a/src/tdm.c
+++ b/src/tdm.c
@@ -745,10 +745,14 @@ static pthread_mutex_t gLock = PTHREAD_MUTEX_INITIALIZER;
 static tdm_error
 _tdm_display_check_module(tdm_backend_module *module)
 {
-       int major, minor;
+       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");
@@ -760,22 +764,23 @@ _tdm_display_check_module(tdm_backend_module *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("'%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;
        }
 
-       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",
-                               module->name, minor, TDM_MINOR_VERSION);
+                               module->name, backend_module_minor, tdm_backend_minor);
                return TDM_ERROR_BAD_MODULE;
        }