diff --git a/BUGS b/BUGS index 7819902..af1852a 100644 --- a/BUGS +++ b/BUGS @@ -1,18 +1,2 @@ -proc.c: - as a consequence of the implementation of proc_kill, - any loop calling sleep should check for p->killed - and be able to break out with an error return. - it is better if you check *before* sleep. - -syscall.c: - cannot convince runoff1 to split the extern lists - to fill previous page completely. - formatting: - file.c filewrite leaks onto next page need to fix PAGEBREAK mechanism - -fs.c: grep XXX - -sysfile.c: why does mknod take a type argument? - diff --git a/bootasm.S b/bootasm.S index 1831604..1b718b7 100644 --- a/bootasm.S +++ b/bootasm.S @@ -67,11 +67,11 @@ protcseg: # Set up the stack pointer and call into C. movl $start, %esp - call bootmain + call bootmain # If bootmain returns (it shouldn't), loop. spin: - jmp spin + jmp spin # Bootstrap GDT .p2align 2 # force 4 byte alignment diff --git a/defs.h b/defs.h index 89b28ac..7540e1e 100644 --- a/defs.h +++ b/defs.h @@ -96,16 +96,16 @@ int pipewrite(struct pipe*, char*, int); // proc.c struct proc* copyproc(struct proc*); +void exit(void); int growproc(int); +int kill(int); void pinit(void); void procdump(void); -void exit(void); -int kill(int); -int wait(void); void scheduler(void) __attribute__((noreturn)); void setupsegs(struct proc*); void sleep(void*, struct spinlock*); void userinit(void); +int wait(void); void wakeup(void*); void yield(void); diff --git a/runoff b/runoff index 37ca014..8ebaf13 100755 --- a/runoff +++ b/runoff @@ -109,15 +109,20 @@ perl -e ' if (/^([0-9]+) #define +([A-za-z0-9_]+) +?\(.*/) { print "$1 $2\n" } - elsif (/^([0-9]+) #define +([A-Za-z0-9_]+) +([^ ]+)/) { print "$1 $2 $3\n"; } - elsif (/^([0-9]+) #define +([A-Za-z0-9_]+)/) { print "$1 $2\n"; } + if(/^^([0-9]+) \.globl ([a-zA-Z0-9_]+)/){ + $isglobl{$2} = 1; + } + if(/^^([0-9]+) ([a-zA-Z0-9_]+):$/ && $isglobl{$2}){ + print "$1 $2\n"; + } + if (/\(/) { next; } diff --git a/toc.ftr b/toc.ftr index 3b16d8c..466e028 100644 --- a/toc.ftr +++ b/toc.ftr @@ -6,10 +6,9 @@ on the same line as the name, the line number (or, in a few cases, numbers) where the name is defined. Successive lines in an entry list the line numbers where the name is used. For example, this entry: - namei 4610 - 0333 4610 4709 4758 - 4808 4857 4866 5264 - 5277 5362 5410 5490 + swtch 2256 + 0311 1928 1962 2255 + 2256 -indicates that namei is defined on line 4610 and is mentioned on twelve lines -on sheets 03, 46, 47, 48, 52, 53, and 54. +indicates that swtch is defined on line 2256 and is mentioned on five lines +on sheets 03, 19, and 22.