xref: /xv6-public/runoff.spec (revision 74c77da6)
1# Is sheet 01 (after the TOC) a left sheet or a right sheet?
2sheet1: left
3
4# "left" and "right" specify which page of a two-page spread a file
5# must start on.  "left" means that a file must start on the first of
6# the two pages.  "right" means it must start on the second of the two
7# pages.  The file may start in either column.
8#
9# "even" and "odd" specify which column a file must start on.  "even"
10# means it must start in the left of the two columns (00).  "odd" means it
11# must start in the right of the two columns (50).
12#
13# You'd think these would be the other way around.
14
15# types.h either
16# param.h either
17# defs.h either
18# x86.h either
19# asm.h either
20# mmu.h either
21# elf.h either
22# mp.h either
23
24even: entry.S  # mild preference
25even: entryother.S  # mild preference
26even: main.c
27# mp.c don't care at all
28# even: initcode.S
29# odd: init.c
30
31left: spinlock.h
32even: spinlock.h
33
34# This gets struct proc and allocproc on the same spread
35left: proc.h
36even: proc.h
37
38# goal is to have two action-packed 2-page spreads,
39# one with
40#     userinit growproc fork exit wait
41# and another with
42#     scheduler sched yield forkret sleep wakeup1 wakeup
43right: proc.c   # VERY important
44even: proc.c   # VERY important
45
46# A few more action packed spreads
47# page table creation and process loading
48#     walkpgdir mappages setupkvm switch[ku]vm inituvm (loaduvm)
49# process memory management
50#     allocuvm deallocuvm freevm
51left: vm.c
52
53even: kalloc.c  # mild preference
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
70# left: ide.c # mild preference
71even: ide.c
72# odd: bio.c
73
74# log.c fits nicely in a spread
75even: log.c
76left: log.c
77
78# with fs.c starting on 2nd column of a left page, we get these 2-page spreads:
79#	ialloc iupdate iget idup ilock iunlock iput iunlockput
80#	bmap itrunc stati readi writei
81#	namecmp dirlookup dirlink skipelem namex namei
82#	fileinit filealloc filedup fileclose filestat fileread filewrite
83# starting on 2nd column of a right page is not terrible either
84odd: fs.c   # VERY important
85left: fs.c  # mild preference
86# file.c either
87# exec.c either
88# sysfile.c either
89
90# Mild preference, but makes spreads of mp.c, lapic.c, and ioapic.c+picirq.c
91even: mp.c
92left: mp.c
93
94# even: pipe.c  # mild preference
95# string.c either
96# left: kbd.h  # mild preference
97even: kbd.h
98even: console.c
99odd: sh.c
100
101even: bootasm.S   # mild preference
102even: bootmain.c  # mild preference
103