Lines Matching refs:msg
87 vhost_user_read(int fd, struct vhost_user_msg *msg)
93 ret = recv(fd, (void *)msg, sz_hdr, 0);
95 SPDK_WARNLOG("Failed to recv msg hdr: %zd instead of %zu.\n",
104 /* validate msg flags */
105 if (msg->flags != (valid_flags)) {
106 SPDK_WARNLOG("Failed to recv msg: flags %"PRIx32" instead of %"PRIx32".\n",
107 msg->flags, valid_flags);
111 sz_payload = msg->size;
114 SPDK_WARNLOG("Received oversized msg: payload size %zu > available space %zu\n",
120 ret = recv(fd, (void *)((char *)msg + sz_hdr), sz_payload, 0);
122 SPDK_WARNLOG("Failed to recv msg payload: %zd instead of %"PRIu32".\n",
123 ret, msg->size);
231 prepare_vhost_memory_user(struct vhost_user_msg *msg, int fds[])
244 msg->payload.memory.regions[i].guest_phys_addr = hugepages[i].addr; /* use vaddr! */
245 msg->payload.memory.regions[i].userspace_addr = hugepages[i].addr;
246 msg->payload.memory.regions[i].memory_size = hugepages[i].size;
247 msg->payload.memory.regions[i].flags_padding = 0;
251 msg->payload.memory.nregions = num;
252 msg->payload.memory.padding = 0;
282 struct vhost_user_msg msg;
292 msg.request = req;
293 msg.flags = VHOST_USER_VERSION;
294 msg.size = 0;
306 msg.payload.u64 = *((__u64 *)arg);
307 msg.size = sizeof(msg.payload.u64);
315 rc = prepare_vhost_memory_user(&msg, fds);
319 fd_num = msg.payload.memory.nregions;
320 msg.size = sizeof(msg.payload.memory.nregions);
321 msg.size += sizeof(msg.payload.memory.padding);
322 msg.size += fd_num * sizeof(struct vhost_memory_region);
332 memcpy(&msg.payload.state, arg, sizeof(msg.payload.state));
333 msg.size = sizeof(msg.payload.state);
337 memcpy(&msg.payload.state, arg, sizeof(msg.payload.state));
338 msg.size = sizeof(msg.payload.state);
343 memcpy(&msg.payload.addr, arg, sizeof(msg.payload.addr));
344 msg.size = sizeof(msg.payload.addr);
351 msg.payload.u64 = file->index & VHOST_USER_VRING_IDX_MASK;
352 msg.size = sizeof(msg.payload.u64);
356 msg.payload.u64 |= VHOST_USER_VRING_NOFD_MASK;
361 memcpy(&msg.payload.cfg, arg, sizeof(msg.payload.cfg));
362 msg.size = sizeof(msg.payload.cfg);
367 memcpy(&msg.payload.cfg, arg, sizeof(msg.payload.cfg));
368 msg.size = sizeof(msg.payload.cfg);
372 SPDK_ERRLOG("trying to send unknown msg\n");
376 len = VHOST_USER_HDR_SIZE + msg.size;
377 rc = vhost_user_write(vhostfd, &msg, len, fds, fd_num);
390 rc = vhost_user_read(vhostfd, &msg);
392 SPDK_WARNLOG("Received msg failed: %s\n", spdk_strerror(-rc));
396 if (req != msg.request) {
397 SPDK_WARNLOG("Received unexpected msg type\n");
405 if (msg.size != sizeof(msg.payload.u64)) {
406 SPDK_WARNLOG("Received bad msg size\n");
409 *((__u64 *)arg) = msg.payload.u64;
412 if (msg.size != sizeof(msg.payload.state)) {
413 SPDK_WARNLOG("Received bad msg size\n");
416 memcpy(arg, &msg.payload.state,
420 if (msg.size != sizeof(msg.payload.cfg)) {
421 SPDK_WARNLOG("Received bad msg size\n");
424 memcpy(arg, &msg.payload.cfg, sizeof(msg.payload.cfg));
427 SPDK_WARNLOG("Received unexpected msg type\n");
489 * firstly because vhost depends on this msg to allocate virtqueue
542 * lastly because vhost depends on this msg to judge if