Clarifications.
authorBen Pfaff <blp@cs.stanford.edu>
Tue, 9 Nov 2004 00:33:38 +0000 (00:33 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Tue, 9 Nov 2004 00:33:38 +0000 (00:33 +0000)
doc/userprog.texi
doc/vm.texi

index 894c2f3cd99d63dbfe1813f6894793b3ef9c9395..0746b2e68f791af7545793a3458bd5d6ed4851a3 100644 (file)
@@ -466,7 +466,7 @@ the @file{filesys} directory, and release it afterward.  Don't forget
 that @func{process_execute} also accesses files.  @strong{For now, we
 recommend against modifying code in the @file{filesys} directory.}
 
-We have provided you a function for each system call in
+We have provided you a user-level function for each system call in
 @file{lib/user/syscall.c}.  These provide a way for user processes to
 invoke each system call from a C program.  Each of them calls an
 assembly language routine in @file{lib/user/syscall-stub.S}, which in
@@ -971,3 +971,9 @@ In this example, the caller's stack pointer would be at
 The 80@var{x}86 convention for function return values is to place them
 in the @samp{EAX} register.  System calls that return a value can do
 so by modifying the @samp{eax} member of @struct{intr_frame}.
+
+You should try to avoid writing large amounts of repetitive code for
+implementing system calls.  Each system call argument, whether an
+integer or a pointer, takes up 4 bytes on the stack.  You should be able
+to take advantage of this to avoid writing much near-identical code for
+retrieving each system call's arguments from the stack.
index e4f463f5109df8e42c887f9b9aa6c587f1f61bfa..72bd6b9470f1c367ca40f302f20ef2a4e28ec20d 100644 (file)
@@ -291,8 +291,9 @@ The page fault handler, @func{page_fault} in
 @item
 Locate the page backing the virtual
 address that faulted.  It might be in the file system, in swap,
-already be in physical memory and just not set up in the page table,
 or it might be an invalid virtual address.
+If you implement sharing, it might even
+already be in physical memory and just not set up in the page table,
 
 If the virtual address is invalid, that is, if there's nothing
 assigned to go there, or if the virtual address is above