summaryrefslogtreecommitdiff
path: root/src/internal/syscall_ret.c
AgeCommit message (Collapse)AuthorLines
2014-04-16include header that declares __syscall_ret where it's definedRich Felker-0/+1
in general, we aim to always include the header that's declaring a function before defining it so that the compiler can check that prototypes match. additionally, the internal syscall.h declares __syscall_ret with a visibility attribute to improve code generation for shared libc (to prevent gratuitous GOT-register loads). this declaration should be visible at the point where __syscall_ret is defined, too, or the inconsistency could theoretically lead to problems at link-time. (cherry picked from commit 30c1205acd73c8481ca34f0a41de1d41884d07b5)
2013-12-12include cleanups: remove unused headers and add feature test macrosSzabolcs Nagy-1/+0
2011-09-26cleanup various minor issues reported by nszRich Felker-3/+3
the changes to syscall_ret are mostly no-ops in the generated code, just cleanup of type issues and removal of some implementation-defined behavior. the one exception is the change in the comparison value, which is fixed so that 0xf...f000 (which in principle could be a valid return value for mmap, although probably never in reality) is not treated as an error return.
2011-03-19overhaul syscall interfaceRich Felker-0/+11
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.