summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/not-cancel.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-09-04 14:08:24 +0000
committerUlrich Drepper <drepper@redhat.com>2003-09-04 14:08:24 +0000
commitce42435cab474eff0b7a8470d59bb484858a0863 (patch)
treee01965b8905deb70308aba0829853886ad43faa9 /sysdeps/unix/sysv/linux/not-cancel.h
parenta452e4e6294ffb6d7362215cb0b10896e8a7631f (diff)
Update.
* sysdeps/generic/utmp_file.c: Use not-cancelable syscalls all over the place. It would be allowed to have these fucntions as cancellation points but the cleanup would be ugly and a lot of work. * sysdeps/generic/not-cancel.h (fcntl_not_cancel): Define. * sysdeps/unix/sysv/linux/not-cancel.h (fcntl_not_cancel): Define. * include/fcntl.h (__fcntl_nocancel): Declare. * sysdeps/unix/sysv/linux/fcntl.c: New file. * sysdeps/unix/sysv/linux/i386/fcntl.c (__libc_fcntl): Only enable cancellation if absolutely needed. (__fcntl_nocancel): Define. * posix/unistd.h (gethostid): Remove __THROW. Clarify comment. * sysdeps/unix/sysv/linux/Makefile (CFLAGS-gethostid.c): Add -fexceptions. * sysdeps/unix/sysv/linux/gethostid.c (gethostid): Use extend_alloca. * resolv/res_init.c (__res_nclose): Use close_not_cancel_no_status instead of __close.
Diffstat (limited to 'sysdeps/unix/sysv/linux/not-cancel.h')
-rw-r--r--sysdeps/unix/sysv/linux/not-cancel.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/not-cancel.h b/sysdeps/unix/sysv/linux/not-cancel.h
index c71641906d..9418417b45 100644
--- a/sysdeps/unix/sysv/linux/not-cancel.h
+++ b/sysdeps/unix/sysv/linux/not-cancel.h
@@ -46,6 +46,10 @@
(void) ({ INTERNAL_SYSCALL_DECL (err); \
INTERNAL_SYSCALL (writev, err, 3, (fd), (iov), (n)); })
+/* Uncancelable fcntl. */
+#define fcntl_not_cancel(fd, cmd, val) \
+ __fcntl_nocancel (fd, cmd, val)
+
/* Uncancelable waitpid. */
#ifdef __NR_waitpid
# define waitpid_not_cancel(pid, stat_loc, options) \