| 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) |