From 2e087956911844a1d8fcecad8589da75ad537bc8 Mon Sep 17 00:00:00 2001 From: Matthias Kruk Date: Mon, 2 Dec 2019 18:26:31 +0900 Subject: [PATCH] Move _kernel_cr3 symbol to .text segment --- kernel/arch/entry.S | 5 ++++- kernel/arch/paging.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel/arch/entry.S b/kernel/arch/entry.S index 2f0369f..4ab9ea4 100644 --- a/kernel/arch/entry.S +++ b/kernel/arch/entry.S @@ -83,7 +83,7 @@ .global _int_restore .extern _cpu -.extern _kernel_cr3 +.global _kernel_cr3 .extern _exc_handle .extern _int_handle @@ -442,3 +442,6 @@ _return_to_kernel: popa add $8, %esp iret + +_kernel_cr3: + .long 0 diff --git a/kernel/arch/paging.c b/kernel/arch/paging.c index 978cf54..b72f3f6 100644 --- a/kernel/arch/paging.c +++ b/kernel/arch/paging.c @@ -31,6 +31,7 @@ #define _frame_clear(addr) _frame_map[(addr) >> 17] &= ~(1 << (((addr) >> 12) & 0x1f)) #define _frame_get(addr) (_frame_map[(addr) >> 17] & (1 << (((addr) >> 12) & 0x1f))) +extern u32_t _kernel_cr3; extern u32_t _corax_rodata; extern u32_t _corax_data; extern u32_t _corax_bss; @@ -45,7 +46,6 @@ extern u32_t _mem_start; #define BSS_BASE (&_corax_bss) #define BSS_SIZE ((u32_t)&_mem_start - (u32_t)&_corax_bss) -u32_t _kernel_cr3 = 0; static u32_t _pg_flags = 0; static u32_t *_frame_map; static u32_t _nframes; -- 2.47.3