about summary refs log tree commit diff
path: root/src/fcntl
Commit message (Collapse)AuthorAgeFilesLines
* proper error handling for fcntl F_GETOWN on modern kernelsRich Felker2012-06-201-1/+9
| | | | | | on old kernels, there's no way to detect errors; we must assume negative syscall return values are pgrp ids. but if the F_GETOWN_EX fcntl works, we can get a reliable answer.
* enable LARGEFILE64 aliasesRich Felker2012-05-311-2/+0
| | | | | | | | these will NOT be used when compiling with -D_LARGEFILE64_SOURCE on musl; instead, they exist in the hopes of eventually being able to run some glibc-linked apps with musl sitting in place of glibc. also remove the (apparently incorrect) fcntl alias.
* fix F_GETOWN return value handlingRich Felker2011-10-091-0/+1
| | | | | | | | the fcntl syscall can return a negative value when the command is F_GETOWN, and this is not an error code but an actual value. thus we must special-case it and avoid calling __syscall_ret to set errno. this fix is better than the glibc fix (using F_GETOWN_EX) which only works on newer kernels and is more complex.
* update syscalls with off_t arguments to handle argument alignment, if neededRich Felker2011-09-212-4/+4
| | | | | | the arm syscall abi requires 64-bit arguments to be aligned on an even register boundary. these new macros facilitate meeting the abi requirement without imposing significant ugliness on the code.
* add syscall wrappers for posix_fadvise, posix_fallocateRich Felker2011-04-202-0/+16
|
* overhaul pthread cancellationRich Felker2011-04-173-15/+4
| | | | | | | | | | | | | | | | | | | | | | this patch improves the correctness, simplicity, and size of cancellation-related code. modulo any small errors, it should now be completely conformant, safe, and resource-leak free. the notion of entering and exiting cancellation-point context has been completely eliminated and replaced with alternative syscall assembly code for cancellable syscalls. the assembly is responsible for setting up execution context information (stack pointer and address of the syscall instruction) which the cancellation signal handler can use to determine whether the interrupted code was in a cancellable state. these changes eliminate race conditions in the previous generation of cancellation handling code (whereby a cancellation request received just prior to the syscall would not be processed, leaving the syscall to block, potentially indefinitely), and remedy an issue where non-cancellable syscalls made from signal handlers became cancellable if the signal handler interrupted a cancellation point. x86_64 asm is untested and may need a second try to get it right.
* global cleanup to use the new syscall interfaceRich Felker2011-03-203-3/+3
|
* initial check-in, version 0.5.0 v0.5.0Rich Felker2011-02-124-0/+73