trace_uuid -> uuid and add packet metadata support
[babeltrace.git] / include / babeltrace / ctf / metadata.h
index 5e7fd30e11dc4f66373fcdf2cf1a2b9f2fed688f..6ebd0c7c298d16cc7f188be56a8273a06c9a551f 100644 (file)
 #include <glib.h>
 
 #define CTF_MAGIC      0xC1FC1FC1
+#define TSDL_MAGIC     0x75D11D57
 
 struct ctf_trace;
+struct ctf_stream_class;
 struct ctf_stream;
 struct ctf_event;
 
+struct ctf_stream {
+       struct ctf_stream_class *stream_class;
+       uint64_t timestamp;                     /* Current timestamp, in ns */
+};
+
 struct ctf_file_stream {
        uint64_t stream_id;
-       struct ctf_stream *stream;
-       struct ctf_stream_pos pos;                      /* current stream position */
+       struct ctf_stream stream;
+       struct ctf_stream_pos pos;      /* current stream position */
 };
 
 #define CTF_TRACE_SET_FIELD(ctf_trace, field)                          \
@@ -63,7 +70,7 @@ struct ctf_trace {
        struct declaration_scope *declaration_scope;
        /* innermost definition scope. to be used as parent of stream. */
        struct definition_scope *definition_scope;
-       GPtrArray *streams;                     /* Array of struct ctf_stream pointers */
+       GPtrArray *streams;                     /* Array of struct ctf_stream_class pointers */
        struct ctf_file_stream metadata;
 
        /* Declarations only used when parsing */
@@ -105,7 +112,7 @@ struct ctf_trace {
                (ctf_stream)->(field);                                  \
        })
 
-struct ctf_stream {
+struct ctf_stream_class {
        struct ctf_trace *trace;
        /* parent is lexical scope conaining the stream scope */
        struct declaration_scope *declaration_scope;
@@ -149,7 +156,7 @@ struct ctf_stream {
 
 struct ctf_event {
        /* stream mapped by stream_id */
-       struct ctf_stream *stream;
+       struct ctf_stream_class *stream;
        /* parent is lexical scope conaining the event scope */
        struct declaration_scope *declaration_scope;
 
@@ -172,4 +179,15 @@ struct ctf_event {
        } field_mask;
 };
 
+struct metadata_packet_header {
+       uint32_t magic;                 /* 0x75D11D57 */
+       uint8_t  uuid[16];              /* Unique Universal Identifier */
+       uint32_t checksum;              /* 0 if unused */
+       uint32_t content_size;          /* in bits */
+       uint32_t packet_size;           /* in bits */
+       uint8_t  compression_scheme;    /* 0 if unused */
+       uint8_t  encryption_scheme;     /* 0 if unused */
+       uint8_t  checksum_scheme;       /* 0 if unused */
+};
+
 #endif /* _BABELTRACE_CTF_METADATA_H */
This page took 0.024172 seconds and 4 git commands to generate.