summaryrefslogtreecommitdiff
path: root/kernel/vmem.c
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2014-12-01 23:33:31 +0100
committerMichal Idziorek <m.i@gmx.at>2014-12-01 23:33:31 +0100
commitf20db37ca17245d5d20302a1ac1da347de5c3607 (patch)
treece0712176387f4555cf290615b71cdd1c935557d /kernel/vmem.c
parentd8331335ff1720ce28eba45afe1a02814b38b033 (diff)
very buggy fork, execve and exit
Diffstat (limited to 'kernel/vmem.c')
-rw-r--r--kernel/vmem.c6
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();
}