X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/e141fd4dcd5effc2dbe59a498d7ea274b7199147..80890b99fec2630ef0a1a0805d894c3d86c16506:/lunaix-os/kernel/asm/x86/prologue.S diff --git a/lunaix-os/kernel/asm/x86/prologue.S b/lunaix-os/kernel/asm/x86/prologue.S index 0716b48..38716f5 100644 --- a/lunaix-os/kernel/asm/x86/prologue.S +++ b/lunaix-os/kernel/asm/x86/prologue.S @@ -38,17 +38,9 @@ _after_gdt: - movl $mb_info, (%esp) - call _kernel_init - - /* - 加载新的栈指针,位于0xffbfffff,但因为16字节对齐的需求,低四位清零。 - 为什么不是0xffffffff? 因为0xffc00000 - 0xffffffff 这4MiB的空间用于 - 对页表与页目录的循环映射。 - */ - mov $0xffbffff0, %esp + movl $mb_info, _k_init_mb_info - call _kernel_post_init + call _kernel_pre_init subl $6, %esp @@ -60,6 +52,17 @@ addl $6, %esp + call _kernel_init + + /* + 加载新的栈指针,位于0xffbfffff,但因为16字节对齐的需求,低四位清零。 + 为什么不是0xffffffff? 因为0xffc00000 - 0xffffffff 这4MiB的空间用于 + 对页表与页目录的循环映射。 + */ + mov $0xffbffff0, %esp + + call _kernel_post_init + /* 进入内核 */ call _kernel_main