MCPcopy Create free account
hub / github.com/F-Stack/f-stack / memif_msg_send

Function memif_msg_send

dpdk/drivers/net/memif/memif_socket.c:30–55  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28static void memif_intr_handler(void *arg);
29
30static ssize_t
31memif_msg_send(int fd, memif_msg_t *msg, int afd)
32{
33 struct msghdr mh = { 0 };
34 struct iovec iov[1];
35 struct cmsghdr *cmsg;
36 char ctl[CMSG_SPACE(sizeof(int))];
37
38 iov[0].iov_base = msg;
39 iov[0].iov_len = sizeof(memif_msg_t);
40 mh.msg_iov = iov;
41 mh.msg_iovlen = 1;
42
43 if (afd > 0) {
44 memset(&ctl, 0, sizeof(ctl));
45 mh.msg_control = ctl;
46 mh.msg_controllen = sizeof(ctl);
47 cmsg = CMSG_FIRSTHDR(&mh);
48 cmsg->cmsg_len = CMSG_LEN(sizeof(int));
49 cmsg->cmsg_level = SOL_SOCKET;
50 cmsg->cmsg_type = SCM_RIGHTS;
51 rte_memcpy(CMSG_DATA(cmsg), &afd, sizeof(int));
52 }
53
54 return sendmsg(fd, &mh, 0);
55}
56
57static int
58memif_msg_send_from_queue(struct memif_control_channel *cc)

Callers 1

Calls 3

memsetFunction · 0.85
sendmsgFunction · 0.85
rte_memcpyFunction · 0.50

Tested by

no test coverage detected