refactor: one more step towards arch-agnostic design
[lunaix-os.git] / lunaix-os / includes / lunaix / trace.h
1 #ifndef __LUNAIX_TRACE_H
2 #define __LUNAIX_TRACE_H
3
4 #include <lunaix/boot_generic.h>
5
6 struct ksym_entry
7 {
8     ptr_t pc;
9     u32_t label_off;
10 };
11
12 struct ksyms
13 {
14     u32_t ksym_count;
15     u32_t ksym_label_off;
16     struct ksym_entry syms[0];
17 };
18
19 struct trace_context
20 {
21     struct ksyms* ksym_table;
22 };
23
24 void
25 trace_modksyms_init(struct boot_handoff* bhctx);
26
27 struct ksym_entry*
28 trace_sym_lookup(ptr_t pc);
29
30 void
31 trace_walkback(ptr_t fp);
32
33 #endif /* __LUNAIX_TRACE_H */