X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/509574b18a3373030cd0d7b979499499ff06dd9b..e66387b252f36c894d79769cbfb178bc950600d4:/lunaix-os/kernel/proc0.c diff --git a/lunaix-os/kernel/proc0.c b/lunaix-os/kernel/proc0.c index dac1b55..074bcd9 100644 --- a/lunaix-os/kernel/proc0.c +++ b/lunaix-os/kernel/proc0.c @@ -36,6 +36,20 @@ void __proc0() { init_platform(); + asm volatile("movw %0, %ax\n" + "movw %ax, %es\n" + "movw %ax, %ds\n" + "movw %ax, %fs\n" + "movw %ax, %gs\n" + "pushl %0\n" + "pushl %1\n" + "pushl %2\n" + "pushl %3\n" + "retf" ::"i"(UDATA_SEG), + "i"(USTACK_TOP & ~0xf), + "i"(UCODE_SEG), + "r"(&&usr)); +usr: if (!fork()) { asm("jmp _lxinit_main"); }