[git commit future] not-cancel.h: update common version and make sure we use this one

Peter S. Mazinger ps.m at gmx.net
Fri Apr 22 23:21:30 UTC 2011


commit: http://git.uclibc.org/uClibc/commit/?id=affa14869750a1c5dd6791bde40c874b28af8a5b
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/future

Update file (same as in NPTL).
Disable unused parts, the remaining inlines will be fixed later.
Copy it to include to be sure that we use this one independently of
chosen threads.

Signed-off-by: Peter S. Mazinger <ps.m at gmx.net>
---
 Makefile.in                            |    6 ++-
 libc/sysdeps/linux/common/not-cancel.h |   57 ++++++++++++++++++++++++++++++-
 2 files changed, 59 insertions(+), 4 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index 5d9ff59..5ca5fe3 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -99,7 +99,8 @@ ALL_HEADERS_COMMON       := $(top_builddir)include/fpu_control.h \
 				$(top_builddir)include/jmpbuf-offsets.h \
 				$(top_builddir)include/jmpbuf-unwind.h \
 				$(top_builddir)include/dl-osinfo.h \
-				$(top_builddir)include/hp-timing.h
+				$(top_builddir)include/hp-timing.h \
+				$(top_builddir)include/not-cancel.h
 ALL_HEADERS_BITS_COMMON  := $(addprefix $(top_builddir)include/bits/,$(HEADERS_BITS_COMMON))
 ALL_HEADERS_BITS_ARCH    := $(addprefix $(top_builddir)include/bits/,$(HEADERS_BITS_ARCH))
 ifneq ($(TARGET_SUBARCH),)
@@ -125,7 +126,7 @@ $(top_builddir)include/fpu_control.h $(top_builddir)include/jmpbuf-offsets.h $(t
 		$(LN) -fs $(call rel_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/$(@F) $@ || \
 		$(LN) -fs $(call rel_srcdir)libc/sysdeps/linux/common/$(@F) $@
 
-$(top_builddir)include/dl-osinfo.h $(top_builddir)include/hp-timing.h:
+$(top_builddir)include/dl-osinfo.h $(top_builddir)include/hp-timing.h $(top_builddir)include/not-cancel.h:
 	$(do_ln) $(call rel_srcdir)libc/sysdeps/linux/common/$(@F) $@
 
 $(ALL_HEADERS_BITS_COMMON):
@@ -214,6 +215,7 @@ HEADERS_RM- := \
 	jmpbuf-offsets.h \
 	jmpbuf-unwind.h \
 	hp-timing.h \
+	not-cancel.h \
 	_lfs_64.h \
 	bits/uClibc_arch_features.h \
 	bits/kernel_sigaction.h \
diff --git a/libc/sysdeps/linux/common/not-cancel.h b/libc/sysdeps/linux/common/not-cancel.h
index b3484de..5b53eac 100644
--- a/libc/sysdeps/linux/common/not-cancel.h
+++ b/libc/sysdeps/linux/common/not-cancel.h
@@ -1,5 +1,5 @@
 /* Uncancelable versions of cancelable interfaces.  Linux version.
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper at redhat.com>, 2003.
 
@@ -18,19 +18,46 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <sys/types.h>
 #include <sysdep.h>
 
 #ifdef NOT_IN_libc
 
 /* Uncancelable open.  */
+#if 0
 #define open_not_cancel(name, flags, mode) \
    INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode))
+#endif
 #define open_not_cancel_2(name, flags) \
    INLINE_SYSCALL (open, 2, (const char *) (name), (flags))
 
+#if 0
+/* Uncancelable openat.  */
+#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
+extern int __openat_nocancel (int fd, const char *fname, int oflag,
+			      mode_t mode) attribute_hidden;
+extern int __openat64_nocancel (int fd, const char *fname, int oflag,
+				mode_t mode) attribute_hidden;
+#else
+# define __openat_nocancel(fd, fname, oflag, mode) \
+  openat (fd, fname, oflag, mode)
+# define __openat64_nocancel(fd, fname, oflag, mode) \
+  openat64 (fd, fname, oflag, mode)
+#endif
+
+#define openat_not_cancel(fd, fname, oflag, mode) \
+  __openat_nocancel (fd, fname, oflag, mode)
+#define openat_not_cancel_3(fd, fname, oflag) \
+  __openat_nocancel (fd, fname, oflag, 0)
+#define openat64_not_cancel(fd, fname, oflag, mode) \
+  __openat64_nocancel (fd, fname, oflag, mode)
+#define openat64_not_cancel_3(fd, fname, oflag) \
+  __openat64_nocancel (fd, fname, oflag, 0)
+
 /* Uncancelable close.  */
 #define close_not_cancel(fd) \
   INLINE_SYSCALL (close, 1, fd)
+#endif
 #define close_not_cancel_no_status(fd) \
   (void) ({ INTERNAL_SYSCALL_DECL (err);				      \
 	    INTERNAL_SYSCALL (close, err, 1, (fd)); })
@@ -39,6 +66,7 @@
 #define read_not_cancel(fd, buf, n) \
   INLINE_SYSCALL (read, 3, (fd), (buf), (n))
 
+#if 0
 /* Uncancelable write.  */
 #define write_not_cancel(fd, buf, n) \
   INLINE_SYSCALL (write, 3, (fd), (buf), (n))
@@ -60,8 +88,33 @@
 # define waitpid_not_cancel(pid, stat_loc, options) \
   INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL)
 #endif
+#endif
 
-#else
+/* Uncancelable pause.  */
+#ifdef __NR_pause
+# define pause_not_cancel() \
+  INLINE_SYSCALL (pause, 0)
+/*#else
+# define pause_not_cancel() \
+  __pause_nocancel ()*/
+#endif
+
+/* Uncancelable nanosleep.  */
+#ifdef __NR_nanosleep
+# define nanosleep_not_cancel(requested_time, remaining) \
+  INLINE_SYSCALL (nanosleep, 2, requested_time, remaining)
+/*#else
+# define nanosleep_not_cancel(requested_time, remaining) \
+  __nanosleep_nocancel (requested_time, remaining)*/
+#endif
+
+#if 0
+/* Uncancelable sigsuspend.  */
+#define sigsuspend_not_cancel(set) \
+  __sigsuspend_nocancel (set)
+#endif
+
+#elif !defined NOT_IN_libc
 
 #include <cancel.h>
 #include <fcntl.h>
-- 
1.7.3.4



More information about the uClibc-cvs mailing list