return 0;
}
-static halcc_compatibility_e is_compatible(int major, int minor, unsigned int abi_version)
+static halcc_compatibility_e is_compatible(int platform_major, int platform_minor,
+ int backend_major, int backend_minor)
{
- if (abi_version == HAL_ABI_VERSION_UNKNOWN)
+ if (platform_major != backend_major)
+ return HALCC_INCOMPATIBLE;
+
+ if (platform_minor < backend_minor)
return HALCC_INCOMPATIBLE;
return HALCC_COMPATIBLE;
for (module = HAL_MODULE_UNKNOWN; module < HAL_MODULE_END; ++module) {
char module_name[128] = { 0 , };
- unsigned int abi_version;
+ int backend_major, backend_minor;
int ret;
ret = hal_common_get_backend_module_name(module, module_name, sizeof(module_name));
if (ret != 0)
continue;
- abi_version = hal_common_get_backend_abi_version(module);
- if (abi_version == HAL_ABI_VERSION_UNKNOWN)
- break;
+ ret = hal_common_get_backend_version(module, &backend_major, &backend_minor);
+ if (ret != 0)
+ continue;
- compatible = is_compatible(major, minor, abi_version);
+ compatible = is_compatible(major, minor, backend_major, backend_minor);
break;
}