Commit | Line | Data |
---|---|---|
ca3417e6 PP |
1 | /* CTF 1.8 */ |
2 | ||
3 | typealias integer {size = 8; align = 8;} := uint8_t; | |
4 | typealias integer {size = 16; align = 16;} := uint16_t; | |
5 | typealias integer {size = 32; align = 32;} := uint32_t; | |
6 | typealias integer {size = 64; align = 64;} := uint64_t; | |
7 | typealias integer {size = 8; align = 8; signed = true;} := int8_t; | |
8 | typealias integer {size = 16; align = 16; signed = true;} := int16_t; | |
9 | typealias integer {size = 32; align = 32; signed = true;} := int32_t; | |
10 | typealias integer {size = 64; align = 64; signed = true;} := int64_t; | |
11 | ||
12 | typealias floating_point { | |
13 | exp_dig = 8; | |
14 | mant_dig = 24; | |
15 | align = 32; | |
16 | } := float; | |
17 | ||
18 | typealias floating_point { | |
19 | exp_dig = 11; | |
20 | mant_dig = 53; | |
21 | align = 64; | |
22 | } := double; | |
23 | ||
24 | trace { | |
25 | major = 1; | |
26 | minor = 8; | |
27 | byte_order = le; | |
28 | ||
29 | packet.header := struct { | |
30 | uint32_t magic; | |
31 | uint32_t stream_id; | |
32 | }; | |
33 | }; | |
34 | ||
35 | env { | |
36 | domain = "bare"; | |
37 | tracer_name = "barectf"; | |
38 | tracer_major = 0; | |
39 | tracer_minor = 1; | |
40 | tracer_patchlevel = 0; | |
41 | }; | |
42 | ||
43 | clock { | |
44 | name = my_clock; | |
45 | freq = 1000000000; | |
46 | offset = 0; | |
47 | }; | |
48 | ||
49 | typealias integer { | |
50 | size = 64; | |
51 | map = clock.my_clock.value; | |
52 | } := my_clock_int_t; | |
53 | ||
54 | stream { | |
55 | id = 0; | |
56 | ||
57 | packet.context := struct { | |
58 | my_clock_int_t timestamp_begin; | |
59 | my_clock_int_t timestamp_end; | |
60 | uint64_t packet_size; | |
61 | uint64_t content_size; | |
409386a4 | 62 | uint32_t events_discarded; |
ca3417e6 PP |
63 | }; |
64 | ||
65 | event.header := struct { | |
66 | uint32_t id; | |
67 | my_clock_int_t timestamp; | |
68 | }; | |
69 | }; | |
70 | ||
71 | /* an event with a simple 32-bit unsigned integer field */ | |
72 | event { | |
73 | name = "simple_uint32"; | |
74 | id = 0; | |
75 | stream_id = 0; | |
76 | ||
77 | fields := struct { | |
78 | uint32_t _value; | |
79 | }; | |
80 | }; | |
81 | ||
82 | /* an event with a simple 16-bit signed integer field */ | |
83 | event { | |
84 | name = "simple_int16"; | |
85 | id = 1; | |
86 | stream_id = 0; | |
87 | ||
88 | fields := struct { | |
89 | int16_t _value; | |
90 | }; | |
91 | }; | |
92 | ||
93 | /* | |
94 | * An event with a simple IEEE 754 (see type alias above) single-precision | |
95 | * floating point number. | |
96 | */ | |
97 | event { | |
98 | name = "simple_float"; | |
99 | id = 2; | |
100 | stream_id = 0; | |
101 | ||
102 | fields := struct { | |
103 | float _value; | |
104 | }; | |
105 | }; | |
106 | ||
107 | /* an event with a simple NULL-terminated string field */ | |
108 | event { | |
109 | name = "simple_string"; | |
110 | id = 3; | |
111 | stream_id = 0; | |
112 | ||
113 | fields := struct { | |
114 | string _value; | |
115 | }; | |
116 | }; | |
117 | ||
118 | /* custom enumeration, of which the key is a 8-bit unsigned integer */ | |
119 | typealias enum : uint8_t { | |
120 | NEW, /* 0 */ | |
121 | TERMINATED, /* 1 */ | |
122 | READY, /* 2 */ | |
123 | RUNNING, /* 3 */ | |
124 | WAITING, /* 4 */ | |
125 | } := state_t; | |
126 | ||
127 | /* an event with a simple enumeration (see type alias above) field */ | |
128 | event { | |
129 | name = "simple_enum"; | |
130 | id = 4; | |
131 | stream_id = 0; | |
132 | ||
133 | fields := struct { | |
134 | state_t _state; | |
135 | }; | |
136 | }; | |
137 | ||
138 | /* an event with a few fields */ | |
139 | event { | |
140 | name = "a_few_fields"; | |
141 | id = 5; | |
142 | stream_id = 0; | |
143 | ||
144 | fields := struct { | |
145 | int32_t _int32; | |
146 | uint16_t _uint16; | |
147 | double _double; | |
148 | string _string; | |
149 | state_t _state; | |
150 | }; | |
151 | }; | |
152 | ||
153 | /* an event with bit-packed integer fields */ | |
154 | event { | |
155 | name = "bit_packed_integers"; | |
156 | id = 6; | |
157 | stream_id = 0; | |
158 | ||
159 | fields := struct { | |
160 | integer {size = 1;} _uint1; | |
161 | integer {size = 1; signed = true;} _int1; | |
162 | integer {size = 2;} _uint2; | |
163 | integer {size = 3; signed = true;} _int3; | |
164 | integer {size = 4;} _uint4; | |
165 | integer {size = 5; signed = true;} _int5; | |
166 | integer {size = 6;} _uint6; | |
167 | integer {size = 7; signed = true;} _int7; | |
168 | integer {size = 8; align = 1;} _uint8; | |
169 | }; | |
170 | }; |