Rename addrspace to process.
[pintos-anon] / src / userprog / pagedir.c
index 39a8f0a3af286f9227cf7d7226f19b7cd18e50e4..1edd0ff1931f84888a922558fe73ac0f78365f95 100644 (file)
@@ -19,6 +19,9 @@ pagedir_destroy (uint32_t *pd)
 {
   uint32_t *pde;
 
+  if (pd == NULL)
+    return;
+
   for (pde = pd; pde < pd + pd_no (PHYS_BASE); pde++)
     if (*pde & PG_P) 
       {
@@ -40,7 +43,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 +86,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;
 }