X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/8fdcd1575a97862975fa019f09c00453a2a7d8bb..714e732504021937171665407133851ad9f3e68b:/lunaix-os/kernel/lxinit.c diff --git a/lunaix-os/kernel/lxinit.c b/lunaix-os/kernel/lxinit.c index 57e2bda..5119e4b 100644 --- a/lunaix-os/kernel/lxinit.c +++ b/lunaix-os/kernel/lxinit.c @@ -2,13 +2,13 @@ #include #include #include +#include #include #include #include #include #include #include -#include extern uint8_t __kernel_start; @@ -41,6 +41,7 @@ _lxinit_main() kprintf("I am child, I am about to terminated\n"); _exit(1); } + wait(&status); pid_t child = wait(&status); kprintf("I am parent, my child (%d) terminated normally with code: %d.\n", child, @@ -64,8 +65,7 @@ _lxinit_main() if (i == 3) { i = *(int*)0xdeadc0de; // seg fault! } - tty_put_char('0' + i); - tty_put_char('\n'); + kprintf(KINFO "%d\n", i); _exit(0); } kprintf(KINFO "Forked %d\n", pid); @@ -97,11 +97,14 @@ _lxinit_main() yield(); continue; } - if ((keyevent.state & KBD_KEY_FPRESSED) && - (keyevent.keycode & 0xff00) <= KEYPAD) { - tty_put_char((char)(keyevent.keycode & 0x00ff)); - // FIXME: io to vga port is privileged and cause #GP in user mode - // tty_sync_cursor(); + if ((keyevent.state & KBD_KEY_FPRESSED)) { + if ((keyevent.keycode & 0xff00) <= KEYPAD) { + console_write_char((char)(keyevent.keycode & 0x00ff)); + } else if (keyevent.keycode == KEY_UP) { + console_view_up(); + } else if (keyevent.keycode == KEY_DOWN) { + console_view_down(); + } } } spin();