fix/kernel: Fixed accidental flag in adm64 paging API
This commit is contained in:
parent
b11edf4457
commit
ea1156334e
2 changed files with 6 additions and 2 deletions
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
|
@ -5,6 +5,7 @@
|
||||||
"idt.h": "c",
|
"idt.h": "c",
|
||||||
"limine.h": "c",
|
"limine.h": "c",
|
||||||
"stddef.h": "c",
|
"stddef.h": "c",
|
||||||
"stdint.h": "c"
|
"stdint.h": "c",
|
||||||
|
"typeinfo": "c"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -205,14 +205,16 @@ void paging_init(void)
|
||||||
/* Map kernel sections */
|
/* Map kernel sections */
|
||||||
uint64_t text_start = ALIGN_DOWN((uint64_t)__text_start, PAGE_SIZE);
|
uint64_t text_start = ALIGN_DOWN((uint64_t)__text_start, PAGE_SIZE);
|
||||||
uint64_t text_end = ALIGN_UP((uint64_t)__text_end, PAGE_SIZE);
|
uint64_t text_end = ALIGN_UP((uint64_t)__text_end, PAGE_SIZE);
|
||||||
|
PRINT_SECTION(".text", text_start, text_end);
|
||||||
for (uint64_t addr = text_start; addr < text_end; addr += PAGE_SIZE)
|
for (uint64_t addr = text_start; addr < text_end; addr += PAGE_SIZE)
|
||||||
{
|
{
|
||||||
uint64_t phys = addr - kvirt + kphys;
|
uint64_t phys = addr - kvirt + kphys;
|
||||||
vmap(kernel_pagemap, addr, phys, VMM_PRESENT | VMM_NX);
|
vmap(kernel_pagemap, addr, phys, VMM_PRESENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t rodata_start = ALIGN_DOWN((uint64_t)__rodata_start, PAGE_SIZE);
|
uint64_t rodata_start = ALIGN_DOWN((uint64_t)__rodata_start, PAGE_SIZE);
|
||||||
uint64_t rodata_end = ALIGN_UP((uint64_t)__rodata_end, PAGE_SIZE);
|
uint64_t rodata_end = ALIGN_UP((uint64_t)__rodata_end, PAGE_SIZE);
|
||||||
|
PRINT_SECTION(".rodata", rodata_start, rodata_end);
|
||||||
for (uint64_t addr = rodata_start; addr < rodata_end; addr += PAGE_SIZE)
|
for (uint64_t addr = rodata_start; addr < rodata_end; addr += PAGE_SIZE)
|
||||||
{
|
{
|
||||||
uint64_t phys = addr - kvirt + kphys;
|
uint64_t phys = addr - kvirt + kphys;
|
||||||
|
@ -221,6 +223,7 @@ void paging_init(void)
|
||||||
|
|
||||||
uint64_t data_start = ALIGN_DOWN((uint64_t)__data_start, PAGE_SIZE);
|
uint64_t data_start = ALIGN_DOWN((uint64_t)__data_start, PAGE_SIZE);
|
||||||
uint64_t data_end = ALIGN_UP((uint64_t)__data_end, PAGE_SIZE);
|
uint64_t data_end = ALIGN_UP((uint64_t)__data_end, PAGE_SIZE);
|
||||||
|
PRINT_SECTION(".data", data_start, data_end);
|
||||||
for (uint64_t addr = data_start; addr < data_end; addr += PAGE_SIZE)
|
for (uint64_t addr = data_start; addr < data_end; addr += PAGE_SIZE)
|
||||||
{
|
{
|
||||||
uint64_t phys = addr - kvirt + kphys;
|
uint64_t phys = addr - kvirt + kphys;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue