Commit | Line | Data |
---|---|---|
839df1da SM |
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 | struct packet_context { | |
13 | uint8_t timestamp_begin; | |
14 | uint8_t timestamp_end; | |
15 | uint8_t content_size; | |
16 | uint8_t packet_size; | |
17 | }; | |
18 | ||
19 | struct event_header { | |
20 | uint8_t id; | |
21 | uint8_t timestamp; | |
22 | }; | |
23 | ||
24 | stream { | |
25 | event.header := struct event_header; | |
26 | packet.context := struct packet_context; | |
27 | }; | |
28 | ||
29 | event { | |
30 | name = "event1"; | |
31 | id = 1; | |
32 | fields := struct { | |
33 | uint8_t len; | |
34 | uint8_t seq[len]; | |
35 | }; | |
36 | }; | |
37 | ||
38 | event { | |
39 | name = "event2"; | |
40 | id = 2; | |
41 | fields := struct { | |
42 | uint8_t len; | |
43 | uint8_t seq[len]; | |
44 | }; | |
45 | }; | |
46 | ||
47 | --- channel0_0 | |
48 | !macro packet(ts_beg, event_id) | |
49 | <beg> | |
50 | [ ts_beg : 8] # timestamp begin | |
51 | [ ts_beg + 1 : 8] # timestamp end | |
52 | [8 * (end - beg) : 8] # content size in bits | |
53 | [8 * (end - beg) : 8] # packet size in bits | |
54 | ||
55 | [ event_id : 8] # event id | |
56 | [ ts_beg : 8] # timestamp | |
57 | [ 0 : 8] # len field | |
58 | <end> | |
59 | !end | |
60 | ||
61 | { p1_ts = 10 } | |
62 | { p2_ts = 20 } | |
63 | ||
64 | <p1> | |
65 | m:packet(p1_ts, 1) | |
66 | <p1_end> | |
67 | ||
68 | <p2> | |
69 | m:packet(p2_ts, 2) | |
70 | <p2_end> | |
71 | ||
72 | --- index/channel0_0.idx | |
73 | !be | |
74 | ||
75 | [0xC1F1DCC1 : 32] # Magic number | |
76 | [ 1 : 32] # Major | |
77 | [ 0 : 32] # Minor | |
78 | [ 56 : 32] # Index entry size (56 bytes) | |
79 | ||
80 | # Packet 1 | |
81 | !macro entry(beg_label, end_label, ts_beg) | |
82 | [ beg_label : 64] # offset in bytes | |
83 | [8 * (end_label - beg_label) : 64] # total size in bits | |
84 | [8 * (end_label - beg_label) : 64] # content size in bits | |
85 | [ ts_beg : 64] # timestamp begin | |
86 | [ ts_beg + 1 : 64] # timestamp end | |
87 | [ 0 : 64] # events discarded | |
88 | [ 0 : 64] # stream class id | |
89 | !end | |
90 | ||
91 | m:entry(p1, p1_end, p1_ts) | |
92 | m:entry(p2, p2_end, p2_ts) |