pgdir 180 defs.h void clearpteu(pde_t *pgdir, char *uva);
pgdir 19 exec.c pde_t *pgdir, *oldpgdir;
pgdir 27 exec.c pgdir = 0;
pgdir 35 exec.c if((pgdir = setupkvm()) == 0)
pgdir 47 exec.c if((sz = allocuvm(pgdir, sz, ph.vaddr + ph.memsz)) == 0)
pgdir 49 exec.c if(loaduvm(pgdir, (char*)ph.vaddr, ip, ph.off, ph.filesz) < 0)
pgdir 59 exec.c if((sz = allocuvm(pgdir, sz, sz + 2*PGSIZE)) == 0)
pgdir 61 exec.c clearpteu(pgdir, (char*)(sz - 2*PGSIZE));
pgdir 69 exec.c if(copyout(pgdir, sp, argv[argc], strlen(argv[argc]) + 1) < 0)
pgdir 80 exec.c if(copyout(pgdir, sp, ustack, (3+argc+1)*4) < 0)
pgdir 90 exec.c oldpgdir = proc->pgdir;
pgdir 91 exec.c proc->pgdir = pgdir;
pgdir 100 exec.c if(pgdir)
pgdir 101 exec.c freevm(pgdir);
pgdir 86 proc.c if((p->pgdir = setupkvm()) == 0)
pgdir 88 proc.c inituvm(p->pgdir, _binary_initcode_start, (int)_binary_initcode_size);
pgdir 114 proc.c if((sz = allocuvm(proc->pgdir, sz, sz + n)) == 0)
pgdir 117 proc.c if((sz = deallocuvm(proc->pgdir, sz, sz + n)) == 0)
pgdir 139 proc.c if((np->pgdir = copyuvm(proc->pgdir, proc->sz)) == 0){
pgdir 235 proc.c freevm(p->pgdir);
pgdir 57 proc.h pde_t* pgdir; // Page table
pgdir 46 vm.c walkpgdir(pde_t *pgdir, const void *va, int alloc)
pgdir 51 vm.c pde = &pgdir[PDX(va)];
pgdir 71 vm.c mappages(pde_t *pgdir, void *va, uint size, uint pa, int perm)
pgdir 79 vm.c if((pte = walkpgdir(pgdir, a, 1)) == 0)
pgdir 131 vm.c pde_t *pgdir;
pgdir 134 vm.c if((pgdir = (pde_t*)kalloc()) == 0)
pgdir 136 vm.c memset(pgdir, 0, PGSIZE);
pgdir 140 vm.c if(mappages(pgdir, k->virt, k->phys_end - k->phys_start,
pgdir 143 vm.c return pgdir;
pgdir 173 vm.c if(p->pgdir == 0)
pgdir 175 vm.c lcr3(v2p(p->pgdir)); // switch to new address space
pgdir 182 vm.c inituvm(pde_t *pgdir, char *init, uint sz)
pgdir 190 vm.c mappages(pgdir, 0, PGSIZE, v2p(mem), PTE_W|PTE_U);
pgdir 197 vm.c loaduvm(pde_t *pgdir, char *addr, struct inode *ip, uint offset, uint sz)
pgdir 205 vm.c if((pte = walkpgdir(pgdir, addr+i, 0)) == 0)
pgdir 221 vm.c allocuvm(pde_t *pgdir, uint oldsz, uint newsz)
pgdir 236 vm.c deallocuvm(pgdir, newsz, oldsz);
pgdir 240 vm.c mappages(pgdir, (char*)a, PGSIZE, v2p(mem), PTE_W|PTE_U);
pgdir 250 vm.c deallocuvm(pde_t *pgdir, uint oldsz, uint newsz)
pgdir 260 vm.c pte = walkpgdir(pgdir, (char*)a, 0);
pgdir 278 vm.c freevm(pde_t *pgdir)
pgdir 282 vm.c if(pgdir == 0)
pgdir 284 vm.c deallocuvm(pgdir, KERNBASE, 0);
pgdir 286 vm.c if(pgdir[i] & PTE_P){
pgdir 287 vm.c char * v = p2v(PTE_ADDR(pgdir[i]));
pgdir 291 vm.c kfree((char*)pgdir);
pgdir 297 vm.c clearpteu(pde_t *pgdir, char *uva)
pgdir 301 vm.c pte = walkpgdir(pgdir, uva, 0);
pgdir 310 vm.c copyuvm(pde_t *pgdir, uint sz)
pgdir 320 vm.c if((pte = walkpgdir(pgdir, (void *) i, 0)) == 0)
pgdir 342 vm.c uva2ka(pde_t *pgdir, char *uva)
pgdir 346 vm.c pte = walkpgdir(pgdir, uva, 0);
pgdir 358 vm.c copyout(pde_t *pgdir, uint va, void *p, uint len)
pgdir 366 vm.c pa0 = uva2ka(pgdir, (char*)va0);