From f60d40f3bf4dfe8ed6f63a27367d323319a4ef97 Mon Sep 17 00:00:00 2001 From: dzwdz Date: Fri, 25 Jun 2021 16:22:43 +0200 Subject: ring3 --- kernel/main.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'kernel/main.c') diff --git a/kernel/main.c b/kernel/main.c index d2f0693..e63ca14 100644 --- a/kernel/main.c +++ b/kernel/main.c @@ -1,8 +1,24 @@ #include #include +#include + +extern void stack_top; + +void r3_test(); void kmain() { tty_clear(); gdt_init(); + sysenter_setup(); + + tty_write("user...", 7); + sysexit(r3_test, &stack_top); +} + +void r3_test() { + tty_write("in ring3", 8); + asm("cli"); // privileged instruction, should cause a GP + tty_write(" oh no", 6); // shouldn't happen + for (;;) {} } -- cgit v1.2.3