return container;
}
-const char *bt_ctf_field_enumeration_get_mapping_name(
- struct bt_ctf_field *field)
+struct bt_ctf_field_type_enumeration_mapping_iterator *
+bt_ctf_field_enumeration_get_mappings(struct bt_ctf_field *field)
{
int ret;
- const char *name = NULL;
struct bt_ctf_field *container = NULL;
struct bt_ctf_field_type *container_type = NULL;
struct bt_ctf_field_type_integer *integer_type = NULL;
- struct bt_ctf_field_type_enumeration *enumeration_type = NULL;
+ struct bt_ctf_field_type_enumeration_mapping_iterator *iter = NULL;
container = bt_ctf_field_enumeration_get_container(field);
if (!container) {
integer_type = container_of(container_type,
struct bt_ctf_field_type_integer, parent);
- enumeration_type = container_of(field->type,
- struct bt_ctf_field_type_enumeration, parent);
if (!integer_type->declaration.signedness) {
uint64_t value;
+
ret = bt_ctf_field_unsigned_integer_get_value(container,
&value);
if (ret) {
goto error_put_container_type;
}
-
- name = bt_ctf_field_type_enumeration_get_mapping_name_unsigned(
- enumeration_type, value);
+ iter = bt_ctf_field_type_enumeration_find_mappings_by_unsigned_value(
+ field->type, value);
} else {
int64_t value;
+
ret = bt_ctf_field_signed_integer_get_value(container,
&value);
if (ret) {
goto error_put_container_type;
}
-
- name = bt_ctf_field_type_enumeration_get_mapping_name_signed(
- enumeration_type, value);
+ iter = bt_ctf_field_type_enumeration_find_mappings_by_signed_value(
+ field->type, value);
}
error_put_container_type:
error_put_container:
bt_put(container);
end:
- return name;
+ return iter;
}
int bt_ctf_field_signed_integer_get_value(struct bt_ctf_field *field,
for (i = 0; i < array->elements->len; i++) {
ret = bt_ctf_field_validate(array->elements->pdata[i]);
if (ret) {
- fprintf(stderr, "Failed to validate sequence field #%zu\n", i);
+ fprintf(stderr, "Failed to validate array field #%zu\n", i);
goto end;
}
}
array = container_of(field, struct bt_ctf_field_array, parent);
for (i = 0; i < array->elements->len; i++) {
- is_set = bt_ctf_field_validate(array->elements->pdata[i]);
+ is_set = bt_ctf_field_is_set(array->elements->pdata[i]);
if (!is_set) {
goto end;
}