Commit graph

34 commits

Author SHA1 Message Date
Frans Kaashoek
1ddfbbb194 Revert "Introduce and use sleeplocks instead of BUSY flags"
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 3a5fa7ed90.

Conflicts:

	defs.h
	file.c
	file.h
2011-08-29 17:18:40 -04:00
Frans Kaashoek
3a5fa7ed90 Introduce and use sleeplocks instead of BUSY flags
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-08-26 10:08:29 -04:00
Russ Cox
1a81e38b17 make new code like old code
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.
2011-01-11 13:01:13 -05:00
Robert Morris
7d7dc9331b kalloc/kfree now only a page at a time
do not keep sorted contiguous free list
2010-08-31 12:54:47 -04:00
Russ Cox
48755214c9 assorted fixes:
* rename c/cp to cpu/proc
 * rename cpu.context to cpu.scheduler
 * fix some comments
 * formatting for printout
2009-08-30 23:02:08 -07:00
Russ Cox
0aef891495 shuffle and tweak for formatting.
pdf has very good page breaks now.
would be a good copy for fall 2009.
2009-08-08 01:07:30 -07:00
Russ Cox
00e571155c more doc tweaks 2009-07-12 18:33:37 -07:00
rsc
f3685aa391 simplify 2009-05-31 02:07:51 +00:00
kolya
e670a48358 as rtm noticed, avoid doubly-freeing pipe page 2008-10-15 17:42:56 +00:00
kolya
02cc595f28 clean up circular buffers, so pipe can queue 512 bytes rather than 511 2008-08-22 00:26:22 +00:00
rsc
5516be1fed spaces around else for rtm 2007-08-28 18:37:41 +00:00
rsc
e4d6a21165 more consistent spacing 2007-08-28 18:32:08 +00:00
rsc
6eed1ee9b0 formatting 2007-08-28 05:00:53 +00:00
rsc
7834cca604 remove _ from pipe; be like file 2007-08-28 04:22:35 +00:00
rsc
558ab49f13 delete unnecessary #include lines 2007-08-27 23:26:33 +00:00
rsc
3ce1647078 nits 2007-08-27 16:06:19 +00:00
rsc
ea6e370964 i cannot prove that release before wakeup is wrong, but i cannot convince myself it is right either 2007-08-14 19:10:57 +00:00
rsc
f1f8dd91bc formatting 2007-08-14 18:42:34 +00:00
rsc
b6095304b7 Make cp a magic symbol. 2007-08-10 16:37:27 +00:00
rsc
3bbbaca14d move variable declaration up 2007-08-10 16:35:01 +00:00
rsc
22330658ff spacing 2007-08-09 16:56:40 +00:00
rsc
f2f062da61 check p->killed for long-lived sleeps 2007-08-08 10:29:42 +00:00
rsc
2cbb4b1842 stop using fd to name files 2006-09-08 13:44:42 +00:00
rsc
50e514be98 fd_* => file_* 2006-09-06 18:43:45 +00:00
rsc
9936bffa45 fd.* -> file.* 2006-09-06 18:40:28 +00:00
rsc
39593d2f1a struct fd -> struct file 2006-09-06 18:38:56 +00:00
rsc
d4c64e5d43 writeable => writable 2006-09-06 18:06:04 +00:00
rsc
9e9bcaf143 standardize various * conventions 2006-09-06 17:27:19 +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
bd228a8156 prevent longjmp / forkret from writing over tf->edi 2006-07-18 19:22:37 +00:00
rtm
46bbd72f3e no more recursive locks
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-15 12:03:57 +00:00
rtm
4e8f237be8 no more big kernel lock
succeeds at usertests.c pipe test
2006-07-12 01:48:35 +00:00
rtm
8b4e2a08fe swtch saves callee-saved registers
swtch idles on per-CPU stack, not on calling process's stack
fix pipe bugs
usertest.c tests pipes, fork, exit, close
2006-07-01 21:26:01 +00:00
rtm
c41f1de5d4 file descriptors
pipes
2006-06-27 14:35:53 +00:00