diff options
Diffstat (limited to 'sysdeps/generic/not-cancel.h')
-rw-r--r-- | sysdeps/generic/not-cancel.h | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/sysdeps/generic/not-cancel.h b/sysdeps/generic/not-cancel.h index cc1d606289..062fe17a0a 100644 --- a/sysdeps/generic/not-cancel.h +++ b/sysdeps/generic/not-cancel.h @@ -18,10 +18,22 @@ <http://www.gnu.org/licenses/>. */ /* By default we have none. Map the name to the normal functions. */ -#define open_not_cancel(name, flags, mode) \ + +/* Uncancelable open. */ +#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt +# define open_not_cancel(name, flags, mode) \ __libc_open (name, flags, mode) -#define open_not_cancel_2(name, flags) \ +# define open_not_cancel_2(name, flags) \ __libc_open (name, flags) +#else +/* In this case, we can't use the libc_* internal functions. */ +# define open_not_cancel(name, flags, mode) \ + __open (name, flags, mode) +# define open_not_cancel_2(name, flags) \ + __open (name, flags) +#endif + +/* Uncancelable openat. */ #define openat_not_cancel(fd, name, flags, mode) \ __openat (fd, name, flags, mode) #define openat_not_cancel_3(fd, name, flags) \ @@ -30,18 +42,30 @@ __openat64 (fd, name, flags, mode) #define openat64_not_cancel_3(fd, name, flags) \ __openat64 (fd, name, flags, 0) + +/* Uncancelable close. */ #define close_not_cancel(fd) \ __close (fd) #define close_not_cancel_no_status(fd) \ (void) __close (fd) + +/* Uncancelable read. */ #define read_not_cancel(fd, buf, n) \ __read (fd, buf, n) + +/* Uncancelable write. */ #define write_not_cancel(fd, buf, n) \ __write (fd, buf, n) + +/* Uncancelable writev. */ #define writev_not_cancel_no_status(fd, iov, n) \ (void) __writev (fd, iov, n) + +/* Uncancelable fcntl. */ #define fcntl_not_cancel(fd, cmd, val) \ __fcntl (fd, cmd, val) + +/* Uncancelable waitpid. */ # define waitpid_not_cancel(pid, stat_loc, options) \ __waitpid (pid, stat_loc, options) #define pause_not_cancel() \ |