freebsd-dev/include
John Baldwin c4f16b69e1 Add a new 'void closefrom(int lowfd)' system call. When called, it closes
any open file descriptors >= 'lowfd'.  It is largely identical to the same
function on other operating systems such as Solaris, DFly, NetBSD, and
OpenBSD.  One difference from other *BSD is that this closefrom() does not
fail with any errors.  In practice, while the manpages for NetBSD and
OpenBSD claim that they return EINTR, they ignore internal errors from
close() and never return EINTR.  DFly does return EINTR, but for the common
use case (closing fd's prior to execve()), the caller really wants all
fd's closed and returning EINTR just forces callers to call closefrom() in
a loop until it stops failing.

Note that this implementation of closefrom(2) does not make any effort to
resolve userland races with open(2) in other threads.  As such, it is not
multithread safe.

Submitted by:	rwatson (initial version)
Reviewed by:	rwatson
MFC after:	2 weeks
2009-06-15 20:38:55 +00:00
..
arpa Namespace: inet_ntoa_r() is a BSD extension. 2009-03-14 19:00:16 +00:00
gssapi Add an implementation of the RPCSEC_GSS authentication protocol for RPC. This 2008-08-06 14:02:05 +00:00
protocols Expand dump to allow MAX_INT dump levels. 2008-05-24 05:20:46 +00:00
rpc Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
rpcsvc Fix ypwhich -m. This should be MFC'ed back at least as far as RELENG_5. 2005-12-06 02:01:06 +00:00
_ctype.h Back out not human readable optimization in prev. commit which shown 2007-11-01 03:18:02 +00:00
a.out.h Adjust the system endian and a.out headers to be more MI and cross-building 2004-06-22 17:05:39 +00:00
ar.h Attempt to improve application portability by marking `struct ar_hdr' 2006-11-13 04:28:29 +00:00
assert.h Only protect the prototypes with #ifndef _ASSERT_H_, the standards 2007-12-01 19:28:13 +00:00
bitstring.h
complex.h Implement cproj{,f,l}(). 2008-08-07 15:07:48 +00:00
cpio.h
ctype.h Don't prototype _tolower() and _toupper(). They're not supposed to be 2009-03-14 19:04:24 +00:00
db.h Hide dbopen() in the POSIX namespace, and use standard type names 2009-03-14 20:05:27 +00:00
dirent.h Implement fdopendir(3) by splitting __opendir2() into two parts, the upper part 2008-04-16 18:59:36 +00:00
dlfcn.h Implement support for RTLD_NODELETE flag for dlopen() and -z nodelete 2009-03-30 08:47:28 +00:00
elf-hints.h
elf.h Remove some OpenSolaris compatibility stuff now that we're doing it a 2007-11-28 22:09:12 +00:00
err.h
fmtmsg.h
fnmatch.h Now I understand what Bruce was getting at - -1 can be parsed as two 2003-12-18 10:41:39 +00:00
fstab.h
fts.h Our fts(3) API, as inherited from 4.4BSD, suffers from integer 2008-01-26 17:09:40 +00:00
ftw.h Replace the current implementations of ftw() and nftw() with the OpenBSD 2004-08-24 13:00:55 +00:00
getopt.h Add getopt_long_only() 2004-02-24 08:09:20 +00:00
glob.h Add size_t declaration 2006-05-22 05:57:39 +00:00
grp.h Namespace: setgrent() is an XSI extension. 2009-03-14 19:05:18 +00:00
gssapi.h Add a new extensible GSS-API layer which can support GSS-API plugins, 2005-12-29 14:40:22 +00:00
hesiod.h
histedit.h Use tabs after #define. 2007-06-11 06:25:19 +00:00
ieeefp.h
ifaddrs.h Add the userland part of the NET_RT_IFMALIST sysctl MIB. A new function, 2003-11-14 18:53:22 +00:00
inttypes.h
iso646.h
kenv.h Fix prototype to match the code and documentation. 2005-11-24 07:20:26 +00:00
langinfo.h
libgen.h
limits.h
link.h
locale.h Change the definition of NULL on ia64 (for LP64 compilations) from 2003-12-07 21:10:06 +00:00
Makefile Delete the old USB stack. The new stack has settled in and has all the 2009-05-27 16:16:56 +00:00
malloc_np.h Add __{BEGIN,END}_DECLS macros, so that function prototypes remain 2006-06-30 20:57:41 +00:00
malloc.h
memory.h
monetary.h
mpool.h Minor changes from Berkeley DB 1.86 and further improvements from OpenBSD. 2009-03-28 07:31:02 +00:00
mqueue.h Add function __mq_oshandle() to get file handle of a mqueue. 2007-01-06 11:30:04 +00:00
ndbm.h Namespace: dbm_forder() and dbm_dirfno() are BSD extensions. 2009-03-14 19:02:28 +00:00
netconfig.h
netdb.h Hide numerous BSD extensions in the POSIX namespace. 2009-03-14 20:04:28 +00:00
nl_types.h Analogous to __printflike and __scanflike, add the macro __format_arg which 2006-01-26 20:53:40 +00:00
nlist.h
nss.h It was reported that when using nss_ldap, getgrent(3) would behave 2004-01-09 13:43:49 +00:00
nsswitch.h Implementing 'fallback' nsswitch source. 'fallback' source is used 2007-12-12 10:08:03 +00:00
paths.h Also un-split _PATH_STDPATH for grepability. 2009-02-01 00:50:46 +00:00
printf.h Add nested include of <wchar.h> 2006-03-02 10:01:52 +00:00
proc_service.h Introduce a new proc service routine ps_linfo() to get LWP info. 2006-02-07 02:29:55 +00:00
pthread_np.h Add cpu affinity APIs to get and set thread's cpu affinity mask, the 2008-03-03 08:28:13 +00:00
pthread.h Fix the visibility of several prototypes. Also move pthread_kill() and 2009-03-14 20:10:14 +00:00
pwd.h Namespace: endpwent, getpwent, and setpwent are XSI extensions. 2009-03-14 19:13:01 +00:00
ranlib.h
readpassphrase.h Define the size_t type since readpassphrase(3) requires it in its 2008-05-08 23:57:29 +00:00
regex.h Add a new error code, REG_ILLSEQ, to indicate that a regular expression 2004-07-12 06:07:26 +00:00
regexp.h
res_update.h Merge BIND 9.4.1 into main chunk. 2007-06-03 17:20:27 +00:00
resolv.h Merge the resolver part of BIND 9.4.3 into HEAD. 2008-12-14 19:39:53 +00:00
runetype.h Prefix the names of members of _RuneLocale and its sub-structures 2004-06-23 07:01:44 +00:00
search.h
setjmp.h Namespace: _setjmp() and _longjmp() are XSI extensions. 2009-03-14 19:01:26 +00:00
signal.h Revert r190943, since the problem in ports seems to be fixed now. 2009-04-17 14:19:18 +00:00
spawn.h Remove __restrict keywords from array arguments to make GCC's -std=c99 work. 2008-06-19 07:30:32 +00:00
stab.h
stdbool.h The Intel C/C++ compiler doesn't require a typedef for _Bool when compiling 2005-02-19 13:47:33 +00:00
stddef.h Change the definition of NULL on ia64 (for LP64 compilations) from 2003-12-07 21:10:06 +00:00
stdio.h Make programs that define a macro called `dprintf' more likely to work. 2009-03-25 08:07:52 +00:00
stdlib.h Namespace: abort2() is a BSD extension. 2009-03-14 19:13:30 +00:00
string.h Namespace: memccpy() and memchr() are XSI, and memrchr() is a BSD extension. 2009-03-14 19:03:34 +00:00
stringlist.h
strings.h - Remove bcmp, bcopy, bzero, index, and rindex from the POSIX.1-2008 2009-03-04 03:31:51 +00:00
sysexits.h
tar.h
tgmath.h Properly parenthesize the __tg_is_complex() macro by moving a closing 2007-02-02 18:30:23 +00:00
time.h Add POSIX pthread API pthread_getcpuclockid() to get a thread's cpu 2008-03-22 09:59:20 +00:00
timeconv.h
timers.h
ttyent.h
ulimit.h
unistd.h Add a new 'void closefrom(int lowfd)' system call. When called, it closes 2009-06-15 20:38:55 +00:00
utime.h
utmp.h Add a comment to utmp.h about the sizes of UT_HOSTSIZE and UT_LINESIZE. 2008-11-16 14:43:33 +00:00
uuid.h Add missing prototypes for uuid_enc,dec_le,be() functions. 2008-09-15 23:47:19 +00:00
varargs.h Add a new machine independent varargs.h and use it as a central place 2003-09-01 03:28:25 +00:00
vis.h Add a new flag to vis(3): VIS_GLOB which encodes the glob(3) magic 2003-10-30 10:40:49 +00:00
wchar.h Put the restrict qualifiers in the right place in the wcp[n]cpy prototypes. 2009-03-04 15:45:34 +00:00
wctype.h Back out iswascii change from prev. commit, iswascii was right, 2007-10-14 10:23:54 +00:00
wordexp.h Fix typo: WRDE_DOOFS -> WRDE_DOOFFS. 2004-06-30 13:55:08 +00:00