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 pages. "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 (00). "odd" means it 10# must start in the right of the two columns (50). 11# 12# You'd think these would be the other way around. 13 14# types.h either 15# param.h either 16# defs.h either 17# x86.h either 18# asm.h either 19# mmu.h either 20# elf.h either 21# mp.h either 22 23even: bootasm.S # mild preference 24even: bootother.S # mild preference 25even: bootmain.c # mild preference 26even: main.c 27# mp.c don't care at all 28# even: initcode.S 29# odd: init.c 30 31# spinlock.h either 32left: spinlock.h # mild preference 33even: spinlock.h # mild preference 34 35# This gets struct proc and allocproc on the same spread 36left: proc.h 37even: proc.h 38 39# goal is to have two action-packed 2-page spreads, 40# one with 41# userinit growproc fork exit wait 42# and another with 43# scheduler sched yield forkret sleep wakeup1 wakeup 44right: proc.c # VERY important 45even: proc.c # VERY important 46 47# A few more action packed spreads 48# page table creation and process loading 49# walkpgdir mappages setupkvm vmenable switch[ku]vm inituvm loaduvm 50# process memory management 51# allocuvm deallocuvm freevm 52left: vm.c 53odd: vm.c 54 55# kalloc.c either 56 57# syscall.h either 58# trapasm.S either 59# traps.h either 60# even: trap.c 61# vectors.pl either 62# syscall.c either 63# sysproc.c either 64 65# buf.h either 66# dev.h either 67# fcntl.h either 68# stat.h either 69# file.h either 70# fs.h either 71# fsvar.h either 72# left: ide.c # mild preference 73even: ide.c 74# odd: bio.c 75 76# with fs.c starting on 2nd column of a left page, we get these 2-page spreads: 77# ialloc iupdate iget idup ilock iunlock iput iunlockput 78# bmap itrunc stati readi writei 79# namecmp dirlookup dirlink skipelem namex namei 80# fielinit filealloc filedup fileclose filestat fileread filewrite 81# starting on 2nd column of a right page is not terrible either 82odd: fs.c # VERY important 83left: fs.c # mild preference 84# file.c either 85# exec.c either 86# sysfile.c either 87 88# even: pipe.c # mild preference 89# string.c either 90# left: kbd.h # mild preference 91even: kbd.h 92even: console.c 93odd: sh.c 94