1sheet1: left 2 3# "left" and "right" specify which page of a two-page spread a file 4# must start on. "left" means that a file must start on the first of 5# the two page. "right" means it must start on the second of the two 6# pages. The file may start in either column. 7# 8# "even" and "odd" specify which column a file must start on. "even" 9# means it must start in the left of the two columns. "odd" means it 10# must start in the right of the two columns. 11 12# types.h either 13# param.h either 14# defs.h either 15# x86.h either 16# asm.h either 17# mmu.h either 18# elf.h either 19# mp.h either 20 21even: bootasm.S # mild preference 22even: bootother.S # mild preference 23even: bootmain.c # mild preference 24even: main.c 25# mp.c don't care at all 26# even: initcode.S 27# odd: init.c 28 29# spinlock.h either 30left: spinlock.h # mild preference 31even: spinlock.h # mild preference 32 33# This gets struct proc and allocproc on the same spread 34right: proc.h 35odd: proc.h 36 37# goal is to have two action-packed 2-page spreads, 38# one with 39# userinit growproc fork exit wait 40# and another with 41# scheduler sched yield forkret sleep wakeup1 wakeup 42left: proc.c # VERY important 43odd: proc.c # VERY important 44 45# A few more action packed spreads 46# page table creation and process loading 47# walkpgdir mappages setupkvm vmenable switch[ku]vm inituvm loaduvm 48# process memory management 49# allocuvm deallocuvm freevm 50right: vm.c 51odd: vm.c 52 53# kalloc.c either 54 55# syscall.h either 56# trapasm.S either 57# traps.h either 58# even: trap.c 59# vectors.pl either 60# syscall.c either 61# sysproc.c either 62 63# buf.h either 64# dev.h either 65# fcntl.h either 66# stat.h either 67# file.h either 68# fs.h either 69# fsvar.h either 70left: ide.c 71# odd: bio.c 72odd: fs.c # VERY important 73# file.c either 74# exec.c either 75# sysfile.c either 76 77# even: pipe.c # mild preference 78# string.c either 79left: kbd.h 80even: console.c 81odd: sh.c 82