Update Intel architecture guide references to latest.
[pintos-anon] / doc / tour.texi
index 41b6ffa359b07fd122d0a82e1a1dfb1b38288c53..c0568f13f11f5e47a48a79c89519134a12179e72 100644 (file)
@@ -41,8 +41,8 @@ the rest of Pintos into memory, and then jumping to its start.  It's
 not important to understand exactly what the loader does, but if
 you're interested, read on.  You should probably read along with the
 loader's source.  You should also understand the basics of the
-80@var{x}86 architecture as described by chapter 3 of
-@bibref{IA32-v1}.
+80@var{x}86 architecture as described by chapter 3, ``Basic Execution
+Environment,'' of @bibref{IA32-v1}.
 
 Because the PC BIOS loads the loader, the loader has to play by the
 BIOS's rules.  In particular, the BIOS only loads 512 bytes (one disk
@@ -392,7 +392,7 @@ thread statistics and triggers the scheduler when a time slice expires.
 Called during Pintos shutdown to print thread statistics.
 @end deftypefun
 
-@deftypefun void thread_create (const char *@var{name}, int @var{priority}, thread_func *@var{func}, void *@var{aux})
+@deftypefun tid_t thread_create (const char *@var{name}, int @var{priority}, thread_func *@var{func}, void *@var{aux})
 Creates and starts a new thread named @var{name} with the given
 @var{priority}, returning the new thread's tid.  The thread executes
 @var{func}, passing @var{aux} as the function's single argument.
@@ -934,9 +934,10 @@ external interrupts, to a point.  The following section describes this
 common infrastructure, and sections after that give the specifics of
 external and internal interrupts.
 
-If you haven't already read chapter 3 in @bibref{IA32-v1}, it is
-recommended that you do so now.  You might also want to skim chapter 5
-in @bibref{IA32-v3}.
+If you haven't already read chapter 3, ``Basic Execution Environment,''
+in @bibref{IA32-v1}, it is recommended that you do so now.  You might
+also want to skim chapter 5, ``Interrupt and Exception Handling,'' in
+@bibref{IA32-v3a}.
 
 @menu
 * Interrupt Infrastructure::    
@@ -1050,7 +1051,7 @@ kernel threads.  Thus, they do need to synchronize with other threads
 on shared data and other resources (@pxref{Synchronization}).
 
 @deftypefun void intr_register_int (uint8_t @var{vec}, int @var{dpl}, enum intr_level @var{level}, intr_handler_func *@var{handler}, const char *@var{name})
-Registers @var{func} to be called when internal interrupt numbered
+Registers @var{handler} to be called when internal interrupt numbered
 @var{vec} is triggered.  Names the interrupt @var{name} for debugging
 purposes.
 
@@ -1071,8 +1072,8 @@ starting with project 2).
 
 Whereas an internal interrupt runs in the context of the thread that
 caused it, external interrupts do not have any predictable context.
-They are asynchronous, so it can be invoked at any time that
-interrupts have not been enabled.  We say that an external interrupt
+They are asynchronous, so they can be invoked at any time that
+interrupts have not been disabled.  We say that an external interrupt
 runs in an ``interrupt context.''
 
 In an external interrupt, the @struct{intr_frame} passed to the
@@ -1300,9 +1301,10 @@ Most implementations of the virtual memory project use a hash table to
 translate virtual page frames to physical page frames.  It is possible
 to do this translation without adding a new data structure, by modifying
 the code in @file{userprog/pagedir.c}.  However, if you do that you'll
-need to carefully study and understand section 3.7 in @bibref{IA32-v3},
-and in practice it is probably easier to add a new data structure.  You
-may find other uses for hash tables as well.
+need to carefully study and understand section 3.7, ``Page Translation
+Using 32-Bit Physical Addressing,'' in @bibref{IA32-v3a}, and in practice
+it is probably easier to add a new data structure.  You may find other
+uses for hash tables as well.
 
 Pintos provides a hash table data structure in @file{lib/kernel/hash.c}.
 To use it you will need to manually include its header file,