CS318 - Pintos
Pintos source browser for JHU CS318 course
pagedir.h
Go to the documentation of this file.
1 #ifndef USERPROG_PAGEDIR_H
2 #define USERPROG_PAGEDIR_H
3 
4 #include <stdbool.h>
5 #include <stdint.h>
6 
8 void pagedir_destroy (uint32_t *pd);
9 bool pagedir_set_page (uint32_t *pd, void *upage, void *kpage, bool rw);
10 void *pagedir_get_page (uint32_t *pd, const void *upage);
11 void pagedir_clear_page (uint32_t *pd, void *upage);
12 bool pagedir_is_dirty (uint32_t *pd, const void *upage);
13 void pagedir_set_dirty (uint32_t *pd, const void *upage, bool dirty);
14 bool pagedir_is_accessed (uint32_t *pd, const void *upage);
15 void pagedir_set_accessed (uint32_t *pd, const void *upage, bool accessed);
16 void pagedir_activate (uint32_t *pd);
17 
18 #endif /**< userprog/pagedir.h */
pagedir_set_accessed
void pagedir_set_accessed(uint32_t *pd, const void *upage, bool accessed)
Sets the accessed bit to ACCESSED in the PTE for virtual page VPAGE in PD.
Definition: pagedir.c:202
pagedir_activate
void pagedir_activate(uint32_t *pd)
userprog/pagedir.h
Definition: pagedir.c:220
pagedir_set_dirty
void pagedir_set_dirty(uint32_t *pd, const void *upage, bool dirty)
Set the dirty bit to DIRTY in the PTE for virtual page VPAGE in PD.
Definition: pagedir.c:173
pagedir_is_accessed
bool pagedir_is_accessed(uint32_t *pd, const void *upage)
Returns true if the PTE for virtual page VPAGE in PD has been accessed recently, that is,...
Definition: pagedir.c:193
stdbool.h
uint32_t
unsigned int uint32_t
Definition: stdint.h:26
pagedir_create
uint32_t * pagedir_create(void)
Creates a new page directory that has mappings for kernel virtual addresses, but none for user virtua...
Definition: pagedir.c:17
pagedir_is_dirty
bool pagedir_is_dirty(uint32_t *pd, const void *upage)
Returns true if the PTE for virtual page VPAGE in PD is dirty, that is, if the page has been modified...
Definition: pagedir.c:164
stdint.h
pagedir_destroy
void pagedir_destroy(uint32_t *pd)
Destroys page directory PD, freeing all the pages it references.
Definition: pagedir.c:28
pagedir_clear_page
void pagedir_clear_page(uint32_t *pd, void *upage)
Marks user virtual page UPAGE "not present" in page directory PD.
Definition: pagedir.c:144
pagedir_get_page
void * pagedir_get_page(uint32_t *pd, const void *upage)
Looks up the physical address that corresponds to user virtual address UADDR in PD.
Definition: pagedir.c:126
pagedir_set_page
bool pagedir_set_page(uint32_t *pd, void *upage, void *kpage, bool rw)
Adds a mapping in page directory PD from user virtual page UPAGE to the physical frame identified by ...
Definition: pagedir.c:99