about summary refs log tree commit diff
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
...
* sys/sem.h: cheat and make all longs use time_t insteadrofl0r2014-02-221-8/+8
| | | | | most of the members should be time_t anyway, and time_t has the correct semantics for "syscall_long", so it works on all archs, even x32.
* add flock64 alias for (struct) flock in fcntl.hRich Felker2014-02-181-0/+1
| | | | | this was a missing part of the LFS64 API; it's "needed" for use with fcntl and the corresponding lock commands.
* add parens when bit and arith ops are mixed in macros in public headersSzabolcs Nagy2014-02-112-2/+2
| | | | | another commit to silence gcc warnings (-Wparentheses) for standard headers. changed macros: LOG_UPTO, IN6_ARE_ADDR_EQUAL
* fix signed and unsigned comparision in macros in public headersSzabolcs Nagy2014-02-113-3/+3
| | | | | | gcc -Wsign-compare warns about expanded macros that were defined in standard headers (before gcc 4.8) which can make builds fail that use -Werror. changed macros: WIFSIGNALED, __CPU_op_S
* reduce namespace pollution in netinet/udp.hRich Felker2014-02-051-7/+10
| | | | | | | | | | | the affected part of the header is responsible for providing both GNU and BSD versions of the udphdr structure. previously, the namespace-polluting GNU names were always used for the actual struct members, and the BSD names, which are named in a manner resembling a sane namespace, were always macros defined to expand to the GNU names. now, unless _GNU_SOURCE is defined, the BSD names are used as the actual structure members, and the macros and GNU names only come into play when the application requests them.
* fix use of legacy u_intN_t types in netinet/tcp.hRich Felker2014-02-051-73/+74
| | | | | | policy is to avoid using these types except where they are needed for namespace conformance. C99-style stdint.h types should be used instead.
* add support for BSD struct tcphdr in netinet/tcp.hRich Felker2014-02-051-4/+41
| | | | | | | | | | | | | there are two versions of this structure: the BSD version and the GNU version. previously only the GNU version was supported. the only way to support both simultaneously is with an anonymous union, which was a nonstandard extension prior to C11, so some effort is made to avoid breakage with compilers which do not support anonymous unions. this commit is based on a patch by Timo Teräs, but with some changes. in particular, the GNU version of the structure is not exposed unless _GNU_SOURCE is defined; this both avoids namespace pollution and dependency on anonymous unions in the default feature profile.
* add nonstandard timespec/timeval conversion macros in sys/time.hRich Felker2014-02-051-0/+11
| | | | | | | | these are poorly designed (illogical argument order) and even poorly implemented (brace issues) on glibc, but unfortunately some software is using them. we could consider removing them again in the future at some point if they're documented as deprecated, but for now the simplest thing to do is just to provide them under _GNU_SOURCE.
* add NO_ADDRESS macro to netdb.h as an alias for NO_DATATimo Teräs2014-02-051-0/+1
| | | | | | | | some applications expect it to be defined, despite the standard making it impossible for it to ever be returned as a value distinct from NO_DATA. since these macros are outside the scope of the current standards, no special effort is made to hide NO_ADDRESS under conditions where the others are exposed.
* fix namespace violation in sys/shm.hRich Felker2014-01-081-6/+8
| | | | | | | | in fixing this, I've changed the logic from ugly #if/#else blocks inside the struct shm_info definition to a fixed struct definition and optional macros to rename the elements. this will be helpful if we need to move shm_info to a bits header in the future, as it will keep the feature test logic out of bits.
* fix namespace violations in utmpx.hRich Felker2014-01-082-5/+12
|
* fix remaining known namespace violations for netinet/in.hRich Felker2014-01-082-22/+18
| | | | | | | | | | | | | | | | | | | | the imr_, imsf_, ip6_, ip6m_, ipi_, ipi6_, SCM_, and SOL_ prefixes are not in the reserved namespace for this header. thus the constants and structures using them need to be protected under appropriate feature test macros. this also affects some headers which are permitted to include netinet/in.h, particularly netdb.h and arpa/inet.h. the SOL_ macros are moved to sys/socket.h where they are in the reserved namespace (SO*). they are still accessible via netinet/in.h since it includes sys/socket.h implicitly (which is permitted). the SCM_SRCRT macro is simply removed, since the definition used for it, IPV6_RXSRCRT is not defined anywhere. it could be re-added, this time in sys/socket.h, if the appropriate value can be determined; however, given that the erroneous definition was not caught, it is unlikely that any software actually attempts to use SCM_SRCRT.
* fix const-correctness of argument to stimeRich Felker2014-01-071-1/+1
| | | | | | | it's unclear what the historical signature for this function was, but semantically, the argument should be a pointer to const, and this is what glibc uses. correct programs should not be using this function anyway, so it's unlikely to matter.
* fix signedness of pgoff argument to remap_file_pagesRich Felker2014-01-071-1/+1
| | | | | both the kernel and glibc agree that this argument is unsigned; the incorrect type ssize_t came from erroneous man pages.
* fix const-correctness in sigandset/sigorset argumentsRich Felker2014-01-071-2/+2
| | | | | | this change is consistent with the corresponding glibc functions and is semantically const-correct. the incorrect argument types without const seem to have been taken from erroneous man pages.
* remove sys/sysctl.hRich Felker2014-01-071-17/+0
| | | | | | | this functionality has essentially always been deprecated in linux, and was never supported by musl. the presence of the header was reported to cause some software to attempt to use the nonexistant function, so removing the header is the cleanest solution.
* fix incorrect type for wd argument of inotify_rm_watchRich Felker2014-01-071-1/+1
| | | | | | this was wrong since the original commit adding inotify, and I don't see any explanation for it. not even the man pages have it wrong. it was most likely a copy-and-paste error.
* fix argument types for legacy function inet_makeaddrRich Felker2014-01-061-1/+1
| | | | | | the type int was taken from seemingly erroneous man pages. glibc uses in_addr_t (uint32_t), and semantically, the arguments should be unsigned.
* const-qualify the address argument to dladdrRich Felker2014-01-061-1/+1
| | | | | | | this agrees with implementation practice on glibc and BSD systems, and is the const-correct way to do things; it eliminates warnings from passing pointers to const. the prototype without const came from seemingly erroneous man pages.
* add some missing LFS64 aliases for fadvise/fallocate functionsRich Felker2014-01-061-0/+1
|
* add fanotify syscall wrapper and headerrofl0r2014-01-021-0/+73
|
* fix struct signalfd_siginfoTimo Teräs2013-12-291-2/+3
| | | | | | | ssi_ptr is really 64-bit in kernel, so fix that. assuming sizeof(void*) for it also caused incorrect padding for 32-bits, as the following 64-bits are aligned to 64-bits (and the padding was not taken into account), so fix the padding as well. add addr_lsb field while there.
* implement legacy function herrorRich Felker2013-12-201-0/+1
| | | | based on patch by Timo Teräs; greatly simplified to use fprintf.
* add sys/quota.h and quotactl syscall wrapperRich Felker2013-12-201-0/+104
| | | | based on patch by Timo Teräs.
* add netinet/igmp.h and multicast groups to netinet/in.hRich Felker2013-12-202-0/+50
| | | | based on patch by Timo Teräs.
* add TCP_INFO and TCP_MD5SIG socket option related structuresTimo Teräs2013-12-201-0/+58
|
* add posix_close, accepted for inclusion in the next issue of POSIXRich Felker2013-12-061-0/+3
| | | | | this is purely a wrapper for close since Linux does not support EINTR semantics for the close syscall.
* move struct ucred under _GNU_SOURCE in sys/socket.h for clean posix namespaceSzabolcs Nagy2013-12-041-0/+2
|
* fix SHUT_WR typo in sys/socket.h and duplicate definitions of SHUT_*Szabolcs Nagy2013-12-041-5/+1
|
* fix res_mkquery and res_send prototypes in resolv.hSzabolcs Nagy2013-12-041-4/+2
| | | | | | | | | historically these functions appeared in BSD 4.3 without prototypes, then in the bind project prototypes were added to resolv.h, but those were incompatible with the definitions of the implementation. the bind resolv.h became the defacto api most systems use now, but the old internal definitions found their way into the linux manuals and thus into musl.
* remove duplicate definition of _PATH_LASTLOG in paths.hRich Felker2013-12-031-1/+0
|
* remove now-unnecessary features.h inclusion from fnmatch.hRich Felker2013-12-021-2/+0
|
* expose FNM_* extensions in fnmatch.h without _GNU_SOURCERich Felker2013-12-021-3/+0
| | | | | at least a couple of these are used on BSD too, and the FNM_* namespace is reserved in fnmatch.h anyway.
* increase TTY_NAME_MAX limit to 32Rich Felker2013-11-291-1/+1
| | | | | | | | the old value of 20 was reported by Laurent Bercot as being insufficient for a reasonable real-world usage case. actual problem was the internal buffer used by ttyname(), but the implementation of ttyname uses TTY_NAME_MAX, and for consistency it's best to increase both. the new value is aligned with glibc.
* adjust fallback INFINITY definition for FLT_EVAL_METHOD==2 caseRich Felker2013-11-261-1/+1
| | | | | | | | | | on archs with excess precision, the floating point constant 1e40f may be evaluated such that it does not actually produce an infinity. 1e5000f is sufficiently large to produce an infinity for all supported floating point formats. note that this definition of INFINITY is only used for old or non-GNUC compilers anyway; despite being a portable, conforming definition, it leads to erroneous warnings on many compilers and thus using the builtin is preferred.
* restore type of NULL to void * except when used in C++ programsRich Felker2013-11-248-0/+33
| | | | | | | | | | | | | | unfortunately this eliminates the ability of the compiler to diagnose some dangerous/incorrect usage, but POSIX requires (as an extension to the C language, i.e. CX shaded) that NULL have type void *. plain C allows it to be defined as any null pointer constant. the definition 0L is preserved for C++ rather than reverting to plain 0 to avoid dangerous behavior in non-conforming programs which use NULL as a variadic sentinel. (it's impossible to use (void *)0 for C++ since C++ lacks the proper implicit pointer conversions, and other popular alternatives like the GCC __null extension seem non-conforming to the standard's requirements.)
* Fix dn_comp prototype and add stubMichael Forney2013-11-241-1/+1
| | | | This function is used by ping6 from iputils.
* use 0 instead of NULL in headers where NULL is not definedSzabolcs Nagy2013-11-242-3/+3
| | | | some macros in sys/mtio.h and syslog.h used NULL without defining it
* add TCP_NOTSENT_LOWAT tcp socket option, new in linux v3.12Szabolcs Nagy2013-11-231-0/+1
|
* add linux tcp state enumsTimo Teräs2013-11-231-0/+12
|
* add multicast structures from RFC 3678 to netinet/in.hTimo Teräs2013-11-231-1/+42
| | | | | and use _GNU_SOURCE || _BSD_SOURCE guards for all of the RFC 3678 namespace polluting things like glibc/uclibc does.
* timeradd/timersub: cast result to void to get rid of warningsrofl0r2013-11-231-2/+2
| | | | | | | previously: timersub(&now, t, &diff); warning: value computed is not used [-Wunused-value]
* add legacy getloadavg apiSzabolcs Nagy2013-11-211-0/+1
|
* math: add (obsolete) bsd drem and finite functionsSzabolcs Nagy2013-11-211-0/+6
|
* write floating point limit constants to 21 significant decimal placesRich Felker2013-11-202-10/+10
| | | | | | | | | | this is enough to produce the correct value even if the constant is interpreted as 80-bit extended precision, which matters on archs with excess precision (FLT_EVAL_METHOD==2) under at least some interpretations of the C standard. the shorter representations, while correct if converted to the nominal precision at translation time, could produce an incorrect value at extended precision, yielding results such as (double)DBL_MAX != DBL_MAX.
* adjust sys/wait.h not to produde errors in strict ISO C feature profileRich Felker2013-11-091-3/+7
| | | | | | | | | | | | siginfo_t is not available from signal.h when the strict ISO C feature profile (e.g. passing -std=c99 to gcc without defining any other feature test macros) is used, but the type is needed to declare waitid. using sys/wait.h (or any POSIX headers) in strict ISO C mode is an application bug, but in the interest of compatibility, it's best to avoid producing gratuitous errors. the simplest fix I could find is suppressing the declaration of waitid (and also signal.h inclusion, since it's not needed for anything else) in this case, while still exposing everything else in sys/wait.h
* fix inttypes.h PRI and SCN macros for [u]intptr_t typesRich Felker2013-10-301-11/+13
| | | | | | while using "l" unconditionally gave the right behavior due to matching sizes/representations, it was technically UB and produced compiler warnings with format string checking.
* POSIX conformance fix: define struct entry in search.hSzabolcs Nagy2013-10-291-1/+1
|
* add legacy ftime function and sys/timeb.hRich Felker2013-10-251-0/+22
| | | | | | despite being marked legacy, this was specified by SUSv3 as part of the XSI option; only the most recent version of the standard dropped it. reportedly there's actual code using it.
* fix multiple minor namespace issues in headersRich Felker2013-10-204-7/+15
| | | | | | | | | | | | | fcntl.h: AT_* is not a reserved namespace so extensions cannot be exposed by default. langinfo.h: YESSTR and NOSTR were removed from the standard. limits.h: NL_NMAX was removed from the standard. signal.h: the conditional for NSIG was wrongly checking _XOPEN_SOURCE rather than _BSD_SOURCE. this was purely a mistake; it doesn't even match the commit message from the commit that added it.