diff --git a/8253pit.c b/8253pit.c index 12867fb..1d98dc1 100644 --- a/8253pit.c +++ b/8253pit.c @@ -1,7 +1,7 @@ #include "types.h" -#include "x86.h" #include "defs.h" #include "traps.h" +#include "x86.h" // Register definitions for the Intel // 8253/8254/82C54 Programmable Interval Timer (PIT). diff --git a/bio.c b/bio.c index 5d09acf..eba8e02 100644 --- a/bio.c +++ b/bio.c @@ -22,11 +22,8 @@ // and needs to be written to disk. #include "types.h" -#include "param.h" -#include "x86.h" -#include "mmu.h" -#include "proc.h" #include "defs.h" +#include "param.h" #include "spinlock.h" #include "buf.h" diff --git a/console.c b/console.c index b1518c0..3e45e3e 100644 --- a/console.c +++ b/console.c @@ -1,12 +1,12 @@ #include "types.h" -#include "x86.h" -#include "traps.h" #include "defs.h" +#include "param.h" +#include "traps.h" #include "spinlock.h" #include "dev.h" -#include "param.h" #include "mmu.h" #include "proc.h" +#include "x86.h" #include "kbd.h" #define CRTPORT 0x3d4 diff --git a/cuth b/cuth new file mode 100755 index 0000000..cce8c0c --- /dev/null +++ b/cuth @@ -0,0 +1,48 @@ +#!/usr/bin/perl + +$| = 1; + +sub writefile($@){ + my ($file, @lines) = @_; + + sleep(1); + open(F, ">$file") || die "open >$file: $!"; + print F @lines; + close(F); +} + +# Cut out #include lines that don't contribute anything. +for($i=0; $i<@ARGV; $i++){ + $file = $ARGV[$i]; + if(!open(F, $file)){ + print STDERR "open $file: $!\n"; + next; + } + @lines = ; + close(F); + + $obj = "$file.o"; + $obj =~ s/\.c\.o$/.o/; + system("touch $file"); + + if(system("make CC='gcc -Werror' $obj >/dev/null 2>\&1") != 0){ + print STDERR "make $obj failed: $rv\n"; + next; + } + + system("cp $file =$file"); + for($j=@lines-1; $j>=0; $j--){ + if($lines[$j] =~ /^#include/){ + $old = $lines[$j]; + $lines[$j] = "/* CUT-H */\n"; + writefile($file, @lines); + if(system("make CC='gcc -Werror' $obj >/dev/null 2>\&1") != 0){ + $lines[$j] = $old; + }else{ + print STDERR "$file $old"; + } + } + } + writefile($file, grep {!/CUT-H/} @lines); + system("rm =$file"); +} diff --git a/exec.c b/exec.c index 9f06605..5905c16 100644 --- a/exec.c +++ b/exec.c @@ -4,7 +4,6 @@ #include "proc.h" #include "defs.h" #include "x86.h" -#include "fs.h" #include "elf.h" int diff --git a/file.c b/file.c index 273ba2a..7f17b65 100644 --- a/file.c +++ b/file.c @@ -1,15 +1,9 @@ #include "types.h" -#include "stat.h" -#include "param.h" -#include "x86.h" -#include "mmu.h" -#include "proc.h" #include "defs.h" +#include "param.h" #include "file.h" #include "spinlock.h" #include "dev.h" -#include "fs.h" -#include "fsvar.h" struct devsw devsw[NDEV]; struct spinlock file_table_lock; diff --git a/fs.c b/fs.c index fb82f91..e92ffda 100644 --- a/fs.c +++ b/fs.c @@ -11,12 +11,11 @@ // are in sysfile.c. #include "types.h" -#include "stat.h" +#include "defs.h" #include "param.h" -#include "x86.h" +#include "stat.h" #include "mmu.h" #include "proc.h" -#include "defs.h" #include "spinlock.h" #include "buf.h" #include "fs.h" diff --git a/ide.c b/ide.c index 092b8ce..aa8fe29 100644 --- a/ide.c +++ b/ide.c @@ -1,10 +1,10 @@ // Simple PIO-based (non-DMA) IDE driver code. #include "types.h" +#include "defs.h" #include "param.h" #include "mmu.h" #include "proc.h" -#include "defs.h" #include "x86.h" #include "traps.h" #include "spinlock.h" diff --git a/init.c b/init.c index e873f3b..d3e1182 100644 --- a/init.c +++ b/init.c @@ -1,7 +1,6 @@ #include "types.h" #include "stat.h" #include "user.h" -#include "fs.h" #include "fcntl.h" // init: The initial user-level program diff --git a/ioapic.c b/ioapic.c index a009ca8..8da3151 100644 --- a/ioapic.c +++ b/ioapic.c @@ -2,9 +2,7 @@ // http://www.intel.com/design/chipsets/datashts/29056601.pdf #include "types.h" -#include "mp.h" #include "defs.h" -#include "x86.h" #include "traps.h" #define IOAPIC 0xFEC00000 // Default physical address of IO APIC diff --git a/kalloc.c b/kalloc.c index eb78212..e0b9765 100644 --- a/kalloc.c +++ b/kalloc.c @@ -5,12 +5,9 @@ // One reason the page size is 4k is that the x86 segment size // granularity is 4k. -#include "param.h" #include "types.h" #include "defs.h" #include "param.h" -#include "mmu.h" -#include "proc.h" #include "spinlock.h" struct spinlock kalloc_lock; diff --git a/lapic.c b/lapic.c index 6afc3b8..5df4f86 100644 --- a/lapic.c +++ b/lapic.c @@ -2,12 +2,7 @@ // See Chapter 8 & Appendix C of Intel processor manual volume 3. #include "types.h" -#include "defs.h" -#include "param.h" -#include "x86.h" #include "traps.h" -#include "mmu.h" -#include "proc.h" // Local APIC registers, divided by 4 for use as uint[] indices. #define ID (0x0020/4) // ID diff --git a/main.c b/main.c index a8b3f62..570c164 100644 --- a/main.c +++ b/main.c @@ -1,23 +1,15 @@ #include "types.h" +#include "defs.h" #include "param.h" #include "mmu.h" #include "proc.h" -#include "defs.h" #include "x86.h" -#include "traps.h" -#include "syscall.h" -#include "elf.h" -#include "param.h" -#include "spinlock.h" extern char edata[], end[]; void bootothers(void); // Bootstrap processor starts running C code here. -// This is called main0 not main so that it can have -// a void return type. Gcc can't handle functions named -// main that don't return int. Really. void main0(void) { @@ -39,7 +31,7 @@ main0(void) asm volatile("movl %0, %%ebp" : : "r" (cpus[bcpu].mpstack+MPSTACK)); lapic_init(bcpu); - cprintf("\\ncpu%d: starting xv6\\n\\n", cpu()); + cprintf("\ncpu%d: starting xv6\n\n", cpu()); pinit(); // process table binit(); // buffer cache @@ -69,7 +61,7 @@ main0(void) void mpmain(void) { - cprintf("cpu%d: starting\\n", cpu()); + cprintf("cpu%d: starting\n", cpu()); idtinit(); lapic_init(cpu()); setupsegs(0); diff --git a/mkfs.c b/mkfs.c index b367f61..32bf4e7 100644 --- a/mkfs.c +++ b/mkfs.c @@ -5,7 +5,6 @@ #include #include #include "types.h" -#include "param.h" #include "fs.h" int nblocks = 995; @@ -55,7 +54,7 @@ int main(int argc, char *argv[]) { int i, cc, fd; - uint bn, rootino, inum, off; + uint rootino, inum, off; struct dirent de; char buf[512]; struct dinode din; diff --git a/mp.c b/mp.c index edd85df..563a401 100644 --- a/mp.c +++ b/mp.c @@ -1,11 +1,10 @@ // http://developer.intel.com/design/pentium/datashts/24201606.pdf #include "types.h" -#include "mp.h" #include "defs.h" #include "param.h" +#include "mp.h" #include "x86.h" -#include "traps.h" #include "mmu.h" #include "proc.h" diff --git a/picirq.c b/picirq.c index b7d0116..7c5f713 100644 --- a/picirq.c +++ b/picirq.c @@ -1,7 +1,6 @@ #include "types.h" #include "x86.h" #include "traps.h" -#include "defs.h" // I/O Addresses of the two 8259A programmable interrupt controllers #define IO_PIC1 0x20 // Master (IRQs 0-7) diff --git a/pipe.c b/pipe.c index cd27cbf..83afb35 100644 --- a/pipe.c +++ b/pipe.c @@ -1,9 +1,8 @@ #include "types.h" +#include "defs.h" #include "param.h" -#include "x86.h" #include "mmu.h" #include "proc.h" -#include "defs.h" #include "file.h" #include "spinlock.h" diff --git a/proc.c b/proc.c index 776c8b4..eb7d1f8 100644 --- a/proc.c +++ b/proc.c @@ -1,10 +1,9 @@ #include "types.h" +#include "defs.h" +#include "param.h" #include "mmu.h" #include "x86.h" -#include "param.h" -#include "file.h" #include "proc.h" -#include "defs.h" #include "spinlock.h" struct spinlock proc_table_lock; diff --git a/sh.c b/sh.c index 1b517ef..205b445 100644 --- a/sh.c +++ b/sh.c @@ -1,7 +1,6 @@ #include "types.h" #include "stat.h" #include "user.h" -#include "fs.h" #include "fcntl.h" #define BUFSIZ 512 diff --git a/spinlock.c b/spinlock.c index af0c2e9..236235c 100644 --- a/spinlock.c +++ b/spinlock.c @@ -2,9 +2,9 @@ #include "types.h" #include "defs.h" +#include "param.h" #include "x86.h" #include "mmu.h" -#include "param.h" #include "proc.h" #include "spinlock.h" diff --git a/string.c b/string.c index 2f9fc25..5720245 100644 --- a/string.c +++ b/string.c @@ -1,5 +1,4 @@ #include "types.h" -#include "defs.h" void* memset(void *dst, int c, uint n) diff --git a/syscall.c b/syscall.c index 9fed725..bc6c316 100644 --- a/syscall.c +++ b/syscall.c @@ -1,19 +1,10 @@ #include "types.h" -#include "stat.h" +#include "defs.h" #include "param.h" #include "mmu.h" #include "proc.h" -#include "defs.h" #include "x86.h" -#include "traps.h" #include "syscall.h" -#include "spinlock.h" -#include "buf.h" -#include "fs.h" -#include "fsvar.h" -#include "elf.h" -#include "file.h" -#include "fcntl.h" // User code makes a system call with INT T_SYSCALL. // System call number in %eax. diff --git a/sysfile.c b/sysfile.c index 105fb48..71b8785 100644 --- a/sysfile.c +++ b/sysfile.c @@ -1,14 +1,9 @@ #include "types.h" -#include "stat.h" +#include "defs.h" #include "param.h" +#include "stat.h" #include "mmu.h" #include "proc.h" -#include "defs.h" -#include "x86.h" -#include "traps.h" -#include "syscall.h" -#include "spinlock.h" -#include "buf.h" #include "fs.h" #include "fsvar.h" #include "file.h" diff --git a/sysproc.c b/sysproc.c index 48fbe37..b769216 100644 --- a/sysproc.c +++ b/sysproc.c @@ -1,19 +1,8 @@ #include "types.h" -#include "stat.h" +#include "defs.h" #include "param.h" #include "mmu.h" #include "proc.h" -#include "defs.h" -#include "x86.h" -#include "traps.h" -#include "syscall.h" -#include "spinlock.h" -#include "buf.h" -#include "fs.h" -#include "fsvar.h" -#include "elf.h" -#include "file.h" -#include "fcntl.h" int sys_fork(void) diff --git a/trap.c b/trap.c index e045aed..5955cfc 100644 --- a/trap.c +++ b/trap.c @@ -1,11 +1,10 @@ #include "types.h" +#include "defs.h" #include "param.h" #include "mmu.h" #include "proc.h" -#include "defs.h" #include "x86.h" #include "traps.h" -#include "syscall.h" #include "spinlock.h" // Interrupt descriptor table (shared by all CPUs). diff --git a/umalloc.c b/umalloc.c index 30f970d..401ee6a 100644 --- a/umalloc.c +++ b/umalloc.c @@ -3,8 +3,8 @@ #include "user.h" #include "param.h" -// Memory allocator by Kernighan and Ritchie, The C programming Language, -// 2nd ed. Section 8.7. +// Memory allocator by Kernighan and Ritchie, +// The C programming Language, 2nd ed. Section 8.7. typedef long Align; diff --git a/zombie.c b/zombie.c index 07ad798..077c02c 100644 --- a/zombie.c +++ b/zombie.c @@ -8,8 +8,6 @@ int main(void) { - int i; - if(fork() > 0) sleep(5); // Let child exit before parent. exit();