#include <asm.inc>
#include <arch/pc/x86common.h>
+#include <arch/pc/pcbios.h>
EXTERN _BootMain:PROC
EXTERN _InitIdt:PROC
/* Initialize the idt */
call _InitIdt
- /* Pass the command line to BootMain */
-#ifdef _USE_ML
+#ifndef _USE_ML
+ /* Clean out bss */
xor eax, eax
-#else
+ mov edi, offset __bss_start__
+ mov ecx, offset __bss_end__ + 3
+ sub ecx, edi
+ shr ecx, 2
+ rep stosd
+
+ /* Pass the command line to BootMain */
mov eax, offset cmdline
+#else
+ xor eax, eax
#endif
/* GO! */
ret
-PUBLIC _SoftReboot
-_SoftReboot:
+PUBLIC _Reboot
+_Reboot:
/* Set the function ID */
- mov bx, FNID_SoftReboot
+ mov bx, FNID_Reboot
/*Switch to real mode (We don't return) */
jmp SwitchToReal