summaryrefslogtreecommitdiffstats
path: root/sys/kern/sys_generic.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* require a FREFd fp in dofilereadv. Fix some comments.art2002-02-081-3/+6
|
* - Rename FILE_{,UN}USE to FREF and FRELE. USE is a bad verb and we don't haveart2002-02-081-12/+3
| | | | | | | | | | | | | | 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)).
* Add counting of temporary references to a struct file (as opposed to referencesart2002-02-051-4/+4
| | | | | | | | | | | | | | | from fd tables and other long-lived objects). This is to avoid races between using a file descriptor and having another process (with shared fd table) close it. We use a separate refence count so that error values from close(2) will be correctly returned to the caller of close(2). The macros for those reference counts are FILE_USE(fp) and FILE_UNUSE(fp). Make sure that the cases where closef can be called "incorrectly" (most notably dup2(2)) are handled. Right now only callers of closef (and {,p}read) use FILE_{,UN}USE correctly, more fixes incoming soon.
* Be more consistent about using fd_getfile where it matters.art2002-02-021-13/+4
|
* in poll, if fd is < 0, clear revents; bjy@mogua.orgderaadt2001-11-141-1/+4
|
* - every new fd created by falloc() is marked as larval and should not be usedart2001-10-261-39/+14
| | | | | | | 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.
* No need to check M_WAIT/M_WAITOK malloc return values. (art@ ok)ho2001-05-161-6/+2
|
* Change the ktrace interface functions from taking the trace vnode to taking theart2000-11-101-5/+5
| | | | traced proc. The vnode is in the proc and all functions need the proc.
* replace MALLOC/FREE w/ malloc/free for non-constant-sized memory allocations; art@ okmickey2000-09-271-11/+9
|
* Isn't code sharing great?art2000-07-071-11/+10
| | | | poll had the same timeout problem as select.
* When select is awakened by a select collission, we need to recalculateart2000-07-071-13/+9
| | | | the timeout.
* p{read,write}{,v} from csapuntz, partial NetBSD origin I thinkderaadt2000-04-201-89/+231
|
* Change struct file interface methods read and write to pass file offset incsapuntz2000-04-191-5/+5
| | | | | | | and out. Make pread/pwrite in netbsd & linux thread safe - which is the whole point anyway.
* revents already cleared; dderaadt1999-11-291-4/+2
|
* handle invalid file descriptors in poll more carefully; dderaadt1999-11-291-8/+20
|
* optimize poll() for small nfds, by avoiding mallocderaadt1999-08-041-4/+7
|
* correct return value of poll(); noted by d@deraadt1999-05-241-4/+6
|
* in poll(), constrain nfds better, to avoid kvm starvation; alexderaadt1999-03-221-2/+7
|
* Use IOV_MAX, not the deprecated UIO_MAXIOVmillert1999-02-141-3/+3
|
* readv/writev with iov_len == 0 is legal (was already ok in uipc_syscalls.c).millert1999-02-141-3/+5
| | | | | | | Make the check more readable by comparing against SSIZE_MAX instead of checking for wraparound. This is safe because SSIZE_MAX * 2 <= SIZE_T_MAX. Fixes recno problems in the db routines exposed by a perl test.
* writev takes an int as param #3; theomillert1998-07-281-2/+2
|
* For read, write, send, sendto, recv, recvfrom return EINVAL is size arg > SSIZE_MAX. For readv, writev, sendmsg, recvmsg return EINVAL if sum of the over iov_len values overflows an ssize_t. Based on what XPG 4.2 says (though XPG is not entirely consistent here). Basically since the return ↵millert1998-07-281-16/+18
| | | | value is ssize_t allowing size > SSIZE_MAX is bad since people who (incorrectly mind you) check the return value for < 0 instead of == -1 will have bad things happen to them.
* Return EINVAL when msg_iovlen or iovcnt <= 0; Make uio_resid unsigned (size_t) and don't return EINVAL if it is < 0 in sys_{read,write}. Remove check for uio_resid < 0 uiomove() now that uio_resid is unsigned and brack remaining panics with #ifdef DIAGNOSTIC. vn_rdwr() must now take a size_t * ↵millert1998-07-281-5/+5
| | | | as its 9th argument so change that and clean up uses of vn_rdwr(). Fixes 549 + more
* More missing type changes; pointed out by deraadt@OpenBSD.orgtholo1998-02-091-2/+2
|
* Updates for VFS Lite 2 + soft update.csapuntz1997-11-061-17/+5
|
* back out vfs lite2 till after 2.2deraadt1997-10-061-5/+17
|
* VFS Lite2 Changescsapuntz1997-10-061-17/+5
|
* for non-tty TIOCSPGRP/F_SETOWN/FIOSETOWN pgid setting calls, store uidderaadt1997-08-311-2/+6
| | | | | | | and euid as well, then deliver them using new csignal() interface which ensures that pgid setting process is permitted to signal the pgid process(es). Thanks to newsham@aloha.net for extensive help and discussion.
* select subsystem si_pid becomes si_selpid, to not conflict against user/kernel siginfo si_pid #definederaadt1997-01-271-7/+7
|
* i added a fair bit to thisderaadt1996-10-121-1/+2
|
* poll() as a system callderaadt1996-05-181-1/+123
|
* if nfds > FD_SETSIZE, allocate room for the bitmasks inside the kernel; alsoderaadt1996-05-071-12/+47
| | | | | selscan() now understands that it may possible be passed home-grown fd_set's larger than FD_SETSIZE.
* partial sync with netbsd 960418, more to comederaadt1996-04-211-3/+3
|
* From NetBSD: 960217 mergeniklas1996-03-031-10/+35
|
* initial import of NetBSD treederaadt1995-10-181-0/+699