X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fuserprog%2Fpagedir.c;h=fa8f244d88220a954e43ebc880e1140d242643f4;hb=a9559a394a9224e1b88a4cf2154a7946e0c13a18;hp=7c392e61d5fee657b773b879ca4377bce1d62e32;hpb=c9f4fb6ae159c1d7c5bda6ea6fbb2cd19b1f6609;p=pintos-anon diff --git a/src/userprog/pagedir.c b/src/userprog/pagedir.c index 7c392e6..fa8f244 100644 --- a/src/userprog/pagedir.c +++ b/src/userprog/pagedir.c @@ -168,23 +168,14 @@ pagedir_test_accessed (uint32_t *pd, const void *upage) return pte != NULL && (*pte & PG_A) != 0; } -/* Returns true if the PTE for user virtual page UPAGE in PD has - been accessed recently, and then resets the accessed bit for - that page. - Returns false and has no effect if PD contains no PDE for - UPAGE. */ -bool -pagedir_test_accessed_and_clear (uint32_t *pd, const void *upage) +/* Resets the accessed bit in the PTE for user virtual page UPAGE + in PD. */ +void +pagedir_clear_accessed (uint32_t *pd, const void *upage) { uint32_t *pte = lookup_page (pd, (void *) upage, false); if (pte != NULL) - { - bool accessed = (*pte & PG_A) != 0; - *pte &= ~(uint32_t) PG_A; - return accessed; - } - else - return false; + *pte &= ~(uint32_t) PG_A; } /* Loads page directory PD into the CPU's page directory base