diff options
author | Ulrich Drepper <drepper@redhat.com> | 2006-01-21 08:21:04 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2006-01-21 08:21:04 +0000 |
commit | 5c983cdd089ef485b6f903efcf9e597eb1cb37ab (patch) | |
tree | 9006a5251d9cbab218850bd9939b0c6e417444da /sysdeps/unix/sysv/linux/pselect.c | |
parent | e6c8af451f8ccdbd28ea6e8419eedb5551ba4c48 (diff) | |
download | glibc-5c983cdd089ef485b6f903efcf9e597eb1cb37ab.tar.gz glibc-5c983cdd089ef485b6f903efcf9e597eb1cb37ab.tar.xz glibc-5c983cdd089ef485b6f903efcf9e597eb1cb37ab.zip |
* sysdeps/unix/sysv/linux/pselect.c (__pselect): Allow actual
system call code to be redefined in macro CALL_PSELECT6. * sysdeps/unix/sysv/linux/i386/Makefile [subdir=misc] (sysdep_routines): Add call_pselect6. * sysdeps/unix/sysv/linux/i386/call_pselect6.c: New file. * sysdeps/unix/sysv/linux/i386/pselect.c: New file. * misc/Makefile (tests): Add tst-pselect. * misc/tst-pselect.c: New file. * sysdeps/unix/sysv/linux/pselect.c: Fix typo in declaration. * sysdeps/unix/sysv/linux/xmknodat.c (__xmknodat): Cast k_dev value to unsigned int to match kernel.
Diffstat (limited to 'sysdeps/unix/sysv/linux/pselect.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/pselect.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/sysdeps/unix/sysv/linux/pselect.c b/sysdeps/unix/sysv/linux/pselect.c index 6fd4d3e071..0dd744f527 100644 --- a/sysdeps/unix/sysv/linux/pselect.c +++ b/sysdeps/unix/sysv/linux/pselect.c @@ -29,7 +29,7 @@ static int __generic_pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timespec *timeout, - const sigset_t *sigmask) + const sigset_t *sigmask); int @@ -51,7 +51,7 @@ __pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, be created. */ struct { - sigset_t *ss; + const sigset_t *ss; size_t ss_len; } data; @@ -60,15 +60,21 @@ __pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, int result; +#ifndef CALL_PSELECT6 +# define CALL_PSELECT6(nfds, readfds, writefds, exceptfds, timeout, data) \ + INLINE_SYSCALL (pselect6, 6, nfds, readfds, writefds, exceptfds, \ + timeout, data) +#endif + if (SINGLE_THREAD_P) - result = INLINE_SYSCALL (pselect6, 6, nfds, readfds, writefds, exceptfds, - timeout, &data); + result = CALL_PSELECT6 (nfds, readfds, writefds, exceptfds, timeout, + &data); else { int oldtype = LIBC_CANCEL_ASYNC (); - result = INLINE_SYSCALL (pselect6, 6, nfds, readfds, writefds, exceptfds, - timeout, &data); + result = CALL_PSELECT6 (nfds, readfds, writefds, exceptfds, timeout, + &data); LIBC_CANCEL_RESET (oldtype); } @@ -81,6 +87,8 @@ __pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, return result; } +weak_alias (__pselect, pselect) +strong_alias (__pselect, __libc_pselect) # ifndef __ASSUME_PSELECT # define __pselect static __generic_pselect |