1eaea18cbSrsc# types.h either 2eaea18cbSrsc# param.h either 3eaea18cbSrsc# defs.h either 4eaea18cbSrsc# x86.h either 5eaea18cbSrsc# asm.h either 6eaea18cbSrsc# mmu.h either 7eaea18cbSrsc# elf.h either 8eaea18cbSrsc# mp.h either 9eaea18cbSrsc 10eaea18cbSrsceven: bootasm.S # mild preference 11eaea18cbSrsceven: bootother.S # mild preference 12eaea18cbSrsc# bootmain.c either 13f1f8dd91Srsceven: main.c 14eaea18cbSrsc# mp.c don't care at all 15*0aef8914SRuss Cox# even: initcode.S 16*0aef8914SRuss Cox# odd: init.c 17eaea18cbSrsc 18eaea18cbSrsc# spinlock.h either 19eaea18cbSrsc# spinlock.c either 20eaea18cbSrsceven: proc.h # mild preference 21*0aef8914SRuss Cox 22*0aef8914SRuss Cox# goal is to have two action-packed 2-page spreads, 23*0aef8914SRuss Cox# one with 24*0aef8914SRuss Cox# ksegment usegment allocproc userinit growproc fork 25*0aef8914SRuss Cox# and another with 26*0aef8914SRuss Cox# scheduler sched yield forkret sleep wakeup1 wakeup 27*0aef8914SRuss Coxright: proc.c # VERY important 28*0aef8914SRuss Cox 29eaea18cbSrsc# setjmp.S either 30eaea18cbSrsc# kalloc.c either 31eaea18cbSrsc 32eaea18cbSrsc# syscall.h either 33eaea18cbSrsc# trapasm.S either 34eaea18cbSrsc# traps.h either 35*0aef8914SRuss Cox# even: trap.c 36eaea18cbSrsc# vectors.pl either 37eaea18cbSrsc# syscall.c either 38eaea18cbSrsc# sysproc.c either 39eaea18cbSrsc 40eaea18cbSrsc# buf.h either 41eaea18cbSrsc# dev.h either 42eaea18cbSrsc# fcntl.h either 43eaea18cbSrsc# stat.h either 44eaea18cbSrsc# file.h either 45eaea18cbSrsc# fs.h either 46eaea18cbSrsc# fsvar.h either 47*0aef8914SRuss Coxleft: ide.c 48eaea18cbSrsc# odd: bio.c 49eaea18cbSrscodd: fs.c # VERY important 50eaea18cbSrsc# file.c either 51eaea18cbSrsc# exec.c either 52eaea18cbSrsc# sysfile.c either 53eaea18cbSrsc 540c931af5Srsc# even: pipe.c # mild preference 55eaea18cbSrsc# string.c either 56*0aef8914SRuss Coxleft: kbd.h 57eae04163Srsceven: console.c 58eae04163Srscodd: sh.c 59