Update Exception To Debug Shared files, w/ G
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#include "page.h"
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include "filesys/file.h"
|
||||
#include "threads/malloc.h"
|
||||
#include "threads/palloc.h"
|
||||
@@ -76,20 +77,23 @@ page_get (void *upage)
|
||||
bool
|
||||
page_load (struct page_entry *page, bool writable)
|
||||
{
|
||||
printf ("WE IN PAGE LOAD NOW %p %d\n", page->file, page->offset);
|
||||
/* If the page is read-only, we want to check if it is a shared page already
|
||||
loaded into memory. If it is, we can just map the page to the frame. */
|
||||
if (!page->writable)
|
||||
if (!page->writable && !writable)
|
||||
{
|
||||
ASSERT (page->read_bytes == PGSIZE);
|
||||
|
||||
printf ("Hi 0! %d %d\n", page->offset, file_length (page->file));
|
||||
struct shared_page_entry *shared_page =
|
||||
shared_page_get (page->file, page->upage);
|
||||
|
||||
if (shared_page != NULL)
|
||||
{
|
||||
printf ("Hi 0.1!\n");
|
||||
/* Map the page to the shared frame for this read-only portion. */
|
||||
if (!install_page (page->upage, shared_page->frame, false))
|
||||
return false;
|
||||
printf ("Hi 0.2!\n");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,9 +108,11 @@ page_load (struct page_entry *page, bool writable)
|
||||
if (!install_page (page->upage, frame, page->writable))
|
||||
{
|
||||
frame_free (frame);
|
||||
printf ("Hi 2!\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
printf ("UR MAMA SO FAT");
|
||||
/* Move the file pointer to the correct location in the file. Then, read the
|
||||
data from the file into the frame. Checks that we were able to read the
|
||||
expected number of bytes. */
|
||||
@@ -114,6 +120,7 @@ page_load (struct page_entry *page, bool writable)
|
||||
if (file_read (page->file, frame, page->read_bytes) != (int) page->read_bytes)
|
||||
{
|
||||
frame_free (frame);
|
||||
printf ("Hi 3!\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -126,6 +133,7 @@ page_load (struct page_entry *page, bool writable)
|
||||
if (shared_page_insert (page->file, page->upage, frame) == NULL)
|
||||
{
|
||||
frame_free (frame);
|
||||
printf ("Hi 4!\n");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user