1/* CTF 1.8 */
2typealias integer { size = 8; align = 8; signed = true; } := int8_t;
3typealias integer { size = 8; align = 8; signed = false; } := uint8_t;
4typealias integer { size = 16; align = 8; signed = false; } := uint16_t;
5typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
6typealias integer { size = 32; align = 8; signed = true; } := int32_t;
7typealias integer { size = 64; align = 8; signed = false; } := uint64_t;
8typealias integer { size = 8; align = 8; signed = false; encoding = ASCII; } := ctf_bounded_string_t;
9
10struct event_header {
11	uint32_t timestamp;
12	uint8_t id;
13};
14
15trace {
16	major = 1;
17	minor = 8;
18	byte_order = le;
19};
20
21stream {
22	event.header := struct event_header;
23};
24
25event {
26	name = thread_switched_out;
27	id = 0x10;
28	fields := struct {
29		uint32_t thread_id;
30		ctf_bounded_string_t name[20];
31	};
32};
33
34event {
35	name = thread_switched_in;
36	id = 0x11;
37	fields := struct {
38		uint32_t thread_id;
39		ctf_bounded_string_t name[20];
40	};
41};
42
43event {
44	name = thread_priority_set;
45	id = 0x12;
46	fields := struct {
47		uint32_t thread_id;
48		ctf_bounded_string_t name[20];
49		int8_t prio;
50	};
51
52};
53
54event {
55	name = thread_create;
56	id = 0x13;
57	fields := struct {
58		uint32_t thread_id;
59		ctf_bounded_string_t name[20];
60	};
61};
62
63event {
64	name = thread_abort;
65	id = 0x14;
66	fields := struct {
67		uint32_t thread_id;
68		ctf_bounded_string_t name[20];
69	};
70};
71
72event {
73	name = thread_suspend;
74	id = 0x15;
75	fields := struct {
76		uint32_t thread_id;
77		ctf_bounded_string_t name[20];
78	};
79};
80
81event {
82	name = thread_resume;
83	id = 0x16;
84	fields := struct {
85		uint32_t thread_id;
86		ctf_bounded_string_t name[20];
87	};
88};
89event {
90        name = thread_ready;
91        id = 0x17;
92        fields := struct {
93                uint32_t thread_id;
94				ctf_bounded_string_t name[20];
95        };
96};
97
98event {
99	name = thread_pending;
100	id = 0x18;
101	fields := struct {
102		uint32_t thread_id;
103		ctf_bounded_string_t name[20];
104	};
105};
106
107event {
108	name = thread_info;
109	id = 0x19;
110	fields := struct {
111		uint32_t thread_id;
112		ctf_bounded_string_t name[20];
113		uint32_t stack_base;
114		uint32_t stack_size;
115	};
116};
117
118event {
119	name = thread_name_set;
120	id = 0x1a;
121	fields := struct {
122		uint32_t thread_id;
123		ctf_bounded_string_t name[20];
124	};
125};
126
127event {
128	name = isr_enter;
129	id = 0x1B;
130};
131
132event {
133	name = isr_exit;
134	id = 0x1C;
135};
136
137event {
138	name = isr_exit_to_scheduler;
139	id = 0x1D;
140};
141
142event {
143	name = idle;
144	id = 0x1E;
145};
146
147event {
148	name = semaphore_init;
149	id = 0x21;
150	fields := struct {
151		uint32_t id;
152		int32_t ret;
153	};
154};
155
156event {
157	name = semaphore_give_enter;
158	id = 0x22;
159	fields := struct {
160		uint32_t id;
161	};
162};
163
164event {
165	name = semaphore_give_exit;
166	id = 0x23;
167	fields := struct {
168		uint32_t id;
169	};
170};
171
172event {
173	name = semaphore_take_enter;
174	id = 0x24;
175	fields := struct {
176		uint32_t id;
177		uint32_t timeout;
178	};
179};
180
181event {
182	name = semaphore_take_exit;
183	id = 0x26;
184	fields := struct {
185		uint32_t id;
186		uint32_t timeout;
187		int32_t ret;
188	};
189};
190
191
192event {
193	name = semaphore_take_blocking;
194	id = 0x25;
195	fields := struct {
196		uint32_t id;
197		uint32_t timeout;
198	};
199};
200
201
202event {
203	name = semaphore_reset;
204	id = 0x27;
205	fields := struct {
206		uint32_t id;
207	};
208};
209
210event {
211	name = mutex_init;
212	id = 0x28;
213	fields := struct {
214		uint32_t id;
215		int32_t ret;
216	};
217};
218
219event {
220	name = mutex_lock_enter;
221	id = 0x29;
222	fields := struct {
223		uint32_t id;
224		uint32_t timeout;
225	};
226};
227
228event {
229	name = mutex_lock_blocking;
230	id = 0x2A;
231	fields := struct {
232		uint32_t id;
233		uint32_t timeout;
234	};
235};
236
237event {
238	name = mutex_lock_exit;
239	id = 0x2B;
240	fields := struct {
241		uint32_t id;
242		uint32_t timeout;
243		int32_t ret;
244	};
245};
246
247event {
248	name = mutex_unlock_enter;
249	id = 0x2C;
250	fields := struct {
251		uint32_t id;
252	};
253};
254
255event {
256	name = mutex_unlock_exit;
257	id = 0x2D;
258	fields := struct {
259		uint32_t id;
260	};
261};
262
263event {
264	name = timer_init;
265	id = 0x2E;
266	fields := struct {
267		uint32_t id;
268	};
269};
270
271event {
272	name = timer_start;
273	id = 0x2F;
274	fields := struct {
275		uint32_t id;
276		uint32_t duration;
277		uint32_t period;
278	};
279};
280
281event {
282	name = timer_stop;
283	id = 0x30;
284	fields := struct {
285		uint32_t id;
286	};
287};
288
289event {
290	name = timer_status_sync_enter;
291	id = 0x31;
292	fields := struct {
293		uint32_t id;
294	};
295};
296
297event {
298	name = timer_status_sync_blocking;
299	id = 0x32;
300	fields := struct {
301		uint32_t id;
302	};
303};
304
305event {
306	name = timer_status_sync_exit;
307	id = 0x33;
308	fields := struct {
309		uint32_t id;
310		uint32_t result;
311	};
312};
313