diff options
| author | Carmelo Amoroso <carmelo.amoroso@st.com> | 2007-11-22 16:09:55 +0000 |
|---|---|---|
| committer | Carmelo Amoroso <carmelo.amoroso@st.com> | 2007-11-22 16:09:55 +0000 |
| commit | f90eda6523848d835adbe7bef598a86a72b1b22a (patch) | |
| tree | ed6b799ce413dbd67251144be47f7cfe8a5fb746 /libc/sysdeps/linux/common/fsync.c | |
| parent | 0957a1a07cba013759ac2067979e6792f804af90 (diff) | |
| download | uClibc-alpine-f90eda6523848d835adbe7bef598a86a72b1b22a.tar.bz2 uClibc-alpine-f90eda6523848d835adbe7bef598a86a72b1b22a.tar.xz | |
Push back changes to add cancellation handling.
It still needs to reach an agreement on the final
solution, anyway this code have been put int to be shared
for the mips-sh4 merge
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Diffstat (limited to 'libc/sysdeps/linux/common/fsync.c')
| -rw-r--r-- | libc/sysdeps/linux/common/fsync.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/libc/sysdeps/linux/common/fsync.c b/libc/sysdeps/linux/common/fsync.c index 7ca709887..ecc203c74 100644 --- a/libc/sysdeps/linux/common/fsync.c +++ b/libc/sysdeps/linux/common/fsync.c @@ -9,27 +9,29 @@ #include "syscalls.h" #include <unistd.h> -#ifdef __UCLIBC__HAS_THREADS__ -# include <sysdep-cancel.h> + +#ifdef __UCLIBC_HAS_THREADS_NATIVE__ +#include "sysdep-cancel.h" +#else +#define SINGLE_THREAD_P 1 #endif +#define __NR___syscall_fsync __NR_fsync +static inline _syscall1(int, __syscall_fsync, int, fd); + extern __typeof(fsync) __libc_fsync; -#ifdef __UCLIBC__HAS_THREADS__ -int __libc_fsync (int fd) + +int __libc_fsync(int fd) { if (SINGLE_THREAD_P) - return INLINE_SYSCALL (fsync, 1, fd); + return __syscall_fsync(fd); +#ifdef __UCLIBC_HAS_THREADS_NATIVE__ int oldtype = LIBC_CANCEL_ASYNC (); - - int result = INLINE_SYSCALL (fsync, 1, fd); - + int result = __syscall_fsync(fd); LIBC_CANCEL_RESET (oldtype); - return result; -} -#else -# define __NR___libc_fsync __NR_fsync -_syscall1(int, __libc_fsync, int, fd); #endif +} + weak_alias(__libc_fsync, fsync) |
