struct ctf_stream {
struct ctf_stream_class *stream_class;
uint64_t timestamp; /* Current timestamp, in ns */
+ uint64_t event_id; /* Current event ID */
+ int has_timestamp;
+ uint64_t stream_id;
struct definition_struct *trace_packet_header;
struct definition_struct *stream_packet_context;
struct definition_struct *event_fields;
};
-struct ctf_file_stream {
- uint64_t stream_id;
- struct ctf_stream stream;
- struct ctf_stream_pos pos; /* current stream position */
-};
-
#define CTF_TRACE_SET_FIELD(ctf_trace, field) \
do { \
(ctf_trace)->field_mask |= CTF_TRACE_ ## field; \
/* innermost definition scope. to be used as parent of stream. */
struct definition_scope *definition_scope;
GPtrArray *streams; /* Array of struct ctf_stream_class pointers */
- struct ctf_file_stream metadata;
+ struct ctf_stream *metadata;
- /* Declarations only used when parsing */
struct declaration_struct *packet_header_decl;
uint64_t major;
/* Heap of streams, ordered to always get the lowest timestam */
struct ptr_heap *stream_heap;
+ char path[PATH_MAX];
};
#define CTF_STREAM_SET_FIELD(ctf_stream, field) \
GPtrArray *events_by_id; /* Array of struct ctf_event pointers indexed by id */
GHashTable *event_quark_to_id; /* GQuark to numeric id */
- /* Declarations only used when parsing */
struct declaration_struct *packet_context_decl;
struct declaration_struct *event_header_decl;
struct declaration_struct *event_context_decl;
CTF_STREAM_stream_id = (1 << 0),
} field_mask;
- GPtrArray *files; /* Array of struct ctf_file_stream pointers */
+ GPtrArray *streams; /* Array of struct ctf_stream pointers */
};
#define CTF_EVENT_SET_FIELD(ctf_event, field) \
/* parent is lexical scope conaining the event scope */
struct declaration_scope *declaration_scope;
- /* Declarations only used when parsing */
struct declaration_struct *context_decl;
struct declaration_struct *fields_decl;