X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=plugins%2Fctf%2Fcommon%2Fmetadata%2Fdecoder.c;h=aad6aa1e571c2bd54bbe1d2087d630d8e6742d30;hb=53ac34280b8e354671b94046b4cb39a643931926;hp=8837da7769e168019a7dd22dbb2ad1db136ccbae;hpb=8d9f9e97f8ec3fd205745e3c49c283e614623db1;p=babeltrace.git diff --git a/plugins/ctf/common/metadata/decoder.c b/plugins/ctf/common/metadata/decoder.c index 8837da77..aad6aa1e 100644 --- a/plugins/ctf/common/metadata/decoder.c +++ b/plugins/ctf/common/metadata/decoder.c @@ -41,6 +41,7 @@ struct ctf_metadata_decoder { uint8_t uuid[16]; bool is_uuid_set; int bo; + struct ctf_metadata_decoder_config config; }; struct packet_header { @@ -327,22 +328,35 @@ int ctf_metadata_decoder_packetized_file_stream_to_buf( BT_HIDDEN struct ctf_metadata_decoder *ctf_metadata_decoder_create( - int64_t clock_class_offset_ns, const char *name) + const struct ctf_metadata_decoder_config *config, + const char *name) { struct ctf_metadata_decoder *mdec = g_new0(struct ctf_metadata_decoder, 1); + struct ctf_metadata_decoder_config default_config = { + .clock_class_offset_s = 0, + .clock_class_offset_ns = 0, + .strict = false, + }; + + if (!config) { + config = &default_config; + } BT_LOGD("Creating CTF metadata decoder: " - "clock-class-offset-ns=%" PRId64 ", name=\"%s\"", - clock_class_offset_ns, name); + "clock-class-offset-s=%" PRId64 ", " + "clock-class-offset-ns=%" PRId64 ", " + "strict=%d, name=\"%s\"", + config->clock_class_offset_s, config->clock_class_offset_ns, + config->strict, name); if (!mdec) { BT_LOGE_STR("Failed to allocate one CTF metadata decoder."); goto end; } - mdec->visitor = ctf_visitor_generate_ir_create(clock_class_offset_ns, - name); + mdec->config = *config; + mdec->visitor = ctf_visitor_generate_ir_create(config, name); if (!mdec->visitor) { BT_LOGE("Failed to create a CTF IR metadata AST visitor: " "mdec-addr=%p", mdec); @@ -351,9 +365,12 @@ struct ctf_metadata_decoder *ctf_metadata_decoder_create( goto end; } - BT_LOGD("Created CTF metadata decoder: " - "clock-class-offset-ns=%" PRId64 ", name=\"%s\", addr=%p", - clock_class_offset_ns, name, mdec); + BT_LOGD("Creating CTF metadata decoder: " + "clock-class-offset-s=%" PRId64 ", " + "clock-class-offset-ns=%" PRId64 ", " + "strict=%d, name=\"%s\", addr=%p", + config->clock_class_offset_s, config->clock_class_offset_ns, + config->strict, name, mdec); end: return mdec;