typedef struct halcc_version {
int major;
- union {
- /**
- * Can be used interchangeably.
- * min_minor might be useful if max_minor is specified.
- */
- int minor;
- int min_minor;
- };
- int max_minor;
+ int minor;
} halcc_version;
typedef struct halcc_interface {
int ret;
halcc_hal_get_name(dependency, &dependency_hal_name);
- halcc_hal_get_version(dependency, &dependency_hal_major, &dependency_hal_minor, NULL);
+ halcc_hal_get_version(dependency, &dependency_hal_major, &dependency_hal_minor);
ret = halcc_manifest_find_hal_forward_compatible(manifest,
dependency_hal_name, dependency_hal_major, dependency_hal_minor,
return 0;
}
-int halcc_hal_set_version(halcc_hal *hal, int major, int min_minor, int max_minor)
+int halcc_hal_set_version(halcc_hal *hal, int major, int minor)
{
if (!hal) {
printf("Invalid parameter\n");
}
hal->version.major = major;
- hal->version.min_minor = min_minor;
- hal->version.max_minor = max_minor;
+ hal->version.minor = minor;
return 0;
}
-int halcc_hal_get_version(halcc_hal *hal, int *major, int *min_minor, int *max_minor)
+int halcc_hal_get_version(halcc_hal *hal, int *major, int *minor)
{
- if (!hal || !major || !min_minor) {
+ if (!hal || !major || !minor) {
printf("Invalid parameter\n");
return -EINVAL;
}
*major = hal->version.major;
- *min_minor = hal->version.min_minor;
- if (max_minor)
- *max_minor = hal->version.max_minor;
+ *minor = hal->version.minor;
return 0;
}
void halcc_hal_free(halcc_hal *hal);
int halcc_hal_set_name(halcc_hal *hal, const char *hal_name);
int halcc_hal_get_name(halcc_hal *hal, const char **hal_name);
-int halcc_hal_set_version(halcc_hal *hal, int major, int min_minor, int max_minor);
-int halcc_hal_get_version(halcc_hal *hal, int *major, int *min_minor, int *max_minor);
+int halcc_hal_set_version(halcc_hal *hal, int major, int minor);
+int halcc_hal_get_version(halcc_hal *hal, int *major, int *minor);
int halcc_hal_set_transport(halcc_hal *hal, halcc_transport_e transport);
int halcc_hal_get_transport(halcc_hal *hal, halcc_transport_e *transport);
int halcc_hal_add_dependency(halcc_hal *hal, halcc_hal *dependency);
if (ret != 0)
printf("Failed to halcc_hal_set_name(), name=%s, ret=%d\n", name, ret);
} else if (xmlStrEqual(child->name, "version")) {
- int major, min_minor, max_minor;
+ int major, minor;
int scanned;
__xmlchar__ xmlChar *version = xmlNodeGetContent(child);
- scanned = sscanf(version, "%d.%d-%d", &major, &min_minor, &max_minor);
- switch (scanned) {
- case 2: // 3.5 is equal to 3.5-5
- max_minor = min_minor;
- ret = halcc_hal_set_version(hal, major, min_minor, max_minor);
- break;
- case 3: // 3.5-8
- ret = halcc_hal_set_version(hal, major, min_minor, max_minor);
- break;
- default:
- ret = -EINVAL;
- break;
+ scanned = sscanf(version, "%d.%d", &major, &minor);
+ if (scanned != 2) {
+ printf("Invalid version format %s\n", version);
+ continue;
}
+ ret = halcc_hal_set_version(hal, major, minor);
if (ret != 0)
printf("Failed to halcc_hal_set_version(), ret=%d\n", ret);
} else if (xmlStrEqual(child->name, "transport")) {
}
halcc_hal_get_name(h, &hal_name);
- halcc_hal_get_version(h, &hal_major, &hal_minor, NULL);
+ halcc_hal_get_version(h, &hal_major, &hal_minor);
if (halcc_manifest_find_hal(manifest, hal_name, hal_major, hal_minor, NULL) == 0) {
halcc_hal_free(h);
* }
*/
- if (halcc_hal_get_version(hal, &manifest_major, &manifest_minor, NULL) < 0) {
+ if (halcc_hal_get_version(hal, &manifest_major, &manifest_minor) < 0) {
error_desc = "Invalid manifest version";
goto out;
}
ASSERT_EQ(ret, 0);
ASSERT_STREQ(hal_name, "hal.something");
- ret = halcc_hal_get_version(hal, &major, &minor, NULL);
+ ret = halcc_hal_get_version(hal, &major, &minor);
ASSERT_EQ(ret, 0);
ASSERT_EQ(major, 2);
ASSERT_EQ(minor, 34);
ASSERT_EQ(ret, 0);
ASSERT_STREQ(hal_name, "hal.something");
- ret = halcc_hal_get_version(hal, &major, &minor, NULL);
+ ret = halcc_hal_get_version(hal, &major, &minor);
ASSERT_EQ(ret, 0);
ASSERT_EQ(major, 2);
ASSERT_EQ(minor, 34);
ASSERT_EQ(ret, 0);
ASSERT_STREQ(hal_name, "HAL_MODULE_BAR");
- ret = halcc_hal_get_version(hal, &major, &minor, NULL);
+ ret = halcc_hal_get_version(hal, &major, &minor);
ASSERT_EQ(ret, 0);
ASSERT_EQ(major, 2);
ASSERT_EQ(minor, 2);