summaryrefslogtreecommitdiff
path: root/src/fcntl
AgeCommit message (Collapse)AuthorFilesLines
2012-06-20proper error handling for fcntl F_GETOWN on modern kernelsRich Felker1-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.
2012-05-31enable LARGEFILE64 aliasesRich Felker1-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.
2011-10-09fix F_GETOWN return value handlingRich Felker1-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.
2011-09-21update syscalls with off_t arguments to handle argument alignment, if neededRich Felker2-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.
2011-04-20add syscall wrappers for posix_fadvise, posix_fallocateRich Felker2-0/+16
2011-04-17overhaul pthread cancellationRich Felker3-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.
2011-03-20global cleanup to use the new syscall interfaceRich Felker3-3/+3
2011-02-12initial check-in, version 0.5.0v0.5.0Rich Felker4-0/+73