about summary refs log tree commit diff
path: root/include/unistd.h
Commit message (Collapse)AuthorAgeFilesLines
* add acct, accept4, setns, and dup3 syscalls (linux extensions)Rich Felker2012-09-081-0/+2
| | | | based on patch by Justin Cormack
* default features: make musl usable without feature test macrosRich Felker2012-09-071-12/+1
| | | | | | | | | | the old behavior of exposing nothing except plain ISO C can be obtained by defining __STRICT_ANSI__ or using a compiler option (such as -std=c99) that predefines it. the new default featureset is POSIX with XSI plus _BSD_SOURCE. any explicit feature test macros will inhibit the default. installation docs have also been updated to reflect this change.
* further use of _Noreturn, for non-plain-C functionsRich Felker2012-09-061-1/+8
| | | | | | | | | | | | | | | | | | | note that POSIX does not specify these functions as _Noreturn, because POSIX is aligned with C99, not the new C11 standard. when POSIX is eventually updated to C11, it will almost surely give these functions the _Noreturn attribute. for now, the actual _Noreturn keyword is not used anyway when compiling with a c99 compiler, which is what POSIX requires; the GCC __attribute__ is used instead if it's available, however. in a few places, I've added infinite for loops at the end of _Noreturn functions to silence compiler warnings. presumably __buildin_unreachable could achieve the same thing, but it would only work on newer GCCs and would not be portable. the loops should have near-zero code size cost anyway. like the previous _Noreturn commit, this one is based on patches contributed by philomath.
* use restrict everywhere it's required by c99 and/or posix 2008Rich Felker2012-09-061-3/+9
| | | | | | | | to deal with the fact that the public headers may be used with pre-c99 compilers, __restrict is used in place of restrict, and defined appropriately for any supported compiler. we also avoid the form [restrict] since older versions of gcc rejected it due to a bug in the original c99 standard, and instead use the form *restrict.
* improve headers to better deal with removed-in-posix-2008 featuresRich Felker2012-08-151-2/+6
| | | | | | | | | with this patch, setting _POSIX_SOURCE, or setting _POSIX_C_SOURCE or _XOPEN_SOURCE to an old version, will bring back the interfaces that were removed in POSIX 2008 - at least the ones i've covered so far, which are gethostby*, usleep, and ualarm. if there are other functions still in widespread use that were removed for which similar changes would be beneficial, they can be added just like this.
* add pipe2 syscallRich Felker2012-07-231-0/+1
| | | | based on patch by orc and Isaac Dunham, with some details fixed.
* _GNU_SOURCE is supposed to imply _LARGEFILE64_SOURCERich Felker2012-06-041-1/+1
| | | | | | | | | this is ugly and stupid, but now that the *64 symbol names exist, a lot of broken GNU software detects them in configure, then either breaks during build due to missing off64_t definition, or attempts to compile without function declarations/prototypes. "fixing" it here is easier than telling everyone to add yet another feature test macro to their builds.
* declare environ in unistd.h when _GNU_SOURCE feature test macro is usedRich Felker2012-06-021-0/+1
| | | | | lots of broken programs expect this, and it's gotten to the point of being a troubleshooting FAQ topic. best to just fix it.
* remove everything related to forkallRich Felker2012-05-221-1/+0
| | | | | | | | | | i made a best attempt, but the intended semantics of this function are fundamentally contradictory. there is no consistent way to handle ownership of locks when forking a multi-threaded process. the code could have worked by accident for programs that only used normal mutexes and nothing else (since they don't actually store or care about their owner), but that's about it. broken-by-design interfaces that aren't even in glibc (only solaris) don't belong in musl.
* some feature test fixes for unistd.hRich Felker2012-05-221-16/+16
|
* _GNU_SOURCE implies all BSD features except ones GNU rejectsRich Felker2012-05-221-1/+1
|
* various header cleanups, some related to _BSD_SOURCE additionRich Felker2012-05-221-11/+4
| | | | | | there is no reason to avoid multiple identical macro definitions; this is perfectly legal C, and even with the maximal warning options enabled, gcc does not issue any warning for it.
* support _BSD_SOURCE feature test macroRich Felker2012-05-221-3/+17
| | | | | patch by Isaac Dunham. matched closely (maybe not exact) to glibc's idea of what _BSD_SOURCE should make visible.
* move getpass decl to the right placeRich Felker2012-05-201-0/+1
|
* add support for ugly *64 functions with _LARGEFILE64_SOURCERich Felker2012-05-041-0/+10
| | | | | | | | | | | | | | | | musl does not support legacy 32-bit-off_t whatsoever. off_t is always 64 bit, and correct programs that use off_t and the standard functions will just work out of the box. (on glibc, they would require -D_FILE_OFFSET_BITS=64 to work.) however, some programs instead define _LARGEFILE64_SOURCE and use alternate versions of all the standard types and functions with "64" appended to their names. we do not want code to actually get linked against these functions (it's ugly and inconsistent), so macros are used instead of prototypes with weak aliases in the library itself. eventually the weak aliases may be added at the library level for the sake of using code that was originally built against glibc, but the macros will still be the desired solution in the headers.
* implement getusershell, etc. legacy functionsRich Felker2012-04-221-0/+3
| | | | | I actually wrote these a month ago but forgot to integrate them. ugly, probably-harmful-to-use functions, but some legacy apps want them...
* getdtablesize is not standard; move it to its correct spot in unistd.hRich Felker2012-04-221-1/+1
|
* add getresuid and getresgid syscall wrappersRich Felker2012-04-221-0/+2
|
* legacy junk compatibility grab-bagRich Felker2012-04-181-0/+2
| | | | | | - add the rest of the junk traditionally in sys/param.h - add prototypes for some nonstandard functions - add _GNU_SOURCE to their source files so the compiler can check proto
* add get_current_dir_name functionRich Felker2012-02-171-0/+1
|
* fix various errors in function signatures/prototypes found by nszRich Felker2011-09-131-3/+3
|
* implement forkallRich Felker2011-08-121-0/+1
| | | | | | | | | | | | this is a "nonstandard" function that was "rejected" by POSIX, but nonetheless had its behavior documented in the POSIX rationale for fork. it's present on solaris and possibly some other systems, and duplicates the whole calling process, not just a single thread. glibc does not have this function. it should not be used in programs intending to be portable, but may be useful for testing, checkpointing, etc. and it's an interesting (and quite small) example of the usefulness of the __synccall framework originally written to work around deficiencies in linux's setuid syscall.
* correct variadic prototypes for execl* familyRich Felker2011-04-271-3/+3
| | | | | the old versions worked, but conflicted with programs which declared their own prototypes and generated warnings with some versions of gcc.
* fix prototypes/signature for setgroups, etc.Rich Felker2011-04-131-1/+1
|
* prototype getdtablesize (nonstandard function)Rich Felker2011-04-031-0/+1
|
* add setresuid/setresgid functions (nonstandard)Rich Felker2011-04-031-0/+2
|
* remove obsolete and useless useconds_t typeRich Felker2011-04-011-3/+2
|
* implement fexecveRich Felker2011-02-271-0/+1
|
* prototypes for brk and sbrkRich Felker2011-02-191-0/+2
|
* feature test support in unistd.hRich Felker2011-02-151-23/+27
|
* initial check-in, version 0.5.0 v0.5.0Rich Felker2011-02-121-0/+464