X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=plugins%2Fctf%2Fcommon%2Fmetadata%2Fctf-meta-translate.c;h=54b7d9713fbf4182a91916b8b16d28dda5e7680d;hb=b19ff26f04df428047676dd736bd7cc9473906fe;hp=eee4998d6e8012b4981d760bb1342cdb6aa724a5;hpb=e5be10efe4d5543ba697c7e607ca0a5c33fa3ccb;p=babeltrace.git diff --git a/plugins/ctf/common/metadata/ctf-meta-translate.c b/plugins/ctf/common/metadata/ctf-meta-translate.c index eee4998d..54b7d971 100644 --- a/plugins/ctf/common/metadata/ctf-meta-translate.c +++ b/plugins/ctf/common/metadata/ctf-meta-translate.c @@ -26,35 +26,31 @@ #include "ctf-meta-visitors.h" static inline -struct bt_private_field_class *ctf_field_class_to_ir(struct ctf_field_class *fc, +bt_field_class *ctf_field_class_to_ir(struct ctf_field_class *fc, struct ctf_trace_class *tc, struct ctf_stream_class *sc, struct ctf_event_class *ec); static inline void ctf_field_class_int_set_props(struct ctf_field_class_int *fc, - struct bt_private_field_class *ir_fc) + bt_field_class *ir_fc) { - int ret; - - ret = bt_private_field_class_integer_set_field_value_range(ir_fc, + bt_field_class_integer_set_field_value_range(ir_fc, fc->base.size); - BT_ASSERT(ret == 0); - ret = bt_private_field_class_integer_set_preferred_display_base(ir_fc, + bt_field_class_integer_set_preferred_display_base(ir_fc, fc->disp_base); - BT_ASSERT(ret == 0); } static inline -struct bt_private_field_class *ctf_field_class_int_to_ir( +bt_field_class *ctf_field_class_int_to_ir( struct ctf_field_class_int *fc) { - struct bt_private_field_class *ir_fc; + bt_field_class *ir_fc; if (fc->is_signed) { - ir_fc = bt_private_field_class_signed_integer_create(); + ir_fc = bt_field_class_signed_integer_create(); } else { - ir_fc = bt_private_field_class_unsigned_integer_create(); + ir_fc = bt_field_class_unsigned_integer_create(); } BT_ASSERT(ir_fc); @@ -63,17 +59,17 @@ struct bt_private_field_class *ctf_field_class_int_to_ir( } static inline -struct bt_private_field_class *ctf_field_class_enum_to_ir( +bt_field_class *ctf_field_class_enum_to_ir( struct ctf_field_class_enum *fc) { int ret; - struct bt_private_field_class *ir_fc; + bt_field_class *ir_fc; uint64_t i; if (fc->base.is_signed) { - ir_fc = bt_private_field_class_signed_enumeration_create(); + ir_fc = bt_field_class_signed_enumeration_create(); } else { - ir_fc = bt_private_field_class_unsigned_enumeration_create(); + ir_fc = bt_field_class_unsigned_enumeration_create(); } BT_ASSERT(ir_fc); @@ -84,11 +80,11 @@ struct bt_private_field_class *ctf_field_class_enum_to_ir( ctf_field_class_enum_borrow_mapping_by_index(fc, i); if (fc->base.is_signed) { - ret = bt_private_field_class_signed_enumeration_map_range( + ret = bt_field_class_signed_enumeration_map_range( ir_fc, mapping->label->str, mapping->range.lower.i, mapping->range.upper.i); } else { - ret = bt_private_field_class_unsigned_enumeration_map_range( + ret = bt_field_class_unsigned_enumeration_map_range( ir_fc, mapping->label->str, mapping->range.lower.u, mapping->range.upper.u); } @@ -100,45 +96,43 @@ struct bt_private_field_class *ctf_field_class_enum_to_ir( } static inline -struct bt_private_field_class *ctf_field_class_float_to_ir( +bt_field_class *ctf_field_class_float_to_ir( struct ctf_field_class_float *fc) { - struct bt_private_field_class *ir_fc; - int ret; + bt_field_class *ir_fc; - ir_fc = bt_private_field_class_real_create(); + ir_fc = bt_field_class_real_create(); BT_ASSERT(ir_fc); if (fc->base.size == 32) { - ret = bt_private_field_class_real_set_is_single_precision(ir_fc, + bt_field_class_real_set_is_single_precision(ir_fc, BT_TRUE); - BT_ASSERT(ret == 0); } return ir_fc; } static inline -struct bt_private_field_class *ctf_field_class_string_to_ir( +bt_field_class *ctf_field_class_string_to_ir( struct ctf_field_class_string *fc) { - struct bt_private_field_class *ir_fc = - bt_private_field_class_string_create(); + bt_field_class *ir_fc = + bt_field_class_string_create(); BT_ASSERT(ir_fc); return ir_fc; } static inline -struct bt_private_field_class *ctf_field_class_struct_to_ir( +bt_field_class *ctf_field_class_struct_to_ir( struct ctf_field_class_struct *fc, struct ctf_trace_class *tc, struct ctf_stream_class *sc, struct ctf_event_class *ec) { int ret; - struct bt_private_field_class *ir_fc = - bt_private_field_class_structure_create(); + bt_field_class *ir_fc = + bt_field_class_structure_create(); uint64_t i; BT_ASSERT(ir_fc); @@ -146,7 +140,7 @@ struct bt_private_field_class *ctf_field_class_struct_to_ir( for (i = 0; i < fc->members->len; i++) { struct ctf_named_field_class *named_fc = ctf_field_class_struct_borrow_member_by_index(fc, i); - struct bt_private_field_class *member_ir_fc; + bt_field_class *member_ir_fc; if (!named_fc->fc->in_ir) { continue; @@ -154,23 +148,23 @@ struct bt_private_field_class *ctf_field_class_struct_to_ir( member_ir_fc = ctf_field_class_to_ir(named_fc->fc, tc, sc, ec); BT_ASSERT(member_ir_fc); - ret = bt_private_field_class_structure_append_private_member( + ret = bt_field_class_structure_append_member( ir_fc, named_fc->name->str, member_ir_fc); BT_ASSERT(ret == 0); - bt_object_put_ref(member_ir_fc); + bt_field_class_put_ref(member_ir_fc); } return ir_fc; } static inline -struct bt_private_field_class *borrow_ir_ft_from_field_path( +bt_field_class *borrow_ir_ft_from_field_path( struct ctf_field_path *field_path, struct ctf_trace_class *tc, struct ctf_stream_class *sc, struct ctf_event_class *ec) { - struct bt_private_field_class *ir_fc = NULL; + bt_field_class *ir_fc = NULL; struct ctf_field_class *fc = ctf_field_path_borrow_field_class( field_path, tc, sc, ec); @@ -184,90 +178,90 @@ struct bt_private_field_class *borrow_ir_ft_from_field_path( } static inline -struct bt_private_field_class *ctf_field_class_variant_to_ir( +bt_field_class *ctf_field_class_variant_to_ir( struct ctf_field_class_variant *fc, struct ctf_trace_class *tc, struct ctf_stream_class *sc, struct ctf_event_class *ec) { int ret; - struct bt_private_field_class *ir_fc = - bt_private_field_class_variant_create(); + bt_field_class *ir_fc = + bt_field_class_variant_create(); uint64_t i; BT_ASSERT(ir_fc); - ret = bt_private_field_class_variant_set_selector_private_field_class( + ret = bt_field_class_variant_set_selector_field_class( ir_fc, borrow_ir_ft_from_field_path(&fc->tag_path, tc, sc, ec)); BT_ASSERT(ret == 0); for (i = 0; i < fc->options->len; i++) { struct ctf_named_field_class *named_fc = ctf_field_class_variant_borrow_option_by_index(fc, i); - struct bt_private_field_class *option_ir_fc; + bt_field_class *option_ir_fc; BT_ASSERT(named_fc->fc->in_ir); option_ir_fc = ctf_field_class_to_ir(named_fc->fc, tc, sc, ec); BT_ASSERT(option_ir_fc); - ret = bt_private_field_class_variant_append_private_option( + ret = bt_field_class_variant_append_option( ir_fc, named_fc->name->str, option_ir_fc); BT_ASSERT(ret == 0); - bt_object_put_ref(option_ir_fc); + bt_field_class_put_ref(option_ir_fc); } return ir_fc; } static inline -struct bt_private_field_class *ctf_field_class_array_to_ir( +bt_field_class *ctf_field_class_array_to_ir( struct ctf_field_class_array *fc, struct ctf_trace_class *tc, struct ctf_stream_class *sc, struct ctf_event_class *ec) { - struct bt_private_field_class *ir_fc; - struct bt_private_field_class *elem_ir_fc; + bt_field_class *ir_fc; + bt_field_class *elem_ir_fc; if (fc->base.is_text) { - ir_fc = bt_private_field_class_string_create(); + ir_fc = bt_field_class_string_create(); BT_ASSERT(ir_fc); goto end; } elem_ir_fc = ctf_field_class_to_ir(fc->base.elem_fc, tc, sc, ec); BT_ASSERT(elem_ir_fc); - ir_fc = bt_private_field_class_static_array_create(elem_ir_fc, + ir_fc = bt_field_class_static_array_create(elem_ir_fc, fc->length); BT_ASSERT(ir_fc); - bt_object_put_ref(elem_ir_fc); + bt_field_class_put_ref(elem_ir_fc); end: return ir_fc; } static inline -struct bt_private_field_class *ctf_field_class_sequence_to_ir( +bt_field_class *ctf_field_class_sequence_to_ir( struct ctf_field_class_sequence *fc, struct ctf_trace_class *tc, struct ctf_stream_class *sc, struct ctf_event_class *ec) { int ret; - struct bt_private_field_class *ir_fc; - struct bt_private_field_class *elem_ir_fc; + bt_field_class *ir_fc; + bt_field_class *elem_ir_fc; if (fc->base.is_text) { - ir_fc = bt_private_field_class_string_create(); + ir_fc = bt_field_class_string_create(); BT_ASSERT(ir_fc); goto end; } elem_ir_fc = ctf_field_class_to_ir(fc->base.elem_fc, tc, sc, ec); BT_ASSERT(elem_ir_fc); - ir_fc = bt_private_field_class_dynamic_array_create(elem_ir_fc); + ir_fc = bt_field_class_dynamic_array_create(elem_ir_fc); BT_ASSERT(ir_fc); - bt_object_put_ref(elem_ir_fc); + bt_field_class_put_ref(elem_ir_fc); BT_ASSERT(ir_fc); - ret = bt_private_field_class_dynamic_array_set_length_private_field_class( + ret = bt_field_class_dynamic_array_set_length_field_class( ir_fc, borrow_ir_ft_from_field_path(&fc->length_path, tc, sc, ec)); BT_ASSERT(ret == 0); @@ -277,12 +271,12 @@ end: } static inline -struct bt_private_field_class *ctf_field_class_to_ir(struct ctf_field_class *fc, +bt_field_class *ctf_field_class_to_ir(struct ctf_field_class *fc, struct ctf_trace_class *tc, struct ctf_stream_class *sc, struct ctf_event_class *ec) { - struct bt_private_field_class *ir_fc = NULL; + bt_field_class *ir_fc = NULL; BT_ASSERT(fc); BT_ASSERT(fc->in_ir); @@ -342,12 +336,12 @@ end: } static inline -struct bt_private_field_class *scope_ctf_field_class_to_ir(struct ctf_field_class *fc, +bt_field_class *scope_ctf_field_class_to_ir(struct ctf_field_class *fc, struct ctf_trace_class *tc, struct ctf_stream_class *sc, struct ctf_event_class *ec) { - struct bt_private_field_class *ir_fc = NULL; + bt_field_class *ir_fc = NULL; if (!fc) { goto end; @@ -397,61 +391,60 @@ end: } static inline -struct bt_private_event_class *ctf_event_class_to_ir(struct ctf_event_class *ec, - struct bt_private_stream_class *ir_sc, struct ctf_trace_class *tc, +bt_event_class *ctf_event_class_to_ir(struct ctf_event_class *ec, + bt_stream_class *ir_sc, struct ctf_trace_class *tc, struct ctf_stream_class *sc) { int ret; - struct bt_private_event_class *ir_ec = NULL; + bt_event_class *ir_ec = NULL; if (ec->is_translated) { - ir_ec = bt_private_stream_class_borrow_private_event_class_by_id( + ir_ec = bt_stream_class_borrow_event_class_by_id( ir_sc, ec->id); BT_ASSERT(ir_ec); goto end; } - ir_ec = bt_private_event_class_create_with_id(ir_sc, ec->id); + ir_ec = bt_event_class_create_with_id(ir_sc, ec->id); BT_ASSERT(ir_ec); - bt_object_put_ref(ir_ec); + bt_event_class_put_ref(ir_ec); if (ec->spec_context_fc) { - struct bt_private_field_class *ir_fc = scope_ctf_field_class_to_ir( + bt_field_class *ir_fc = scope_ctf_field_class_to_ir( ec->spec_context_fc, tc, sc, ec); if (ir_fc) { - ret = bt_private_event_class_set_specific_context_private_field_class( + ret = bt_event_class_set_specific_context_field_class( ir_ec, ir_fc); BT_ASSERT(ret == 0); - bt_object_put_ref(ir_fc); + bt_field_class_put_ref(ir_fc); } } if (ec->payload_fc) { - struct bt_private_field_class *ir_fc = scope_ctf_field_class_to_ir( + bt_field_class *ir_fc = scope_ctf_field_class_to_ir( ec->payload_fc, tc, sc, ec); if (ir_fc) { - ret = bt_private_event_class_set_payload_private_field_class(ir_ec, + ret = bt_event_class_set_payload_field_class(ir_ec, ir_fc); BT_ASSERT(ret == 0); - bt_object_put_ref(ir_fc); + bt_field_class_put_ref(ir_fc); } } if (ec->name->len > 0) { - ret = bt_private_event_class_set_name(ir_ec, ec->name->str); + ret = bt_event_class_set_name(ir_ec, ec->name->str); BT_ASSERT(ret == 0); } if (ec->emf_uri->len > 0) { - ret = bt_private_event_class_set_emf_uri(ir_ec, ec->emf_uri->str); + ret = bt_event_class_set_emf_uri(ir_ec, ec->emf_uri->str); BT_ASSERT(ret == 0); } if (ec->log_level != -1) { - ret = bt_private_event_class_set_log_level(ir_ec, ec->log_level); - BT_ASSERT(ret == 0); + bt_event_class_set_log_level(ir_ec, ec->log_level); } ec->is_translated = true; @@ -463,69 +456,66 @@ end: static inline -struct bt_private_stream_class *ctf_stream_class_to_ir(struct ctf_stream_class *sc, - struct bt_private_trace *ir_trace, struct ctf_trace_class *tc) +bt_stream_class *ctf_stream_class_to_ir(struct ctf_stream_class *sc, + bt_trace_class *ir_tc, struct ctf_trace_class *tc) { int ret; - struct bt_private_stream_class *ir_sc = NULL; + bt_stream_class *ir_sc = NULL; struct ctf_field_class_int *int_fc; if (sc->is_translated) { - ir_sc = bt_private_trace_borrow_private_stream_class_by_id( - ir_trace, sc->id); + ir_sc = bt_trace_class_borrow_stream_class_by_id(ir_tc, sc->id); BT_ASSERT(ir_sc); goto end; } - ir_sc = bt_private_stream_class_create_with_id(ir_trace, sc->id); + ir_sc = bt_stream_class_create_with_id(ir_tc, sc->id); BT_ASSERT(ir_sc); - bt_object_put_ref(ir_sc); + bt_stream_class_put_ref(ir_sc); if (sc->packet_context_fc) { - struct bt_private_field_class *ir_fc = scope_ctf_field_class_to_ir( + bt_field_class *ir_fc = scope_ctf_field_class_to_ir( sc->packet_context_fc, tc, sc, NULL); if (ir_fc) { - ret = bt_private_stream_class_set_packet_context_private_field_class( + ret = bt_stream_class_set_packet_context_field_class( ir_sc, ir_fc); BT_ASSERT(ret == 0); - bt_object_put_ref(ir_fc); + bt_field_class_put_ref(ir_fc); } } if (sc->event_header_fc) { - struct bt_private_field_class *ir_fc = scope_ctf_field_class_to_ir( + bt_field_class *ir_fc = scope_ctf_field_class_to_ir( sc->event_header_fc, tc, sc, NULL); if (ir_fc) { - ret = bt_private_stream_class_set_event_header_private_field_class( + ret = bt_stream_class_set_event_header_field_class( ir_sc, ir_fc); BT_ASSERT(ret == 0); - bt_object_put_ref(ir_fc); + bt_field_class_put_ref(ir_fc); } } if (sc->event_common_context_fc) { - struct bt_private_field_class *ir_fc = scope_ctf_field_class_to_ir( + bt_field_class *ir_fc = scope_ctf_field_class_to_ir( sc->event_common_context_fc, tc, sc, NULL); if (ir_fc) { - ret = bt_private_stream_class_set_event_common_context_private_field_class( + ret = bt_stream_class_set_event_common_context_field_class( ir_sc, ir_fc); BT_ASSERT(ret == 0); - bt_object_put_ref(ir_fc); + bt_field_class_put_ref(ir_fc); } } - ret = bt_private_stream_class_set_assigns_automatic_event_class_id(ir_sc, + bt_stream_class_set_assigns_automatic_event_class_id(ir_sc, BT_FALSE); - BT_ASSERT(ret == 0); - ret = bt_private_stream_class_set_assigns_automatic_stream_id(ir_sc, BT_FALSE); - BT_ASSERT(ret == 0); + bt_stream_class_set_assigns_automatic_stream_id(ir_sc, BT_FALSE); if (sc->default_clock_class) { - ret = bt_private_stream_class_set_default_clock_class(ir_sc, - bt_clock_class_borrow_from_private(sc->default_clock_class)); + ret = bt_stream_class_set_default_clock_class(ir_sc, + sc->default_clock_class); BT_ASSERT(ret == 0); } @@ -533,9 +523,8 @@ struct bt_private_stream_class *ctf_stream_class_to_ir(struct ctf_stream_class * "events_discarded"); if (int_fc) { if (int_fc->meaning == CTF_FIELD_CLASS_MEANING_DISC_EV_REC_COUNTER_SNAPSHOT) { - ret = bt_private_stream_class_set_packets_have_discarded_event_counter_snapshot( + bt_stream_class_set_packets_have_discarded_event_counter_snapshot( ir_sc, BT_TRUE); - BT_ASSERT(ret == 0); } } @@ -543,9 +532,8 @@ struct bt_private_stream_class *ctf_stream_class_to_ir(struct ctf_stream_class * "packet_seq_num"); if (int_fc) { if (int_fc->meaning == CTF_FIELD_CLASS_MEANING_PACKET_COUNTER_SNAPSHOT) { - ret = bt_private_stream_class_set_packets_have_packet_counter_snapshot( + bt_stream_class_set_packets_have_packet_counter_snapshot( ir_sc, BT_TRUE); - BT_ASSERT(ret == 0); } } @@ -553,9 +541,8 @@ struct bt_private_stream_class *ctf_stream_class_to_ir(struct ctf_stream_class * "timestamp_begin"); if (int_fc) { if (int_fc->meaning == CTF_FIELD_CLASS_MEANING_PACKET_BEGINNING_TIME) { - ret = bt_private_stream_class_set_packets_have_default_beginning_clock_value( + bt_stream_class_set_packets_have_default_beginning_clock_value( ir_sc, BT_TRUE); - BT_ASSERT(ret == 0); } } @@ -563,9 +550,8 @@ struct bt_private_stream_class *ctf_stream_class_to_ir(struct ctf_stream_class * "timestamp_end"); if (int_fc) { if (int_fc->meaning == CTF_FIELD_CLASS_MEANING_PACKET_END_TIME) { - ret = bt_private_stream_class_set_packets_have_default_end_clock_value( + bt_stream_class_set_packets_have_default_end_clock_value( ir_sc, BT_TRUE); - BT_ASSERT(ret == 0); } } @@ -577,7 +563,7 @@ end: } static inline -int ctf_trace_class_to_ir(struct bt_private_trace *ir_trace, +int ctf_trace_class_to_ir(bt_trace_class *ir_tc, struct ctf_trace_class *tc) { int ret = 0; @@ -588,29 +574,19 @@ int ctf_trace_class_to_ir(struct bt_private_trace *ir_trace, } if (tc->packet_header_fc) { - struct bt_private_field_class *ir_fc = scope_ctf_field_class_to_ir( + bt_field_class *ir_fc = scope_ctf_field_class_to_ir( tc->packet_header_fc, tc, NULL, NULL); if (ir_fc) { - ret = bt_private_trace_set_packet_header_private_field_class( - ir_trace, ir_fc); + ret = bt_trace_class_set_packet_header_field_class( + ir_tc, ir_fc); BT_ASSERT(ret == 0); - bt_object_put_ref(ir_fc); - } - } - - if (tc->name->len > 0) { - ret = bt_private_trace_set_name(ir_trace, tc->name->str); - if (ret) { - goto end; + bt_field_class_put_ref(ir_fc); } } if (tc->is_uuid_set) { - ret = bt_private_trace_set_uuid(ir_trace, tc->uuid); - if (ret) { - goto end; - } + bt_trace_class_set_uuid(ir_tc, tc->uuid); } for (i = 0; i < tc->env_entries->len; i++) { @@ -619,13 +595,13 @@ int ctf_trace_class_to_ir(struct bt_private_trace *ir_trace, switch (env_entry->type) { case CTF_TRACE_CLASS_ENV_ENTRY_TYPE_INT: - ret = bt_private_trace_set_private_environment_entry_integer( - ir_trace, env_entry->name->str, + ret = bt_trace_class_set_environment_entry_integer( + ir_tc, env_entry->name->str, env_entry->value.i); break; case CTF_TRACE_CLASS_ENV_ENTRY_TYPE_STR: - ret = bt_private_trace_set_private_environment_entry_string( - ir_trace, env_entry->name->str, + ret = bt_trace_class_set_environment_entry_string( + ir_tc, env_entry->name->str, env_entry->value.str->str); break; default: @@ -637,27 +613,23 @@ int ctf_trace_class_to_ir(struct bt_private_trace *ir_trace, } } - ret = bt_private_trace_set_assigns_automatic_stream_class_id(ir_trace, + bt_trace_class_set_assigns_automatic_stream_class_id(ir_tc, BT_FALSE); - if (ret) { - goto end; - } - tc->is_translated = true; - tc->ir_tc = ir_trace; + tc->ir_tc = ir_tc; end: return ret; } BT_HIDDEN -int ctf_trace_class_translate(struct bt_private_trace *ir_trace, +int ctf_trace_class_translate(bt_trace_class *ir_tc, struct ctf_trace_class *tc) { int ret = 0; uint64_t i; - ret = ctf_trace_class_to_ir(ir_trace, tc); + ret = ctf_trace_class_to_ir(ir_tc, tc); if (ret) { goto end; } @@ -665,9 +637,9 @@ int ctf_trace_class_translate(struct bt_private_trace *ir_trace, for (i = 0; i < tc->stream_classes->len; i++) { uint64_t j; struct ctf_stream_class *sc = tc->stream_classes->pdata[i]; - struct bt_private_stream_class *ir_sc; + bt_stream_class *ir_sc; - ir_sc = ctf_stream_class_to_ir(sc, ir_trace, tc); + ir_sc = ctf_stream_class_to_ir(sc, ir_tc, tc); if (!ir_sc) { ret = -1; goto end; @@ -675,7 +647,7 @@ int ctf_trace_class_translate(struct bt_private_trace *ir_trace, for (j = 0; j < sc->event_classes->len; j++) { struct ctf_event_class *ec = sc->event_classes->pdata[j]; - struct bt_private_event_class *ir_ec; + bt_event_class *ir_ec; ir_ec = ctf_event_class_to_ir(ec, ir_sc, tc, sc); if (!ir_ec) {