diff options
| author | Michal Idziorek <m.i@gmx.at> | 2015-05-15 02:34:33 +0200 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2015-05-15 02:34:33 +0200 |
| commit | 9b152b773d40d40abf41a46be2ddae8905170fdf (patch) | |
| tree | 7e6ee94e0af8804e11a2725028e8566cb2387c89 /kernel/vmem.c | |
| parent | 0365bbb5c58912fd24b3d33b90477d3de5d46d96 (diff) | |
using ramimage position and correct kernel pages count
Diffstat (limited to 'kernel/vmem.c')
| -rw-r--r-- | kernel/vmem.c | 9 |
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); +} |
