create self-reference directly in assembler .data section

This commit is contained in:
Steffen Vogel 2014-08-21 22:25:45 +02:00
parent fbf55178c1
commit d190d4c46c
2 changed files with 2 additions and 4 deletions

View file

@ -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

View file

@ -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);