Add wrappers for creat, poll, pselect, readv, select, sigpause,
authordrepper <drepper>
Tue, 10 Dec 2002 03:38:06 +0000 (03:38 +0000)
committerdrepper <drepper>
Tue, 10 Dec 2002 03:38:06 +0000 (03:38 +0000)
__xpg_sigpause, sigsuspend, sigwaitinfo, waitid, and writev.

linuxthreads/wrapsyscall.c

index c518035..a475c43 100644 (file)
 #include <stddef.h>
 #include <stdlib.h>
 #include <termios.h>
+#include <sys/poll.h>
 #include <sys/resource.h>
+#include <sys/select.h>
+#include <sys/uio.h>
 #include <sys/wait.h>
 #include <sys/socket.h>
 
@@ -39,7 +42,7 @@ const int __pthread_provide_wrappers = 0;
 
 
 #define CANCELABLE_SYSCALL(res_type, name, param_list, params) \
-res_type __libc_##name param_list;                                           \
+extern res_type __libc_##name param_list;                                    \
 res_type                                                                     \
 __attribute__ ((weak))                                                       \
 name param_list                                                                      \
@@ -77,6 +80,11 @@ CANCELABLE_SYSCALL (int, close, (int fd), (fd))
 strong_alias (close, __close)
 
 
+/* creat(2).  */
+CANCELABLE_SYSCALL (int, creat, (const char *pathname, mode_t mode),
+                   (pathname, mode))
+
+
 /* fcntl(2).  */
 CANCELABLE_SYSCALL_VA (int, fcntl, (int fd, int cmd, ...),
                       (fd, cmd, va_arg (ap, long int)), cmd)
@@ -130,6 +138,12 @@ strong_alias (open64, __open64)
 CANCELABLE_SYSCALL (int, pause, (void), ())
 
 
+/* poll(2).  */
+CANCELABLE_SYSCALL (int, poll,
+                   (struct pollfd *ufds, nfds_t nfds, int timeout),
+                   (ufds, nfds, timeout))
+
+
 /* pread(3).  */
 CANCELABLE_SYSCALL (ssize_t, pread, (int fd, void *buf, size_t count,
                                     off_t offset),
@@ -143,6 +157,14 @@ CANCELABLE_SYSCALL (ssize_t, pread64, (int fd, void *buf, size_t count,
 strong_alias (pread64, __pread64)
 
 
+/* pselect(3).  */
+CANCELABLE_SYSCALL (int, pselect, (int n, fd_set *readfds, fd_set *writefds,
+                                  fd_set *exceptfds,
+                                  const struct timespec *timeout,
+                                  const sigset_t *sigmask),
+                   (n, readfds, writefds, exceptfds, timeout, sigmask))
+
+
 /* pwrite(3).  */
 CANCELABLE_SYSCALL (ssize_t, pwrite, (int fd, const void *buf, size_t n,
                                      off_t offset),
@@ -162,6 +184,38 @@ CANCELABLE_SYSCALL (ssize_t, read, (int fd, void *buf, size_t count),
 strong_alias (read, __read)
 
 
+/* readv(2).  */
+CANCELABLE_SYSCALL (ssize_t, readv,
+                   (int fd, const struct iovec *vector, int count),
+                   (fd, vector, count))
+
+
+/* select(2).  */
+CANCELABLE_SYSCALL (int, select, (int n, fd_set *readfds,
+                                 fd_set *writefds,
+                                 fd_set *exceptfds,
+                                 struct timeval *timeout),
+                   (n, readfds, writefds, exceptfds, timeout))
+
+
+/* sigpause(3).  */
+#undef sigpause
+CANCELABLE_SYSCALL (int, sigpause, (int sigmask), (sigmask))
+
+
+/* __xpg_sigpause(3).  */
+CANCELABLE_SYSCALL (int, __xpg_sigpause, (int sigmask), (sigmask))
+
+
+/* sigsuspend(2).  */
+CANCELABLE_SYSCALL (int, sigsuspend, (const sigset_t *mask), (mask))
+
+
+/* sigwaitinfo(3).  */
+CANCELABLE_SYSCALL (int, sigwaitinfo, (const sigset_t *set, siginfo_t *info),
+                   (set, info))
+
+
 /* system(3).  */
 CANCELABLE_SYSCALL (int, system, (const char *line), (line))
 
@@ -175,6 +229,12 @@ CANCELABLE_SYSCALL (__pid_t, wait, (__WAIT_STATUS_DEFN stat_loc), (stat_loc))
 strong_alias (wait, __wait)
 
 
+/* waitid(3).  */
+CANCELABLE_SYSCALL (int, waitid,
+                   (idtype_t idtype, id_t id, siginfo_t *info, int options),
+                   (idtype, id, info, options))
+
+
 /* waitpid(2).  */
 CANCELABLE_SYSCALL (__pid_t, waitpid, (__pid_t pid, int *stat_loc,
                                       int options),
@@ -187,6 +247,12 @@ CANCELABLE_SYSCALL (ssize_t, write, (int fd, const void *buf, size_t n),
 strong_alias (write, __write)
 
 
+/* writev(2).  */
+CANCELABLE_SYSCALL (ssize_t, writev,
+                   (int fd, const struct iovec *vector, int count),
+                   (fd, vector, count))
+
+
 /* The following system calls are thread cancellation points specified
    in XNS.  */