This commit is contained in:
rsc 2007-08-28 19:25:04 +00:00
parent 5573c8f296
commit cffa954301
5 changed files with 17 additions and 29 deletions

16
BUGS
View file

@ -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: formatting:
file.c filewrite leaks onto next page
need to fix PAGEBREAK mechanism need to fix PAGEBREAK mechanism
fs.c: grep XXX
sysfile.c: why does mknod take a type argument?

View file

@ -67,11 +67,11 @@ protcseg:
# Set up the stack pointer and call into C. # Set up the stack pointer and call into C.
movl $start, %esp movl $start, %esp
call bootmain call bootmain
# If bootmain returns (it shouldn't), loop. # If bootmain returns (it shouldn't), loop.
spin: spin:
jmp spin jmp spin
# Bootstrap GDT # Bootstrap GDT
.p2align 2 # force 4 byte alignment .p2align 2 # force 4 byte alignment

6
defs.h
View file

@ -96,16 +96,16 @@ int pipewrite(struct pipe*, char*, int);
// proc.c // proc.c
struct proc* copyproc(struct proc*); struct proc* copyproc(struct proc*);
void exit(void);
int growproc(int); int growproc(int);
int kill(int);
void pinit(void); void pinit(void);
void procdump(void); void procdump(void);
void exit(void);
int kill(int);
int wait(void);
void scheduler(void) __attribute__((noreturn)); void scheduler(void) __attribute__((noreturn));
void setupsegs(struct proc*); void setupsegs(struct proc*);
void sleep(void*, struct spinlock*); void sleep(void*, struct spinlock*);
void userinit(void); void userinit(void);
int wait(void);
void wakeup(void*); void wakeup(void*);
void yield(void); void yield(void);

9
runoff
View file

@ -109,15 +109,20 @@ perl -e '
if (/^([0-9]+) #define +([A-za-z0-9_]+) +?\(.*/) { if (/^([0-9]+) #define +([A-za-z0-9_]+) +?\(.*/) {
print "$1 $2\n" print "$1 $2\n"
} }
elsif (/^([0-9]+) #define +([A-Za-z0-9_]+) +([^ ]+)/) { elsif (/^([0-9]+) #define +([A-Za-z0-9_]+) +([^ ]+)/) {
print "$1 $2 $3\n"; print "$1 $2 $3\n";
} }
elsif (/^([0-9]+) #define +([A-Za-z0-9_]+)/) { elsif (/^([0-9]+) #define +([A-Za-z0-9_]+)/) {
print "$1 $2\n"; 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 (/\(/) { if (/\(/) {
next; next;
} }

11
toc.ftr
View file

@ -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 where the name is defined. Successive lines in an entry list the line
numbers where the name is used. For example, this entry: numbers where the name is used. For example, this entry:
namei 4610 swtch 2256
0333 4610 4709 4758 0311 1928 1962 2255
4808 4857 4866 5264 2256
5277 5362 5410 5490
indicates that namei is defined on line 4610 and is mentioned on twelve lines indicates that swtch is defined on line 2256 and is mentioned on five lines
on sheets 03, 46, 47, 48, 52, 53, and 54. on sheets 03, 19, and 22.