summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)AuthorLines
2011-03-19syscall overhaul part two - unify public and internal syscall interfaceRich Felker-1/+17
with this patch, the syscallN() functions are no longer needed; a variadic syscall() macro allows syscalls with anywhere from 0 to 6 arguments to be made with a single macro name. also, manually casting each non-integer argument with (long) is no longer necessary; the casts are hidden in the macros. some source files which depended on being able to define the old macro SYSCALL_RETURNS_ERRNO have been modified to directly use __syscall() instead of syscall(). references to SYSCALL_SIGSET_SIZE and SYSCALL_LL have also been changed. x86_64 has not been tested, and may need a follow-up commit to fix any minor bugs/oversights.
2011-03-19add some ioctl stuff to sys/mount.hRich Felker-0/+18
2011-03-19overhaul syscall interfaceRich Felker-0/+16
this commit shuffles around the location of syscall definitions so that we can make a syscall() library function with both SYS_* and __NR_* style syscall names available to user applications, provides the syscall() library function, and optimizes the code that performs the actual inline syscalls in the library itself. previously on i386 when built as PIC (shared library), syscalls were incurring bus lock (lock prefix) overhead at entry and exit, due to the way the ebx register was being loaded (xchg instruction with a memory operand). now the xchg takes place between two registers. further cleanup to arch/$(ARCH)/syscall.h is planned.
2011-03-18some linux headers useful from user apps.Rich Felker-0/+550
i'm still not sure whether it's a good idea to include or use any of these, but i'll add them for now. it may make more sense to just add official kernel headers to the include path for compiling programs that need them.
2011-03-18various legacy and linux-specific stuffRich Felker-1/+115
this commit is part of an effort to make more of busybox work out-of-the-box.
2011-03-18implement [v]swprintfRich Felker-2/+2
2011-03-17implement robust mutexesRich Felker-0/+1
some of this code should be cleaned up, e.g. using macros for some of the bit flags, masks, etc. nonetheless, the code is believed to be working and correct at this point.
2011-03-14remove some old cruft from sys/types.hRich Felker-1/+0
2011-03-12pthread.h needs clockid_tRich Felker-0/+1
actually it gets this from time.h if _POSIX_C_SOURCE or any other feature test macros are defined, but it breaks if they're not.
2011-03-11missing const in some pthread_attr_* prototypesRich Felker-8/+8
2011-03-10fix sem_open and sem_close to obey posix semanticsRich Felker-0/+1
multiple opens of the same named semaphore must return the same pointer, and only the last close can unmap it. thus the ugly global state keeping track of mappings. the maximum number of distinct named semaphores that can be opened is limited sufficiently small that the linear searches take trivial time, especially compared to the syscall overhead of these functions.
2011-03-08fix typos in dirent.hRich Felker-2/+2
2011-03-08fcntl.h should make availabel the mode constants from sys/stat.hRich Felker-8/+20
also remove some legacy nonsense that crept in.
2011-03-07add macros for use with d_type extension field in direntRich Felker-0/+14
2011-03-07add prototypes for pthread_condattr_* and pthread_rwlockattr_*Rich Felker-0/+12
2011-03-03preliminaries to adding POSIX semaphoresRich Felker-1/+8
2011-03-03namespace cleanup in sys/mman.hRich Felker-1/+3
2011-02-27implement futimens and utimensatRich Felker-0/+3
2011-02-27cleanup namespace in sys/time.hRich Felker-4/+5
2011-02-27implement fexecveRich Felker-0/+1
2011-02-26fix missing prototype for strsignalRich Felker-0/+1
2011-02-24apply feature test protection to memccpyRich Felker-1/+4
2011-02-20prototypes for GNU asprintf/vasprintfRich Felker-0/+2
2011-02-20include sys/sysmacros.h from sys/types.h when _GNU_SOURCE is definedRich Felker-0/+1
2011-02-20fix typo in inotify structureRich Felker-1/+1
2011-02-20make real symbols for the legacy (nonstandardized) utmp functionsRich Felker-6/+15
this is needed in the long term for ABI compatibility anyway, and in the immediate, it helps with building broken programs like GNU screen that try to prototype the functions themselves rather than using the header.
2011-02-20resolve some header namespace non-issuesRich Felker-2/+0
after re-reading 2.2.2 of POSIX 2008, all of these are in the correct reserved namespaces and do not need protection.
2011-02-20move the GNU siginfo renaming so it doesn't lead to mismatching namesRich Felker-1/+4
2011-02-20make sys/param.h not depend on PATH_MAX and NAME_MAXRich Felker-2/+2
this is a nonstandard header used only by backwards programs, but for some reason it's extremely popular. the recent namespace cleanup fixes broke it, because PATH_MAX and NAME_MAX will not be defined unless an approriate feature test macro has been defined. moreover, it's too late to just #define _GNU_SOURCE in param.h, since limits.h may have already been included. let's just hard-code standard values and be done with it.
2011-02-19fix typo in wordexp.h (note that the function is still unimplemented)Rich Felker-1/+1
2011-02-19add syscall wrappers for inotifyRich Felker-0/+55
2011-02-19prototype wait3 and wait4Rich Felker-3/+6
2011-02-19prototypes for brk and sbrkRich Felker-0/+2
2011-02-18support the ugly and deprecated ucontext and sigcontext header stuff...Rich Felker-20/+3
only the structures, not the functions from ucontext.h, are supported at this point. the main goal of this commit is to make modern gcc with dwarf2 unwinding build without errors. honestly, it probably doesn't matter how we define these as long as they have members with the right names to prevent errors while compiling libgcc. the only time they will be used is for propagating exceptions across signal-handler boundaries, which invokes undefined behavior anyway. but as-is, they're probably correct and may be useful to various low-level applications dealing with virtualization, jit code generation, and so on...
2011-02-18add pthread_atfork interfaceRich Felker-0/+2
note that this presently does not handle consistency of the libc's own global state during forking. as per POSIX 2008, if the parent process was threaded, the child process may only call async-signal-safe functions until one of the exec-family functions is called, so the current behavior is believed to be conformant even if non-ideal. it may be improved at some later time.
2011-02-17add portable lchown (trivial to support and a few ancient things want it..)Rich Felker-0/+3
2011-02-17reorganize pthread data structures and move the definitions to alltypes.hRich Felker-45/+26
this allows sys/types.h to provide the pthread types, as required by POSIX. this design also facilitates forcing ABI-compatible sizes in the arch-specific alltypes.h, while eliminating the need for developers changing the internals of the pthread types to poke around with arch-specific headers they may not be able to test.
2011-02-16ucontext is no longer in the standard, so use gnu-friendly struct nameRich Felker-2/+2
note that this header is still bogus and needs a lot of work and factoring into arch-dependent parts...
2011-02-16some gnu software wrongly uses "struct siginfo" instead of siginfo_t...Rich Felker-0/+1
2011-02-16add to pthread.h: pthread_mutex_timedlock and sched.h, time.hRich Felker-1/+3
2011-02-15move stdio stuff that's not arch-specific out of bitsRich Felker-1/+9
2011-02-15fix the types of some integer constant limits in headersRich Felker-1/+1
2011-02-15fix missing EXIT_* in stdlib.h after header cleanupRich Felker-3/+3
2011-02-15feature test support in unistd.hRich Felker-23/+27
2011-02-15prototype for gnu strcasestr (currently a stub)Rich Felker-0/+1
2011-02-15fix another error from header cleanup, missing size_t in time.hRich Felker-1/+1
2011-02-15fix broken signal.h from header cleanupRich Felker-2/+2
2011-02-15fix some type leakage (timer_t) from x86_64 commitRich Felker-1/+0
2011-02-15Port musl to x86-64. One giant commit!Nicholas J. Kain-0/+1
2011-02-15split off arch-specific stdarg.h stuffRich Felker-15/+1