xref: /xv6-public/runoff.spec (revision 2a2e6eb1)
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