summaryrefslogtreecommitdiff
path: root/pipe.c
AgeCommit message (Collapse)Author
2019-06-11separate source into kernel/ user/ mkfs/Robert Morris
2019-06-04support read() and write() bigger than one pageRobert Morris
2019-05-31-initrd fs.img, ramdisk.c, file systemRobert Morris
2017-01-31Start of an experiment to remove the use of gs for cpu local variables.Frans Kaashoek
2016-09-11Replace I_BUSY with sleep locksFrans Kaashoek
2011-08-29Revert "Introduce and use sleeplocks instead of BUSY flags"Frans Kaashoek
My changes have a race with re-used bufs and the code doesn't seem to get shorter Keep the changes that fixed ip->off race This reverts commit 3a5fa7ed9020eaf8ab843a16d26db7393b2ec072. Conflicts: defs.h file.c file.h
2011-08-26Introduce and use sleeplocks instead of BUSY flagsFrans Kaashoek
Remove I_BUSY, B_BUSY, and intrans defs and usages One spinlock per buf to avoid ugly loop in bget fix race in filewrite (don't update f->off after releasing lock)
2011-01-11make new code like old codeRuss Cox
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-08-31kalloc/kfree now only a page at a timeRobert Morris
do not keep sorted contiguous free list
2009-08-30assorted fixes:Russ Cox
* 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 Cox
pdf has very good page breaks now. would be a good copy for fall 2009.
2009-07-12more doc tweaksRuss Cox
2009-05-31simplifyrsc
2008-10-15as rtm noticed, avoid doubly-freeing pipe pagekolya
2008-08-22clean up circular buffers, so pipe can queue 512 bytes rather than 511kolya
2007-08-28spaces around else for rtmrsc
2007-08-28more consistent spacingrsc
2007-08-28formattingrsc
2007-08-28remove _ from pipe; be like filersc
2007-08-27delete unnecessary #include linesrsc
2007-08-27nitsrsc
2007-08-14i cannot prove that release before wakeup is wrong, but i cannot convince ↵rsc
myself it is right either
2007-08-14formattingrsc
2007-08-10Make cp a magic symbol.rsc
2007-08-10move variable declaration uprsc
2007-08-09spacingrsc
2007-08-08check p->killed for long-lived sleepsrsc
2006-09-08stop using fd to name filesrsc
2006-09-06fd_* => file_*rsc
2006-09-06fd.* -> file.*rsc
2006-09-06struct fd -> struct filersc
2006-09-06writeable => writablersc
2006-09-06standardize various * conventionsrsc
2006-08-10interrupts could be recursive since lapic_eoi() called before rtirtm
so fast interrupts overflow the kernel stack fix: cli() before lapic_eoi()
2006-07-18prevent longjmp / forkret from writing over tf->edirtm
2006-07-15no more recursive locksrtm
wakeup1() assumes you hold proc_table_lock sleep(chan, lock) provides atomic sleep-and-release to wait for condition ugly code in swtch/scheduler to implement new sleep fix lots of bugs in pipes, wait, and exit fix bugs if timer interrupt goes off in schedule() console locks per line, not per byte
2006-07-12no more big kernel lockrtm
succeeds at usertests.c pipe test
2006-07-01swtch saves callee-saved registersrtm
swtch idles on per-CPU stack, not on calling process's stack fix pipe bugs usertest.c tests pipes, fork, exit, close
2006-06-27file descriptorsrtm
pipes