diff options
| author | Michal Idziorek <m.i@gmx.at> | 2014-12-01 23:33:31 +0100 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2014-12-01 23:33:31 +0100 |
| commit | f20db37ca17245d5d20302a1ac1da347de5c3607 (patch) | |
| tree | ce0712176387f4555cf290615b71cdd1c935557d /kernel/vmem.c | |
| parent | d8331335ff1720ce28eba45afe1a02814b38b033 (diff) | |
very buggy fork, execve and exit
Diffstat (limited to 'kernel/vmem.c')
| -rw-r--r-- | kernel/vmem.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/vmem.c b/kernel/vmem.c index 0a9e4b1..0cea40b 100644 --- a/kernel/vmem.c +++ b/kernel/vmem.c @@ -254,7 +254,7 @@ uint32_t vmem_alloc_block_at(uint32_t virt_addr) */ // vmem init and also copies all the shit for FORK -volatile int vmem_new_space_dir() +volatile int vmem_new_space_dir(int copy_dir) { x86_paging_disable(); @@ -319,7 +319,7 @@ volatile int vmem_new_space_dir() { ptable* table = (ptable*) pmmngr_alloc_block (); - pd_entry *oldentry= &(page_dirs[0]->m_entries[PAGE_DIRECTORY_INDEX(virt_addr)]); + pd_entry *oldentry= &(page_dirs[copy_dir]->m_entries[PAGE_DIRECTORY_INDEX(virt_addr)]); ptable* oldtable=pd_entry_get_frame(oldentry); log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"oldtable at: 0x%08X",oldtable); @@ -381,7 +381,7 @@ void vmem_init() { //log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"init paging (vesa base: 0x%08x)",vesa_physbase); log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"init paging"); - vmem_set_dir(vmem_new_space_dir()); + vmem_set_dir(vmem_new_space_dir(0)); x86_paging_enable(); } |
