diff options
| author | Michal Idziorek <m.i@gmx.at> | 2014-12-04 23:30:15 +0100 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2014-12-04 23:30:15 +0100 |
| commit | 41c3e0bc640f570831bd6c18fbfb8c7cec23a43d (patch) | |
| tree | 487ff1379ad74fa5f610c5b18bcb573faa3f44ba /kernel/vmem.c | |
| parent | 53a61ec0f257930c2c5eb2ba20cac53d7862c92b (diff) | |
struggling with gcc -O , and other stuff
Diffstat (limited to 'kernel/vmem.c')
| -rw-r--r-- | kernel/vmem.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/kernel/vmem.c b/kernel/vmem.c index 5dccc13..a909b1a 100644 --- a/kernel/vmem.c +++ b/kernel/vmem.c @@ -299,8 +299,14 @@ pdirectory* vmem_new_space_dir(pdirectory *copy_dir) { ptable* table = (ptable*) pmmngr_alloc_block (); - pd_entry *oldentry= &(copy_dir->m_entries[PAGE_DIRECTORY_INDEX(virt_addr)]); - ptable* oldtable=pd_entry_get_frame(oldentry); + pd_entry *oldentry=NULL; + ptable* oldtable=NULL; + + if(copy_dir!=NULL) + { + oldentry=&(copy_dir->m_entries[PAGE_DIRECTORY_INDEX(virt_addr)]); + oldtable=pd_entry_get_frame(oldentry); + } log(FOOLOS_MODULE_NAME,FOOLOS_LOG_DEBUG,"oldtable at: 0x%08X",oldtable); if (!table)panic(FOOLOS_MODULE_NAME,"unable to alloc table"); @@ -308,6 +314,7 @@ pdirectory* vmem_new_space_dir(pdirectory *copy_dir) for (int i=0, virt=virt_addr; i<1024; i++, virt+=4096) { + //log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"i = %d",i); phys_addr=pmmngr_alloc_block(); // get free space from the memory manager if (!phys_addr)panic(FOOLOS_MODULE_NAME,"unable to alloc spce for frame"); @@ -350,8 +357,14 @@ pdirectory* vmem_new_space_dir(pdirectory *copy_dir) { ptable* table = (ptable*) pmmngr_alloc_block (); - pd_entry *oldentry= &(copy_dir->m_entries[PAGE_DIRECTORY_INDEX(virt_addr)]); - ptable* oldtable=pd_entry_get_frame(oldentry); + pd_entry *oldentry=NULL; + ptable* oldtable=NULL; + + if(copy_dir!=NULL) + { + oldentry=&(copy_dir->m_entries[PAGE_DIRECTORY_INDEX(virt_addr)]); + oldtable=pd_entry_get_frame(oldentry); + } log(FOOLOS_MODULE_NAME,FOOLOS_LOG_DEBUG,"oldtable at: 0x%08X",oldtable); if (!table)panic(FOOLOS_MODULE_NAME,"unable to alloc table"); |
