Age | Commit message (Collapse) | Author | Files | Lines |
|
proc->sz, which means our syscall argument validation is correct. Add a pointer validation test and remove the stack test, which tested for the guard page.
|
|
|
|
put an invalid page below the stack
have fork() handle invalid pages
|
|
passes all tests on two-processor smp
|
|
Includes code for TLB shootdown (which actually seems unnecessary for xv6)
|
|
|
|
* rename c/cp to cpu/proc
* rename cpu.context to cpu.scheduler
* fix some comments
* formatting for printout
|
|
pdf has very good page breaks now.
would be a good copy for fall 2009.
|
|
|
|
|
|
Also, an experiment: use "thread-local" storage for c and cp
instead of the #define macro for curproc[cpu()].
|
|
|
|
|
|
|
|
Do not commit to new memory image until
nothing can go wrong, avoiding bad2 case.
Be sure to allocate enough stack space for argv.
Load executable before initializing stack, to
keep ELF loops together.
Make argv loop clearer.
|
|
Remove type arg to mknod (assume T_DEV).
|
|
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
|
|
- 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].
|