X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=boot%2Ffreeldr%2Ffreeldr%2Farch%2Famd64%2Fentry.S;h=e5620bd3005ac2be1f81e42973f1cb7b7fb9f998;hp=075778f8847a36ecb52d0ed26d0a126438e88187;hb=ed8355222976c1834ba15446782c3f6dfd5ec0a8;hpb=aaee856cea0430e011d56a875e780d13c21bef65 diff --git a/boot/freeldr/freeldr/arch/amd64/entry.S b/boot/freeldr/freeldr/arch/amd64/entry.S index 075778f8847..e5620bd3005 100644 --- a/boot/freeldr/freeldr/arch/amd64/entry.S +++ b/boot/freeldr/freeldr/arch/amd64/entry.S @@ -3,6 +3,12 @@ #include EXTERN BootMain:PROC +// EXTERN cmdline:DWORD + +#ifdef _USE_ML +EXTERN __bss_start__:FWORD +EXTERN __bss_end__:FWORD +#endif .code64 @@ -40,13 +46,24 @@ FrldrStartup: mov eax, dword ptr [BSS_RealModeEntry] mov dword ptr [AddressOfRealModeEntryPoint], eax - /* GO! */ + /* Clean out BSS */ + xor rax, rax + mov rdi, offset __bss_start__ + mov rcx, offset __bss_end__ + 7 + sub rcx, rdi + shr rcx, 3 + rep stosq + + /* Pass the command line to BootMain */ + // mov rcx, offset cmdline xor rcx, rcx + + /* GO! */ call BootMain /* We should never get here */ stop: - jmp stop + jmp short stop nop nop