diff options
author | Markos Chandras <markos.chandras@imgtec.com> | 2012-10-12 11:42:22 +0100 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2013-02-20 13:45:13 +0100 |
commit | faa3bc7b7c661857925250d795c35d5c75dd4ca5 (patch) | |
tree | c5d13f8f063ca2c0a124bcfae01b7857cffd78ca /libpthread/linuxthreads/sysdeps | |
parent | 585ee9c4e7025363c048c8487ea60b99fb28977f (diff) |
not-cancel.h: Use openat if arch does not have the open syscall
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Diffstat (limited to 'libpthread/linuxthreads/sysdeps')
-rw-r--r-- | libpthread/linuxthreads/sysdeps/pthread/not-cancel.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libpthread/linuxthreads/sysdeps/pthread/not-cancel.h b/libpthread/linuxthreads/sysdeps/pthread/not-cancel.h index 01c69164d..b46d2ab49 100644 --- a/libpthread/linuxthreads/sysdeps/pthread/not-cancel.h +++ b/libpthread/linuxthreads/sysdeps/pthread/not-cancel.h @@ -21,10 +21,19 @@ #include <sysdep.h> /* Uncancelable open. */ +#if defined __NR_openat && !defined __NR_open +#define open_not_cancel(name, flags, mode) \ + INLINE_SYSCALL (openat, 4, (int) (AT_FDCWD), (const char *) (name), \ + (flags), (mode)) +#define open_not_cancel_2(name, flags) \ + INLINE_SYSCALL (openat, 3, (int) (AT_FDCWD), (const char *) (name), \ + (flags)) +#else #define open_not_cancel(name, flags, mode) \ INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode)) #define open_not_cancel_2(name, flags) \ INLINE_SYSCALL (open, 2, (const char *) (name), (flags)) +#endif /* Uncancelable openat. */ #if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt |