Commit | Line | Data |
---|---|---|
c362e0f6 JG |
1 | --- metadata |
2 | /* CTF 1.8 */ | |
3 | ||
4 | typealias integer { size = 8; align = 8; signed = false; } := uint8_t; | |
5 | ||
6 | trace { | |
7 | major = 1; | |
8 | minor = 8; | |
9 | byte_order = le; | |
10 | }; | |
11 | ||
12 | clock { | |
13 | name = cycle_counter_test; | |
14 | uuid = "5b59e7db-5e49-418a-9adf-e1adfdf571c4"; | |
15 | freq = 1000000000; | |
16 | }; | |
17 | ||
18 | typealias integer { size = 8; align = 8; signed = false; map = clock.cycle_counter_test.value; } := cc_count_t; | |
19 | ||
20 | struct packet_context { | |
21 | cc_count_t timestamp_begin; | |
22 | cc_count_t timestamp_end; | |
23 | uint8_t content_size; | |
24 | uint8_t packet_size; | |
25 | }; | |
26 | ||
27 | struct event_header { | |
28 | uint8_t id; | |
29 | cc_count_t timestamp; | |
30 | }; | |
31 | ||
32 | stream { | |
33 | event.header := struct event_header; | |
34 | packet.context := struct packet_context; | |
35 | }; | |
36 | ||
37 | event { | |
38 | name = "second_trace_event"; | |
39 | id = 0; | |
40 | fields := struct { | |
41 | uint8_t value; | |
42 | }; | |
43 | }; | |
44 | ||
45 | --- second_trace_stream_0 | |
46 | !macro packet(ts_beg, event_id) | |
47 | <beg> | |
48 | [ ts_beg : 8] # timestamp begin | |
49 | [ ts_beg + 1 : 8] # timestamp end | |
50 | [8 * (end - beg) : 8] # content size in bits | |
51 | [8 * (end - beg) : 8] # packet size in bits | |
52 | ||
53 | [ event_id : 8] # event id | |
54 | [ ts_beg : 8] # timestamp | |
55 | [ 123 : 8] # value field | |
56 | <end> | |
57 | !end | |
58 | ||
59 | { p1_s0_ts = 110 } | |
60 | { p2_s0_ts = 120 } | |
61 | ||
62 | <p1_s0> | |
63 | m:packet(p1_s0_ts, 0) | |
64 | <p1_s0_end> | |
65 | ||
66 | <p2_s0> | |
67 | m:packet(p2_s0_ts, 0) | |
68 | <p2_s0_end> | |
69 | ||
70 | --- index/second_trace_stream_0.idx | |
71 | !be | |
72 | ||
73 | [0xC1F1DCC1 : 32] # Magic number | |
74 | [ 1 : 32] # Major | |
75 | [ 0 : 32] # Minor | |
76 | [ 56 : 32] # Index entry size (56 bytes) | |
77 | ||
78 | # Packet 1 | |
79 | !macro entry(beg_label, end_label, ts_beg) | |
80 | [ beg_label : 64] # offset in bytes | |
81 | [8 * (end_label - beg_label) : 64] # total size in bits | |
82 | [8 * (end_label - beg_label) : 64] # content size in bits | |
83 | [ ts_beg : 64] # timestamp begin | |
84 | [ ts_beg + 1 : 64] # timestamp end | |
85 | [ 0 : 64] # events discarded | |
86 | [ 0 : 64] # stream class id | |
87 | !end | |
88 | ||
89 | m:entry(p1_s0, p1_s0_end, p1_s0_ts) | |
90 | m:entry(p2_s0, p2_s0_end, p2_s0_ts) |