--- metadata /* CTF 1.8 */ typealias integer { size = 8; align = 8; signed = false; } := uint8_t; trace { major = 1; minor = 8; byte_order = le; }; clock { name = cycle_counter_test; uuid = "5b59e7db-5e49-418a-9adf-e1adfdf571c4"; freq = 1000000000; }; typealias integer { size = 8; align = 8; signed = false; map = clock.cycle_counter_test.value; } := cc_count_t; struct packet_context { cc_count_t timestamp_begin; cc_count_t timestamp_end; uint8_t content_size; uint8_t packet_size; }; struct event_header { uint8_t id; cc_count_t timestamp; }; stream { event.header := struct event_header; packet.context := struct packet_context; }; event { name = "second_trace_event"; id = 0; fields := struct { uint8_t value; }; }; --- second_trace_stream_0 !macro packet(ts_beg, event_id) [ ts_beg : 8] # timestamp begin [ ts_beg + 1 : 8] # timestamp end [8 * (end - beg) : 8] # content size in bits [8 * (end - beg) : 8] # packet size in bits [ event_id : 8] # event id [ ts_beg : 8] # timestamp [ 123 : 8] # value field !end { p1_s0_ts = 110 } { p2_s0_ts = 120 } m:packet(p1_s0_ts, 0) m:packet(p2_s0_ts, 0) --- index/second_trace_stream_0.idx !be [0xC1F1DCC1 : 32] # Magic number [ 1 : 32] # Major [ 0 : 32] # Minor [ 56 : 32] # Index entry size (56 bytes) # Packet 1 !macro entry(beg_label, end_label, ts_beg) [ beg_label : 64] # offset in bytes [8 * (end_label - beg_label) : 64] # total size in bits [8 * (end_label - beg_label) : 64] # content size in bits [ ts_beg : 64] # timestamp begin [ ts_beg + 1 : 64] # timestamp end [ 0 : 64] # events discarded [ 0 : 64] # stream class id !end m:entry(p1_s0, p1_s0_end, p1_s0_ts) m:entry(p2_s0, p2_s0_end, p2_s0_ts)