summaryrefslogtreecommitdiffstats
path: root/sys/kern/sys_generic.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* This moves access to wall and uptime variables in MI code,tholo2004-06-241-23/+30
| | | | | | | | | | | | | | encapsulating all such access into wall-defined functions that makes sure locking is done as needed. It also cleans up some uses of wall time vs. uptime some places, but there is sure to be more of these needed as well, particularily in MD code. Also, many current calls to microtime() should probably be changed to getmicrotime(), or to the {,get}microuptime() versions. ok art@ deraadt@ aaron@ matthieu@ beck@ sturm@ millert@ others "Oh, that is not your problem!" from miod@
* debranch SMP, have funniklas2004-06-131-3/+4
|
* Add an nfds_t type as per POSIX and also add pollfd_t like Solaris has.millert2003-12-101-11/+11
|
* Replace select backends with poll backends. selscan() and pollscan()millert2003-09-231-40/+31
| | | | | | | now call the poll backend. With this change we implement greater poll(2) functionality instead of emulating it via the select backend. Adapted from NetBSD and including some changes from FreeBSD. Tested by many, deraadt@ OK
* match syscallargs comments with realityhenning2003-09-011-2/+2
| | | | | from Patrick Latifi <patrick.l@hermes.usherb.ca> ok jason@ tedu@
* remove caddr_t casts. it's just silly to cast something when the functiontedu2003-07-211-15/+14
| | | | takes a void *. convert uiomove to take a void * as well. ok deraadt@
* fix nfds type; tedu marc okderaadt2003-06-231-2/+7
|
* Remove the advertising clause in the UCB license which Berkeleymillert2003-06-021-6/+2
| | | | rescinded 22 July 1999. Proofed by myself and Theo.
* Missing FRELE() call on writev(2) error condition; art@ ok.aaron2002-08-121-3/+5
|
* SCARG cleanup; okay millert@provos2002-08-111-21/+16
|
* First round of __P removal in sysmillert2002-03-141-4/+4
|
* On sparc, PAGE_SIZE and friends might not be a compile-time constant.miod2002-03-131-1/+3
| | | | | | | | | | Instead of using a homegrown set of variables in this case, rely on uvmexp fields once uvm has been initialized. This requires a few #include <uvm/uvm_extern.h> here and there in the kernel as well. Idea from art@, changes by me.
* More FREF/FRELE on relevant places. Now, only sys_mmap and a bunch of ioctl functions in sys/compat are left.art2002-02-131-10/+15
|
* Require a FREFd file in dofilewrite{,v}.art2002-02-081-3/+9
|
* 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