-struct ctf_trace;
-struct ctf_stream;
-struct ctf_event;
-
-struct ctf_stream_file {
- /* Information about stream backing file */
- int fd;
- char *mmap; /* current stream mmap */
- struct stream_pos pos; /* current stream position */
-};
-
-#define CTF_TRACE_SET_FIELD(ctf_trace, field) \
- do { \
- (ctf_trace)->field_mask |= CTF_TRACE_ ## field; \
- } while (0)
-
-#define CTF_TRACE_FIELD_IS_SET(ctf_trace, field) \
- ((ctf_trace)->field_mask & CTF_TRACE_ ## field)
-
-#define CTF_TRACE_GET_FIELD(ctf_trace, field) \
- ({ \
- assert(CTF_TRACE_FIELD_IS_SET(ctf_trace, field)); \
- (ctf_trace)->(field); \
- })
-
-
-struct ctf_trace {
- /* root scope */
- struct declaration_scope *root_declaration_scope;
-
- struct declaration_scope *declaration_scope;
- GPtrArray *streams; /* Array of struct ctf_stream pointers*/
- struct ctf_stream_file metadata;
-
- uint64_t major;
- uint64_t minor;
- uuid_t uuid;
- int byte_order;
-
- enum { /* Fields populated mask */
- CTF_TRACE_major = (1U << 0),
- CTF_TRACE_minor = (1U << 1),
- CTF_TRACE_uuid = (1U << 2),
- } field_mask;
-
- /* Information about trace backing directory and files */
- DIR *dir;
- int dirfd;
- int flags; /* open flags */
-};
-
-#define CTF_STREAM_SET_FIELD(ctf_stream, field) \
- do { \
- (ctf_stream)->field_mask |= CTF_STREAM_ ## field; \
- } while (0)