Page MenuHomeFreeBSD

D44389.id135812.diff
No OneTemporary

D44389.id135812.diff

diff --git a/lib/libc/gen/sleep.c b/lib/libc/gen/sleep.c
--- a/lib/libc/gen/sleep.c
+++ b/lib/libc/gen/sleep.c
@@ -55,9 +55,7 @@
time_to_sleep.tv_sec = seconds;
time_to_sleep.tv_nsec = 0;
- if (((int (*)(const struct timespec *, struct timespec *))
- (*__libc_interposing_slot(INTERPOS_nanosleep)))(
- &time_to_sleep, &time_remaining) != -1)
+ if (INTERPOS_SYS(nanosleep)(&time_to_sleep, &time_remaining) != -1)
return (0);
if (errno != EINTR)
return (seconds); /* best guess */
diff --git a/lib/libc/gen/usleep.c b/lib/libc/gen/usleep.c
--- a/lib/libc/gen/usleep.c
+++ b/lib/libc/gen/usleep.c
@@ -45,9 +45,7 @@
time_to_sleep.tv_nsec = (useconds % 1000000) * 1000;
time_to_sleep.tv_sec = useconds / 1000000;
- return (((int (*)(const struct timespec *, struct timespec *))
- (*__libc_interposing_slot(INTERPOS_nanosleep)))(&time_to_sleep,
- NULL));
+ return (INTERPOS_SYS(nanosleep)(&time_to_sleep, NULL));
}
__weak_reference(__usleep, usleep);
diff --git a/lib/libc/include/libc_private.h b/lib/libc/include/libc_private.h
--- a/lib/libc/include/libc_private.h
+++ b/lib/libc/include/libc_private.h
@@ -252,6 +252,11 @@
INTERPOS_MAX
};
+#define _INTERPOS_SYS(type, idx) \
+ ((type*)*(__libc_interposing_slot(idx)))
+#define INTERPOS_SYS(syscall) \
+ _INTERPOS_SYS(__sys_## syscall ##_t, INTERPOS_## syscall)
+
/*
* yplib internal interfaces
*/
diff --git a/lib/libc/sys/accept.c b/lib/libc/sys/accept.c
--- a/lib/libc/sys/accept.c
+++ b/lib/libc/sys/accept.c
@@ -40,6 +40,5 @@
int
accept(int s, struct sockaddr *addr, socklen_t *addrlen)
{
- return (((int (*)(int, struct sockaddr *, socklen_t *))
- *(__libc_interposing_slot(INTERPOS_accept)))(s, addr, addrlen));
+ return (INTERPOS_SYS(accept)(s, addr, addrlen));
}
diff --git a/lib/libc/sys/accept4.c b/lib/libc/sys/accept4.c
--- a/lib/libc/sys/accept4.c
+++ b/lib/libc/sys/accept4.c
@@ -40,7 +40,5 @@
int
accept4(int s, struct sockaddr *addr, socklen_t *addrlen, int flags)
{
- return (((int (*)(int, struct sockaddr *, socklen_t *, int))
- *(__libc_interposing_slot(INTERPOS_accept4)))
- (s, addr, addrlen, flags));
+ return (INTERPOS_SYS(accept4)(s, addr, addrlen, flags));
}
diff --git a/lib/libc/sys/aio_suspend.c b/lib/libc/sys/aio_suspend.c
--- a/lib/libc/sys/aio_suspend.c
+++ b/lib/libc/sys/aio_suspend.c
@@ -40,8 +40,5 @@
aio_suspend(const struct aiocb * const iocbs[], int niocb,
const struct timespec *timeout)
{
- return (((int (*)(const struct aiocb * const[], int,
- const struct timespec *))
- *(__libc_interposing_slot(INTERPOS_aio_suspend)))
- (iocbs, niocb, timeout));
+ return (INTERPOS_SYS(aio_suspend)(iocbs, niocb, timeout));
}
diff --git a/lib/libc/sys/clock_nanosleep.c b/lib/libc/sys/clock_nanosleep.c
--- a/lib/libc/sys/clock_nanosleep.c
+++ b/lib/libc/sys/clock_nanosleep.c
@@ -41,8 +41,5 @@
clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp,
struct timespec *rmtp)
{
- return (((int (*)(clockid_t, int, const struct timespec *,
- struct timespec *))
- *(__libc_interposing_slot(INTERPOS_clock_nanosleep)))
- (clock_id, flags, rqtp, rmtp));
+ return (INTERPOS_SYS(clock_nanosleep)(clock_id, flags, rqtp, rmtp));
}
diff --git a/lib/libc/sys/close.c b/lib/libc/sys/close.c
--- a/lib/libc/sys/close.c
+++ b/lib/libc/sys/close.c
@@ -40,5 +40,5 @@
int
close(int fd)
{
- return (((int (*)(int))*(__libc_interposing_slot(INTERPOS_close)))(fd));
+ return (INTERPOS_SYS(close)(fd));
}
diff --git a/lib/libc/sys/connect.c b/lib/libc/sys/connect.c
--- a/lib/libc/sys/connect.c
+++ b/lib/libc/sys/connect.c
@@ -40,6 +40,5 @@
int
connect(int s, const struct sockaddr *addr, socklen_t addrlen)
{
- return (((int (*)(int, const struct sockaddr *, socklen_t))
- *(__libc_interposing_slot(INTERPOS_connect)))(s, addr, addrlen));
+ return (INTERPOS_SYS(connect)(s, addr, addrlen));
}
diff --git a/lib/libc/sys/creat.c b/lib/libc/sys/creat.c
--- a/lib/libc/sys/creat.c
+++ b/lib/libc/sys/creat.c
@@ -43,8 +43,7 @@
int
__creat(const char *path, mode_t mode)
{
- return (((int (*)(int, const char *, int, ...))
- *(__libc_interposing_slot(INTERPOS_openat)))
- (AT_FDCWD, path, O_WRONLY | O_CREAT | O_TRUNC, mode));
+ return (INTERPOS_SYS(openat)(AT_FDCWD, path,
+ O_WRONLY | O_CREAT | O_TRUNC, mode));
}
diff --git a/lib/libc/sys/fcntl.c b/lib/libc/sys/fcntl.c
--- a/lib/libc/sys/fcntl.c
+++ b/lib/libc/sys/fcntl.c
@@ -49,6 +49,5 @@
arg = va_arg(args, long);
va_end(args);
- return (((int (*)(int, int, ...))
- *(__libc_interposing_slot(INTERPOS_fcntl)))(fd, cmd, arg));
+ return (INTERPOS_SYS(fcntl)(fd, cmd, arg));
}
diff --git a/lib/libc/sys/fdatasync.c b/lib/libc/sys/fdatasync.c
--- a/lib/libc/sys/fdatasync.c
+++ b/lib/libc/sys/fdatasync.c
@@ -37,6 +37,5 @@
int
fdatasync(int fd)
{
- return (((int (*)(int))*(__libc_interposing_slot(INTERPOS_fdatasync)))
- (fd));
+ return (INTERPOS_SYS(fdatasync)(fd));
}
diff --git a/lib/libc/sys/fork.c b/lib/libc/sys/fork.c
--- a/lib/libc/sys/fork.c
+++ b/lib/libc/sys/fork.c
@@ -39,5 +39,5 @@
pid_t
fork(void)
{
- return (((pid_t (*)(void))*(__libc_interposing_slot(INTERPOS_fork)))());
+ return (INTERPOS_SYS(fork)());
}
diff --git a/lib/libc/sys/fsync.c b/lib/libc/sys/fsync.c
--- a/lib/libc/sys/fsync.c
+++ b/lib/libc/sys/fsync.c
@@ -39,5 +39,5 @@
int
fsync(int fd)
{
- return (((int (*)(int))*(__libc_interposing_slot(INTERPOS_fsync)))(fd));
+ return (INTERPOS_SYS(fsync)(fd));
}
diff --git a/lib/libc/sys/kevent.c b/lib/libc/sys/kevent.c
--- a/lib/libc/sys/kevent.c
+++ b/lib/libc/sys/kevent.c
@@ -41,8 +41,6 @@
kevent(int kq, const struct kevent *changelist, int nchanges,
struct kevent *eventlist, int nevents, const struct timespec *timeout)
{
- return (((int (*)(int, const struct kevent *, int,
- struct kevent *, int, const struct timespec *))
- *(__libc_interposing_slot(INTERPOS_kevent)))
- (kq, changelist, nchanges, eventlist, nevents, timeout));
+ return (INTERPOS_SYS(kevent)(kq, changelist, nchanges, eventlist,
+ nevents, timeout));
}
diff --git a/lib/libc/sys/lockf.c b/lib/libc/sys/lockf.c
--- a/lib/libc/sys/lockf.c
+++ b/lib/libc/sys/lockf.c
@@ -78,6 +78,5 @@
/* NOTREACHED */
}
- return (((int (*)(int, int, ...))
- *(__libc_interposing_slot(INTERPOS_fcntl)))(filedes, cmd, &fl));
+ return (INTERPOS_SYS(fcntl)(filedes, cmd, (intptr_t)&fl));
}
diff --git a/lib/libc/sys/msync.c b/lib/libc/sys/msync.c
--- a/lib/libc/sys/msync.c
+++ b/lib/libc/sys/msync.c
@@ -40,6 +40,5 @@
int
msync(void *addr, size_t len, int flags)
{
- return (((int (*)(void *, size_t, int))
- *(__libc_interposing_slot(INTERPOS_msync)))(addr, len, flags));
+ return (INTERPOS_SYS(msync)(addr, len, flags));
}
diff --git a/lib/libc/sys/nanosleep.c b/lib/libc/sys/nanosleep.c
--- a/lib/libc/sys/nanosleep.c
+++ b/lib/libc/sys/nanosleep.c
@@ -39,6 +39,5 @@
int
nanosleep(const struct timespec *rqtp, struct timespec *rmtp)
{
- return (((int (*)(const struct timespec *, struct timespec *))
- *(__libc_interposing_slot(INTERPOS_nanosleep)))(rqtp, rmtp));
+ return (INTERPOS_SYS(nanosleep)(rqtp, rmtp));
}
diff --git a/lib/libc/sys/open.c b/lib/libc/sys/open.c
--- a/lib/libc/sys/open.c
+++ b/lib/libc/sys/open.c
@@ -50,7 +50,5 @@
} else {
mode = 0;
}
- return (((int (*)(int, const char *, int, ...))
- *(__libc_interposing_slot(INTERPOS_openat)))
- (AT_FDCWD, path, flags, mode));
+ return (INTERPOS_SYS(openat)(AT_FDCWD, path, flags, mode));
}
diff --git a/lib/libc/sys/openat.c b/lib/libc/sys/openat.c
--- a/lib/libc/sys/openat.c
+++ b/lib/libc/sys/openat.c
@@ -53,7 +53,5 @@
} else {
mode = 0;
}
- return (((int (*)(int, const char *, int, ...))
- *(__libc_interposing_slot(INTERPOS_openat)))
- (fd, path, flags, mode));
+ return (INTERPOS_SYS(openat)(fd, path, flags, mode));
}
diff --git a/lib/libc/sys/pdfork.c b/lib/libc/sys/pdfork.c
--- a/lib/libc/sys/pdfork.c
+++ b/lib/libc/sys/pdfork.c
@@ -37,7 +37,5 @@
pid_t
pdfork(int *fdp, int flags)
{
- return (((pid_t (*)(int *, int))
- *(__libc_interposing_slot(INTERPOS_pdfork)))
- (fdp, flags));
+ return (INTERPOS_SYS(pdfork)(fdp, flags));
}
diff --git a/lib/libc/sys/poll.c b/lib/libc/sys/poll.c
--- a/lib/libc/sys/poll.c
+++ b/lib/libc/sys/poll.c
@@ -39,6 +39,5 @@
int
poll(struct pollfd pfd[], nfds_t nfds, int timeout)
{
- return (((int (*)(struct pollfd *, nfds_t, int))
- *(__libc_interposing_slot(INTERPOS_poll)))(pfd, nfds, timeout));
+ return (INTERPOS_SYS(poll)(pfd, nfds, timeout));
}
diff --git a/lib/libc/sys/ppoll.c b/lib/libc/sys/ppoll.c
--- a/lib/libc/sys/ppoll.c
+++ b/lib/libc/sys/ppoll.c
@@ -40,7 +40,5 @@
ppoll(struct pollfd pfd[], nfds_t nfds, const struct timespec *__restrict
timeout, const sigset_t *__restrict newsigmask)
{
- return (((int (*)(struct pollfd *, nfds_t, const struct timespec *,
- const sigset_t *))*(__libc_interposing_slot(INTERPOS_ppoll)))
- (pfd, nfds, timeout, newsigmask));
+ return (INTERPOS_SYS(ppoll)(pfd, nfds, timeout, newsigmask));
}
diff --git a/lib/libc/sys/pselect.c b/lib/libc/sys/pselect.c
--- a/lib/libc/sys/pselect.c
+++ b/lib/libc/sys/pselect.c
@@ -40,7 +40,5 @@
pselect(int n, fd_set *rs, fd_set *ws, fd_set *es, const struct timespec *t,
const sigset_t *s)
{
- return (((int (*)(int, fd_set *, fd_set *, fd_set *,
- const struct timespec *, const sigset_t *))
- *(__libc_interposing_slot(INTERPOS_pselect)))(n, rs, ws, es, t, s));
+ return (INTERPOS_SYS(pselect)(n, rs, ws, es, t, s));
}
diff --git a/lib/libc/sys/read.c b/lib/libc/sys/read.c
--- a/lib/libc/sys/read.c
+++ b/lib/libc/sys/read.c
@@ -40,6 +40,5 @@
ssize_t
read(int fd, void *buf, size_t nbytes)
{
- return (((ssize_t (*)(int, void *, size_t))
- *(__libc_interposing_slot(INTERPOS_read)))(fd, buf, nbytes));
+ return (INTERPOS_SYS(read)(fd, buf, nbytes));
}
diff --git a/lib/libc/sys/readv.c b/lib/libc/sys/readv.c
--- a/lib/libc/sys/readv.c
+++ b/lib/libc/sys/readv.c
@@ -41,6 +41,5 @@
ssize_t
readv(int fd, const struct iovec *iov, int iovcnt)
{
- return (((ssize_t (*)(int, const struct iovec *, int))
- *(__libc_interposing_slot(INTERPOS_readv)))(fd, iov, iovcnt));
+ return (INTERPOS_SYS(readv)(fd, iov, iovcnt));
}
diff --git a/lib/libc/sys/recv.c b/lib/libc/sys/recv.c
--- a/lib/libc/sys/recv.c
+++ b/lib/libc/sys/recv.c
@@ -42,8 +42,5 @@
* POSIX says recv() shall be a cancellation point, so call the
* cancellation-enabled recvfrom() and not _recvfrom().
*/
- return (((ssize_t (*)(int, void *, size_t, int,
- struct sockaddr *, socklen_t *))
- *(__libc_interposing_slot(INTERPOS_recvfrom)))
- (s, buf, len, flags, NULL, NULL));
+ return (INTERPOS_SYS(recvfrom)(s, buf, len, flags, NULL, NULL));
}
diff --git a/lib/libc/sys/recvfrom.c b/lib/libc/sys/recvfrom.c
--- a/lib/libc/sys/recvfrom.c
+++ b/lib/libc/sys/recvfrom.c
@@ -41,8 +41,5 @@
recvfrom(int s, void *buf, size_t len, int flags,
struct sockaddr * __restrict from, socklen_t * __restrict fromlen)
{
- return (((ssize_t (*)(int, void *, size_t, int,
- struct sockaddr *, socklen_t *))
- *(__libc_interposing_slot(INTERPOS_recvfrom)))
- (s, buf, len, flags, from, fromlen));
+ return (INTERPOS_SYS(recvfrom)(s, buf, len, flags, from, fromlen));
}
diff --git a/lib/libc/sys/recvmsg.c b/lib/libc/sys/recvmsg.c
--- a/lib/libc/sys/recvmsg.c
+++ b/lib/libc/sys/recvmsg.c
@@ -40,6 +40,5 @@
ssize_t
recvmsg(int s, struct msghdr *msg, int flags)
{
- return (((int (*)(int, struct msghdr *, int))
- *(__libc_interposing_slot(INTERPOS_recvmsg)))(s, msg, flags));
+ return (INTERPOS_SYS(recvmsg)(s, msg, flags));
}
diff --git a/lib/libc/sys/select.c b/lib/libc/sys/select.c
--- a/lib/libc/sys/select.c
+++ b/lib/libc/sys/select.c
@@ -39,6 +39,5 @@
int
select(int n, fd_set *rs, fd_set *ws, fd_set *es, struct timeval *t)
{
- return (((int (*)(int, fd_set *, fd_set *, fd_set *, struct timeval *))
- *(__libc_interposing_slot(INTERPOS_select)))(n, rs, ws, es, t));
+ return (INTERPOS_SYS(select)(n, rs, ws, es, t));
}
diff --git a/lib/libc/sys/send.c b/lib/libc/sys/send.c
--- a/lib/libc/sys/send.c
+++ b/lib/libc/sys/send.c
@@ -42,8 +42,5 @@
* POSIX says send() shall be a cancellation point, so call the
* cancellation-enabled sendto() and not _sendto().
*/
- return (((ssize_t (*)(int, const void *, size_t, int,
- const struct sockaddr *, socklen_t))
- *__libc_interposing_slot(INTERPOS_sendto))(s, msg, len, flags,
- NULL, 0));
+ return (INTERPOS_SYS(sendto)(s, msg, len, flags, NULL, 0));
}
diff --git a/lib/libc/sys/sendmsg.c b/lib/libc/sys/sendmsg.c
--- a/lib/libc/sys/sendmsg.c
+++ b/lib/libc/sys/sendmsg.c
@@ -40,6 +40,5 @@
ssize_t
sendmsg(int s, const struct msghdr *msg, int flags)
{
- return (((int (*)(int, const struct msghdr *, int))
- *(__libc_interposing_slot(INTERPOS_sendmsg)))(s, msg, flags));
+ return (INTERPOS_SYS(sendmsg)(s, msg, flags));
}
diff --git a/lib/libc/sys/sendto.c b/lib/libc/sys/sendto.c
--- a/lib/libc/sys/sendto.c
+++ b/lib/libc/sys/sendto.c
@@ -41,8 +41,5 @@
sendto(int s, const void *msg, size_t len, int flags,
const struct sockaddr *to, socklen_t tolen)
{
- return (((ssize_t (*)(int, const void *, size_t, int,
- const struct sockaddr *, socklen_t))
- *(__libc_interposing_slot(INTERPOS_sendto)))
- (s, msg, len, flags, to, tolen));
+ return (INTERPOS_SYS(sendto)(s, msg, len, flags, to, tolen));
}
diff --git a/lib/libc/sys/setcontext.c b/lib/libc/sys/setcontext.c
--- a/lib/libc/sys/setcontext.c
+++ b/lib/libc/sys/setcontext.c
@@ -42,6 +42,5 @@
int
setcontext(const ucontext_t *uc)
{
- return (((int (*)(const ucontext_t *))
- *(__libc_interposing_slot(INTERPOS_setcontext)))(uc));
+ return (INTERPOS_SYS(setcontext)(uc));
}
diff --git a/lib/libc/sys/sigaction.c b/lib/libc/sys/sigaction.c
--- a/lib/libc/sys/sigaction.c
+++ b/lib/libc/sys/sigaction.c
@@ -40,6 +40,5 @@
int
sigaction(int sig, const struct sigaction *act, struct sigaction *oact)
{
- return (((int (*)(int, const struct sigaction *, struct sigaction *))
- *(__libc_interposing_slot(INTERPOS_sigaction)))(sig, act, oact));
+ return (INTERPOS_SYS(sigaction)(sig, act, oact));
}
diff --git a/lib/libc/sys/sigprocmask.c b/lib/libc/sys/sigprocmask.c
--- a/lib/libc/sys/sigprocmask.c
+++ b/lib/libc/sys/sigprocmask.c
@@ -40,6 +40,5 @@
int
sigprocmask(int how, const sigset_t *set, sigset_t *oset)
{
- return (((int (*)(int, const sigset_t *, sigset_t *))
- *(__libc_interposing_slot(INTERPOS_sigprocmask)))(how, set, oset));
+ return (INTERPOS_SYS(sigprocmask)(how, set, oset));
}
diff --git a/lib/libc/sys/sigsuspend.c b/lib/libc/sys/sigsuspend.c
--- a/lib/libc/sys/sigsuspend.c
+++ b/lib/libc/sys/sigsuspend.c
@@ -40,6 +40,5 @@
int
sigsuspend(const sigset_t *set)
{
- return (((int (*)(const sigset_t *))
- *(__libc_interposing_slot(INTERPOS_sigsuspend)))(set));
+ return (INTERPOS_SYS(sigsuspend)(set));
}
diff --git a/lib/libc/sys/sigtimedwait.c b/lib/libc/sys/sigtimedwait.c
--- a/lib/libc/sys/sigtimedwait.c
+++ b/lib/libc/sys/sigtimedwait.c
@@ -40,7 +40,5 @@
sigtimedwait(const sigset_t * __restrict set, siginfo_t * __restrict info,
const struct timespec * __restrict t)
{
- return (((int (*)(const sigset_t *, siginfo_t *,
- const struct timespec *))
- *(__libc_interposing_slot(INTERPOS_sigtimedwait)))(set, info, t));
+ return (INTERPOS_SYS(sigtimedwait)(set, info, t));
}
diff --git a/lib/libc/sys/sigwait.c b/lib/libc/sys/sigwait.c
--- a/lib/libc/sys/sigwait.c
+++ b/lib/libc/sys/sigwait.c
@@ -32,6 +32,5 @@
int
sigwait(const sigset_t *set, int *sig)
{
- return (((int (*)(const sigset_t *, int *))
- *(__libc_interposing_slot(INTERPOS_sigwait)))(set, sig));
+ return (INTERPOS_SYS(sigwait)(set, sig));
}
diff --git a/lib/libc/sys/sigwaitinfo.c b/lib/libc/sys/sigwaitinfo.c
--- a/lib/libc/sys/sigwaitinfo.c
+++ b/lib/libc/sys/sigwaitinfo.c
@@ -39,6 +39,5 @@
int
sigwaitinfo(const sigset_t * __restrict set, siginfo_t * __restrict info)
{
- return (((int (*)(const sigset_t *, siginfo_t *))
- *(__libc_interposing_slot(INTERPOS_sigwaitinfo)))(set, info));
+ return (INTERPOS_SYS(sigwaitinfo)(set, info));
}
diff --git a/lib/libc/sys/swapcontext.c b/lib/libc/sys/swapcontext.c
--- a/lib/libc/sys/swapcontext.c
+++ b/lib/libc/sys/swapcontext.c
@@ -44,6 +44,5 @@
int
swapcontext(ucontext_t *oucp, const ucontext_t *ucp)
{
- return (((int (*)(ucontext_t *, const ucontext_t *))
- *(__libc_interposing_slot(INTERPOS_swapcontext)))(oucp, ucp));
+ return (INTERPOS_SYS(swapcontext)(oucp, ucp));
}
diff --git a/lib/libc/sys/wait.c b/lib/libc/sys/wait.c
--- a/lib/libc/sys/wait.c
+++ b/lib/libc/sys/wait.c
@@ -43,9 +43,7 @@
pid_t
__wait(int *istat)
{
- return (((pid_t (*)(pid_t, int *, int, struct rusage *))
- *(__libc_interposing_slot(INTERPOS_wait4)))
- (WAIT_ANY, istat, 0, NULL));
+ return (INTERPOS_SYS(wait4)(WAIT_ANY, istat, 0, NULL));
}
__weak_reference(__wait, wait);
diff --git a/lib/libc/sys/wait3.c b/lib/libc/sys/wait3.c
--- a/lib/libc/sys/wait3.c
+++ b/lib/libc/sys/wait3.c
@@ -43,9 +43,7 @@
pid_t
__wait3(int *istat, int options, struct rusage *rup)
{
- return (((pid_t (*)(pid_t, int *, int, struct rusage *))
- *(__libc_interposing_slot(INTERPOS_wait4)))
- (WAIT_ANY, istat, options, rup));
+ return (INTERPOS_SYS(wait4)(WAIT_ANY, istat, options, rup));
}
__weak_reference(__wait3, wait3);
diff --git a/lib/libc/sys/wait4.c b/lib/libc/sys/wait4.c
--- a/lib/libc/sys/wait4.c
+++ b/lib/libc/sys/wait4.c
@@ -39,7 +39,5 @@
pid_t
wait4(pid_t pid, int *status, int options, struct rusage *ru)
{
- return (((pid_t (*)(pid_t, int *, int, struct rusage *))
- *(__libc_interposing_slot(INTERPOS_wait4)))
- (pid, status, options, ru));
+ return (INTERPOS_SYS(wait4)(pid, status, options, ru));
}
diff --git a/lib/libc/sys/wait6.c b/lib/libc/sys/wait6.c
--- a/lib/libc/sys/wait6.c
+++ b/lib/libc/sys/wait6.c
@@ -41,7 +41,5 @@
wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *ru,
siginfo_t *infop)
{
- return (((pid_t (*)(idtype_t, id_t, int *, int, struct __wrusage *,
- siginfo_t *))*(__libc_interposing_slot(INTERPOS_wait6)))
- (idtype, id, status, options, ru, infop));
+ return (INTERPOS_SYS(wait6)(idtype, id, status, options, ru, infop));
}
diff --git a/lib/libc/sys/waitid.c b/lib/libc/sys/waitid.c
--- a/lib/libc/sys/waitid.c
+++ b/lib/libc/sys/waitid.c
@@ -46,9 +46,7 @@
int status;
pid_t ret;
- ret = ((pid_t (*)(idtype_t, id_t, int *, int, struct __wrusage *,
- siginfo_t *))*(__libc_interposing_slot(INTERPOS_wait6)))
- (idtype, id, &status, flags, NULL, info);
+ ret = INTERPOS_SYS(wait6)(idtype, id, &status, flags, NULL, info);
/*
* According to SUSv4, waitid() shall not return a PID when a
diff --git a/lib/libc/sys/waitpid.c b/lib/libc/sys/waitpid.c
--- a/lib/libc/sys/waitpid.c
+++ b/lib/libc/sys/waitpid.c
@@ -43,9 +43,7 @@
pid_t
__waitpid(pid_t pid, int *istat, int options)
{
- return (((pid_t (*)(pid_t, int *, int, struct rusage *))
- *(__libc_interposing_slot(INTERPOS_wait4)))
- (pid, istat, options, NULL));
+ return (INTERPOS_SYS(wait4)(pid, istat, options, NULL));
}
__weak_reference(__waitpid, waitpid);
diff --git a/lib/libc/sys/write.c b/lib/libc/sys/write.c
--- a/lib/libc/sys/write.c
+++ b/lib/libc/sys/write.c
@@ -40,6 +40,5 @@
ssize_t
write(int fd, const void *buf, size_t nbytes)
{
- return (((ssize_t (*)(int, const void *, size_t))
- *(__libc_interposing_slot(INTERPOS_write)))(fd, buf, nbytes));
+ return (INTERPOS_SYS(write)(fd, buf, nbytes));
}
diff --git a/lib/libc/sys/writev.c b/lib/libc/sys/writev.c
--- a/lib/libc/sys/writev.c
+++ b/lib/libc/sys/writev.c
@@ -41,6 +41,5 @@
ssize_t
writev(int fd, const struct iovec *iov, int iovcnt)
{
- return (((ssize_t (*)(int, const struct iovec *, int))
- *(__libc_interposing_slot(INTERPOS_writev)))(fd, iov, iovcnt));
+ return (INTERPOS_SYS(writev)(fd, iov, iovcnt));
}

File Metadata

Mime Type
text/plain
Expires
Sun, Apr 27, 11:50 AM (2 h, 30 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17817248
Default Alt Text
D44389.id135812.diff (19 KB)

Event Timeline