Implement sendmsg() (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 2 Sep 2016 18:58:05 +0000 (14:58 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 6 Sep 2016 13:26:23 +0000 (09:26 -0400)
This doesn't do any fancy control operations - just the iovec sendto().

Rebuild glibc.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sendmsg.c [new file with mode: 0644]

diff --git a/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sendmsg.c b/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sendmsg.c
new file mode 100644 (file)
index 0000000..c998eb7
--- /dev/null
@@ -0,0 +1,22 @@
+/* Copyright (c) 2015-2016 Google Inc.
+ * Barret Rhoden <brho@cs.berkeley.edu>
+ * See LICENSE for details.
+ *
+ * sendmsg(), on top of sendto(). */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <errno.h>
+
+/* In sendto.c */
+ssize_t __sendto_iov(int fd, const struct iovec *iov, int iovcnt,
+                     int flags, __CONST_SOCKADDR_ARG to, socklen_t tolen);
+
+/* Send a message described MSG on socket FD.  Returns the number of bytes
+ * sent, or -1 for errors.  */
+ssize_t __sendmsg(int fd, const struct msghdr *msg, int flags)
+{
+       return __sendto_iov(fd, msg->msg_iov, msg->msg_iovlen, flags, msg->msg_name,
+                           msg->msg_namelen);
+}
+weak_alias(__sendmsg, sendmsg)