diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/sendmsg.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/sendmsg.c | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/sysdeps/unix/sysv/linux/sendmsg.c b/sysdeps/unix/sysv/linux/sendmsg.c index a5ef238c4a..e10ab60ec3 100644 --- a/sysdeps/unix/sysv/linux/sendmsg.c +++ b/sysdeps/unix/sysv/linux/sendmsg.c @@ -1,4 +1,5 @@ -/* Copyright (C) 2015-2016 Free Software Foundation, Inc. +/* Compatibility implementation of sendmsg. + Copyright (C) 2016 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -23,26 +24,11 @@ ssize_t __libc_sendmsg (int fd, const struct msghdr *msg, int flags) { - /* POSIX specifies that both msghdr::msg_iovlen and msghdr::msg_controllen - to be int and socklen_t respectively. However Linux defines it as - both size_t. So for 64-bit it requires some adjustments by copying to - temporary header and zeroing the pad fields. */ -#if __WORDSIZE == 64 - struct msghdr hdr; - if (msg != NULL) - { - hdr = *msg; - hdr.__glibc_reserved1 = 0; - hdr.__glibc_reserved2 = 0; - msg = &hdr; - } -#endif - -#ifdef __ASSUME_SENDMSG_SYSCALL +# ifdef __ASSUME_SENDMSG_SYSCALL return SYSCALL_CANCEL (sendmsg, fd, msg, flags); -#else +# else return SOCKETCALL_CANCEL (sendmsg, fd, msg, flags); -#endif +# endif } +weak_alias (__libc_sendmsg, sendmsg) weak_alias (__libc_sendmsg, __sendmsg) -versioned_symbol (libc, __libc_sendmsg, sendmsg, GLIBC_2_24); |