formatting
This commit is contained in:
parent
29ff8d495c
commit
f1f8dd91bc
6 changed files with 63 additions and 4 deletions
3
pipe.c
3
pipe.c
|
@ -45,6 +45,7 @@ pipe_alloc(struct file **f0, struct file **f1)
|
||||||
(*f1)->writable = 1;
|
(*f1)->writable = 1;
|
||||||
(*f1)->pipe = p;
|
(*f1)->pipe = p;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
oops:
|
oops:
|
||||||
if(p)
|
if(p)
|
||||||
kfree((char*) p, PAGE);
|
kfree((char*) p, PAGE);
|
||||||
|
@ -78,6 +79,7 @@ pipe_close(struct pipe *p, int writable)
|
||||||
kfree((char*) p, PAGE);
|
kfree((char*) p, PAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//PAGEBREAK: 20
|
||||||
int
|
int
|
||||||
pipe_write(struct pipe *p, char *addr, int n)
|
pipe_write(struct pipe *p, char *addr, int n)
|
||||||
{
|
{
|
||||||
|
@ -117,7 +119,6 @@ pipe_read(struct pipe *p, char *addr, int n)
|
||||||
}
|
}
|
||||||
sleep(&p->readp, &p->lock);
|
sleep(&p->readp, &p->lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i = 0; i < n; i++){
|
for(i = 0; i < n; i++){
|
||||||
if(p->readp == p->writep)
|
if(p->readp == p->writep)
|
||||||
break;
|
break;
|
||||||
|
|
43
runoff
43
runoff
|
@ -35,6 +35,7 @@ pr -e8 -t runoff.list | awk '
|
||||||
close(f)
|
close(f)
|
||||||
n=$1
|
n=$1
|
||||||
printf("%02d %s\n", n/100, s);
|
printf("%02d %s\n", n/100, s);
|
||||||
|
printf("TOC: %04d %s\n", n, s) >"fmt/tocdata"
|
||||||
next
|
next
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
@ -42,6 +43,48 @@ pr -e8 -t runoff.list | awk '
|
||||||
}' | pr -3 -t >>fmt/toc
|
}' | pr -3 -t >>fmt/toc
|
||||||
cat toc.ftr >>fmt/toc
|
cat toc.ftr >>fmt/toc
|
||||||
|
|
||||||
|
# check for bad alignments
|
||||||
|
perl -e '
|
||||||
|
while(<>){
|
||||||
|
chomp;
|
||||||
|
s!#.*!!;
|
||||||
|
s!\s+! !g;
|
||||||
|
s! +$!!;
|
||||||
|
next if /^$/;
|
||||||
|
|
||||||
|
if(/TOC: (\d+) (.*)/){
|
||||||
|
$toc{$2} = $1;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(/even: (.*)/){
|
||||||
|
$file = $1;
|
||||||
|
if(!defined($toc{$file})){
|
||||||
|
print STDERR "Have no toc for $file\n";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if($toc{$file} =~ /^\d\d[^0]/){
|
||||||
|
print STDERR "$file does not start on a fresh page.\n";
|
||||||
|
}
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(/odd: (.*)/){
|
||||||
|
$file = $1;
|
||||||
|
if(!defined($toc{$file})){
|
||||||
|
print STDERR "Have no toc for $file\n";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if($toc{$file} =~ /^\d\d[^5]/){
|
||||||
|
print STDERR "$file does not start on a second half page.\n";
|
||||||
|
}
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
print STDERR "Unknown spec: $_\n";
|
||||||
|
}
|
||||||
|
' fmt/tocdata runoff.spec
|
||||||
|
|
||||||
# make definition list
|
# make definition list
|
||||||
cd fmt
|
cd fmt
|
||||||
perl -e '
|
perl -e '
|
||||||
|
|
11
runoff.spec
Normal file
11
runoff.spec
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
even: mmu.h
|
||||||
|
even: bootasm.S
|
||||||
|
even: bootother.S
|
||||||
|
even: bootmain.c
|
||||||
|
even: main.c
|
||||||
|
even: spinlock.c
|
||||||
|
even: proc.h
|
||||||
|
even: proc.c
|
||||||
|
odd: kalloc.c
|
||||||
|
even: trap.c
|
||||||
|
odd: bio.c
|
3
show1
Executable file
3
show1
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
runoff1 "$@" | pr.pl -h "xv6/$@" | mpage -m50t50b -o -bLetter -T -t -2 -FCourier -L60 >x.ps; gv --swap x.ps
|
|
@ -98,6 +98,7 @@ extern int sys_kill(void);
|
||||||
extern int sys_link(void);
|
extern int sys_link(void);
|
||||||
extern int sys_mkdir(void);
|
extern int sys_mkdir(void);
|
||||||
extern int sys_mknod(void);
|
extern int sys_mknod(void);
|
||||||
|
//PAGEBREAK: 0
|
||||||
extern int sys_open(void);
|
extern int sys_open(void);
|
||||||
extern int sys_pipe(void);
|
extern int sys_pipe(void);
|
||||||
extern int sys_read(void);
|
extern int sys_read(void);
|
||||||
|
|
6
trap.c
6
trap.c
|
@ -40,11 +40,11 @@ trap(struct trapframe *tf)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// PAGEBREAK: 10
|
|
||||||
// Increment nlock to make sure interrupts stay off
|
// Increment nlock to make sure interrupts stay off
|
||||||
// during interrupt handler. Decrement before returning.
|
// during interrupt handler. Decrement before returning.
|
||||||
cpus[cpu()].nlock++;
|
cpus[cpu()].nlock++;
|
||||||
|
|
||||||
|
// PAGEBREAK: 10
|
||||||
switch(tf->trapno){
|
switch(tf->trapno){
|
||||||
case IRQ_OFFSET + IRQ_TIMER:
|
case IRQ_OFFSET + IRQ_TIMER:
|
||||||
lapic_timerintr();
|
lapic_timerintr();
|
||||||
|
@ -80,8 +80,8 @@ trap(struct trapframe *tf)
|
||||||
default:
|
default:
|
||||||
if(cp) {
|
if(cp) {
|
||||||
// Assume process divided by zero or dereferenced null, etc.
|
// Assume process divided by zero or dereferenced null, etc.
|
||||||
cprintf("pid %d %s: unhandled trap %d on cpu %d eip %x -- kill proc\n",
|
cprintf("pid %d %s: unhandled trap %d err %d on cpu %d eip %x -- kill proc\n",
|
||||||
cp->pid, cp->name, tf->trapno, cpu(), tf->eip);
|
cp->pid, cp->name, tf->trapno, tf->err, cpu(), tf->eip);
|
||||||
proc_exit();
|
proc_exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue