Lines Matching refs:msg

170 static void add_zcopy_cookie(struct msghdr *msg, uint32_t cookie)  in add_zcopy_cookie()  argument
174 if (!msg->msg_control) in add_zcopy_cookie()
176 cm = (void *)msg->msg_control; in add_zcopy_cookie()
183 static bool do_sendmsg(int fd, struct msghdr *msg, bool do_zerocopy, int domain) in do_sendmsg() argument
190 for (i = 0; i < msg->msg_iovlen; i++) in do_sendmsg()
191 len += msg->msg_iov[i].iov_len; in do_sendmsg()
197 memset(&msg->msg_control, 0, sizeof(msg->msg_control)); in do_sendmsg()
198 msg->msg_controllen = CMSG_SPACE(sizeof(cookie)); in do_sendmsg()
199 msg->msg_control = (struct cmsghdr *)ckbuf; in do_sendmsg()
200 add_zcopy_cookie(msg, ++cookie); in do_sendmsg()
204 ret = sendmsg(fd, msg, flags); in do_sendmsg()
219 msg->msg_control = NULL; in do_sendmsg()
220 msg->msg_controllen = 0; in do_sendmsg()
226 static void do_sendmsg_corked(int fd, struct msghdr *msg) in do_sendmsg_corked() argument
245 msg->msg_iov[0].iov_len = payload_len + extra_len; in do_sendmsg_corked()
248 do_sendmsg(fd, msg, do_zerocopy, in do_sendmsg_corked()
364 struct msghdr msg; in do_recvmsg_completion() local
367 memset(&msg, 0, sizeof(msg)); in do_recvmsg_completion()
368 msg.msg_control = cmsgbuf; in do_recvmsg_completion()
369 msg.msg_controllen = sizeof(cmsgbuf); in do_recvmsg_completion()
371 if (recvmsg(fd, &msg, MSG_DONTWAIT)) in do_recvmsg_completion()
374 if (msg.msg_flags & MSG_CTRUNC) in do_recvmsg_completion()
377 for (cmsg = CMSG_FIRSTHDR(&msg); cmsg; cmsg = CMSG_NXTHDR(&msg, cmsg)) { in do_recvmsg_completion()
395 struct msghdr msg = {}; in do_recv_completion() local
404 msg.msg_control = control; in do_recv_completion()
405 msg.msg_controllen = sizeof(control); in do_recv_completion()
407 ret = recvmsg(fd, &msg, MSG_ERRQUEUE); in do_recv_completion()
412 if (msg.msg_flags & MSG_CTRUNC) in do_recv_completion()
415 cm = CMSG_FIRSTHDR(&msg); in do_recv_completion()
485 struct msghdr msg = {0}; in do_tx() local
506 msg.msg_iovlen++; in do_tx()
518 msg.msg_name = &laddr; in do_tx()
519 msg.msg_namelen = sizeof(laddr); in do_tx()
530 msg.msg_iovlen++; in do_tx()
534 msg.msg_name = &cfg_dst_addr; in do_tx()
535 msg.msg_namelen = (cfg_dst_addr.ss_family == AF_INET ? in do_tx()
542 msg.msg_iovlen++; in do_tx()
543 msg.msg_iov = &iov[3 - msg.msg_iovlen]; in do_tx()
548 do_sendmsg_corked(fd, &msg); in do_tx()
550 do_sendmsg(fd, &msg, cfg_zerocopy, domain); in do_tx()