Lines Matching full:msg

34 bool mpqemu_msg_send(MPQemuMsg *msg, QIOChannel *ioc, Error **errp)  in mpqemu_msg_send()  argument
43 send[0].iov_base = msg; in mpqemu_msg_send()
46 send[1].iov_base = (void *)&msg->data; in mpqemu_msg_send()
47 send[1].iov_len = msg->size; in mpqemu_msg_send()
49 if (msg->num_fds) { in mpqemu_msg_send()
50 nfds = msg->num_fds; in mpqemu_msg_send()
51 fds = msg->fds; in mpqemu_msg_send()
74 trace_mpqemu_send_io_error(msg->cmd, msg->size, nfds); in mpqemu_msg_send()
122 bool mpqemu_msg_recv(MPQemuMsg *msg, QIOChannel *ioc, Error **errp) in mpqemu_msg_recv() argument
130 len = mpqemu_read(ioc, msg, MPQEMU_MSG_HDR_SIZE, &fds, &nfds, errp); in mpqemu_msg_recv()
138 if (msg->size > sizeof(msg->data)) { in mpqemu_msg_recv()
143 if (!msg->size) { in mpqemu_msg_recv()
147 len = mpqemu_read(ioc, &msg->data, msg->size, NULL, NULL, errp); in mpqemu_msg_recv()
151 if (len != msg->size) { in mpqemu_msg_recv()
157 msg->num_fds = nfds; in mpqemu_msg_recv()
158 if (nfds > G_N_ELEMENTS(msg->fds)) { in mpqemu_msg_recv()
165 memcpy(msg->fds, fds, nfds * sizeof(int)); in mpqemu_msg_recv()
172 trace_mpqemu_recv_io_error(msg->cmd, msg->size, nfds); in mpqemu_msg_recv()
183 * Send msg and wait for a reply with command code RET_MSG.
189 uint64_t mpqemu_msg_send_and_await_reply(MPQemuMsg *msg, PCIProxyDev *pdev, in mpqemu_msg_send_and_await_reply() argument
198 if (!mpqemu_msg_send(msg, pdev->ioc, errp)) { in mpqemu_msg_send_and_await_reply()
208 msg->cmd); in mpqemu_msg_send_and_await_reply()
215 bool mpqemu_msg_valid(MPQemuMsg *msg) in mpqemu_msg_valid() argument
217 if (msg->cmd >= MPQEMU_CMD_MAX || msg->cmd < 0) { in mpqemu_msg_valid()
222 if (msg->num_fds >= REMOTE_MAX_FDS) { in mpqemu_msg_valid()
226 if (msg->num_fds > 0) { in mpqemu_msg_valid()
227 for (int i = 0; i < msg->num_fds; i++) { in mpqemu_msg_valid()
228 if (fcntl(msg->fds[i], F_GETFL) == -1) { in mpqemu_msg_valid()
235 switch (msg->cmd) { in mpqemu_msg_valid()
237 if (msg->num_fds == 0 || msg->size != sizeof(SyncSysmemMsg)) { in mpqemu_msg_valid()
243 if (msg->size != sizeof(PciConfDataMsg)) { in mpqemu_msg_valid()
249 if ((msg->size != sizeof(BarAccessMsg)) || (msg->num_fds != 0)) { in mpqemu_msg_valid()
254 if (msg->size || (msg->num_fds != 2)) { in mpqemu_msg_valid()