Implement VM #63

Merged
td1223 merged 94 commits from vm/merged/themis into master 2024-12-06 05:07:14 +00:00
16 changed files with 479 additions and 74 deletions
Showing only changes of commit ac31fb1e1e - Show all commits

View File

@@ -811,6 +811,7 @@ get_usr_kpage (enum palloc_flags flags, void *upage)
return NULL;
else
page = frame_alloc (flags, upage, t);
pagedir_set_accessed (t->pagedir, upage, true);
#else
page = palloc_get_page (flags | PAL_USER);
#endif

View File

@@ -77,7 +77,9 @@ page_load (struct page_entry *page, bool writable)
/* Allocate a frame for the page. If a frame allocation fails, then
frame_alloc should try to evict a page. If it is still NULL, the OS
panics as this should not happen if eviction is working correctly. */
void *frame = frame_alloc (0, page->upage, thread_current ());
struct thread *t = thread_current ();
void *frame = frame_alloc (0, page->upage, t);
pagedir_set_accessed (t->pagedir, page->upage, true);
if (frame == NULL)
PANIC ("Could not allocate a frame to load page into memory.");