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 int L4_ktrace_t__Unsigned32; 39 typedef unsigned long long L4_ktrace_t__Unsigned64; 40 typedef unsigned char L4_ktrace_t__Unsigned8; 41 typedef void L4_ktrace_t__cxx__Type_info; 42 43 #ifdef __mips64 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 __pre_pad[2]; 228 L4_ktrace_t__Unsigned32 _cause; /* 48+4 */ 229 L4_ktrace_t__Unsigned32 _status; /* 52+4 */ 230 L4_ktrace_t__Mword _sp; /* 56+8 */ 231 } trap; /* 64 */ 232 struct __attribute__((__packed__)) 233 { 234 char _padding[80]; /* 46+80 */ 235 char __post_pad[2]; /* 126+2 */ 236 } fullsize; /* 128 */ 237 struct __attribute__((__packed__)) 238 { 239 char __pre_pad[2]; 240 L4_ktrace_t__Cap_index cap_idx; /* 48+8 */ 241 } ieh; /* 56 */ 242 struct __attribute__((__packed__)) 243 { 244 char __pre_pad[2]; 245 L4_ktrace_t__Mword pfa; /* 48+8 */ 246 L4_ktrace_t__Cap_index cap_idx; /* 56+8 */ 247 L4_ktrace_t__Mword err; /* 64+8 */ 248 } ipfh; /* 72 */ 249 struct __attribute__((__packed__)) 250 { 251 char __pre_pad[2]; 252 L4_ktrace_t__Mword id; /* 48+8 */ 253 L4_ktrace_t__Mword ip; /* 56+8 */ 254 L4_ktrace_t__Mword sp; /* 64+8 */ 255 L4_ktrace_t__Mword op; /* 72+8 */ 256 } exregs; /* 80 */ 257 struct __attribute__((__packed__)) 258 { 259 char __pre_pad[2]; 260 L4_ktrace_t__Mword state; /* 48+8 */ 261 L4_ktrace_t__Address user_ip; /* 56+8 */ 262 L4_ktrace_t__Cpu_number src_cpu; /* 64+4 */ 263 L4_ktrace_t__Cpu_number target_cpu; /* 68+4 */ 264 } migration; /* 72 */ 265 struct __attribute__((__packed__)) 266 { 267 char __pre_pad[2]; 268 L4_ktrace_t__Irq_base *obj; /* 48+8 */ 269 L4_ktrace_t__Address user_ip; /* 56+8 */ 270 } timer; /* 64 */ 271 } m; 272 } l4_tracebuffer_entry_t; 273 #else 274 typedef struct __attribute__((packed)) 275 { 276 L4_ktrace_t__Mword _number; /* 0+4 */ 277 L4_ktrace_t__Address _ip; /* 4+4 */ 278 L4_ktrace_t__Unsigned64 _tsc; /* 8+8 */ 279 L4_ktrace_t__Context *_ctx; /* 16+4 */ 280 L4_ktrace_t__Unsigned32 _pmc1; /* 20+4 */ 281 L4_ktrace_t__Unsigned32 _pmc2; /* 24+4 */ 282 L4_ktrace_t__Unsigned32 _kclock; /* 28+4 */ 283 L4_ktrace_t__Unsigned8 _type; /* 32+1 */ 284 L4_ktrace_t__Unsigned8 _cpu; /* 33+1 */ 285 union __attribute__((__packed__)) 286 { 287 struct __attribute__((__packed__)) 288 { 289 char __pre_pad[2]; 290 void *func; /* 36+4 */ 291 L4_ktrace_t__Context *thread; /* 40+4 */ 292 L4_ktrace_t__Context__Drq *rq; /* 44+4 */ 293 L4_ktrace_t__Cpu_number target_cpu; /* 48+4 */ 294 L4_ktrace_t__Context__Drq_log__Type type; /* 52+4 */ 295 char wait; /* 56+1 */ 296 } drq; /* 64 */ 297 struct __attribute__((__packed__)) 298 { 299 char __pre_pad[2]; 300 L4_ktrace_t__Mword state; /* 36+4 */ 301 L4_ktrace_t__Mword ip; /* 40+4 */ 302 L4_ktrace_t__Mword sp; /* 44+4 */ 303 L4_ktrace_t__Mword space; /* 48+4 */ 304 L4_ktrace_t__Mword err; /* 52+4 */ 305 unsigned char type; /* 56+1 */ 306 unsigned char trap; /* 57+1 */ 307 } vcpu; /* 64 */ 308 struct __attribute__((__packed__)) 309 { 310 char __pre_pad[2]; 311 L4_ktrace_t__Smword op; /* 36+4 */ 312 L4_ktrace_t__Cap_index buffer; /* 40+4 */ 313 L4_ktrace_t__Mword id; /* 44+4 */ 314 L4_ktrace_t__Mword ram; /* 48+4 */ 315 L4_ktrace_t__Mword newo; /* 52+4 */ 316 } factory; /* 56 */ 317 struct __attribute__((__packed__)) 318 { 319 char __pre_pad[2]; 320 L4_ktrace_t__Mword gate_dbg_id; /* 36+4 */ 321 L4_ktrace_t__Mword thread_dbg_id; /* 40+4 */ 322 L4_ktrace_t__Mword label; /* 44+4 */ 323 } gate; /* 48 */ 324 struct __attribute__((__packed__)) 325 { 326 char __pre_pad[2]; 327 L4_ktrace_t__Irq_base *obj; /* 36+4 */ 328 L4_ktrace_t__Irq_chip *chip; /* 40+4 */ 329 L4_ktrace_t__Mword pin; /* 44+4 */ 330 } irq; /* 48 */ 331 struct __attribute__((__packed__)) 332 { 333 char __pre_pad[2]; 334 L4_ktrace_t__Kobject *obj; /* 36+4 */ 335 L4_ktrace_t__Mword id; /* 40+4 */ 336 L4_ktrace_t__cxx__Type_info *type; /* 44+4 */ 337 L4_ktrace_t__Mword ram; /* 48+4 */ 338 } destroy; /* 56 */ 339 struct __attribute__((__packed__)) 340 { 341 char __pre_pad[2]; 342 L4_ktrace_t__Cpu_number cpu; /* 36+4 */ 343 L4_ktrace_t__Rcu_item *item; /* 40+4 */ 344 void *cb; /* 44+4 */ 345 unsigned char event; /* 48+1 */ 346 } rcu; /* 56 */ 347 struct __attribute__((__packed__)) 348 { 349 char __pre_pad[2]; 350 L4_ktrace_t__Mword id; /* 36+4 */ 351 L4_ktrace_t__Mword mask; /* 40+4 */ 352 L4_ktrace_t__Mword fpage; /* 44+4 */ 353 char map; /* 48+1 */ 354 } tmap; /* 56 */ 355 struct __attribute__((__packed__)) 356 { 357 char __pre_pad[2]; 358 L4_ktrace_t__Address _address; /* 36+4 */ 359 int _len; /* 40+4 */ 360 L4_ktrace_t__Mword _value; /* 44+4 */ 361 int _mode; /* 48+4 */ 362 } bp; /* 56 */ 363 struct __attribute__((__packed__)) 364 { 365 char __pre_pad[2]; 366 L4_ktrace_t__Context *dst; /* 36+4 */ 367 L4_ktrace_t__Context *dst_orig; /* 40+4 */ 368 L4_ktrace_t__Address kernel_ip; /* 44+4 */ 369 L4_ktrace_t__Mword lock_cnt; /* 48+4 */ 370 L4_ktrace_t__Space *from_space; /* 52+4 */ 371 L4_ktrace_t__Sched_context *from_sched; /* 56+4 */ 372 L4_ktrace_t__Mword from_prio; /* 60+4 */ 373 } context_switch; /* 64 */ 374 struct __attribute__((__packed__)) 375 { 376 } empty; /* 40 */ 377 struct __attribute__((__packed__)) 378 { 379 char __pre_pad[2]; 380 L4_ktrace_t__L4_msg_tag _tag; /* 36+4 */ 381 L4_ktrace_t__Mword _dword[2]; /* 40+8 */ 382 L4_ktrace_t__L4_obj_ref _dst; /* 48+4 */ 383 L4_ktrace_t__Mword _dbg_id; /* 52+4 */ 384 L4_ktrace_t__Mword _label; /* 56+4 */ 385 L4_ktrace_t__L4_timeout_pair _timeout; /* 60+4 */ 386 } ipc; /* 64 */ 387 struct __attribute__((__packed__)) 388 { 389 char __pre_pad[2]; 390 L4_ktrace_t__L4_msg_tag _tag; /* 36+4 */ 391 L4_ktrace_t__Mword _dword[2]; /* 40+8 */ 392 L4_ktrace_t__L4_error _result; /* 48+4 */ 393 L4_ktrace_t__Mword _from; /* 52+4 */ 394 L4_ktrace_t__Mword _pair_event; /* 56+4 */ 395 L4_ktrace_t__Unsigned8 _have_snd; /* 60+1 */ 396 L4_ktrace_t__Unsigned8 _is_np; /* 61+1 */ 397 } ipc_res; /* 64 */ 398 struct __attribute__((__packed__)) 399 { 400 char __pre_pad[6]; 401 L4_ktrace_t__Unsigned64 _snd_tsc; /* 40+8 */ 402 L4_ktrace_t__L4_msg_tag _result; /* 48+4 */ 403 L4_ktrace_t__L4_obj_ref _snd_dst; /* 52+4 */ 404 L4_ktrace_t__Mword _rcv_dst; /* 56+4 */ 405 L4_ktrace_t__Unsigned8 _snd_desc; /* 60+1 */ 406 L4_ktrace_t__Unsigned8 _rcv_desc; /* 61+1 */ 407 } ipc_trace; /* 64 */ 408 struct __attribute__((__packed__)) 409 { 410 char __pre_pad[2]; 411 union __attribute__((__packed__)) { 412 char msg[24]; /* 0+24 */ 413 struct __attribute__((__packed__)) { 414 char tag[2]; /* 0+2 */ 415 char __pad_1[2]; 416 char *ptr; /* 4+4 */ 417 } mptr; /* 0+8 */ 418 } msg; /* 36+24 */ 419 } ke; /* 64 */ 420 struct __attribute__((__packed__)) 421 { 422 char _msg[24]; /* 34+24 */ 423 } ke_bin; /* 64 */ 424 struct __attribute__((__packed__)) 425 { 426 char __pre_pad[2]; 427 L4_ktrace_t__Mword v[3]; /* 36+12 */ 428 union __attribute__((__packed__)) { 429 char msg[12]; /* 0+12 */ 430 struct __attribute__((__packed__)) { 431 char tag[2]; /* 0+2 */ 432 char __pad_1[2]; 433 char *ptr; /* 4+4 */ 434 } mptr; /* 0+8 */ 435 } msg; /* 48+12 */ 436 } ke_reg; /* 64 */ 437 struct __attribute__((__packed__)) 438 { 439 char __pre_pad[2]; 440 L4_ktrace_t__Address _pfa; /* 36+4 */ 441 L4_ktrace_t__Mword _error; /* 40+4 */ 442 L4_ktrace_t__Space *_space; /* 44+4 */ 443 } pf; /* 48 */ 444 struct __attribute__((__packed__)) 445 { 446 unsigned short mode; /* 34+2 */ 447 L4_ktrace_t__Context *owner; /* 36+4 */ 448 unsigned short id; /* 40+2 */ 449 unsigned short prio; /* 42+2 */ 450 long left; /* 44+4 */ 451 unsigned long quantum; /* 48+4 */ 452 } sched; /* 56 */ 453 struct __attribute__((__packed__)) 454 { 455 char __pre_pad[2]; 456 L4_ktrace_t__Unsigned32 _cause; /* 36+4 */ 457 L4_ktrace_t__Unsigned32 _status; /* 40+4 */ 458 L4_ktrace_t__Mword _sp; /* 44+4 */ 459 } trap; /* 48 */ 460 struct __attribute__((__packed__)) 461 { 462 char _padding[24]; /* 34+24 */ 463 char __post_pad[6]; /* 58+6 */ 464 } fullsize; /* 64 */ 465 struct __attribute__((__packed__)) 466 { 467 char __pre_pad[2]; 468 L4_ktrace_t__Cap_index cap_idx; /* 36+4 */ 469 } ieh; /* 40 */ 470 struct __attribute__((__packed__)) 471 { 472 char __pre_pad[2]; 473 L4_ktrace_t__Mword pfa; /* 36+4 */ 474 L4_ktrace_t__Cap_index cap_idx; /* 40+4 */ 475 L4_ktrace_t__Mword err; /* 44+4 */ 476 } ipfh; /* 48 */ 477 struct __attribute__((__packed__)) 478 { 479 char __pre_pad[2]; 480 L4_ktrace_t__Mword id; /* 36+4 */ 481 L4_ktrace_t__Mword ip; /* 40+4 */ 482 L4_ktrace_t__Mword sp; /* 44+4 */ 483 L4_ktrace_t__Mword op; /* 48+4 */ 484 } exregs; /* 56 */ 485 struct __attribute__((__packed__)) 486 { 487 char __pre_pad[2]; 488 L4_ktrace_t__Mword state; /* 36+4 */ 489 L4_ktrace_t__Address user_ip; /* 40+4 */ 490 L4_ktrace_t__Cpu_number src_cpu; /* 44+4 */ 491 L4_ktrace_t__Cpu_number target_cpu; /* 48+4 */ 492 } migration; /* 56 */ 493 struct __attribute__((__packed__)) 494 { 495 char __pre_pad[2]; 496 L4_ktrace_t__Irq_base *obj; /* 36+4 */ 497 L4_ktrace_t__Address user_ip; /* 40+4 */ 498 } timer; /* 48 */ 499 } m; 500 } l4_tracebuffer_entry_t; 501 #endif 502