aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-12-10 04:05:39 +0000
committerUlrich Drepper <drepper@redhat.com>2002-12-10 04:05:39 +0000
commite5e45b53371ed058ed385b1940e8b36419740750 (patch)
tree38423c4a874ce6ee94738a77bc613f3ec03e61fa /linuxthreads
parent2231b60efc430694aba2d91352984ac51f15c406 (diff)
downloadglibc-e5e45b53371ed058ed385b1940e8b36419740750.zip
glibc-e5e45b53371ed058ed385b1940e8b36419740750.tar.gz
glibc-e5e45b53371ed058ed385b1940e8b36419740750.tar.bz2
Update.
2002-12-09 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/syscalls.list: Add __libc_creat and __libc_select aliases. * sysdeps/unix/sysv/linux/sigwaitinfo.c: Define __libc_sigwaitinfo alias. * sysdeps/unix/sysv/linux/sigwait.c: Define __libc_sigwait alias. * sysdeps/unix/sysv/linux/sigsuspend.c: Define __libc_sigsuspend alias. * sysdeps/unix/sysv/linux/poll.c: Define __libc_poll alias. * sysdeps/unix/syscalls.list: Define __libc_select alias. * sysdeps/posix/waitid.c: Define __libc_waitid alias. * sysdeps/posix/sigpause.c: Define __libc_sigpause and __libc___xpg_sigpause aliases. * sysdeps/generic/pselect.c: Define __libc_pselect alias. * misc/error.c: Remove use of USE_IN_LIBIO.
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog8
-rw-r--r--linuxthreads/Versions8
-rw-r--r--linuxthreads/wrapsyscall.c68
3 files changed, 83 insertions, 1 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 10e075a..989fbb6 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,11 @@
+2002-12-09 Ulrich Drepper <drepper@redhat.com>
+
+ * wrapsyscall.c: Add wrappers for creat, poll, pselect, readv, select,
+ sigpause, __xpg_sigpause, sigsuspend, sigwaitinfo, waitid, and writev.
+ * Versions: Export creat, poll, pselect, readv, select, sigpause,
+ __xpg_sigpause, sigsuspend, sigwaitinfo, waitid, and writev from
+ libpthread in version GLIBC_2.3.2.
+
2002-12-06 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
diff --git a/linuxthreads/Versions b/linuxthreads/Versions
index 79169c8..13d008c 100644
--- a/linuxthreads/Versions
+++ b/linuxthreads/Versions
@@ -21,6 +21,10 @@ libc {
__libc_internal_tsd_get; __libc_internal_tsd_set;
__libc_internal_tsd_address; __libc_alloca_cutoff;
__libc_dl_error_tsd;
+
+ __libc_creat; __libc_poll; __libc_pselect; __libc_select;
+ __libc_sigpause; __libc_sigsuspend; __libc_sigwait; __libc_sigwaitinfo;
+ __libc_waitid; __libc___xpg_sigpause;
}
}
@@ -151,6 +155,10 @@ libpthread {
# Cancellation wrapper
__nanosleep;
}
+ GLIBC_2.3.2 {
+ creat; poll; pselect; readv; select; sigpause; sigsuspend;
+ sigwaitinfo; __xpg_sigpause; waitid; writev;
+ }
GLIBC_PRIVATE {
# Internal libc interface to libpthread
__libc_internal_tsd_get; __libc_internal_tsd_set;
diff --git a/linuxthreads/wrapsyscall.c b/linuxthreads/wrapsyscall.c
index c518035..a475c43 100644
--- a/linuxthreads/wrapsyscall.c
+++ b/linuxthreads/wrapsyscall.c
@@ -26,7 +26,10 @@
#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. */