diff options
Diffstat (limited to 'pk/bbl.c')
-rw-r--r-- | pk/bbl.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/pk/bbl.c b/pk/bbl.c new file mode 100644 index 0000000..f4f0f06 --- /dev/null +++ b/pk/bbl.c @@ -0,0 +1,16 @@ +#include "pk.h" +#include "vm.h" + +void run_loaded_program(struct mainvars* args) +{ + if (!current.is_supervisor) + panic("bbl can't run user binaries; try using pk instead"); + + supervisor_vm_init(); +#ifdef PK_ENABLE_LOGO + print_logo(); +#endif + write_csr(mepc, current.entry); + asm volatile("eret"); + __builtin_unreachable(); +} |