pintos: Avoid literal control character in Perl variable name.
[pintos-anon] / src / userprog / exception.c
index 9a4eb90fd7eb184de733e867188c84cce337633a..19aca125e331783bad87330e8e7213f72072e580 100644 (file)
@@ -24,8 +24,8 @@ static void page_fault (struct intr_frame *);
    way as other exceptions, but this will need to change to
    implement virtual memory.
 
-   Refer to [IA32-v3] section 5.14 for a description of each of
-   these exceptions. */
+   Refer to [IA32-v3a] section 5.15 "Exception and Interrupt
+   Reference" for a description of each of these exceptions. */
 void
 exception_init (void) 
 {
@@ -108,22 +108,17 @@ kill (struct intr_frame *f)
     }
 }
 
-/* Page fault error code bits that describe the cause of the exception.  */
-#define PF_P 0x1    /* 0: not-present page. 1: access rights violation. */
-#define PF_W 0x2    /* 0: read, 1: write. */
-#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.  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
-   the PF_* macros above, is in F's error_code member.  The
+   the PF_* macros in exception.h, is in F's error_code member.  The
    example code here shows how to parse that information.  You
    can find more information about both of these in the
    description of "Interrupt 14--Page Fault Exception (#PF)" in
-   [IA32-v3] section 5.14, which is pages 5-46 to 5-49. */
+   [IA32-v3a] section 5.15 "Exception and Interrupt Reference". */
 static void
 page_fault (struct intr_frame *f) 
 {
@@ -137,9 +132,9 @@ page_fault (struct intr_frame *f)
      data.  It is not necessarily the address of the instruction
      that caused the fault (that's f->eip).
      See [IA32-v2a] "MOV--Move to/from Control Registers" and
-     [IA32-v3] 5.14 "Interrupt 14--Page Fault Exception
+     [IA32-v3a] 5.15 "Interrupt 14--Page Fault Exception
      (#PF)". */
-  asm ("mov %0, %%cr2" : "=r" (fault_addr));
+  asm ("movl %%cr2, %0" : "=r" (fault_addr));
 
   /* Turn interrupts back on (they were only off so that we could
      be assured of reading CR2 before it changed). */