projects
/
pintos-anon
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix lost thought.
[pintos-anon]
/
solutions
/
p3.patch
diff --git
a/solutions/p3.patch
b/solutions/p3.patch
index 773a7126009b26ec5caa17ef76675b18a68cc758..c7c9df84710d74f727dcf2d5807344fc2f0ed218 100644
(file)
--- a/
solutions/p3.patch
+++ b/
solutions/p3.patch
@@
-1,7
+1,7
@@
Index: src/Makefile.build
diff -u src/Makefile.build~ src/Makefile.build
Index: src/Makefile.build
diff -u src/Makefile.build~ src/Makefile.build
---- src/Makefile.build~
2005-06-18 20:20:47.000000000 -0700
-+++ src/Makefile.build
2006-05-16 13:44:56.000000000 -0700
+--- src/Makefile.build~
++++ src/Makefile.build
@@ -53,7 +53,9 @@ userprog_SRC += userprog/gdt.c # GDT in
userprog_SRC += userprog/tss.c # TSS management.
@@ -53,7 +53,9 @@ userprog_SRC += userprog/gdt.c # GDT in
userprog_SRC += userprog/tss.c # TSS management.
@@
-15,8
+15,8
@@
diff -u src/Makefile.build~ src/Makefile.build
filesys_SRC = filesys/filesys.c # Filesystem core.
Index: src/devices/timer.c
diff -u src/devices/timer.c~ src/devices/timer.c
filesys_SRC = filesys/filesys.c # Filesystem core.
Index: src/devices/timer.c
diff -u src/devices/timer.c~ src/devices/timer.c
---- src/devices/timer.c~
2005-07-06 13:45:36.000000000 -0700
-+++ src/devices/timer.c
2006-05-16 13:44:56.000000000 -0700
+--- src/devices/timer.c~
++++ src/devices/timer.c
@@ -23,6 +23,9 @@ static volatile int64_t ticks;
Initialized by timer_calibrate(). */
static unsigned loops_per_tick;
@@ -23,6 +23,9 @@ static volatile int64_t ticks;
Initialized by timer_calibrate(). */
static unsigned loops_per_tick;
@@
-95,8
+95,8
@@
diff -u src/devices/timer.c~ src/devices/timer.c
/* Returns true if LOOPS iterations waits for more than one timer
Index: src/threads/init.c
diff -u src/threads/init.c~ src/threads/init.c
/* Returns true if LOOPS iterations waits for more than one timer
Index: src/threads/init.c
diff -u src/threads/init.c~ src/threads/init.c
---- src/threads/init.c~
2006-04-25 11:35:56.000000000 -0700
-+++ src/threads/init.c
2006-05-16 13:44:56.000000000 -0700
+--- src/threads/init.c~
++++ src/threads/init.c
@@ -33,6 +33,8 @@
#include "filesys/filesys.h"
#include "filesys/fsutil.h"
@@ -33,6 +33,8 @@
#include "filesys/filesys.h"
#include "filesys/fsutil.h"
@@
-118,8
+118,8
@@
diff -u src/threads/init.c~ src/threads/init.c
/* Run actions specified on kernel command line. */
Index: src/threads/interrupt.c
diff -u src/threads/interrupt.c~ src/threads/interrupt.c
/* Run actions specified on kernel command line. */
Index: src/threads/interrupt.c
diff -u src/threads/interrupt.c~ src/threads/interrupt.c
---- src/threads/interrupt.c~
2006-04-25 11:35:56.000000000 -0700
-+++ src/threads/interrupt.c
2006-05-16 13:44:56.000000000 -0700
+--- src/threads/interrupt.c~
++++ src/threads/interrupt.c
@@ -354,6 +354,8 @@ intr_handler (struct intr_frame *frame)
in_external_intr = true;
yield_on_return = false;
@@ -354,6 +354,8 @@ intr_handler (struct intr_frame *frame)
in_external_intr = true;
yield_on_return = false;
@@
-131,8
+131,8
@@
diff -u src/threads/interrupt.c~ src/threads/interrupt.c
If there is no handler, invoke the unexpected interrupt
Index: src/threads/thread.c
diff -u src/threads/thread.c~ src/threads/thread.c
If there is no handler, invoke the unexpected interrupt
Index: src/threads/thread.c
diff -u src/threads/thread.c~ src/threads/thread.c
---- src/threads/thread.c~
2006-04-25 11:35:57.000000000 -0700
-+++ src/threads/thread.c
2006-05-16 13:44:56.000000000 -0700
+--- src/threads/thread.c~
++++ src/threads/thread.c
@@ -13,6 +13,7 @@
#include "threads/vaddr.h"
#ifdef USERPROG
@@ -13,6 +13,7 @@
#include "threads/vaddr.h"
#ifdef USERPROG
@@
-227,8
+227,8
@@
diff -u src/threads/thread.c~ src/threads/thread.c
Index: src/threads/thread.h
diff -u src/threads/thread.h~ src/threads/thread.h
Index: src/threads/thread.h
diff -u src/threads/thread.h~ src/threads/thread.h
---- src/threads/thread.h~
2006-04-13 13:53:34.000000000 -0700
-+++ src/threads/thread.h
2006-05-16 13:44:56.000000000 -0700
+--- src/threads/thread.h~
++++ src/threads/thread.h
@@ -2,8 +2,10 @@
#define THREADS_THREAD_H
@@ -2,8 +2,10 @@
#define THREADS_THREAD_H
@@
-289,13
+289,13
@@
diff -u src/threads/thread.h~ src/threads/thread.h
+ struct semaphore dead; /* 1=child alive, 0=child dead. */
+ };
+
+ struct semaphore dead; /* 1=child alive, 0=child dead. */
+ };
+
- void thread_init (void);
- void thread_start (void);
-
+ /* If false (default), use round-robin scheduler.
+ If true, use multi-level feedback queue scheduler.
+ Controlled by kernel command-line options "-o mlfqs".
Index: src/userprog/exception.c
diff -u src/userprog/exception.c~ src/userprog/exception.c
Index: src/userprog/exception.c
diff -u src/userprog/exception.c~ src/userprog/exception.c
---- src/userprog/exception.c~
2006-01-29 13:32:56.000000000 -0800
-+++ src/userprog/exception.c
2006-05-16 13:44:56.000000000 -0700
+--- src/userprog/exception.c~
++++ src/userprog/exception.c
@@ -4,6 +4,7 @@
#include "userprog/gdt.h"
#include "threads/interrupt.h"
@@ -4,6 +4,7 @@
#include "userprog/gdt.h"
#include "threads/interrupt.h"
@@
-324,8
+324,8
@@
diff -u src/userprog/exception.c~ src/userprog/exception.c
not_present ? "not present" : "rights violation",
Index: src/userprog/pagedir.c
diff -u src/userprog/pagedir.c~ src/userprog/pagedir.c
not_present ? "not present" : "rights violation",
Index: src/userprog/pagedir.c
diff -u src/userprog/pagedir.c~ src/userprog/pagedir.c
---- src/userprog/pagedir.c~
2006-04-25 11:35:58.000000000 -0700
-+++ src/userprog/pagedir.c
2006-05-16 13:44:56.000000000 -0700
+--- src/userprog/pagedir.c~
++++ src/userprog/pagedir.c
@@ -35,15 +35,7 @@ pagedir_destroy (uint32_t *pd)
ASSERT (pd != base_page_dir);
for (pde = pd; pde < pd + pd_no (PHYS_BASE); pde++)
@@ -35,15 +35,7 @@ pagedir_destroy (uint32_t *pd)
ASSERT (pd != base_page_dir);
for (pde = pd; pde < pd + pd_no (PHYS_BASE); pde++)
@@
-345,8
+345,8
@@
diff -u src/userprog/pagedir.c~ src/userprog/pagedir.c
Index: src/userprog/process.c
diff -u src/userprog/process.c~ src/userprog/process.c
Index: src/userprog/process.c
diff -u src/userprog/process.c~ src/userprog/process.c
---- src/userprog/process.c~
2006-04-25 11:35:58.000000000 -0700
-+++ src/userprog/process.c
2006-05-16 13:44:56.000000000 -0700
+--- src/userprog/process.c~
++++ src/userprog/process.c
@@ -14,12 +14,26 @@
#include "threads/flags.h"
#include "threads/init.h"
@@ -14,12 +14,26 @@
#include "threads/flags.h"
#include "threads/init.h"
@@
-808,8
+808,8
@@
diff -u src/userprog/process.c~ src/userprog/process.c
}
Index: src/userprog/syscall.c
diff -u src/userprog/syscall.c~ src/userprog/syscall.c
}
Index: src/userprog/syscall.c
diff -u src/userprog/syscall.c~ src/userprog/syscall.c
---- src/userprog/syscall.c~
2005-06-18 20:21:21.000000000 -0700
-+++ src/userprog/syscall.c
2006-05-16 14:17:02.000000000 -0700
+--- src/userprog/syscall.c~
++++ src/userprog/syscall.c
@@ -1,20 +1,598 @@
#include "userprog/syscall.h"
#include <stdio.h>
@@ -1,20 +1,598 @@
#include "userprog/syscall.h"
#include <stdio.h>
@@
-817,7
+817,7
@@
diff -u src/userprog/syscall.c~ src/userprog/syscall.c
#include <syscall-nr.h>
+#include "userprog/process.h"
+#include "userprog/pagedir.h"
#include <syscall-nr.h>
+#include "userprog/process.h"
+#include "userprog/pagedir.h"
-+#include "devices/
kbd
.h"
++#include "devices/
input
.h"
+#include "filesys/directory.h"
+#include "filesys/filesys.h"
+#include "filesys/file.h"
+#include "filesys/directory.h"
+#include "filesys/filesys.h"
+#include "filesys/file.h"
@@
-1159,7
+1159,7
@@
diff -u src/userprog/syscall.c~ src/userprog/syscall.c
+
+ for (i = 0; i < read_amt; i++)
+ {
+
+ for (i = 0; i < read_amt; i++)
+ {
-+ char c =
kbd
_getc ();
++ char c =
input
_getc ();
+ if (!page_lock (udst, true))
+ thread_exit ();
+ udst[i] = c;
+ if (!page_lock (udst, true))
+ thread_exit ();
+ udst[i] = c;
@@
-1414,8
+1414,8
@@
diff -u src/userprog/syscall.c~ src/userprog/syscall.c
+}
Index: src/userprog/syscall.h
diff -u src/userprog/syscall.h~ src/userprog/syscall.h
+}
Index: src/userprog/syscall.h
diff -u src/userprog/syscall.h~ src/userprog/syscall.h
---- src/userprog/syscall.h~
2004-09-05 22:38:45.000000000 -0700
-+++ src/userprog/syscall.h
2006-05-16 13:44:56.000000000 -0700
+--- src/userprog/syscall.h~
++++ src/userprog/syscall.h
@@ -2,5 +2,6 @@
#define USERPROG_SYSCALL_H
@@ -2,5 +2,6 @@
#define USERPROG_SYSCALL_H
@@
-1425,8
+1425,8
@@
diff -u src/userprog/syscall.h~ src/userprog/syscall.h
#endif /* userprog/syscall.h */
Index: src/vm/frame.c
diff -u src/vm/frame.c~ src/vm/frame.c
#endif /* userprog/syscall.h */
Index: src/vm/frame.c
diff -u src/vm/frame.c~ src/vm/frame.c
---- src/vm/frame.c~
1969-12-31 16:00:00.000000000 -0800
-+++ src/vm/frame.c
2006-05-16 13:44:56.000000000 -0700
+--- src/vm/frame.c~
++++ src/vm/frame.c
@@ -0,0 +1,162 @@
+#include "vm/frame.h"
+#include <stdio.h>
@@ -0,0 +1,162 @@
+#include "vm/frame.h"
+#include <stdio.h>
@@
-1592,8
+1592,8
@@
diff -u src/vm/frame.c~ src/vm/frame.c
+}
Index: src/vm/frame.h
diff -u src/vm/frame.h~ src/vm/frame.h
+}
Index: src/vm/frame.h
diff -u src/vm/frame.h~ src/vm/frame.h
---- src/vm/frame.h~
1969-12-31 16:00:00.000000000 -0800
-+++ src/vm/frame.h
2006-05-16 13:44:56.000000000 -0700
+--- src/vm/frame.h~
++++ src/vm/frame.h
@@ -0,0 +1,23 @@
+#ifndef VM_FRAME_H
+#define VM_FRAME_H
@@ -0,0 +1,23 @@
+#ifndef VM_FRAME_H
+#define VM_FRAME_H
@@
-1620,8
+1620,8
@@
diff -u src/vm/frame.h~ src/vm/frame.h
+#endif /* vm/frame.h */
Index: src/vm/page.c
diff -u src/vm/page.c~ src/vm/page.c
+#endif /* vm/frame.h */
Index: src/vm/page.c
diff -u src/vm/page.c~ src/vm/page.c
---- src/vm/page.c~
1969-12-31 16:00:00.000000000 -0800
-+++ src/vm/page.c
2006-05-16 13:44:56.000000000 -0700
+--- src/vm/page.c~
++++ src/vm/page.c
@@ -0,0 +1,293 @@
+#include "vm/page.h"
+#include <stdio.h>
@@ -0,0 +1,293 @@
+#include "vm/page.h"
+#include <stdio.h>
@@
-1918,8
+1918,8
@@
diff -u src/vm/page.c~ src/vm/page.c
+}
Index: src/vm/page.h
diff -u src/vm/page.h~ src/vm/page.h
+}
Index: src/vm/page.h
diff -u src/vm/page.h~ src/vm/page.h
---- src/vm/page.h~
1969-12-31 16:00:00.000000000 -0800
-+++ src/vm/page.h
2006-05-16 13:44:56.000000000 -0700
+--- src/vm/page.h~
++++ src/vm/page.h
@@ -0,0 +1,50 @@
+#ifndef VM_PAGE_H
+#define VM_PAGE_H
@@ -0,0 +1,50 @@
+#ifndef VM_PAGE_H
+#define VM_PAGE_H
@@
-1973,8
+1973,8
@@
diff -u src/vm/page.h~ src/vm/page.h
+#endif /* vm/page.h */
Index: src/vm/swap.c
diff -u src/vm/swap.c~ src/vm/swap.c
+#endif /* vm/page.h */
Index: src/vm/swap.c
diff -u src/vm/swap.c~ src/vm/swap.c
---- src/vm/swap.c~
1969-12-31 16:00:00.000000000 -0800
-+++ src/vm/swap.c
2006-05-16 13:44:56.000000000 -0700
+--- src/vm/swap.c~
++++ src/vm/swap.c
@@ -0,0 +1,85 @@
+#include "vm/swap.h"
+#include <bitmap.h>
@@ -0,0 +1,85 @@
+#include "vm/swap.h"
+#include <bitmap.h>
@@
-2063,8
+2063,8
@@
diff -u src/vm/swap.c~ src/vm/swap.c
+}
Index: src/vm/swap.h
diff -u src/vm/swap.h~ src/vm/swap.h
+}
Index: src/vm/swap.h
diff -u src/vm/swap.h~ src/vm/swap.h
---- src/vm/swap.h~
1969-12-31 16:00:00.000000000 -0800
-+++ src/vm/swap.h
2006-05-16 13:44:56.000000000 -0700
+--- src/vm/swap.h~
++++ src/vm/swap.h
@@ -0,0 +1,11 @@
+#ifndef VM_SWAP_H
+#define VM_SWAP_H 1
@@ -0,0 +1,11 @@
+#ifndef VM_SWAP_H
+#define VM_SWAP_H 1