#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) \
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 */
(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;
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;
} 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 */
+} __attribute__((packed));
+
#endif /* _BABELTRACE_CTF_METADATA_H */