summaryrefslogtreecommitdiff
path: root/proc.c
AgeCommit message (Collapse)AuthorFilesLines
2012-08-22Remove unused argument to setupkvm (thanks to Peter Froehlich)Frans Kaashoek1-1/+1
2011-09-01fix usertests to correctly test what happens when you callRobert Morris1-1/+1
exec() with arguments that don't fit on a single page.
2011-08-22A commentFrans Kaashoek1-0/+3
2011-08-22Remove sys_init syscallFrans Kaashoek1-0/+6
Invoke initlog from forkret on first user process
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-38/+38
2011-01-11make new code like old codeRuss Cox1-5/+7
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-13change some comments, maybe more informativeRobert Morris1-2/+4
delete most comments from bootother.S (since copy of bootasm.S) ksegment() -> seginit() move more stuff from main() to mainc()
2010-09-02Simplify allocuvm/deallocuvm to operate in a contiguous memory model. This ↵Austin Clements1-3/+4
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-02Simplify inituvm and userinit by assuming initcode fits on a pageAustin Clements1-5/+2
2010-09-02Oops. Broke the build when I rearranged proc.cAustin Clements1-0/+2
2010-09-02Rearrange proc.h and proc.c to get our action-packed spreads back (mostly). ↵Austin Clements1-86/+86
They also make sense in this order, so it's not just for page layout.
2010-09-01Space policeAustin Clements1-5/+5
2010-08-31Fix too-long linesAustin Clements1-1/+2
2010-08-31kalloc/kfree now only a page at a timeRobert Morris1-3/+3
do not keep sorted contiguous free list
2010-08-10allow sbrk(-x) to de-allocate user memoryRobert Morris1-2/+7
2010-08-06fix corner cases in exec of ELFRobert Morris1-5/+5
put an invalid page below the stack have fork() handle invalid pages
2010-08-05remove some unused vm #definesRobert Morris1-1/+1
fix corner cases with alignment when mapping kernel ELF file
2010-07-25some cleanupFrans Kaashoek1-1/+1
2010-07-23Checkpoint page-table version for SMPFrans Kaashoek1-0/+1
Includes code for TLB shootdown (which actually seems unnecessary for xv6)
2010-07-02Initial version of single-cpu xv6 with page tablesFrans Kaashoek1-57/+15
2009-09-20nit in commentFrans Kaashoek1-1/+1
2009-09-03formatting tweaksRuss Cox1-1/+2
2009-09-02can set just %gs now.Russ Cox1-2/+1
2009-09-02another attempt at cpu-local variables.Russ Cox1-2/+1
this time do it ourselves instead of piggybacking on TLS. add -fno-pic to Makefile; pic code breaks our fake TLS.
2009-09-02fix TLS again;Russ Cox1-2/+3
still not quite but a lot better.
2009-09-02Fix TLS for PIC systemsRuss Cox1-0/+1
2009-08-30assorted fixes:Russ Cox1-58/+57
* 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-102/+104
pdf has very good page breaks now. would be a good copy for fall 2009.
2009-07-12more doc tweaksRuss Cox1-20/+18
2009-07-11initproc, usegment, swtch tweaksRuss Cox1-46/+39
2009-05-31compile fixesrsc1-7/+5
2009-05-31group locks into structs they protect.rsc1-44/+42
few naming nits.
2009-05-31clean up %fs %gs usersc1-1/+1
2009-05-31move fork into proc.crsc1-14/+20
2009-05-31Some proc cleanup, moving some of copyproc into allocproc.rsc1-84/+82
Also, an experiment: use "thread-local" storage for c and cp instead of the #define macro for curproc[cpu()].
2009-03-08be consistent: no underscores in function namesrsc1-1/+1
2008-10-15cleaner swtch.Skolya1-4/+4
2008-10-15save cpus.intena in sched(), so we get the right EFLAGS.IF value once akolya1-1/+5
timer-preempted kernel thread resumes execution in trap() after yield(). otherwise the kernel could get an arbitrary number of nested timer intrs.
2008-09-11omit *.d from tar filertm1-1/+0
2008-08-28simplify growprocrtm1-3/+2
2008-08-28avoid a bug w/ exit()rtm1-0/+1
2007-10-20proc_wait -> waitrtm1-1/+1
2007-09-27Final word on the locking fiasco?rsc1-4/+5
Change pushcli / popcli so that they can never turn on interrupts unexpectedly. That is, if interrupts are on, then pushcli(); popcli(); turns them off and back on, but if they are off to begin with, then pushcli(); popcli(); is a no-op. I think our fundamental mistake was having a primitive (release and then popcli nee spllo) that could turn interrupts on at unexpected moments instead of being explicit about when we want to start allowing interrupts. With the new semantics, all the manual fiddling of ncli to force interrupts off in certain sections goes away. In return, we must explicitly mark the places where we want to enable interrupts unconditionally, by calling sti(). There is only one: inside the scheduler loop.
2007-09-27yank out stack overflow checking uglinessrsc1-5/+1
2007-09-27okay, that was long enough - revertrsc1-7/+10
2007-09-27test: store curproc at top of stackrsc1-10/+7
I don't actually think this is worthwhile, but I figured I would check it in before reverting it, so that it can be in the revision history. Pros: * curproc doesn't need to turn on/off interrupts * scheduler doesn't have to edit curproc anymore Cons: * it's ugly * all the stack computation is more complicated. * it doesn't actually simplify anything but curproc, and even curproc is harder to follow.
2007-09-27rename splhi/spllo to pushcli/popclirsc1-5/+5
2007-09-27overkill: use segments to catch stack overflow (delete before next year)rsc1-1/+5