Kernel marks its own text segment as read-only

This commit is contained in:
2023-03-03 04:53:25 -06:00
parent 035960f4d3
commit a4e69e9e36

View File

@@ -30,6 +30,11 @@ void kernel_initialize(struct boot_info_t *boot_info)
printf("%i\t\t\t%08x\t\t%u\n", boot_info->map.array[i].type, boot_info->map.array[i].location, boot_info->map.array[i].size); printf("%i\t\t\t%08x\t\t%u\n", boot_info->map.array[i].type, boot_info->map.array[i].location, boot_info->map.array[i].size);
} }
for(void *p = &_kernel_start; p < (void*)&_kernel_tend; p += page_size)
{
set_pte_type(p, page_table_levels - 1, PAGE_PRESENT);
}
memmap_insert_region(&boot_info->map, (physaddr_t)&_kernel_pstart, (physaddr_t)&_kernel_pend - (physaddr_t)&_kernel_pstart, M_UNAVAILABLE); memmap_insert_region(&boot_info->map, (physaddr_t)&_kernel_pstart, (physaddr_t)&_kernel_pend - (physaddr_t)&_kernel_pstart, M_UNAVAILABLE);
if(initialize_page_map(&boot_info->map, (physaddr_t*)&_kernel_end, boot_info->memory_size, page_size)) if(initialize_page_map(&boot_info->map, (physaddr_t*)&_kernel_end, boot_info->memory_size, page_size))
{ {