1*2a2e6eb1SAustin Clementssheet1: right 29d7a63e0SAustin Clements 3d2c7f649SAustin Clements# "left" and "right" specify which page of a two-page spread a file 4d2c7f649SAustin Clements# must start on. "left" means that a file must start on the first of 5d49d3138SAustin Clements# the two pages. "right" means it must start on the second of the two 6d2c7f649SAustin Clements# pages. The file may start in either column. 7d2c7f649SAustin Clements# 8d2c7f649SAustin Clements# "even" and "odd" specify which column a file must start on. "even" 9cf4b1ad9SRuss Cox# means it must start in the left of the two columns (00). "odd" means it 10cf4b1ad9SRuss Cox# must start in the right of the two columns (50). 11d49d3138SAustin Clements# 12d49d3138SAustin Clements# You'd think these would be the other way around. 13d2c7f649SAustin Clements 14eaea18cbSrsc# types.h either 15eaea18cbSrsc# param.h either 16eaea18cbSrsc# defs.h either 17eaea18cbSrsc# x86.h either 18eaea18cbSrsc# asm.h either 19eaea18cbSrsc# mmu.h either 20eaea18cbSrsc# elf.h either 21eaea18cbSrsc# mp.h either 22eaea18cbSrsc 23*2a2e6eb1SAustin Clementseven: entry.S # mild preference 24*2a2e6eb1SAustin Clementseven: entryother.S # mild preference 25f1f8dd91Srsceven: main.c 26eaea18cbSrsc# mp.c don't care at all 270aef8914SRuss Cox# even: initcode.S 280aef8914SRuss Cox# odd: init.c 29eaea18cbSrsc 30*2a2e6eb1SAustin Clementsleft: spinlock.h 31*2a2e6eb1SAustin Clementseven: spinlock.h 32d8828817SAustin Clements 33d8828817SAustin Clements# This gets struct proc and allocproc on the same spread 34cf4b1ad9SRuss Coxleft: proc.h 35cf4b1ad9SRuss Coxeven: proc.h 360aef8914SRuss Cox 370aef8914SRuss Cox# goal is to have two action-packed 2-page spreads, 380aef8914SRuss Cox# one with 39d8828817SAustin Clements# userinit growproc fork exit wait 400aef8914SRuss Cox# and another with 410aef8914SRuss Cox# scheduler sched yield forkret sleep wakeup1 wakeup 42cf4b1ad9SRuss Coxright: proc.c # VERY important 43cf4b1ad9SRuss Coxeven: proc.c # VERY important 440aef8914SRuss Cox 45f25a3f9aSAustin Clements# A few more action packed spreads 46f25a3f9aSAustin Clements# page table creation and process loading 47*2a2e6eb1SAustin Clements# walkpgdir mappages setupkvm switch[ku]vm inituvm (loaduvm) 48f25a3f9aSAustin Clements# process memory management 49f25a3f9aSAustin Clements# allocuvm deallocuvm freevm 50cf4b1ad9SRuss Coxleft: vm.c 51f25a3f9aSAustin Clements 52*2a2e6eb1SAustin Clementseven: kalloc.c # mild preference 53eaea18cbSrsc 54eaea18cbSrsc# syscall.h either 55eaea18cbSrsc# trapasm.S either 56eaea18cbSrsc# traps.h either 570aef8914SRuss Cox# even: trap.c 58eaea18cbSrsc# vectors.pl either 59eaea18cbSrsc# syscall.c either 60eaea18cbSrsc# sysproc.c either 61eaea18cbSrsc 62eaea18cbSrsc# buf.h either 63eaea18cbSrsc# dev.h either 64eaea18cbSrsc# fcntl.h either 65eaea18cbSrsc# stat.h either 66eaea18cbSrsc# file.h either 67eaea18cbSrsc# fs.h either 68eaea18cbSrsc# fsvar.h either 69cf4b1ad9SRuss Cox# left: ide.c # mild preference 705bf11c50SAustin Clementseven: ide.c 71eaea18cbSrsc# odd: bio.c 72cf4b1ad9SRuss Cox 73*2a2e6eb1SAustin Clements# log.c fits nicely in a spread 74*2a2e6eb1SAustin Clementseven: log.c 75*2a2e6eb1SAustin Clementsleft: log.c 76*2a2e6eb1SAustin Clements 77cf4b1ad9SRuss Cox# with fs.c starting on 2nd column of a left page, we get these 2-page spreads: 78cf4b1ad9SRuss Cox# ialloc iupdate iget idup ilock iunlock iput iunlockput 79cf4b1ad9SRuss Cox# bmap itrunc stati readi writei 80cf4b1ad9SRuss Cox# namecmp dirlookup dirlink skipelem namex namei 81*2a2e6eb1SAustin Clements# fileinit filealloc filedup fileclose filestat fileread filewrite 82cf4b1ad9SRuss Cox# starting on 2nd column of a right page is not terrible either 83eaea18cbSrscodd: fs.c # VERY important 84cf4b1ad9SRuss Coxleft: fs.c # mild preference 85eaea18cbSrsc# file.c either 86eaea18cbSrsc# exec.c either 87eaea18cbSrsc# sysfile.c either 88eaea18cbSrsc 89*2a2e6eb1SAustin Clements# Mild preference, but makes spreads of mp.c, lapic.c, and ioapic.c+picirq.c 90*2a2e6eb1SAustin Clementseven: mp.c 91*2a2e6eb1SAustin Clementsleft: mp.c 92*2a2e6eb1SAustin Clements 930c931af5Srsc# even: pipe.c # mild preference 94eaea18cbSrsc# string.c either 95cf4b1ad9SRuss Cox# left: kbd.h # mild preference 965bf11c50SAustin Clementseven: kbd.h 97eae04163Srsceven: console.c 98eae04163Srscodd: sh.c 99*2a2e6eb1SAustin Clements 100*2a2e6eb1SAustin Clementseven: bootasm.S # mild preference 101*2a2e6eb1SAustin Clementseven: bootmain.c # mild preference 102