mirror of
https://github.com/taigrr/gopher-os
synced 2025-01-18 04:43:13 -08:00
Pass kernel start/end physical address to Kmain
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
; vim: set ft=nasm :
|
||||
%include "constants.inc"
|
||||
|
||||
section .bss
|
||||
align 8
|
||||
@@ -55,8 +56,14 @@ _rt0_64_entry:
|
||||
; Call the kernel entry point passing a pointer to the multiboot data
|
||||
; copied by the 32-bit entry code
|
||||
extern multiboot_data
|
||||
extern _kernel_start
|
||||
extern _kernel_end
|
||||
extern kernel.Kmain
|
||||
|
||||
mov rax, _kernel_end - PAGE_OFFSET
|
||||
push rax
|
||||
mov rax, _kernel_start - PAGE_OFFSET
|
||||
push rax
|
||||
mov rax, multiboot_data
|
||||
push rax
|
||||
call kernel.Kmain
|
||||
|
||||
@@ -7,6 +7,8 @@ SECTIONS {
|
||||
* but load it at physical address 1M */
|
||||
. = VMA;
|
||||
|
||||
_kernel_start = .;
|
||||
|
||||
.text BLOCK(4K) : AT(ADDR(.text) - PAGE_OFFSET)
|
||||
{
|
||||
/* The multiboot header must be present in the first 4K of the kernel
|
||||
@@ -36,4 +38,6 @@ SECTIONS {
|
||||
*(COMMON)
|
||||
*(.bss)
|
||||
}
|
||||
|
||||
_kernel_end = ALIGN(4K);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user