Lines Matching refs:msg
714 sock_receive_internal(socket_t sock, struct msghdr *msg, mbuf_t *data, in sock_receive_internal() argument
722 UIO_STACKBUF(uio_buf, (msg != NULL) ? msg->msg_iovlen : 0); in sock_receive_internal()
728 auio = uio_createwithbuffer(((msg != NULL) ? msg->msg_iovlen : 0), in sock_receive_internal()
730 if (msg != NULL && data == NULL) { in sock_receive_internal()
733 msg->msg_iov, in sock_receive_internal()
734 sizeof(struct iovec) * msg->msg_iovlen); in sock_receive_internal()
736 for (i = 0; i < msg->msg_iovlen; i++) { in sock_receive_internal()
755 data, (msg && msg->msg_control) ? &control : NULL, &flags); in sock_receive_internal()
763 if (msg != NULL) { in sock_receive_internal()
764 msg->msg_flags = flags; in sock_receive_internal()
766 if (msg->msg_name != NULL) { in sock_receive_internal()
768 salen = msg->msg_namelen; in sock_receive_internal()
769 if (msg->msg_namelen > 0 && fromsa != NULL) { in sock_receive_internal()
771 SOCKADDR_COPY(fromsa, msg->msg_name, in sock_receive_internal()
772 msg->msg_namelen > fromsa->sa_len ? in sock_receive_internal()
773 fromsa->sa_len : msg->msg_namelen); in sock_receive_internal()
777 if (msg->msg_control != NULL) { in sock_receive_internal()
779 int clen = msg->msg_controllen; in sock_receive_internal()
780 u_char *original_ctl = msg->msg_control; in sock_receive_internal()
781 u_char *ctlbuf = msg->msg_control; in sock_receive_internal()
783 msg->msg_control = NULL; in sock_receive_internal()
784 msg->msg_controllen = 0; in sock_receive_internal()
792 msg->msg_flags |= MSG_CTRUNC; in sock_receive_internal()
800 msg->msg_control = original_ctl; in sock_receive_internal()
801 msg->msg_controllen = (socklen_t)(ctlbuf - original_ctl); in sock_receive_internal()
814 sock_receive(socket_t sock, struct msghdr *msg, int flags, size_t *recvdlen) in sock_receive() argument
816 if ((msg == NULL) || (msg->msg_iovlen < 1) || in sock_receive()
817 (msg->msg_iov[0].iov_len == 0) || in sock_receive()
818 (msg->msg_iov[0].iov_base == NULL)) { in sock_receive()
822 return sock_receive_internal(sock, msg, NULL, flags, recvdlen); in sock_receive()
826 sock_receivembuf(socket_t sock, struct msghdr *msg, mbuf_t *data, int flags, in sock_receivembuf() argument
829 if (data == NULL || recvlen == 0 || *recvlen <= 0 || (msg != NULL && in sock_receivembuf()
830 (msg->msg_iov != NULL || msg->msg_iovlen != 0))) { in sock_receivembuf()
834 return sock_receive_internal(sock, msg, data, flags, recvlen); in sock_receivembuf()
838 sock_send_internal(socket_t sock, const struct msghdr *msg, mbuf_t data, in sock_send_internal() argument
851 if (data == NULL && msg != NULL) { in sock_send_internal()
853 msg->msg_iov, in sock_send_internal()
854 sizeof(struct iovec) * msg->msg_iovlen); in sock_send_internal()
856 auio = uio_create(msg->msg_iovlen, 0, UIO_SYSSPACE, UIO_WRITE); in sock_send_internal()
860 sock, UIO_SIZEOF(msg->msg_iovlen)); in sock_send_internal()
868 for (i = 0; i < msg->msg_iovlen; i++) { in sock_send_internal()
891 if (msg != NULL && msg->msg_control) { in sock_send_internal()
892 if ((size_t)msg->msg_controllen < sizeof(struct cmsghdr)) { in sock_send_internal()
897 if ((size_t)msg->msg_controllen > MLEN) { in sock_send_internal()
907 memcpy(mtod(control, caddr_t), msg->msg_control, in sock_send_internal()
908 msg->msg_controllen); in sock_send_internal()
909 control->m_len = msg->msg_controllen; in sock_send_internal()
916 error = sock->so_proto->pr_usrreqs->pru_sosend(sock, msg != NULL ? in sock_send_internal()
917 (struct sockaddr *)msg->msg_name : NULL, auio, data, in sock_send_internal()
971 sock_send(socket_t sock, const struct msghdr *msg, int flags, size_t *sentlen) in sock_send() argument
973 if (msg == NULL || msg->msg_iov == NULL || msg->msg_iovlen < 1) { in sock_send()
977 return sock_send_internal(sock, msg, NULL, flags, sentlen); in sock_send()
981 sock_sendmbuf(socket_t sock, const struct msghdr *msg, mbuf_t data, in sock_sendmbuf() argument
986 if (data == NULL || (msg != NULL && (msg->msg_iov != NULL || in sock_sendmbuf()
987 msg->msg_iovlen != 0))) { in sock_sendmbuf()
994 error = sock_send_internal(sock, msg, data, flags, sentlen); in sock_sendmbuf()
1000 sock_sendmbuf_can_wait(socket_t sock, const struct msghdr *msg, mbuf_t data, in sock_sendmbuf_can_wait() argument
1009 if (data == NULL || (msg != NULL && (msg->msg_iov != NULL || in sock_sendmbuf_can_wait()
1010 msg->msg_iovlen != 0))) { in sock_sendmbuf_can_wait()
1018 msg_temp.msg_name = msg->msg_name; in sock_sendmbuf_can_wait()
1019 msg_temp.msg_namelen = msg->msg_namelen; in sock_sendmbuf_can_wait()
1020 msg_temp.msg_control = msg->msg_control; in sock_sendmbuf_can_wait()
1021 msg_temp.msg_controllen = msg->msg_controllen; in sock_sendmbuf_can_wait()