summaryrefslogtreecommitdiff
path: root/sys/kern/sys_pipe.c
AgeCommit message (Collapse)Author
2002-02-08- Rename FILE_{,UN}USE to FREF and FRELE. USE is a bad verb and we don't haveArtur Grabowski
the same semantics as NetBSD anyway, so it's good to avoid name collissions. - Always fdremove before freeing the file, not the other way around. - falloc FREFs the file. - have FILE_SET_MATURE FRELE the file (It feels like a good ortogonality to falloc FREFing the file). - Use closef as much as possible instead of ffree in error paths of falloc:ing functions. closef is much more careful with the fd and can deal with the fd being forcibly closed by dup2. Also try to avoid manually calling *fo_close when closef can do that for us (this makes some error paths mroe complicated (sys_socketpair and sys_pipe), but others become simpler (sys_open)).
2002-01-23Pool deals fairly well with physical memory shortage, but it doesn't dealArtur Grabowski
well (not at all) with shortages of the vm_map where the pages are mapped (usually kmem_map). Try to deal with it: - group all information the backend allocator for a pool in a separate struct. The pool will only have a pointer to that struct. - change the pool_init API to reflect that. - link all pools allocating from the same allocator on a linked list. - Since an allocator is responsible to wait for physical memory it will only fail (waitok) when it runs out of its backing vm_map, carefully drain pools using the same allocator so that va space is freed. (see comments in code for caveats and details). - change pool_reclaim to return if it actually succeeded to free some memory, use that information to make draining easier and more efficient. - get rid of PR_URGENT, noone uses it.
2001-11-06Replace inclusion of <vm/foo.h> with the correct <uvm/bar.h> when necessary.Miod Vallat
(Look ma, I might have broken the tree)
2001-10-26 - every new fd created by falloc() is marked as larval and should not be usedArtur Grabowski
any anyone. Every caller of falloc matures the fd when it's usable. - Since every lookup in the fd table must now check this flag and all of them do the same thing, move all the necessary checks into a function - fd_getfile.
2001-09-19merge vm/vm_kern.h into uvm/uvm_extern.h; art@ okMichael Shalayeff
2001-07-05Get rid of unnecessary includes.Artur Grabowski
2001-06-27remove old vmArtur Grabowski
2001-06-23pool_init, not pool_createArtur Grabowski
2001-06-23pipe_stat isn't referenced from outside sys_pipe.c anymoreArtur Grabowski
2001-06-23Add pipe_init, call it from main, move the pool initialization into it.Artur Grabowski
2001-06-05fix kqueue EVFILT_WRITE; okay art@Niels Provos
2001-05-26Sync in some improvements from FreeBSD + my own improvements.Artur Grabowski
- use pool for allocating pipe structures. - use microtime instead of splhigh and time. - improve locking. - better handling of nonblocking. - various efficiency fixes.
2001-05-14gc OLD_PIPE.Artur Grabowski
2001-05-14Add a fo_stat member to struct fileops. Used soon.Artur Grabowski
Also add a stat function for kqueue from FreeBSD.
2001-05-14More generic arguments to pipe_stat.Artur Grabowski
2001-05-14We already have a prototype for pipe_stat in sys/pipe.hArtur Grabowski
2001-03-01port kqueue changes from freebsd, plus all required openbsd glue.Niels Provos
okay deraadt@, millert@ from jlemon@freebsd.org: extend kqueue down to the device layer, backwards compatible approach suggested by peter@freebsd.org
2000-11-16support kernel event queues, from FreeBSD by Jonathan Lemon,Niels Provos
okay art@, millert@
2000-04-19Change struct file interface methods read and write to pass file offset inConstantine Sapuntzakis
and out. Make pread/pwrite in netbsd & linux thread safe - which is the whole point anyway.
2000-01-27No need to include sys/vmmeter.hArtur Grabowski
1999-11-25Annoying unnecessary space.Artur Grabowski
1999-11-21if select returns writable on a pipe, the write should not returnTheo de Raadt
EWOULDBLOCK. turns out the two checking conditions were not the same, and a certain use of rsync uncovered the bug by chewing all available cpu time; fix from art
1999-10-29Use M_PIPE instead of M_TEMP.Artur Grabowski
1999-10-29Remove the "Direct write" code.Artur Grabowski
We never used it and some parts of it slowed the code down. Generally clean up the pipe code.
1999-10-27Actually make ASYNC pipes generate SIGIO.Niklas Hallqvist
1999-07-15vm_offset_t -> {v,p}addr_t ; vm_size_t -> {v,p}size_tArtur Grabowski
1999-07-13introduce fdremove() to mark a file descriptor as unused. fdremove makesNiels Provos
sure that the fd_freefile hints stay in sync, otherwise free file descriptors might not be overlooked by fdalloc(); ok millert@
1999-06-08better fd leak preventionTheo de Raadt
1999-06-07need seperate sys_pipe() versions, for pipeclose() or soclose() callsTheo de Raadt
1999-06-07replacement pipe() system call; copies data into place inside kernel, soTheo de Raadt
that EFAULT return value is possible
1999-06-07oops, premature commitTheo de Raadt
1999-06-07store NULL in fd_ofilesTheo de Raadt
1999-02-26kmem allocation changes for uvmArtur Grabowski
1999-02-16Move defining of PIPE_NODIRECT to pipe.h and conditionalize more code with it.Artur Grabowski
This allows this code to compile on sparc.
1997-11-06Updates for VFS Lite 2 + soft update.Constantine Sapuntzakis
1997-10-06back out vfs lite2 till after 2.2Theo de Raadt
1997-10-06VFS Lite2 ChangesConstantine Sapuntzakis
1997-02-24OpenBSD tagsNiklas Hallqvist
1996-10-12Correct sys_pipe's 3rd arg type, alpha needs itNiklas Hallqvist
1996-09-05compile!Michael Shalayeff
1996-09-04Stylistic cleanup, like removing "static"s, and removing warningsNiklas Hallqvist
given by -Wall -Wstrict-prototypes -Wmissing-prototypes
1996-08-27New fast pipe(2) from freebsd without fancy vm stuff.shawn
The old pipes can be used with the "OLD_PIPE" config option.