summaryrefslogtreecommitdiff
path: root/exec.c
AgeCommit message (Collapse)AuthorFilesLines
2011-09-03I can't do math; fix bug introduced in 5a9761Austin Clements1-1/+1
2011-09-02Fit exec on a page. AgainAustin Clements1-5/+2
2011-09-02clear_pte_u -> clearpteuAustin Clements1-1/+1
2011-09-01inaccessible page under the user stack page, to help exec deal w/ too-large argsRobert Morris1-3/+6
2011-08-17Make elf proghdr fields match what objdump printsFrans Kaashoek1-2/+2
2011-08-09Use static page table for boot, mapping first 4Mbyte; no more segment trickFrans Kaashoek1-1/+1
Allocate proper kernel page table immediately in main using boot allocator Remove pginit Simplify address space layout a tiny bit More to come (e.g., superpages to simplify static table)
2011-07-29Map kernel highFrans Kaashoek1-0/+1
Very important to give qemu memory through PHYSTOP :(
2011-02-19xv6: formatting, cleanup, rev5 (take 2)Russ Cox1-44/+18
2011-01-11make new code like old codeRuss Cox1-12/+12
Variable declarations at top of function, separate from initialization. Use == 0 instead of ! for checking pointers. Consistent spacing around {, *, casts. Declare 0-parameter functions as (void) not (). Integer valued functions return -1 on failure, 0 on success.
2010-09-29even more fabulous execRobert Morris1-19/+8
2010-09-27check exec() arg lengthRobert Morris1-3/+8
fix double iunlockput
2010-09-27copyout() copies data to a va in a pagetable, for exec() &cRobert Morris1-35/+58
usertest that passes too many arguments, break exec
2010-09-19my comment is wrong, exec handles BSS fineRobert Morris1-3/+0
2010-09-19exec questionsRobert Morris1-0/+6
2010-09-02Simplify allocuvm/deallocuvm to operate in a contiguous memory model. This ↵Austin Clements1-15/+11
makes their interface match up better with proc->sz and also simplifies the callers (it even gets the main body of exec on one page).
2010-09-01Remove the stack guard page. Processes are now contiguous from 0 to ↵Austin Clements1-1/+0
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.
2010-09-01Tab policeAustin Clements1-5/+5
2010-08-06fix corner cases in exec of ELFRobert Morris1-2/+5
put an invalid page below the stack have fork() handle invalid pages
2010-07-23a few nitsFrans Kaashoek1-1/+1
passes all tests on two-processor smp
2010-07-23Checkpoint page-table version for SMPFrans Kaashoek1-5/+1
Includes code for TLB shootdown (which actually seems unnecessary for xv6)
2010-07-02Initial version of single-cpu xv6 with page tablesFrans Kaashoek1-50/+40
2009-08-30assorted fixes:Russ Cox1-7/+7
* rename c/cp to cpu/proc * rename cpu.context to cpu.scheduler * fix some comments * formatting for printout
2009-08-08shuffle and tweak for formatting.Russ Cox1-2/+4
pdf has very good page breaks now. would be a good copy for fall 2009.
2009-07-13exec tweaksRuss Cox1-6/+11
2009-05-31exec sanity checkrsc1-1/+1
2009-05-31Some proc cleanup, moving some of copyproc into allocproc.rsc1-1/+1
Also, an experiment: use "thread-local" storage for c and cp instead of the #define macro for curproc[cpu()].
2007-08-30oops - broke arg countingrsc1-1/+1
2007-08-28oopsrsc1-1/+1
2007-08-27delete unnecessary #include linesrsc1-1/+0
2007-08-27Edit exec.rsc1-77/+59
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.
2007-08-24Remove struct uinode.rsc1-5/+5
Remove type arg to mknod (assume T_DEV).
2007-08-22PDF at http://am.lcs.mit.edu/~rsc/xv6.pdfrsc1-12/+10
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-21Various cleanup:rsc1-0/+136
- 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].