Make lookup_page() just return null for uaddr >= PHYS_BASE.
[pintos-anon] / src / userprog / exception.c
index 0d5461a31078a20145490c668ae5fd302f51569f..4f3e4f9d120efcef5ddecf1fb845956e0e44f40d 100644 (file)
@@ -1,7 +1,7 @@
-#include "exception.h"
+#include "userprog/exception.h"
 #include <inttypes.h>
 #include <inttypes.h>
-#include "gdt.h"
-#include "lib/lib.h"
+#include <stdio.h>
+#include "userprog/gdt.h"
 #include "threads/interrupt.h"
 #include "threads/thread.h"
 
 #include "threads/interrupt.h"
 #include "threads/thread.h"
 
@@ -73,9 +73,8 @@ kill (struct intr_frame *f)
     case SEL_UCSEG:
       /* User's code segment, so it's a user exception, as we
          expected.  Kill the user process.  */
     case SEL_UCSEG:
       /* User's code segment, so it's a user exception, as we
          expected.  Kill the user process.  */
-      printk ("%s: dying due to interrupt %#04x (%s).\n",
-              thread_name (thread_current ()),
-              f->vec_no, intr_name (f->vec_no));
+      printf ("%s: dying due to interrupt %#04x (%s).\n",
+              thread_name (), f->vec_no, intr_name (f->vec_no));
       intr_dump_frame (f);
       thread_exit (); 
 
       intr_dump_frame (f);
       thread_exit (); 
 
@@ -90,7 +89,7 @@ kill (struct intr_frame *f)
     default:
       /* Some other code segment?  Shouldn't happen.  Panic the
          kernel. */
     default:
       /* Some other code segment?  Shouldn't happen.  Panic the
          kernel. */
-      printk ("Interrupt %#04x (%s) in unknown segment %04x\n",
+      printf ("Interrupt %#04x (%s) in unknown segment %04x\n",
              f->vec_no, intr_name (f->vec_no), f->cs);
       thread_exit ();
     }
              f->vec_no, intr_name (f->vec_no), f->cs);
       thread_exit ();
     }
@@ -102,7 +101,8 @@ kill (struct intr_frame *f)
 #define PF_U 0x4    /* 0: kernel, 1: user process. */
 
 /* Page fault handler.  This is a skeleton that must be filled in
 #define PF_U 0x4    /* 0: kernel, 1: user process. */
 
 /* Page fault handler.  This is a skeleton that must be filled in
-   to implement virtual memory.
+   to implement virtual memory.  Some solutions to project 2 may
+   also require modifying this code.
 
    At entry, the address that faulted is in CR2 (Control Register
    2) and information about the fault, formatted as described in
 
    At entry, the address that faulted is in CR2 (Control Register
    2) and information about the fault, formatted as described in
@@ -137,7 +137,7 @@ page_fault (struct intr_frame *f)
   /* To implement virtual memory, delete the rest of the function
      body, and replace it with code that brings in the page to
      which fault_addr refers. */
   /* To implement virtual memory, delete the rest of the function
      body, and replace it with code that brings in the page to
      which fault_addr refers. */
-  printk ("Page fault at %08"PRIx32": %s error %s page in %s context.\n",
+  printf ("Page fault at %08"PRIx32": %s error %s page in %s context.\n",
           fault_addr,
           not_present ? "not present" : "rights violation",
           write ? "writing" : "reading",
           fault_addr,
           not_present ? "not present" : "rights violation",
           write ? "writing" : "reading",