blob: 2b3015519a9f6b164eef5db8a2e3609273dafce7 [file] [log] [blame]
#include <assert.h>
#include <kdebug.h>
#include <pmap.h>
#include <process.h>
#include <string.h>
/* Here's the old backtrace, remove it once gen_backtrace is done: */
#if 0
void backtrace(void)
{
void **fp;
asm volatile ("move %0, s0" : "=r"(fp));
for (int i = 0; ; i++) {
void *pc = fp[-1], *sp = fp[-2];
printk("[%d] pc %p sp %p\n", i, pc, sp);
if (pc == 0 || (void**)sp < fp)
break;
fp = (void**)sp;
}
}
#endif
void gen_backtrace(void (*pfunc)(void *, const char *), void *opaque)
{
printk("\n\tTODO: %s on riscv\n\n", __func__);
}
/* can either implement these, or use the x86 ones globally and limit the
* arch-indep stuff. */
size_t backtrace_list(uintptr_t pc, uintptr_t fp, uintptr_t *pcs,
size_t nr_slots)
{
printk("\n\tTODO: %s on riscv\n\n", __func__);
return 0;
}
size_t backtrace_user_list(uintptr_t pc, uintptr_t fp, uintptr_t *pcs,
size_t nr_slots)
{
printk("\n\tTODO: %s on riscv\n\n", __func__);
return 0;
}