diff options
-rw-r--r-- | mmu.h | 2 | ||||
-rw-r--r-- | vm.c | 10 |
2 files changed, 5 insertions, 7 deletions
@@ -118,8 +118,6 @@ struct segdesc { #ifndef __ASSEMBLER__ -typedef uint64 pml4e_t; -typedef uint64 pdpe_t; typedef uint64 pte_t; struct taskstate { @@ -67,18 +67,18 @@ static pte_t * walkpgdir(pde_t *pml4, const void *va, int alloc) { pde_t *pgtab = pml4; - pde_t *pde; + pde_t *pte; int level; for (level = L_PML4; level > 0; level--) { - pde = &pgtab[PX(level, va)]; - if(*pde & PTE_P) - pgtab = (pte_t*)P2V(PTE_ADDR(*pde)); + pte = &pgtab[PX(level, va)]; + if(*pte & PTE_P) + pgtab = (pte_t*)P2V(PTE_ADDR(*pte)); else { if(!alloc || (pgtab = (pte_t*)kalloc()) == 0) return 0; memset(pgtab, 0, PGSIZE); - *pde = V2P(pgtab) | PTE_P | PTE_W | PTE_U; + *pte = V2P(pgtab) | PTE_P | PTE_W | PTE_U; } } return &pgtab[PX(level, va)]; |