1 /* Note, automatically generated from Fiasco binary */
2 #pragma once
3 
4 enum 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 
20 typedef unsigned long L4_ktrace_t__Address;
21 typedef unsigned long L4_ktrace_t__Cap_index;
22 typedef void L4_ktrace_t__Context;
23 typedef void L4_ktrace_t__Context__Drq;
24 typedef unsigned L4_ktrace_t__Context__Drq_log__Type;
25 typedef unsigned L4_ktrace_t__Cpu_number;
26 typedef void L4_ktrace_t__Irq_base;
27 typedef void L4_ktrace_t__Irq_chip;
28 typedef void L4_ktrace_t__Kobject;
29 typedef unsigned long L4_ktrace_t__L4_error;
30 typedef unsigned long L4_ktrace_t__L4_msg_tag;
31 typedef unsigned long L4_ktrace_t__L4_obj_ref;
32 typedef unsigned L4_ktrace_t__L4_timeout_pair;
33 typedef unsigned long L4_ktrace_t__Mword;
34 typedef void L4_ktrace_t__Rcu_item;
35 typedef void L4_ktrace_t__Sched_context;
36 typedef long L4_ktrace_t__Smword;
37 typedef void L4_ktrace_t__Space;
38 typedef unsigned short L4_ktrace_t__Unsigned16;
39 typedef unsigned int L4_ktrace_t__Unsigned32;
40 typedef unsigned long long L4_ktrace_t__Unsigned64;
41 typedef unsigned char L4_ktrace_t__Unsigned8;
42 typedef void L4_ktrace_t__cxx__Type_info;
43 
44 typedef struct __attribute__((packed))
45 {
46   L4_ktrace_t__Mword _number; /* 0+8 */
47   L4_ktrace_t__Address _ip; /* 8+8 */
48   L4_ktrace_t__Unsigned64 _tsc; /* 16+8 */
49   L4_ktrace_t__Context *_ctx; /* 24+8 */
50   L4_ktrace_t__Unsigned32 _pmc1; /* 32+4 */
51   L4_ktrace_t__Unsigned32 _pmc2; /* 36+4 */
52   L4_ktrace_t__Unsigned32 _kclock; /* 40+4 */
53   L4_ktrace_t__Unsigned8 _type; /* 44+1 */
54   L4_ktrace_t__Unsigned8 _cpu; /* 45+1 */
55   union __attribute__((__packed__))
56   {
57     struct __attribute__((__packed__))
58     {
59       char __pre_pad[2];
60       void *func; /* 48+8 */
61       L4_ktrace_t__Context *thread; /* 56+8 */
62       L4_ktrace_t__Context__Drq *rq; /* 64+8 */
63       L4_ktrace_t__Cpu_number target_cpu; /* 72+4 */
64       L4_ktrace_t__Context__Drq_log__Type type; /* 76+4 */
65       char wait; /* 80+1 */
66     } drq; /* 88 */
67     struct __attribute__((__packed__))
68     {
69       char __pre_pad[2];
70       L4_ktrace_t__Mword state; /* 48+8 */
71       L4_ktrace_t__Mword ip; /* 56+8 */
72       L4_ktrace_t__Mword sp; /* 64+8 */
73       L4_ktrace_t__Mword space; /* 72+8 */
74       L4_ktrace_t__Mword err; /* 80+8 */
75       unsigned char type; /* 88+1 */
76       unsigned char trap; /* 89+1 */
77     } vcpu; /* 96 */
78     struct __attribute__((__packed__))
79     {
80       char __pre_pad[2];
81       L4_ktrace_t__Smword op; /* 48+8 */
82       L4_ktrace_t__Cap_index buffer; /* 56+8 */
83       L4_ktrace_t__Mword id; /* 64+8 */
84       L4_ktrace_t__Mword ram; /* 72+8 */
85       L4_ktrace_t__Mword newo; /* 80+8 */
86     } factory; /* 88 */
87     struct __attribute__((__packed__))
88     {
89       char __pre_pad[2];
90       L4_ktrace_t__Mword gate_dbg_id; /* 48+8 */
91       L4_ktrace_t__Mword thread_dbg_id; /* 56+8 */
92       L4_ktrace_t__Mword label; /* 64+8 */
93     } gate; /* 72 */
94     struct __attribute__((__packed__))
95     {
96       char __pre_pad[2];
97       L4_ktrace_t__Irq_base *obj; /* 48+8 */
98       L4_ktrace_t__Irq_chip *chip; /* 56+8 */
99       L4_ktrace_t__Mword pin; /* 64+8 */
100     } irq; /* 72 */
101     struct __attribute__((__packed__))
102     {
103       char __pre_pad[2];
104       L4_ktrace_t__Kobject *obj; /* 48+8 */
105       L4_ktrace_t__Mword id; /* 56+8 */
106       L4_ktrace_t__cxx__Type_info *type; /* 64+8 */
107       L4_ktrace_t__Mword ram; /* 72+8 */
108     } destroy; /* 80 */
109     struct __attribute__((__packed__))
110     {
111       char __pre_pad[2];
112       L4_ktrace_t__Cpu_number cpu; /* 48+4 */
113       char __pad_1[4];
114       L4_ktrace_t__Rcu_item *item; /* 56+8 */
115       void *cb; /* 64+8 */
116       unsigned char event; /* 72+1 */
117     } rcu; /* 80 */
118     struct __attribute__((__packed__))
119     {
120       char __pre_pad[2];
121       L4_ktrace_t__Mword id; /* 48+8 */
122       L4_ktrace_t__Mword mask; /* 56+8 */
123       L4_ktrace_t__Mword fpage; /* 64+8 */
124       char map; /* 72+1 */
125     } tmap; /* 80 */
126     struct __attribute__((__packed__))
127     {
128       char __pre_pad[2];
129       L4_ktrace_t__Address _address; /* 48+8 */
130       int _len; /* 56+4 */
131       char __pad_1[4];
132       L4_ktrace_t__Mword _value; /* 64+8 */
133       int _mode; /* 72+4 */
134     } bp; /* 80 */
135     struct __attribute__((__packed__))
136     {
137       char __pre_pad[2];
138       L4_ktrace_t__Context *dst; /* 48+8 */
139       L4_ktrace_t__Context *dst_orig; /* 56+8 */
140       L4_ktrace_t__Address kernel_ip; /* 64+8 */
141       L4_ktrace_t__Mword lock_cnt; /* 72+8 */
142       L4_ktrace_t__Space *from_space; /* 80+8 */
143       L4_ktrace_t__Sched_context *from_sched; /* 88+8 */
144       L4_ktrace_t__Mword from_prio; /* 96+8 */
145     } context_switch; /* 104 */
146     struct __attribute__((__packed__))
147     {
148     } empty; /* 48 */
149     struct __attribute__((__packed__))
150     {
151       char __pre_pad[2];
152       L4_ktrace_t__L4_msg_tag _tag; /* 48+8 */
153       L4_ktrace_t__Mword _dword[2]; /* 56+16 */
154       L4_ktrace_t__L4_obj_ref _dst; /* 72+8 */
155       L4_ktrace_t__Mword _dbg_id; /* 80+8 */
156       L4_ktrace_t__Mword _label; /* 88+8 */
157       L4_ktrace_t__L4_timeout_pair _timeout; /* 96+4 */
158     } ipc; /* 104 */
159     struct __attribute__((__packed__))
160     {
161       char __pre_pad[2];
162       L4_ktrace_t__L4_msg_tag _tag; /* 48+8 */
163       L4_ktrace_t__Mword _dword[2]; /* 56+16 */
164       L4_ktrace_t__L4_error _result; /* 72+8 */
165       L4_ktrace_t__Mword _from; /* 80+8 */
166       L4_ktrace_t__Mword _pair_event; /* 88+8 */
167       L4_ktrace_t__Unsigned8 _have_snd; /* 96+1 */
168       L4_ktrace_t__Unsigned8 _is_np; /* 97+1 */
169     } ipc_res; /* 104 */
170     struct __attribute__((__packed__))
171     {
172       char __pre_pad[2];
173       L4_ktrace_t__Unsigned64 _snd_tsc; /* 48+8 */
174       L4_ktrace_t__L4_msg_tag _result; /* 56+8 */
175       L4_ktrace_t__L4_obj_ref _snd_dst; /* 64+8 */
176       L4_ktrace_t__Mword _rcv_dst; /* 72+8 */
177       L4_ktrace_t__Unsigned8 _snd_desc; /* 80+1 */
178       L4_ktrace_t__Unsigned8 _rcv_desc; /* 81+1 */
179     } ipc_trace; /* 88 */
180     struct __attribute__((__packed__))
181     {
182       char __pre_pad[2];
183       union __attribute__((__packed__)) {
184         char msg[80]; /* 0+80 */
185         struct __attribute__((__packed__)) {
186           char tag[2]; /* 0+2 */
187           char __pad_1[6];
188           char *ptr; /* 8+8 */
189         } mptr; /* 0+16 */
190       } msg; /* 48+80 */
191     } ke; /* 128 */
192     struct __attribute__((__packed__))
193     {
194       char _msg[80]; /* 46+80 */
195     } ke_bin; /* 128 */
196     struct __attribute__((__packed__))
197     {
198       char __pre_pad[2];
199       L4_ktrace_t__Mword v[3]; /* 48+24 */
200       union __attribute__((__packed__)) {
201         char msg[56]; /* 0+56 */
202         struct __attribute__((__packed__)) {
203           char tag[2]; /* 0+2 */
204           char __pad_1[6];
205           char *ptr; /* 8+8 */
206         } mptr; /* 0+16 */
207       } msg; /* 72+56 */
208     } ke_reg; /* 128 */
209     struct __attribute__((__packed__))
210     {
211       char __pre_pad[2];
212       L4_ktrace_t__Address _pfa; /* 48+8 */
213       L4_ktrace_t__Mword _error; /* 56+8 */
214       L4_ktrace_t__Space *_space; /* 64+8 */
215     } pf; /* 72 */
216     struct __attribute__((__packed__))
217     {
218       unsigned short mode; /* 46+2 */
219       L4_ktrace_t__Context *owner; /* 48+8 */
220       unsigned short id; /* 56+2 */
221       unsigned short prio; /* 58+2 */
222       long left; /* 60+8 */
223       unsigned long quantum; /* 68+8 */
224     } sched; /* 80 */
225     struct __attribute__((__packed__))
226     {
227       char _trapno; /* 46+1 */
228       L4_ktrace_t__Unsigned16 _error; /* 47+2 */
229       L4_ktrace_t__Mword _rbp; /* 49+8 */
230       L4_ktrace_t__Mword _cr2; /* 57+8 */
231       L4_ktrace_t__Mword _rax; /* 65+8 */
232       L4_ktrace_t__Mword _rflags; /* 73+8 */
233       L4_ktrace_t__Mword _rsp; /* 81+8 */
234       L4_ktrace_t__Unsigned16 _cs; /* 89+2 */
235       L4_ktrace_t__Unsigned16 _ds; /* 91+2 */
236     } trap; /* 96 */
237     struct __attribute__((__packed__))
238     {
239       char _padding[80]; /* 46+80 */
240       char __post_pad[2]; /* 126+2 */
241     } fullsize; /* 128 */
242     struct __attribute__((__packed__))
243     {
244       char __pre_pad[2];
245       L4_ktrace_t__Cap_index cap_idx; /* 48+8 */
246     } ieh; /* 56 */
247     struct __attribute__((__packed__))
248     {
249       char __pre_pad[2];
250       L4_ktrace_t__Mword pfa; /* 48+8 */
251       L4_ktrace_t__Cap_index cap_idx; /* 56+8 */
252       L4_ktrace_t__Mword err; /* 64+8 */
253     } ipfh; /* 72 */
254     struct __attribute__((__packed__))
255     {
256       char __pre_pad[2];
257       L4_ktrace_t__Mword id; /* 48+8 */
258       L4_ktrace_t__Mword ip; /* 56+8 */
259       L4_ktrace_t__Mword sp; /* 64+8 */
260       L4_ktrace_t__Mword op; /* 72+8 */
261     } exregs; /* 80 */
262     struct __attribute__((__packed__))
263     {
264       char __pre_pad[2];
265       L4_ktrace_t__Mword state; /* 48+8 */
266       L4_ktrace_t__Address user_ip; /* 56+8 */
267       L4_ktrace_t__Cpu_number src_cpu; /* 64+4 */
268       L4_ktrace_t__Cpu_number target_cpu; /* 68+4 */
269     } migration; /* 72 */
270     struct __attribute__((__packed__))
271     {
272       char __pre_pad[2];
273       L4_ktrace_t__Irq_base *obj; /* 48+8 */
274       L4_ktrace_t__Address user_ip; /* 56+8 */
275     } timer; /* 64 */
276     struct __attribute__((__packed__))
277     {
278       char __pre_pad[2];
279       L4_ktrace_t__Mword exitcode; /* 48+8 */
280       L4_ktrace_t__Mword exitinfo1; /* 56+8 */
281       L4_ktrace_t__Mword exitinfo2; /* 64+8 */
282       L4_ktrace_t__Mword rip; /* 72+8 */
283     } svm; /* 80 */
284   } m;
285 } l4_tracebuffer_entry_t;
286