create self-reference directly in assembler .data section
This commit is contained in:
parent
fbf55178c1
commit
d190d4c46c
2 changed files with 2 additions and 4 deletions
|
@ -331,7 +331,8 @@ global boot_map
|
|||
boot_map:
|
||||
boot_pgd:
|
||||
DD boot_pgt + 0x103 ; PG_GLOBAL | PG_RW | PG_PRESENT
|
||||
times 1023 DD 0 ; PAGE_MAP_ENTRIES - 1
|
||||
times 1022 DD 0 ; PAGE_MAP_ENTRIES - 2
|
||||
DD boot_pgd + 0x103 ; PG_GLOBAL | PG_RW | PG_PRESENT (self-reference)
|
||||
boot_pgt:
|
||||
%assign i 0
|
||||
%rep 1024 ; PAGE_MAP_ENTRIES
|
||||
|
|
|
@ -219,9 +219,6 @@ int page_init()
|
|||
irq_uninstall_handler(14);
|
||||
irq_install_handler(14, page_fault_handler);
|
||||
|
||||
// create self-reference
|
||||
boot_map[PAGE_MAP_ENTRIES-1] = (size_t) &boot_map | PG_PRESENT | PG_RW;
|
||||
|
||||
// map kernel
|
||||
npages = PAGE_FLOOR((size_t) &kernel_end - (size_t) &kernel_start) >> PAGE_BITS;
|
||||
page_map((size_t) &kernel_start, (size_t) &kernel_start, npages, PG_PRESENT | PG_RW | PG_GLOBAL);
|
||||
|
|
Loading…
Add table
Reference in a new issue