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