rsc
c1b100e930
nits
2007-08-28 18:23:48 +00:00
rsc
9e82bfb04c
rename 8253pit.c to timer.c
2007-08-28 04:40:58 +00:00
rsc
43baa1f224
nit
2007-08-28 04:14:32 +00:00
rsc
3341e30f6e
nit
2007-08-28 04:13:24 +00:00
rsc
19b42cc078
Rename main0 to main.
2007-08-27 23:32:16 +00:00
rsc
558ab49f13
delete unnecessary #include lines
2007-08-27 23:26:33 +00:00
rsc
99b11b6c64
Simplify MP hardware code.
...
Mainly delete unused constants and code.
Move mp_startthem to main.c as bootothers.
2007-08-27 22:53:31 +00:00
rsc
b63bb0fd00
Clean up lapic code.
...
One initialization function now, not three.
Use #defines instead of enums (consistent with other code, but sigh).
Still boots in Bochs in SMP mode.
2007-08-27 16:57:13 +00:00
rsc
124f32ae38
tweak
2007-08-24 19:36:52 +00:00
rsc
eaea18cb9c
PDF at http://am.lcs.mit.edu/~rsc/xv6.pdf
...
Various changes made while offline.
+ bwrite sector argument is redundant; use b->sector.
+ reformatting of files for nicer PDF page breaks
+ distinguish between locked, unlocked inodes in type signatures
+ change FD_FILE to FD_INODE
+ move userinit (nee proc0init) to proc.c
+ move ROOTDEV to param.h
+ always parenthesize sizeof argument
2007-08-22 06:01:32 +00:00
rsc
0073beee52
remove dead code
2007-08-21 19:22:27 +00:00
rsc
f32f3638f4
Various cleanup:
...
- Got rid of dummy proc[0]. Now proc[0] is init.
- Added initcode.S to exec /init, so that /init is
just a regular binary.
- Moved exec out of sysfile to exec.c
- Moved code dealing with fs guts (like struct inode)
from sysfile.c to fs.c. Code dealing with system call
arguments stays in sysfile.c
- Refactored directory routines in fs.c; should be simpler.
- Changed iget to return *unlocked* inode structure.
This solves the lookup-then-use race in namei
without introducing deadlocks.
It also enabled getting rid of the dummy proc[0].
2007-08-21 19:22:08 +00:00
rsc
bcca6c6bde
shuffle fs.c in bottom-up order
2007-08-20 18:23:52 +00:00
rsc
8c4b5fc5b3
Gcc expects to be able to pick up the return
...
address off the stack, so put one there for it.
(Bug was hidden by bad segment limits.)
2007-08-14 04:56:30 +00:00
rsc
dca5b5ca2e
avoid assignments in declarations
2007-08-10 17:17:42 +00:00
rsc
c664dd5d23
missing void
2007-08-08 09:32:39 +00:00
rsc
5d0fe3445b
more bugs
2007-08-08 09:10:16 +00:00
rsc
b6dc6187f7
add DPL_USER constant
2007-08-08 09:02:42 +00:00
rsc
f83f7ce2f6
set init name
2007-08-08 08:57:55 +00:00
rsc
4fb684548a
formatting nits
2006-09-08 15:14:43 +00:00
rsc
efb01c1dc0
only need a page
2006-09-08 15:09:48 +00:00
kaashoek
5cb7877e0f
use bootstrap processor as specified by MP table. typically 0, but not
...
guaranteed.
2006-09-08 14:48:07 +00:00
kaashoek
8e1d1ec934
some comment changes
2006-09-08 14:36:44 +00:00
rsc
7e019461c8
fix build
2006-09-07 14:10:52 +00:00
kaashoek
e00baa9f5d
get precedence of <, >, and | right
...
simplify
2006-09-07 02:15:28 +00:00
kaashoek
f70172129c
run without lapic and ioapic, if they are not present
...
if no lapic available, use 8253pit for clock
now xv6 runs both on qemu (uniprocessor) and bochs (uniprocessor and MP)
2006-09-07 01:37:58 +00:00
rsc
50e514be98
fd_* => file_*
2006-09-06 18:43:45 +00:00
rsc
9e9bcaf143
standardize various * conventions
2006-09-06 17:27:19 +00:00
rsc
a650c606fe
spacing fixes: no tabs, 2-space indents (for rtm)
2006-09-06 17:04:06 +00:00
rtm
dfcc5b997c
prune unneeded panics and debug output
2006-08-29 19:06:37 +00:00
rtm
2b19190c13
clean up stale error checks and panics
...
delete unused functions
a few comments
2006-08-29 14:45:45 +00:00
rtm
ceb0e42796
proc[0] can sleep(), at least after it gets to main00()
...
proc[0] calls iget(rootdev, 1) before forking init
2006-08-16 01:56:00 +00:00
rtm
350e63f7a9
no more proc[] entry per cpu for idle loop
...
each cpu[] has its own gdt and tss
no per-proc gdt or tss, re-write cpu's in scheduler (you win, cliff)
main0() switches to cpu[0].mpstack
2006-08-15 22:18:20 +00:00
kaashoek
69332d1918
oops
2006-08-15 15:54:53 +00:00
kaashoek
e958c538fa
commented out code for cwd
2006-08-15 15:53:46 +00:00
rtm
9e5970d596
link()
2006-08-13 02:12:44 +00:00
rtm
17a856577f
init creates console, opens 0/1/2, runs sh
...
sh accepts 0-argument commands (like userfs)
reads from console
2006-08-11 13:55:18 +00:00
rtm
5be0039ce9
interrupts could be recursive since lapic_eoi() called before rti
...
so fast interrupts overflow the kernel stack
fix: cli() before lapic_eoi()
2006-08-10 22:08:14 +00:00
rtm
8a8be1b8c3
low-level keyboard input (not hooked up to /dev yet)
...
fix acquire() to cli() *before* incrementing nlock
make T_SYSCALL a trap gate, not an interrupt gate
sadly, various crashes if you hold down a keyboard key...
2006-08-10 02:07:10 +00:00
kaashoek
6fa5ffb56f
devsw
...
checkpoint: write(fd,"hello\n",6) where fd is a console dev almost works
2006-08-09 16:04:04 +00:00
rtm
0e84a0ec6e
fix race in holding() check in acquire()
...
give cpu1 a TSS and gdt for when it enters scheduler()
and a pseudo proc[] entry for each cpu
cpu0 waits for each other cpu to start up
read() for files
2006-08-08 19:58:06 +00:00
kaashoek
c8b29f6d03
better interrupt plan---this one appears to work
...
ioapic
2006-08-04 18:12:31 +00:00
rtm
32630628a9
open()
2006-07-29 09:35:02 +00:00
rtm
c59361f143
primitive exec
2006-07-27 21:10:00 +00:00
rtm
2927081628
uint32_t -> uint &c
2006-07-20 09:07:53 +00:00
rsc
b5f17007f4
standarize on unix-like lowercase struct names
2006-07-17 01:58:13 +00:00
rsc
b5ee516575
add uint and standardize on typedefs instead of unsigned
2006-07-17 01:52:13 +00:00
rsc
6e6a1dd7d7
various little fixes that should have been in earlier checkins
2006-07-16 16:06:03 +00:00
rsc
8a7eb80e47
fix main return type
2006-07-16 16:03:51 +00:00
rsc
b74f4b57ae
Keep interrupts disabled during startup.
2006-07-16 15:50:13 +00:00