summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlmuHS <almuhs@github.com>2019-05-20 20:43:22 +0200
committerAlmuHS <almuhs@github.com>2019-05-20 20:43:22 +0200
commit4244eccec0fef2e8f0eef13f911f726e7d99fa4e (patch)
tree44f8ddce3219195d29e77d5db53fb08bf0da0727
parent0c5c4fcd9de8aa21c0c6a424576abe6b7b0ae949 (diff)
fix: added declarations in header
-rw-r--r--i386/i386at/model_dep.c9
-rw-r--r--i386/i386at/model_dep.h2
2 files changed, 9 insertions, 2 deletions
diff --git a/i386/i386at/model_dep.c b/i386/i386at/model_dep.c
index aaa6c3c7..114ba7e1 100644
--- a/i386/i386at/model_dep.c
+++ b/i386/i386at/model_dep.c
@@ -141,6 +141,9 @@ vm_offset_t int_stack_top, int_stack_base;
extern void linux_init(void);
#endif
+unsigned kernel_page_dir_addr = 0;
+unsigned pdpbase_addr = 0;
+
/*
* Find devices. The system is alive.
*/
@@ -478,14 +481,16 @@ i386at_init(void)
#endif /* PAE */
#endif /* MACH_PV_PAGETABLES */
#if PAE
- set_cr3((unsigned)_kvtophys(kernel_pmap->pdpbase));
+ pdpbase_addr = (unsigned)_kvtophys(kernel_pmap->pdpbase);
+ set_cr3(pdpbase_addr);
#ifndef MACH_HYP
if (!CPU_HAS_FEATURE(CPU_FEATURE_PAE))
panic("CPU doesn't have support for PAE.");
set_cr4(get_cr4() | CR4_PAE);
#endif /* MACH_HYP */
#else
- set_cr3((unsigned)_kvtophys(kernel_page_dir));
+ kernel_page_dir_addr = (unsigned)_kvtophys(kernel_page_dir);
+ set_cr3(kernel_page_dir_addr);
#endif /* PAE */
#ifndef MACH_HYP
/* Turn paging on.
diff --git a/i386/i386at/model_dep.h b/i386/i386at/model_dep.h
index d47378a1..8aa72af8 100644
--- a/i386/i386at/model_dep.h
+++ b/i386/i386at/model_dep.h
@@ -26,6 +26,8 @@
* Interrupt stack.
*/
extern vm_offset_t int_stack_top, int_stack_base;
+extern unsigned kernel_page_dir_addr, pdpbase_addr;
+
/* Check whether P points to the interrupt stack. */
#define ON_INT_STACK(P) (((P) & ~(KERNEL_STACK_SIZE-1)) == int_stack_base)