Add empty plug-in hooks to prevent their elimination by the linker
[babeltrace.git] / formats / ctf-text / ctf-text.c
index 2ba082303c50941a9beda71ee30cf6ce9fdfcee6..f6151617450c760e2e9fe354aa64c497e39d6a54 100644 (file)
@@ -31,6 +31,7 @@
 #include <babeltrace/ctf/metadata.h>
 #include <babeltrace/babeltrace-internal.h>
 #include <babeltrace/ctf/events-internal.h>
+#include <babeltrace/trace-debug-info.h>
 #include <inttypes.h>
 #include <sys/mman.h>
 #include <errno.h>
@@ -42,7 +43,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 
-#define NSEC_PER_SEC 1000000000ULL
+#define NSEC_PER_SEC 1000000000LL
 
 int opt_all_field_names,
        opt_scope_field_names,
@@ -59,7 +60,8 @@ int opt_all_field_names,
        opt_loglevel_field,
        opt_emf_field,
        opt_callsite_field,
-       opt_delta_field = 1;
+       opt_delta_field = 1,
+       opt_debug_info_full_path;
 
 enum field_item {
        ITEM_SCOPE,
@@ -121,12 +123,12 @@ static GQuark Q_STREAM_PACKET_CONTEXT_TIMESTAMP_BEGIN,
 static
 void __attribute__((constructor)) init_quarks(void)
 {
-       Q_STREAM_PACKET_CONTEXT_TIMESTAMP_BEGIN = g_quark_from_static_string("stream.packet.context.timestamp_begin");
-       Q_STREAM_PACKET_CONTEXT_TIMESTAMP_END = g_quark_from_static_string("stream.packet.context.timestamp_end");
-       Q_STREAM_PACKET_CONTEXT_EVENTS_DISCARDED = g_quark_from_static_string("stream.packet.context.events_discarded");
-       Q_STREAM_PACKET_CONTEXT_CONTENT_SIZE = g_quark_from_static_string("stream.packet.context.content_size");
-       Q_STREAM_PACKET_CONTEXT_PACKET_SIZE = g_quark_from_static_string("stream.packet.context.packet_size");
-       Q_STREAM_PACKET_CONTEXT_PACKET_SEQ_NUM = g_quark_from_static_string("stream.packet.context.packet_seq_num");
+       Q_STREAM_PACKET_CONTEXT_TIMESTAMP_BEGIN = g_quark_from_string("stream.packet.context.timestamp_begin");
+       Q_STREAM_PACKET_CONTEXT_TIMESTAMP_END = g_quark_from_string("stream.packet.context.timestamp_end");
+       Q_STREAM_PACKET_CONTEXT_EVENTS_DISCARDED = g_quark_from_string("stream.packet.context.events_discarded");
+       Q_STREAM_PACKET_CONTEXT_CONTENT_SIZE = g_quark_from_string("stream.packet.context.content_size");
+       Q_STREAM_PACKET_CONTEXT_PACKET_SIZE = g_quark_from_string("stream.packet.context.packet_size");
+       Q_STREAM_PACKET_CONTEXT_PACKET_SEQ_NUM = g_quark_from_string("stream.packet.context.packet_seq_num");
 }
 
 static
@@ -137,6 +139,14 @@ struct ctf_callsite_dups *ctf_trace_callsite_lookup(struct ctf_trace *trace,
                        (gpointer) (unsigned long) callsite_name);
 }
 
+void bt_ctf_text_hook(void)
+{
+       /*
+        * Dummy function to prevent the linker from discarding this format as
+        * "unused" in static builds.
+        */
+}
+
 int print_field(struct bt_definition *definition)
 {
        /* Print all fields in verbose mode */
@@ -237,7 +247,6 @@ const char *print_loglevel(int value)
 
 static
 int ctf_text_write_event(struct bt_stream_pos *ppos, struct ctf_stream_definition *stream)
-                        
 {
        struct ctf_text_stream_pos *pos =
                container_of(ppos, struct ctf_text_stream_pos, parent);
@@ -266,6 +275,8 @@ int ctf_text_write_event(struct bt_stream_pos *ppos, struct ctf_stream_definitio
                return -EINVAL;
        }
 
+       handle_debug_info_event(stream_class, event);
+
        if (stream->has_timestamp) {
                set_field_names_print(pos, ITEM_HEADER);
                if (pos->print_names)
@@ -544,6 +555,10 @@ struct bt_trace_descriptor *ctf_text_open_trace(const char *path, int flags,
        FILE *fp;
 
        pos = g_new0(struct ctf_text_stream_pos, 1);
+       if (!pos) {
+               goto error;
+       }
+       init_trace_descriptor(&pos->trace_descriptor);
 
        pos->last_real_timestamp = -1ULL;
        pos->last_cycles_timestamp = -1ULL;
@@ -598,7 +613,7 @@ void __attribute__((constructor)) ctf_text_init(void)
 {
        int ret;
 
-       ctf_text_format.name = g_quark_from_static_string("text");
+       ctf_text_format.name = g_quark_from_string("text");
        ret = bt_register_format(&ctf_text_format);
        assert(!ret);
 }
This page took 0.024884 seconds and 4 git commands to generate.