L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
ktrace_events.h
1/* Note, automatically generated from Fiasco binary */
2#pragma once
3
4enum L4_ktrace_tbuf_entry_fixed
5{
6 l4_ktrace_tbuf_unused = 0,
7 l4_ktrace_tbuf_pf = 1,
8 l4_ktrace_tbuf_ipc = 2,
9 l4_ktrace_tbuf_ipc_res = 3,
10 l4_ktrace_tbuf_ipc_trace = 4,
11 l4_ktrace_tbuf_ke = 5,
12 l4_ktrace_tbuf_ke_reg = 6,
13 l4_ktrace_tbuf_breakpoint = 7,
14 l4_ktrace_tbuf_ke_bin = 8,
15 l4_ktrace_tbuf_dynentries = 9,
16 l4_ktrace_tbuf_max = 128,
17 l4_ktrace_tbuf_hidden = 128,
18};
19
20typedef unsigned long L4_ktrace_t__Address;
21typedef unsigned long L4_ktrace_t__Cap_index;
22typedef void L4_ktrace_t__Context;
23typedef void L4_ktrace_t__Context__Drq;
24typedef unsigned L4_ktrace_t__Context__Drq_log__Type;
25typedef unsigned L4_ktrace_t__Cpu_number;
26typedef void L4_ktrace_t__Irq_base;
27typedef void L4_ktrace_t__Irq_chip;
28typedef void L4_ktrace_t__Kobject;
29typedef unsigned long L4_ktrace_t__L4_error;
30typedef unsigned long L4_ktrace_t__L4_msg_tag;
31typedef unsigned long L4_ktrace_t__L4_obj_ref;
32typedef unsigned L4_ktrace_t__L4_timeout_pair;
33typedef unsigned long L4_ktrace_t__Mword;
34typedef void L4_ktrace_t__Rcu_item;
35typedef void L4_ktrace_t__Sched_context;
36typedef long L4_ktrace_t__Smword;
37typedef void L4_ktrace_t__Space;
38typedef unsigned int L4_ktrace_t__Unsigned32;
39typedef unsigned long long L4_ktrace_t__Unsigned64;
40typedef unsigned char L4_ktrace_t__Unsigned8;
41typedef void L4_ktrace_t__cxx__Type_info;
42
43#if __riscv_xlen == 32
44typedef struct __attribute__((packed))
45{
46 L4_ktrace_t__Mword _number; /* 0+4 */
47 L4_ktrace_t__Address _ip; /* 4+4 */
48 L4_ktrace_t__Unsigned64 _tsc; /* 8+8 */
49 L4_ktrace_t__Context *_ctx; /* 16+4 */
50 L4_ktrace_t__Unsigned32 _pmc1; /* 20+4 */
51 L4_ktrace_t__Unsigned32 _pmc2; /* 24+4 */
52 L4_ktrace_t__Unsigned32 _kclock; /* 28+4 */
53 L4_ktrace_t__Unsigned8 _type; /* 32+1 */
54 L4_ktrace_t__Unsigned8 _cpu; /* 33+1 */
55 union __attribute__((__packed__))
56 {
57 struct __attribute__((__packed__))
58 {
59 char __pre_pad[2];
60 void *func; /* 36+4 */
61 L4_ktrace_t__Context *thread; /* 40+4 */
62 L4_ktrace_t__Context__Drq *rq; /* 44+4 */
63 L4_ktrace_t__Cpu_number target_cpu; /* 48+4 */
64 L4_ktrace_t__Context__Drq_log__Type type; /* 52+4 */
65 char wait; /* 56+1 */
66 } drq; /* 64 */
67 struct __attribute__((__packed__))
68 {
69 char __pre_pad[2];
70 L4_ktrace_t__Mword state; /* 36+4 */
71 L4_ktrace_t__Mword ip; /* 40+4 */
72 L4_ktrace_t__Mword sp; /* 44+4 */
73 L4_ktrace_t__Mword space; /* 48+4 */
74 L4_ktrace_t__Mword err; /* 52+4 */
75 unsigned char type; /* 56+1 */
76 unsigned char trap; /* 57+1 */
77 } vcpu; /* 64 */
78 struct __attribute__((__packed__))
79 {
80 char __pre_pad[2];
81 L4_ktrace_t__Smword op; /* 36+4 */
82 L4_ktrace_t__Cap_index buffer; /* 40+4 */
83 L4_ktrace_t__Mword id; /* 44+4 */
84 L4_ktrace_t__Mword ram; /* 48+4 */
85 L4_ktrace_t__Mword newo; /* 52+4 */
86 } factory; /* 56 */
87 struct __attribute__((__packed__))
88 {
89 char __pre_pad[2];
90 L4_ktrace_t__Mword gate_dbg_id; /* 36+4 */
91 L4_ktrace_t__Mword thread_dbg_id; /* 40+4 */
92 L4_ktrace_t__Mword label; /* 44+4 */
93 } gate; /* 48 */
94 struct __attribute__((__packed__))
95 {
96 char __pre_pad[2];
97 L4_ktrace_t__Irq_base *obj; /* 36+4 */
98 L4_ktrace_t__Irq_chip *chip; /* 40+4 */
99 L4_ktrace_t__Mword pin; /* 44+4 */
100 } irq; /* 48 */
101 struct __attribute__((__packed__))
102 {
103 char __pre_pad[2];
104 L4_ktrace_t__Kobject *obj; /* 36+4 */
105 L4_ktrace_t__Mword id; /* 40+4 */
106 L4_ktrace_t__cxx__Type_info *type; /* 44+4 */
107 L4_ktrace_t__Mword ram; /* 48+4 */
108 } destroy; /* 56 */
109 struct __attribute__((__packed__))
110 {
111 char __pre_pad[2];
112 L4_ktrace_t__Cpu_number cpu; /* 36+4 */
113 L4_ktrace_t__Rcu_item *item; /* 40+4 */
114 void *cb; /* 44+4 */
115 unsigned char event; /* 48+1 */
116 } rcu; /* 56 */
117 struct __attribute__((__packed__))
118 {
119 char __pre_pad[2];
120 L4_ktrace_t__Mword id; /* 36+4 */
121 L4_ktrace_t__Mword mask; /* 40+4 */
122 L4_ktrace_t__Mword fpage; /* 44+4 */
123 char map; /* 48+1 */
124 } tmap; /* 56 */
125 struct __attribute__((__packed__))
126 {
127 char __pre_pad[2];
128 L4_ktrace_t__Address _address; /* 36+4 */
129 int _len; /* 40+4 */
130 L4_ktrace_t__Mword _value; /* 44+4 */
131 int _mode; /* 48+4 */
132 } bp; /* 56 */
133 struct __attribute__((__packed__))
134 {
135 char __pre_pad[2];
136 L4_ktrace_t__Context *dst; /* 36+4 */
137 L4_ktrace_t__Context *dst_orig; /* 40+4 */
138 L4_ktrace_t__Address kernel_ip; /* 44+4 */
139 L4_ktrace_t__Mword lock_cnt; /* 48+4 */
140 L4_ktrace_t__Space *from_space; /* 52+4 */
141 L4_ktrace_t__Sched_context *from_sched; /* 56+4 */
142 L4_ktrace_t__Mword from_prio; /* 60+4 */
143 } context_switch; /* 64 */
144 struct __attribute__((__packed__))
145 {
146 } empty; /* 40 */
147 struct __attribute__((__packed__))
148 {
149 char __pre_pad[2];
150 L4_ktrace_t__L4_msg_tag _tag; /* 36+4 */
151 L4_ktrace_t__Mword _dword[2]; /* 40+8 */
152 L4_ktrace_t__L4_obj_ref _dst; /* 48+4 */
153 L4_ktrace_t__Mword _dbg_id; /* 52+4 */
154 L4_ktrace_t__Mword _label; /* 56+4 */
155 L4_ktrace_t__L4_timeout_pair _timeout; /* 60+4 */
156 } ipc; /* 64 */
157 struct __attribute__((__packed__))
158 {
159 L4_ktrace_t__Unsigned8 _have_snd; /* 34+1 */
160 L4_ktrace_t__Unsigned8 _is_np; /* 35+1 */
161 L4_ktrace_t__L4_msg_tag _tag; /* 36+4 */
162 L4_ktrace_t__Mword _dword[2]; /* 40+8 */
163 L4_ktrace_t__L4_error _result; /* 48+4 */
164 L4_ktrace_t__Mword _from; /* 52+4 */
165 L4_ktrace_t__L4_obj_ref _dst; /* 56+4 */
166 L4_ktrace_t__Mword _pair_event; /* 60+4 */
167 } ipc_res; /* 64 */
168 struct __attribute__((__packed__))
169 {
170 char __pre_pad[2];
171 union __attribute__((__packed__)) {
172 char msg[24]; /* 0+24 */
173 struct __attribute__((__packed__)) {
174 char tag[2]; /* 0+2 */
175 char __pad_1[2];
176 char *ptr; /* 4+4 */
177 } mptr; /* 0+8 */
178 } msg; /* 36+24 */
179 } ke; /* 64 */
180 struct __attribute__((__packed__))
181 {
182 char _msg[24]; /* 34+24 */
183 } ke_bin; /* 64 */
184 struct __attribute__((__packed__))
185 {
186 char __pre_pad[2];
187 L4_ktrace_t__Mword v[3]; /* 36+12 */
188 union __attribute__((__packed__)) {
189 char msg[12]; /* 0+12 */
190 struct __attribute__((__packed__)) {
191 char tag[2]; /* 0+2 */
192 char __pad_1[2];
193 char *ptr; /* 4+4 */
194 } mptr; /* 0+8 */
195 } msg; /* 48+12 */
196 } ke_reg; /* 64 */
197 struct __attribute__((__packed__))
198 {
199 char __pre_pad[2];
200 L4_ktrace_t__Address _pfa; /* 36+4 */
201 L4_ktrace_t__Mword _error; /* 40+4 */
202 L4_ktrace_t__Space *_space; /* 44+4 */
203 } pf; /* 48 */
204 struct __attribute__((__packed__))
205 {
206 unsigned short mode; /* 34+2 */
207 L4_ktrace_t__Context *owner; /* 36+4 */
208 unsigned short id; /* 40+2 */
209 unsigned short prio; /* 42+2 */
210 long left; /* 44+4 */
211 unsigned long quantum; /* 48+4 */
212 } sched; /* 56 */
213 struct __attribute__((__packed__))
214 {
215 char __pre_pad[2];
216 L4_ktrace_t__Unsigned32 _cause; /* 36+4 */
217 L4_ktrace_t__Mword _sp; /* 40+4 */
218 } trap; /* 48 */
219 struct __attribute__((__packed__))
220 {
221 char _padding[24]; /* 34+24 */
222 char __post_pad[6]; /* 58+6 */
223 } fullsize; /* 64 */
224 struct __attribute__((__packed__))
225 {
226 char __pre_pad[2];
227 L4_ktrace_t__Cap_index cap_idx; /* 36+4 */
228 } ieh; /* 40 */
229 struct __attribute__((__packed__))
230 {
231 char __pre_pad[2];
232 L4_ktrace_t__Mword pfa; /* 36+4 */
233 L4_ktrace_t__Cap_index cap_idx; /* 40+4 */
234 L4_ktrace_t__Mword err; /* 44+4 */
235 } ipfh; /* 48 */
236 struct __attribute__((__packed__))
237 {
238 char __pre_pad[2];
239 L4_ktrace_t__Mword id; /* 36+4 */
240 L4_ktrace_t__Mword ip; /* 40+4 */
241 L4_ktrace_t__Mword sp; /* 44+4 */
242 L4_ktrace_t__Mword op; /* 48+4 */
243 } exregs; /* 56 */
244 struct __attribute__((__packed__))
245 {
246 char __pre_pad[2];
247 L4_ktrace_t__Mword state; /* 36+4 */
248 L4_ktrace_t__Address user_ip; /* 40+4 */
249 L4_ktrace_t__Cpu_number src_cpu; /* 44+4 */
250 L4_ktrace_t__Cpu_number target_cpu; /* 48+4 */
251 } migration; /* 56 */
252 struct __attribute__((__packed__))
253 {
254 char __pre_pad[2];
255 L4_ktrace_t__Address user_ip; /* 36+4 */
256 } timer; /* 40 */
257 } m;
258} l4_tracebuffer_entry_t;
259#else
260typedef struct __attribute__((packed))
261{
262 L4_ktrace_t__Mword _number; /* 0+8 */
263 L4_ktrace_t__Address _ip; /* 8+8 */
264 L4_ktrace_t__Unsigned64 _tsc; /* 16+8 */
265 L4_ktrace_t__Context *_ctx; /* 24+8 */
266 L4_ktrace_t__Unsigned32 _pmc1; /* 32+4 */
267 L4_ktrace_t__Unsigned32 _pmc2; /* 36+4 */
268 L4_ktrace_t__Unsigned32 _kclock; /* 40+4 */
269 L4_ktrace_t__Unsigned8 _type; /* 44+1 */
270 L4_ktrace_t__Unsigned8 _cpu; /* 45+1 */
271 union __attribute__((__packed__))
272 {
273 struct __attribute__((__packed__))
274 {
275 char __pre_pad[2];
276 void *func; /* 48+8 */
277 L4_ktrace_t__Context *thread; /* 56+8 */
278 L4_ktrace_t__Context__Drq *rq; /* 64+8 */
279 L4_ktrace_t__Cpu_number target_cpu; /* 72+4 */
280 L4_ktrace_t__Context__Drq_log__Type type; /* 76+4 */
281 char wait; /* 80+1 */
282 } drq; /* 88 */
283 struct __attribute__((__packed__))
284 {
285 char __pre_pad[2];
286 L4_ktrace_t__Mword state; /* 48+8 */
287 L4_ktrace_t__Mword ip; /* 56+8 */
288 L4_ktrace_t__Mword sp; /* 64+8 */
289 L4_ktrace_t__Mword space; /* 72+8 */
290 L4_ktrace_t__Mword err; /* 80+8 */
291 unsigned char type; /* 88+1 */
292 unsigned char trap; /* 89+1 */
293 } vcpu; /* 96 */
294 struct __attribute__((__packed__))
295 {
296 char __pre_pad[2];
297 L4_ktrace_t__Smword op; /* 48+8 */
298 L4_ktrace_t__Cap_index buffer; /* 56+8 */
299 L4_ktrace_t__Mword id; /* 64+8 */
300 L4_ktrace_t__Mword ram; /* 72+8 */
301 L4_ktrace_t__Mword newo; /* 80+8 */
302 } factory; /* 88 */
303 struct __attribute__((__packed__))
304 {
305 char __pre_pad[2];
306 L4_ktrace_t__Mword gate_dbg_id; /* 48+8 */
307 L4_ktrace_t__Mword thread_dbg_id; /* 56+8 */
308 L4_ktrace_t__Mword label; /* 64+8 */
309 } gate; /* 72 */
310 struct __attribute__((__packed__))
311 {
312 char __pre_pad[2];
313 L4_ktrace_t__Irq_base *obj; /* 48+8 */
314 L4_ktrace_t__Irq_chip *chip; /* 56+8 */
315 L4_ktrace_t__Mword pin; /* 64+8 */
316 } irq; /* 72 */
317 struct __attribute__((__packed__))
318 {
319 char __pre_pad[2];
320 L4_ktrace_t__Kobject *obj; /* 48+8 */
321 L4_ktrace_t__Mword id; /* 56+8 */
322 L4_ktrace_t__cxx__Type_info *type; /* 64+8 */
323 L4_ktrace_t__Mword ram; /* 72+8 */
324 } destroy; /* 80 */
325 struct __attribute__((__packed__))
326 {
327 char __pre_pad[2];
328 L4_ktrace_t__Cpu_number cpu; /* 48+4 */
329 char __pad_1[4];
330 L4_ktrace_t__Rcu_item *item; /* 56+8 */
331 void *cb; /* 64+8 */
332 unsigned char event; /* 72+1 */
333 } rcu; /* 80 */
334 struct __attribute__((__packed__))
335 {
336 char __pre_pad[2];
337 L4_ktrace_t__Mword id; /* 48+8 */
338 L4_ktrace_t__Mword mask; /* 56+8 */
339 L4_ktrace_t__Mword fpage; /* 64+8 */
340 char map; /* 72+1 */
341 } tmap; /* 80 */
342 struct __attribute__((__packed__))
343 {
344 char __pre_pad[2];
345 L4_ktrace_t__Address _address; /* 48+8 */
346 int _len; /* 56+4 */
347 char __pad_1[4];
348 L4_ktrace_t__Mword _value; /* 64+8 */
349 int _mode; /* 72+4 */
350 } bp; /* 80 */
351 struct __attribute__((__packed__))
352 {
353 char __pre_pad[2];
354 L4_ktrace_t__Context *dst; /* 48+8 */
355 L4_ktrace_t__Context *dst_orig; /* 56+8 */
356 L4_ktrace_t__Address kernel_ip; /* 64+8 */
357 L4_ktrace_t__Mword lock_cnt; /* 72+8 */
358 L4_ktrace_t__Space *from_space; /* 80+8 */
359 L4_ktrace_t__Sched_context *from_sched; /* 88+8 */
360 L4_ktrace_t__Mword from_prio; /* 96+8 */
361 } context_switch; /* 104 */
362 struct __attribute__((__packed__))
363 {
364 } empty; /* 48 */
365 struct __attribute__((__packed__))
366 {
367 char __pre_pad[2];
368 L4_ktrace_t__L4_msg_tag _tag; /* 48+8 */
369 L4_ktrace_t__Mword _dword[2]; /* 56+16 */
370 L4_ktrace_t__L4_obj_ref _dst; /* 72+8 */
371 L4_ktrace_t__Mword _dbg_id; /* 80+8 */
372 L4_ktrace_t__Mword _label; /* 88+8 */
373 L4_ktrace_t__L4_timeout_pair _timeout; /* 96+4 */
374 char __pad_1[4];
375 L4_ktrace_t__Unsigned64 _to_abs_rcv; /* 104+8 */
376 } ipc; /* 112 */
377 struct __attribute__((__packed__))
378 {
379 L4_ktrace_t__Unsigned8 _have_snd; /* 46+1 */
380 L4_ktrace_t__Unsigned8 _is_np; /* 47+1 */
381 L4_ktrace_t__L4_msg_tag _tag; /* 48+8 */
382 L4_ktrace_t__Mword _dword[2]; /* 56+16 */
383 L4_ktrace_t__L4_error _result; /* 72+8 */
384 L4_ktrace_t__Mword _from; /* 80+8 */
385 L4_ktrace_t__L4_obj_ref _dst; /* 88+8 */
386 L4_ktrace_t__Mword _pair_event; /* 96+8 */
387 } ipc_res; /* 104 */
388 struct __attribute__((__packed__))
389 {
390 char __pre_pad[2];
391 union __attribute__((__packed__)) {
392 char msg[80]; /* 0+80 */
393 struct __attribute__((__packed__)) {
394 char tag[2]; /* 0+2 */
395 char __pad_1[6];
396 char *ptr; /* 8+8 */
397 } mptr; /* 0+16 */
398 } msg; /* 48+80 */
399 } ke; /* 128 */
400 struct __attribute__((__packed__))
401 {
402 char _msg[80]; /* 46+80 */
403 } ke_bin; /* 128 */
404 struct __attribute__((__packed__))
405 {
406 char __pre_pad[2];
407 L4_ktrace_t__Mword v[3]; /* 48+24 */
408 union __attribute__((__packed__)) {
409 char msg[56]; /* 0+56 */
410 struct __attribute__((__packed__)) {
411 char tag[2]; /* 0+2 */
412 char __pad_1[6];
413 char *ptr; /* 8+8 */
414 } mptr; /* 0+16 */
415 } msg; /* 72+56 */
416 } ke_reg; /* 128 */
417 struct __attribute__((__packed__))
418 {
419 char __pre_pad[2];
420 L4_ktrace_t__Address _pfa; /* 48+8 */
421 L4_ktrace_t__Mword _error; /* 56+8 */
422 L4_ktrace_t__Space *_space; /* 64+8 */
423 } pf; /* 72 */
424 struct __attribute__((__packed__))
425 {
426 unsigned short mode; /* 46+2 */
427 L4_ktrace_t__Context *owner; /* 48+8 */
428 unsigned short id; /* 56+2 */
429 unsigned short prio; /* 58+2 */
430 char __pad_1[4];
431 long left; /* 64+8 */
432 unsigned long quantum; /* 72+8 */
433 } sched; /* 80 */
434 struct __attribute__((__packed__))
435 {
436 char __pre_pad[2];
437 L4_ktrace_t__Unsigned32 _cause; /* 48+4 */
438 char __pad_1[4];
439 L4_ktrace_t__Mword _sp; /* 56+8 */
440 } trap; /* 64 */
441 struct __attribute__((__packed__))
442 {
443 char _padding[80]; /* 46+80 */
444 char __post_pad[2]; /* 126+2 */
445 } fullsize; /* 128 */
446 struct __attribute__((__packed__))
447 {
448 char __pre_pad[2];
449 L4_ktrace_t__Cap_index cap_idx; /* 48+8 */
450 } ieh; /* 56 */
451 struct __attribute__((__packed__))
452 {
453 char __pre_pad[2];
454 L4_ktrace_t__Mword pfa; /* 48+8 */
455 L4_ktrace_t__Cap_index cap_idx; /* 56+8 */
456 L4_ktrace_t__Mword err; /* 64+8 */
457 } ipfh; /* 72 */
458 struct __attribute__((__packed__))
459 {
460 char __pre_pad[2];
461 L4_ktrace_t__Mword id; /* 48+8 */
462 L4_ktrace_t__Mword ip; /* 56+8 */
463 L4_ktrace_t__Mword sp; /* 64+8 */
464 L4_ktrace_t__Mword op; /* 72+8 */
465 } exregs; /* 80 */
466 struct __attribute__((__packed__))
467 {
468 char __pre_pad[2];
469 L4_ktrace_t__Mword state; /* 48+8 */
470 L4_ktrace_t__Address user_ip; /* 56+8 */
471 L4_ktrace_t__Cpu_number src_cpu; /* 64+4 */
472 L4_ktrace_t__Cpu_number target_cpu; /* 68+4 */
473 } migration; /* 72 */
474 struct __attribute__((__packed__))
475 {
476 char __pre_pad[2];
477 L4_ktrace_t__Address user_ip; /* 48+8 */
478 } timer; /* 56 */
479 } m;
480} l4_tracebuffer_entry_t;
481#endif