diff options
| author | Michal Idziorek <m.i@gmx.at> | 2014-12-09 22:55:14 +0100 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2014-12-09 22:55:14 +0100 |
| commit | f4518cf996c137e18cd70dd2d23ba9d8cfcfb526 (patch) | |
| tree | 416952ac9efd8fc0bd7b67cbc50ed8177fac2b56 /kernel/vmem.c | |
| parent | 7e965f276c47d29969f5470533d40df03536d190 (diff) | |
passing vesa physbase to vmem and some cleanup
Diffstat (limited to 'kernel/vmem.c')
| -rw-r--r-- | kernel/vmem.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/kernel/vmem.c b/kernel/vmem.c index 24a2f92..c2892c7 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 phys; + // TODO : why is the frame not 0xfffff?? enum PAGE_PTE_FLAGS { @@ -293,8 +295,10 @@ pdirectory* vmem_new_space_dir(pdirectory *copy_dir) virt_addr+=1024*4096; } - phys_addr=0xFc000000; - virt_addr=0xFc000000; + if(phys!=0) + { + phys_addr=phys; + virt_addr=phys; // vesa for(int j=0;j<5;j++) { @@ -340,6 +344,7 @@ pdirectory* vmem_new_space_dir(pdirectory *copy_dir) phys_addr+=1024*4096; virt_addr+=1024*4096; } + } // programm space virt_addr=0x8000000; @@ -468,8 +473,9 @@ void vmem_set_dir(pdirectory *dir) -pdirectory* vmem_init() +pdirectory* vmem_init(uint32_t physbase) { + phys=physbase; log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"init paging"); pdirectory *dir=vmem_new_space_dir(0); vmem_set_dir(dir); |
