Lines Matching refs:msg

158 		expected_fds, vhost_message_handlers[ctx->msg.request.frontend].description,
360 ctx->msg.payload.u64 = features;
361 ctx->msg.size = sizeof(ctx->msg.payload.u64);
380 ctx->msg.payload.u64 = (uint64_t)queue_num;
381 ctx->msg.size = sizeof(ctx->msg.payload.u64);
396 uint64_t features = ctx->msg.payload.u64;
486 struct vhost_virtqueue *vq = dev->virtqueue[ctx->msg.payload.state.index];
488 if (ctx->msg.payload.state.num > 32768) {
491 ctx->msg.payload.state.num);
495 vq->size = ctx->msg.payload.state.num;
981 struct vhost_vring_addr *addr = &ctx->msg.payload.addr;
988 vq = dev->virtqueue[ctx->msg.payload.addr.index];
1026 struct vhost_virtqueue *vq = dev->virtqueue[ctx->msg.payload.state.index];
1027 uint64_t val = ctx->msg.payload.state.num;
1045 vq->last_used_idx = ctx->msg.payload.state.num;
1046 vq->last_avail_idx = ctx->msg.payload.state.num;
1052 ctx->msg.payload.state.index, vq->last_used_idx, vq->last_avail_idx);
1251 memory = &ctx->msg.payload.memory;
1273 if (ack_ctx.msg.request.frontend != VHOST_USER_SET_MEM_TABLE) {
1276 ack_ctx.msg.request.frontend);
1393 struct VhostUserMemory *memory = &ctx->msg.payload.memory;
1693 if (ctx->msg.size != sizeof(ctx->msg.payload.inflight)) {
1696 ctx->msg.size);
1717 num_queues = ctx->msg.payload.inflight.num_queues;
1718 queue_size = ctx->msg.payload.inflight.queue_size;
1722 ctx->msg.payload.inflight.num_queues);
1725 ctx->msg.payload.inflight.queue_size);
1736 ctx->msg.payload.inflight.mmap_size = 0;
1752 dev->inflight_info->size = ctx->msg.payload.inflight.mmap_size = mmap_size;
1754 ctx->msg.payload.inflight.mmap_offset = 0;
1771 ctx->msg.payload.inflight.mmap_size);
1774 ctx->msg.payload.inflight.mmap_offset);
1799 if (ctx->msg.size != sizeof(ctx->msg.payload.inflight) || fd < 0) {
1802 ctx->msg.size, fd);
1806 mmap_size = ctx->msg.payload.inflight.mmap_size;
1807 mmap_offset = ctx->msg.payload.inflight.mmap_offset;
1808 num_queues = ctx->msg.payload.inflight.num_queues;
1809 queue_size = ctx->msg.payload.inflight.queue_size;
1901 expected_fds = (ctx->msg.payload.u64 & VHOST_USER_VRING_NOFD_MASK) ? 0 : 1;
1905 file.index = ctx->msg.payload.u64 & VHOST_USER_VRING_IDX_MASK;
1906 if (ctx->msg.payload.u64 & VHOST_USER_VRING_NOFD_MASK)
1936 expected_fds = (ctx->msg.payload.u64 & VHOST_USER_VRING_NOFD_MASK) ? 0 : 1;
1940 if (!(ctx->msg.payload.u64 & VHOST_USER_VRING_NOFD_MASK))
2153 expected_fds = (ctx->msg.payload.u64 & VHOST_USER_VRING_NOFD_MASK) ? 0 : 1;
2157 file.index = ctx->msg.payload.u64 & VHOST_USER_VRING_IDX_MASK;
2158 if (ctx->msg.payload.u64 & VHOST_USER_VRING_NOFD_MASK)
2217 struct vhost_virtqueue *vq = dev->virtqueue[ctx->msg.payload.state.index];
2234 ctx->msg.payload.state.num = val;
2236 ctx->msg.payload.state.num = vq->last_avail_idx;
2241 ctx->msg.payload.state.index, ctx->msg.payload.state.num);
2273 ctx->msg.size = sizeof(ctx->msg.payload.state);
2297 bool enable = !!ctx->msg.payload.state.num;
2298 int index = (int)ctx->msg.payload.state.index;
2330 ctx->msg.payload.u64 = protocol_features;
2331 ctx->msg.size = sizeof(ctx->msg.payload.u64);
2343 uint64_t protocol_features = ctx->msg.payload.u64;
2381 if (ctx->msg.size != sizeof(VhostUserLog)) {
2383 "invalid log base msg size: %"PRId32" != %d",
2384 ctx->msg.size, (int)sizeof(VhostUserLog));
2388 size = ctx->msg.payload.log.mmap_size;
2389 off = ctx->msg.payload.log.mmap_offset;
2449 ctx->msg.size = 0;
2488 uint8_t *mac = (uint8_t *)&ctx->msg.payload.u64;
2518 if (ctx->msg.payload.u64 < VIRTIO_MIN_MTU ||
2519 ctx->msg.payload.u64 > VIRTIO_MAX_MTU) {
2522 ctx->msg.payload.u64);
2527 dev->mtu = ctx->msg.payload.u64;
2651 ctx->msg.payload.cfg.region,
2652 ctx->msg.payload.cfg.size);
2654 ctx->msg.size = 0;
2676 if (ctx->msg.payload.cfg.size > VHOST_USER_MAX_CONFIG_SIZE) {
2679 ctx->msg.payload.cfg.size, VHOST_USER_MAX_CONFIG_SIZE);
2690 ctx->msg.payload.cfg.region,
2691 ctx->msg.payload.cfg.offset,
2692 ctx->msg.payload.cfg.size,
2693 ctx->msg.payload.cfg.flags);
2712 struct vhost_iotlb_msg *imsg = &ctx->msg.payload.iotlb;
2835 ctx->msg.payload.u64 = 0;
2836 ctx->msg.size = sizeof(ctx->msg.payload.u64);
2849 ctx->msg.payload.u64 = dev->status;
2850 ctx->msg.size = sizeof(ctx->msg.payload.u64);
2864 if (ctx->msg.payload.u64 > UINT8_MAX) {
2867 ctx->msg.payload.u64);
2871 dev->status = ctx->msg.payload.u64;
2923 ret = read_fd_message(dev->ifname, sockfd, (char *)&ctx->msg, VHOST_USER_HDR_SIZE,
2934 if (ctx->msg.size) {
2935 if (ctx->msg.size > sizeof(ctx->msg.payload)) {
2936 VHOST_CONFIG_LOG(dev->ifname, ERR, "invalid msg size: %d",
2937 ctx->msg.size);
2941 ret = read(sockfd, &ctx->msg.payload, ctx->msg.size);
2944 if (ret != (int)ctx->msg.size) {
2964 return send_fd_message(dev->ifname, sockfd, (char *)&ctx->msg,
2965 VHOST_USER_HDR_SIZE + ctx->msg.size, ctx->fds, ctx->fd_num);
2974 ctx->msg.flags &= ~VHOST_USER_VERSION_MASK;
2975 ctx->msg.flags &= ~VHOST_USER_NEED_REPLY;
2976 ctx->msg.flags |= VHOST_USER_VERSION;
2977 ctx->msg.flags |= VHOST_USER_REPLY_MASK;
3012 if (msg_reply.msg.request.backend != ctx->msg.request.backend) {
3014 "received unexpected msg type (%u), expected %u",
3015 msg_reply.msg.request.backend, ctx->msg.request.backend);
3020 ret = msg_reply.msg.payload.u64 ? -1 : 0;
3035 switch (ctx->msg.request.frontend) {
3039 vring_idx = ctx->msg.payload.u64 & VHOST_USER_VRING_IDX_MASK;
3045 vring_idx = ctx->msg.payload.state.index;
3048 vring_idx = ctx->msg.payload.addr.index;
3051 vring_idx = ctx->msg.payload.inflight.num_queues - 1;
3132 ctx.msg.request.frontend = VHOST_USER_NONE;
3139 request = ctx.msg.request.frontend;
3188 RTE_BUILD_BUG_ON(offsetof(struct vhu_msg_context, msg) != 0);
3240 RTE_BUILD_BUG_ON(offsetof(struct vhu_msg_context, msg) != 0);
3269 if (ctx.msg.flags & VHOST_USER_NEED_REPLY) {
3270 ctx.msg.payload.u64 = msg_result == RTE_VHOST_MSG_RESULT_ERR;
3271 ctx.msg.size = sizeof(ctx.msg.payload.u64);
3314 blk_call_fd = ctx.msg.payload.u64 & VHOST_USER_VRING_IDX_MASK;
3338 .msg = {
3341 .size = sizeof(ctx.msg.payload.iotlb),
3365 .msg = {
3381 ctx.msg.flags |= VHOST_USER_NEED_REPLY;
3397 .msg = {
3400 .size = sizeof(ctx.msg.payload.area),
3410 ctx.msg.payload.area.u64 |= VHOST_USER_VRING_NOFD_MASK;