summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrsc <rsc>2007-08-14 18:42:34 +0000
committerrsc <rsc>2007-08-14 18:42:34 +0000
commitf1f8dd91bc4e8b58972f17416b664f3a950092cd (patch)
tree51f81ac32e9ee78629d7843d2e1101b0a6c0b414
parent29ff8d495c8cd67df6ee3830daea64eaa422756d (diff)
downloadxv6-labs-f1f8dd91bc4e8b58972f17416b664f3a950092cd.tar.gz
xv6-labs-f1f8dd91bc4e8b58972f17416b664f3a950092cd.tar.bz2
xv6-labs-f1f8dd91bc4e8b58972f17416b664f3a950092cd.zip
formatting
-rw-r--r--pipe.c3
-rwxr-xr-xrunoff43
-rw-r--r--runoff.spec11
-rwxr-xr-xshow13
-rw-r--r--syscall.c1
-rw-r--r--trap.c6
6 files changed, 63 insertions, 4 deletions
diff --git a/pipe.c b/pipe.c
index b866a0e..a207df1 100644
--- a/pipe.c
+++ b/pipe.c
@@ -45,6 +45,7 @@ pipe_alloc(struct file **f0, struct file **f1)
(*f1)->writable = 1;
(*f1)->pipe = p;
return 0;
+
oops:
if(p)
kfree((char*) p, PAGE);
@@ -78,6 +79,7 @@ pipe_close(struct pipe *p, int writable)
kfree((char*) p, PAGE);
}
+//PAGEBREAK: 20
int
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);
}
-
for(i = 0; i < n; i++){
if(p->readp == p->writep)
break;
diff --git a/runoff b/runoff
index 919d837..092c8b6 100755
--- a/runoff
+++ b/runoff
@@ -35,6 +35,7 @@ pr -e8 -t runoff.list | awk '
close(f)
n=$1
printf("%02d %s\n", n/100, s);
+ printf("TOC: %04d %s\n", n, s) >"fmt/tocdata"
next
}
{
@@ -42,6 +43,48 @@ pr -e8 -t runoff.list | awk '
}' | pr -3 -t >>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
cd fmt
perl -e '
diff --git a/runoff.spec b/runoff.spec
new file mode 100644
index 0000000..53e98ee
--- /dev/null
+++ b/runoff.spec
@@ -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
diff --git a/show1 b/show1
new file mode 100755
index 0000000..3637c72
--- /dev/null
+++ b/show1
@@ -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
diff --git a/syscall.c b/syscall.c
index d697337..7f4caa1 100644
--- a/syscall.c
+++ b/syscall.c
@@ -98,6 +98,7 @@ extern int sys_kill(void);
extern int sys_link(void);
extern int sys_mkdir(void);
extern int sys_mknod(void);
+//PAGEBREAK: 0
extern int sys_open(void);
extern int sys_pipe(void);
extern int sys_read(void);
diff --git a/trap.c b/trap.c
index 1faa49e..43b5a42 100644
--- a/trap.c
+++ b/trap.c
@@ -40,11 +40,11 @@ trap(struct trapframe *tf)
return;
}
- // PAGEBREAK: 10
// Increment nlock to make sure interrupts stay off
// during interrupt handler. Decrement before returning.
cpus[cpu()].nlock++;
+ // PAGEBREAK: 10
switch(tf->trapno){
case IRQ_OFFSET + IRQ_TIMER:
lapic_timerintr();
@@ -80,8 +80,8 @@ trap(struct trapframe *tf)
default:
if(cp) {
// Assume process divided by zero or dereferenced null, etc.
- cprintf("pid %d %s: unhandled trap %d on cpu %d eip %x -- kill proc\n",
- cp->pid, cp->name, tf->trapno, cpu(), tf->eip);
+ cprintf("pid %d %s: unhandled trap %d err %d on cpu %d eip %x -- kill proc\n",
+ cp->pid, cp->name, tf->trapno, tf->err, cpu(), tf->eip);
proc_exit();
}