Redefines PTE present vs mapped
[akaros.git] / kern / arch / riscv / kdebug.c
1 #include <stab.h>
2 #include <string.h>
3 #include <assert.h>
4 #include <kdebug.h>
5 #include <pmap.h>
6 #include <process.h>
7
8 #include <ros/memlayout.h>
9
10 void backtrace(void)
11 {
12         void **fp;
13         asm volatile ("move %0, s0" : "=r"(fp));
14
15         for (int i = 0; ; i++) {
16                 void *pc = fp[-1], *sp = fp[-2];
17                 printk("[%d] pc %p sp %p\n", i, pc, sp);
18                 if (pc == 0 || (void**)sp < fp)
19                         break;
20                 fp = (void**)sp;
21         }
22 }
23
24 void backtrace_frame(uintptr_t pc, uintptr_t fp)
25 {
26         printk("\n\tTODO: backtrace frame on riscv\n\n");
27 }
28
29 /* can either implement these, or use the x86 ones globally and limit the
30  * arch-indep stuff. */
31 size_t backtrace_list(uintptr_t pc, uintptr_t fp, uintptr_t *pcs,
32                       size_t nr_slots)
33 {
34         printk("\n\tTODO: backtrace list on riscv\n\n");
35         return 0;
36 }