From f20db37ca17245d5d20302a1ac1da347de5c3607 Mon Sep 17 00:00:00 2001 From: Michal Idziorek Date: Mon, 1 Dec 2014 23:33:31 +0100 Subject: very buggy fork, execve and exit --- kernel/vmem.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'kernel/vmem.c') 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(); } -- cgit v1.2.3