OSDN Git Service

not-cancel.h: Use openat if arch does not have the open syscall
authorMarkos Chandras <markos.chandras@imgtec.com>
Fri, 12 Oct 2012 10:42:22 +0000 (11:42 +0100)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Wed, 20 Feb 2013 12:45:13 +0000 (13:45 +0100)
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
libc/sysdeps/linux/common/not-cancel.h
libpthread/linuxthreads.old/sysdeps/pthread/not-cancel.h
libpthread/linuxthreads/sysdeps/pthread/not-cancel.h
libpthread/nptl/sysdeps/unix/sysv/linux/not-cancel.h

index 555ca4f..08dab8c 100644 (file)
 #ifdef NOT_IN_libc
 
 /* Uncancelable open.  */
+#if defined __NR_openat && !defined __NR_open
+#define open_not_cancel(name, flags, mode) \
+   INLINE_SYSCALL (openat, 4, AT_FDCWD, (const char *) (name), (flags), (mode))
+#define open_not_cancel_2(name, flags) \
+   INLINE_SYSCALL (openat, 3, 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
 
 #if 0
 /* Uncancelable openat.  */
index 01c6916..bbdb073 100644 (file)
 #include <sysdep.h>
 
 /* Uncancelable open.  */
+#if defined __NR_openat && !defined __NR_open
+#define open_not_cancel(name, flags, mode) \
+       INLINE_SYSCALL (openat, 4, AT_FDCWD, (const char *) (name), \
+               (flags), (mode))
+#define open_not_cancel_2(name, flags) \
+       INLINE_SYSCALL (openat, 3, 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
index 01c6916..b46d2ab 100644 (file)
 #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
index 01c6916..bbdb073 100644 (file)
 #include <sysdep.h>
 
 /* Uncancelable open.  */
+#if defined __NR_openat && !defined __NR_open
+#define open_not_cancel(name, flags, mode) \
+       INLINE_SYSCALL (openat, 4, AT_FDCWD, (const char *) (name), \
+               (flags), (mode))
+#define open_not_cancel_2(name, flags) \
+       INLINE_SYSCALL (openat, 3, 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