summaryrefslogtreecommitdiffstats
path: root/vm/mmap.c
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2012-06-21 20:06:48 +0200
committermanuel <manuel@mausz.at>2012-06-21 20:06:48 +0200
commit4fd6a30d164874fd660aacc36b44842e14bba208 (patch)
treeeac23c7483d4ad06ec11c154787b9cee698623cb /vm/mmap.c
parent5a6b07a186f9f3f718f312b6b9b365cb02da6556 (diff)
downloadprogos-4fd6a30d164874fd660aacc36b44842e14bba208.tar.gz
progos-4fd6a30d164874fd660aacc36b44842e14bba208.tar.bz2
progos-4fd6a30d164874fd660aacc36b44842e14bba208.zip
mark pages removed from page/mmap table as clear
Diffstat (limited to 'vm/mmap.c')
-rw-r--r--vm/mmap.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/vm/mmap.c b/vm/mmap.c
index 0dc9190..8620513 100644
--- a/vm/mmap.c
+++ b/vm/mmap.c
@@ -1,11 +1,11 @@
1#include <string.h> 1#include <string.h>
2#include "userprog/pagedir.h"
3#include "userprog/process.h"
4#include "filesys/file.h" 2#include "filesys/file.h"
5#include "threads/thread.h" 3#include "threads/thread.h"
6#include "threads/vaddr.h" 4#include "threads/vaddr.h"
7#include "threads/malloc.h" 5#include "threads/malloc.h"
8#include "threads/palloc.h" 6#include "threads/palloc.h"
7#include "userprog/pagedir.h"
8#include "userprog/process.h"
9#include "vm/mmap.h" 9#include "vm/mmap.h"
10#include "vm/page.h" 10#include "vm/page.h"
11 11
@@ -128,8 +128,12 @@ mmap_table_remove (struct mmap_table *table, mapid_t mapid)
128 process_unlock_filesys (); 128 process_unlock_filesys ();
129 } 129 }
130 130
131 /* free page and page table entry */
131 if (pte != NULL) 132 if (pte != NULL)
133 {
134 pagedir_clear_page (thread->pagedir, pte->upage);
132 free (pte); 135 free (pte);
136 }
133 137
134 ofs += PGSIZE; 138 ofs += PGSIZE;
135 } 139 }