X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fuserprog%2Fpagedir.c;h=bfcda457512574f85f06b1c950a08fe15117621a;hb=5626572820d71c9af988aeb4326dd2c2ac6909ca;hp=1bad9b2cc8c7fde6baa6124ed06c9f6945e7cb60;hpb=b0a700d18f0a0a8c87e1a4fff3a2108e0edb0fbc;p=pintos-anon diff --git a/src/userprog/pagedir.c b/src/userprog/pagedir.c index 1bad9b2..bfcda45 100644 --- a/src/userprog/pagedir.c +++ b/src/userprog/pagedir.c @@ -19,7 +19,7 @@ pagedir_destroy (uint32_t *pd) { uint32_t *pde; - for (pde = pd; pde < pd + PGSIZE / sizeof *pde; pde++) + for (pde = pd; pde < pd + pd_no (PHYS_BASE); pde++) if (*pde & PG_P) { uint32_t *pt = pde_get_pt (*pde); @@ -40,7 +40,6 @@ lookup_page (uint32_t *pd, void *upage, bool create) uint32_t *pde; ASSERT (pd != NULL); - ASSERT (pg_ofs (upage) == 0); ASSERT (upage < PHYS_BASE); /* Check for a page table for UPAGE. @@ -84,9 +83,9 @@ pagedir_set_page (uint32_t *pd, void *upage, void *kpage, } void * -pagedir_get_page (uint32_t *pd, void *upage) +pagedir_get_page (uint32_t *pd, const void *upage) { - uint32_t *pte = lookup_page (pd, upage, false); + uint32_t *pte = lookup_page (pd, (void *) upage, false); return pte != NULL && *pte != 0 ? pte_get_page (*pte) : NULL; }