#define BT_LOG_TAG "PLUGIN/SINK.CTF.FS/TRANSLATE-TRACE-IR-TO-CTF-IR"
#include "logging/comp-logging.h"
+#include "translate-trace-ir-to-ctf-ir.h"
+
#include <babeltrace2/babeltrace.h>
#include "common/macros.h"
#include "common/common.h"
tgt_fc = ctx->cur_ec->payload_fc;
break;
default:
- abort();
+ bt_common_abort();
}
i = 0;
break;
}
default:
- abort();
+ bt_common_abort();
}
if (named_fc) {
g_string_assign(tgt_field_ref, "event.fields");
break;
default:
- abort();
+ bt_common_abort();
}
BT_ASSERT(fc);
bt_field_path_item_index_get_index(fp_item));
break;
default:
- abort();
+ bt_common_abort();
}
BT_ASSERT(named_fc);
tgt_field_ref, user_tgt_fc);
if (ret) {
*create_before = true;
- ret = 0;
goto end;
}
}
break;
}
default:
- abort();
+ bt_common_abort();
}
}
}
/* Borrow option's ranges */
- if (ir_var_fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR) {
+ if (ir_var_fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD) {
/* No ranges: we're done */
goto end;
- } if (ir_var_fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_SELECTOR) {
- const bt_field_class_variant_with_selector_unsigned_option *var_opt =
- bt_field_class_variant_with_selector_unsigned_borrow_option_by_index_const(
+ } if (ir_var_fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD) {
+ const bt_field_class_variant_with_selector_field_integer_unsigned_option *var_opt =
+ bt_field_class_variant_with_selector_field_integer_unsigned_borrow_option_by_index_const(
ir_var_fc, opt_i);
opt_ranges =
- bt_field_class_variant_with_selector_unsigned_option_borrow_ranges_const(
+ bt_field_class_variant_with_selector_field_integer_unsigned_option_borrow_ranges_const(
var_opt);
} else {
- const bt_field_class_variant_with_selector_signed_option *var_opt =
- bt_field_class_variant_with_selector_signed_borrow_option_by_index_const(
+ const bt_field_class_variant_with_selector_field_integer_signed_option *var_opt =
+ bt_field_class_variant_with_selector_field_integer_signed_borrow_option_by_index_const(
ir_var_fc, opt_i);
opt_ranges =
- bt_field_class_variant_with_selector_signed_option_borrow_ranges_const(
+ bt_field_class_variant_with_selector_field_integer_signed_option_borrow_ranges_const(
var_opt);
}
/* Find corresponding mapping by range set in selector FC */
for (i = 0; i < bt_field_class_enumeration_get_mapping_count(ir_tag_fc);
i++) {
- if (ir_var_fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_SELECTOR) {
+ if (ir_var_fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD) {
const bt_field_class_enumeration_mapping *mapping_base;
const bt_field_class_enumeration_unsigned_mapping *mapping;
const bt_integer_range_set_unsigned *mapping_ranges;
mapping_ranges = bt_field_class_enumeration_unsigned_mapping_borrow_ranges_const(
mapping);
- if (bt_integer_range_set_unsigned_compare(opt_ranges,
+ if (bt_integer_range_set_unsigned_is_equal(opt_ranges,
mapping_ranges)) {
/* We have a winner */
mapping_base =
mapping_ranges = bt_field_class_enumeration_signed_mapping_borrow_ranges_const(
mapping);
- if (bt_integer_range_set_signed_compare(opt_ranges,
+ if (bt_integer_range_set_signed_is_equal(opt_ranges,
mapping_ranges)) {
/* We have a winner */
mapping_base =
ir_fc_type = bt_field_class_get_type(fc->base.ir_fc);
opt_count = bt_field_class_variant_get_option_count(fc->base.ir_fc);
- if (ir_fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_SELECTOR ||
- ir_fc_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_SELECTOR) {
- ir_selector_field_path = bt_field_class_variant_with_selector_borrow_selector_field_path_const(
+ if (bt_field_class_type_is(ir_fc_type,
+ BT_FIELD_CLASS_TYPE_VARIANT_WITH_SELECTOR_FIELD)) {
+ ir_selector_field_path = bt_field_class_variant_with_selector_field_borrow_selector_field_path_const(
fc->base.ir_fc);
BT_ASSERT(ir_selector_field_path);
}
bt_field_class_type type = bt_field_class_get_type(
tgt_fc->ir_fc);
- if (type != BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION &&
- type != BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION) {
+ if (!bt_field_class_type_is(type,
+ BT_FIELD_CLASS_TYPE_ENUMERATION)) {
fc->tag_is_before = true;
goto validate_opts;
}
opt_name_b =
bt_value_array_borrow_element_by_index_const(
prot_opt_names, j);
- if (bt_value_compare(opt_name_a, opt_name_b)) {
+ if (bt_value_is_equal(opt_name_a, opt_name_b)) {
/*
* Variant FC option names are not
* unique when protected.
BT_ASSERT(fc);
/* Resolve length field class before appending to parent */
- resolve_field_class(ctx,
- bt_field_class_array_dynamic_borrow_length_field_path_const(
- fc->base.base.ir_fc),
- fc->length_ref, &fc->length_is_before, NULL);
+ if (bt_field_class_get_type(cur_path_stack_top(ctx)->ir_fc) ==
+ BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD) {
+ resolve_field_class(ctx,
+ bt_field_class_array_dynamic_with_length_field_borrow_length_field_path_const(
+ fc->base.base.ir_fc),
+ fc->length_ref, &fc->length_is_before, NULL);
+ }
append_to_parent_field_class(ctx, (void *) fc);
ret = cur_path_stack_push(ctx, UINT64_C(-1), NULL, false, elem_ir_fc,
int translate_field_class(struct ctx *ctx)
{
int ret;
+ bt_field_class_type ir_fc_type =
+ bt_field_class_get_type(cur_path_stack_top(ctx)->ir_fc);
- switch (bt_field_class_get_type(cur_path_stack_top(ctx)->ir_fc)) {
- case BT_FIELD_CLASS_TYPE_BOOL:
+ if (ir_fc_type == BT_FIELD_CLASS_TYPE_BOOL) {
ret = translate_bool_field_class(ctx);
- break;
- case BT_FIELD_CLASS_TYPE_BIT_ARRAY:
+ } else if (ir_fc_type == BT_FIELD_CLASS_TYPE_BIT_ARRAY) {
ret = translate_bit_array_field_class(ctx);
- break;
- case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER:
- case BT_FIELD_CLASS_TYPE_SIGNED_INTEGER:
- case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION:
- case BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION:
+ } else if (bt_field_class_type_is(ir_fc_type,
+ BT_FIELD_CLASS_TYPE_INTEGER)) {
ret = translate_integer_field_class(ctx);
- break;
- case BT_FIELD_CLASS_TYPE_REAL:
+ } else if (bt_field_class_type_is(ir_fc_type,
+ BT_FIELD_CLASS_TYPE_REAL)) {
ret = translate_real_field_class(ctx);
- break;
- case BT_FIELD_CLASS_TYPE_STRING:
+ } else if (ir_fc_type == BT_FIELD_CLASS_TYPE_STRING) {
ret = translate_string_field_class(ctx);
- break;
- case BT_FIELD_CLASS_TYPE_STRUCTURE:
+ } else if (ir_fc_type == BT_FIELD_CLASS_TYPE_STRUCTURE) {
ret = translate_structure_field_class(ctx);
- break;
- case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
+ } else if (ir_fc_type == BT_FIELD_CLASS_TYPE_STATIC_ARRAY) {
ret = translate_static_array_field_class(ctx);
- break;
- case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY:
+ } else if (bt_field_class_type_is(ir_fc_type,
+ BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY)) {
ret = translate_dynamic_array_field_class(ctx);
- break;
- case BT_FIELD_CLASS_TYPE_OPTION:
+ } else if (bt_field_class_type_is(ir_fc_type,
+ BT_FIELD_CLASS_TYPE_OPTION)) {
ret = translate_option_field_class(ctx);
- break;
- case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR:
- case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_SELECTOR:
- case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_SELECTOR:
+ } else if (bt_field_class_type_is(ir_fc_type,
+ BT_FIELD_CLASS_TYPE_VARIANT)) {
ret = translate_variant_field_class(ctx);
- break;
- default:
- abort();
+ } else {
+ bt_common_abort();
}
return ret;
break;
}
default:
- abort();
+ bt_common_abort();
}
BT_ASSERT(field_ref);
return ret;
}
+static
bool default_clock_class_name_exists(struct fs_sink_ctf_trace *trace,
const char *name)
{
(*out_sc)->default_clock_class_name->str)) {
/* Invalid: create a new name */
make_unique_default_clock_class_name(*out_sc);
- ret = 0;
}
} else {
/* No name: create a name */