summaryrefslogtreecommitdiff
path: root/kernel/vmem.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/vmem.c')
-rw-r--r--kernel/vmem.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/kernel/vmem.c b/kernel/vmem.c
index 491f486..a8e4008 100644
--- a/kernel/vmem.c
+++ b/kernel/vmem.c
@@ -9,6 +9,8 @@
#include "lib/logger/log.h" // logger facilities
#define FOOLOS_MODULE_NAME "vmem"
+static uint32_t kernel_pages;
+
// TODO : why is the frame not 0xfffff??
enum PAGE_PTE_FLAGS
{
@@ -255,7 +257,7 @@ pdirectory* vmem_new_space_dir(pdirectory *copy_dir)
uint32_t virt_addr=0;
// first pages are identity mapped
- for(int j=0;j<5;j++)
+ for(int j=0;j<kernel_pages;j++)
{
// this is the table for our page directory. It maps 1024*4096 bytes
@@ -434,3 +436,8 @@ void vmem_set_dir(pdirectory *dir)
x86_set_pdbr(dir);
}
+pdirectory* vmem_init(uint32_t kernel_blocks)
+{
+ kernel_pages=kernel_blocks/1024+1;
+ return vmem_new_space_dir(NULL);
+}