Lines Matching refs:msg
173 static void add_zcopy_cookie(struct msghdr *msg, uint32_t cookie) in add_zcopy_cookie() argument
177 if (!msg->msg_control) in add_zcopy_cookie()
179 cm = (void *)msg->msg_control; in add_zcopy_cookie()
186 static bool do_sendmsg(int fd, struct msghdr *msg, bool do_zerocopy, int domain) in do_sendmsg() argument
193 for (i = 0; i < msg->msg_iovlen; i++) in do_sendmsg()
194 len += msg->msg_iov[i].iov_len; in do_sendmsg()
200 memset(&msg->msg_control, 0, sizeof(msg->msg_control)); in do_sendmsg()
201 msg->msg_controllen = CMSG_SPACE(sizeof(cookie)); in do_sendmsg()
202 msg->msg_control = (struct cmsghdr *)ckbuf; in do_sendmsg()
203 add_zcopy_cookie(msg, ++cookie); in do_sendmsg()
207 ret = sendmsg(fd, msg, flags); in do_sendmsg()
223 msg->msg_control = NULL; in do_sendmsg()
224 msg->msg_controllen = 0; in do_sendmsg()
230 static void do_sendmsg_corked(int fd, struct msghdr *msg) in do_sendmsg_corked() argument
249 msg->msg_iov[0].iov_len = payload_len + extra_len; in do_sendmsg_corked()
252 do_sendmsg(fd, msg, do_zerocopy, in do_sendmsg_corked()
368 struct msghdr msg; in do_recvmsg_completion() local
371 memset(&msg, 0, sizeof(msg)); in do_recvmsg_completion()
372 msg.msg_control = cmsgbuf; in do_recvmsg_completion()
373 msg.msg_controllen = sizeof(cmsgbuf); in do_recvmsg_completion()
375 if (recvmsg(fd, &msg, MSG_DONTWAIT)) in do_recvmsg_completion()
378 if (msg.msg_flags & MSG_CTRUNC) in do_recvmsg_completion()
381 for (cmsg = CMSG_FIRSTHDR(&msg); cmsg; cmsg = CMSG_NXTHDR(&msg, cmsg)) { in do_recvmsg_completion()
399 struct msghdr msg = {}; in do_recv_completion() local
408 msg.msg_control = control; in do_recv_completion()
409 msg.msg_controllen = sizeof(control); in do_recv_completion()
411 ret = recvmsg(fd, &msg, MSG_ERRQUEUE); in do_recv_completion()
416 if (msg.msg_flags & MSG_CTRUNC) in do_recv_completion()
419 cm = CMSG_FIRSTHDR(&msg); in do_recv_completion()
492 struct msghdr msg = {0}; in do_tx() local
513 msg.msg_iovlen++; in do_tx()
525 msg.msg_name = &laddr; in do_tx()
526 msg.msg_namelen = sizeof(laddr); in do_tx()
537 msg.msg_iovlen++; in do_tx()
541 msg.msg_name = &cfg_dst_addr; in do_tx()
542 msg.msg_namelen = (cfg_dst_addr.ss_family == AF_INET ? in do_tx()
549 msg.msg_iovlen++; in do_tx()
550 msg.msg_iov = &iov[3 - msg.msg_iovlen]; in do_tx()
555 do_sendmsg_corked(fd, &msg); in do_tx()
557 do_sendmsg(fd, &msg, cfg_zerocopy, domain); in do_tx()