/openbmc/qemu/hw/virtio/ |
H A D | vhost-shadow-virtqueue.c | 67 * @svq: The svq 69 uint16_t vhost_svq_available_slots(const VhostShadowVirtqueue *svq) in vhost_svq_available_slots() argument 71 return svq->num_free; in vhost_svq_available_slots() 77 * @svq: Shadow VirtQueue 82 static bool vhost_svq_translate_addr(const VhostShadowVirtqueue *svq, in vhost_svq_translate_addr() argument 98 const DMAMap *map = vhost_iova_tree_find_iova(svq->iova_tree, &needle); in vhost_svq_translate_addr() 129 * @svq: The shadow virtqueue 138 static bool vhost_svq_vring_write_descs(VhostShadowVirtqueue *svq, hwaddr *sg, in vhost_svq_vring_write_descs() argument 142 uint16_t i = svq in vhost_svq_vring_write_descs() 175 vhost_svq_add_split(VhostShadowVirtqueue * svq,const struct iovec * out_sg,size_t out_num,const struct iovec * in_sg,size_t in_num,unsigned * head) vhost_svq_add_split() argument 220 vhost_svq_kick(VhostShadowVirtqueue * svq) vhost_svq_kick() argument 249 vhost_svq_add(VhostShadowVirtqueue * svq,const struct iovec * out_sg,size_t out_num,const struct iovec * in_sg,size_t in_num,VirtQueueElement * elem) vhost_svq_add() argument 274 vhost_svq_add_element(VhostShadowVirtqueue * svq,VirtQueueElement * elem) vhost_svq_add_element() argument 294 vhost_handle_guest_kick(VhostShadowVirtqueue * svq) vhost_handle_guest_kick() argument 356 VhostShadowVirtqueue *svq = container_of(n, VhostShadowVirtqueue, svq_kick); vhost_handle_guest_kick_notifier() local 361 vhost_svq_more_used(VhostShadowVirtqueue * svq) vhost_svq_more_used() argument 382 vhost_svq_enable_notification(VhostShadowVirtqueue * svq) vhost_svq_enable_notification() argument 396 vhost_svq_disable_notification(VhostShadowVirtqueue * svq) vhost_svq_disable_notification() argument 407 vhost_svq_last_desc_of_chain(const VhostShadowVirtqueue * svq,uint16_t num,uint16_t i) vhost_svq_last_desc_of_chain() argument 418 vhost_svq_get_buf(VhostShadowVirtqueue * svq,uint32_t * len) vhost_svq_get_buf() argument 463 vhost_svq_push_elem(VhostShadowVirtqueue * svq,const VirtQueueElement * elem,uint32_t len) vhost_svq_push_elem() argument 476 vhost_svq_flush(VhostShadowVirtqueue * svq,bool check_for_avail_queue) vhost_svq_flush() argument 527 vhost_svq_poll(VhostShadowVirtqueue * svq,size_t num) vhost_svq_poll() argument 563 VhostShadowVirtqueue *svq = container_of(n, VhostShadowVirtqueue, vhost_svq_handle_call() local 577 vhost_svq_set_svq_call_fd(VhostShadowVirtqueue * svq,int call_fd) vhost_svq_set_svq_call_fd() argument 597 vhost_svq_get_vring_addr(const VhostShadowVirtqueue * svq,struct vhost_vring_addr * addr) vhost_svq_get_vring_addr() argument 605 vhost_svq_driver_area_size(const VhostShadowVirtqueue * svq) vhost_svq_driver_area_size() argument 614 vhost_svq_device_area_size(const VhostShadowVirtqueue * svq) vhost_svq_device_area_size() argument 629 vhost_svq_set_svq_kick_fd(VhostShadowVirtqueue * svq,int svq_kick_fd) vhost_svq_set_svq_kick_fd() argument 659 vhost_svq_start(VhostShadowVirtqueue * svq,VirtIODevice * vdev,VirtQueue * vq,VhostIOVATree * iova_tree) vhost_svq_start() argument 694 vhost_svq_stop(VhostShadowVirtqueue * svq) vhost_svq_stop() argument 740 VhostShadowVirtqueue *svq = g_new0(VhostShadowVirtqueue, 1); vhost_svq_new() local [all...] |
H A D | vhost-shadow-virtqueue.h | 41 typedef int (*VirtQueueAvailCallback)(VhostShadowVirtqueue *svq, 117 uint16_t vhost_svq_available_slots(const VhostShadowVirtqueue *svq); 118 void vhost_svq_push_elem(VhostShadowVirtqueue *svq, 120 int vhost_svq_add(VhostShadowVirtqueue *svq, const struct iovec *out_sg, 123 size_t vhost_svq_poll(VhostShadowVirtqueue *svq, size_t num); 125 void vhost_svq_set_svq_kick_fd(VhostShadowVirtqueue *svq, int svq_kick_fd); 126 void vhost_svq_set_svq_call_fd(VhostShadowVirtqueue *svq, int call_fd); 127 void vhost_svq_get_vring_addr(const VhostShadowVirtqueue *svq, 129 size_t vhost_svq_driver_area_size(const VhostShadowVirtqueue *svq); 130 size_t vhost_svq_device_area_size(const VhostShadowVirtqueue *svq); [all …]
|
H A D | vhost-vdpa.c | 587 VhostShadowVirtqueue *svq; in vhost_vdpa_init_svq() local 589 svq = vhost_svq_new(v->shadow_vq_ops, v->shadow_vq_ops_opaque); in vhost_vdpa_init_svq() 590 g_ptr_array_add(shadow_vqs, svq); in vhost_vdpa_init_svq() 1050 VhostShadowVirtqueue *svq, unsigned idx, in vhost_vdpa_svq_set_fds() argument 1056 const EventNotifier *event_notifier = &svq->hdev_kick; in vhost_vdpa_svq_set_fds() 1059 r = event_notifier_init(&svq->hdev_kick, 0); in vhost_vdpa_svq_set_fds() 1065 r = event_notifier_init(&svq->hdev_call, 0); in vhost_vdpa_svq_set_fds() 1078 event_notifier = &svq->hdev_call; in vhost_vdpa_svq_set_fds() 1089 event_notifier_set_handler(&svq->hdev_call, NULL); in vhost_vdpa_svq_set_fds() 1092 event_notifier_cleanup(&svq->hdev_kick); in vhost_vdpa_svq_set_fds() [all …]
|
H A D | virtio-balloon.c | 248 virtqueue_push(s->svq, s->stats_vq_elem, 0); in balloon_stats_poll_cb() 249 virtio_notify(vdev, s->svq); in balloon_stats_poll_cb() 894 s->svq = virtio_add_queue(vdev, 128, virtio_balloon_receive_stats); in virtio_balloon_device_realize() 931 virtio_delete_queue(s->svq); in virtio_balloon_device_unrealize() 950 virtqueue_unpop(s->svq, s->stats_vq_elem, 0); in virtio_balloon_device_reset() 963 (status & VIRTIO_CONFIG_S_DRIVER_OK) && virtqueue_rewind(s->svq, 1)) { in virtio_balloon_set_status() 966 virtio_balloon_receive_stats(vdev, s->svq); in virtio_balloon_set_status()
|
H A D | trace-events | 61 …base(void *dev, unsigned int index, unsigned int num, bool svq) "dev: %p index: %u num: %u svq: %d" 62 …base(void *dev, unsigned int index, unsigned int num, bool svq) "dev: %p index: %u num: %u svq: %d"
|
/openbmc/linux/drivers/vhost/ |
H A D | scsi.c | 214 struct vhost_scsi_virtqueue *svq; member 283 struct vhost_scsi_virtqueue *svq; in vhost_scsi_get_inflight() local 285 svq = container_of(vq, struct vhost_scsi_virtqueue, vq); in vhost_scsi_get_inflight() 286 inflight = &svq->inflights[svq->inflight_idx]; in vhost_scsi_get_inflight() 330 struct vhost_scsi_virtqueue *svq = container_of(tv_cmd->tvc_vq, in vhost_scsi_release_cmd_res() local 349 sbitmap_clear_bit(&svq->scsi_tags, se_cmd->map_tag); in vhost_scsi_release_cmd_res() 366 struct vhost_virtqueue *vq = &tmf->svq->vq; in vhost_scsi_release_cmd() 372 struct vhost_scsi_virtqueue *svq = container_of(cmd->tvc_vq, in vhost_scsi_release_cmd() local 375 llist_add(&cmd->tvc_completion_list, &svq->completion_list); in vhost_scsi_release_cmd() 376 vhost_vq_work_queue(&svq->vq, &svq->completion_work); in vhost_scsi_release_cmd() [all …]
|
/openbmc/linux/drivers/rpmsg/ |
H A D | virtio_rpmsg_bus.c | 58 struct virtqueue *rvq, *svq; member 456 ret = virtqueue_get_buf(vrp->svq, &len); in get_a_tx_buf() 487 virtqueue_enable_cb(vrp->svq); in rpmsg_upref_sleepers() 514 virtqueue_disable_cb(vrp->svq); in rpmsg_downref_sleepers() 633 err = virtqueue_add_outbuf(vrp->svq, &sg, 1, msg, GFP_KERNEL); in rpmsg_send_offchannel_raw() 645 virtqueue_kick(vrp->svq); in rpmsg_send_offchannel_raw() 816 static void rpmsg_xmit_done(struct virtqueue *svq) in rpmsg_xmit_done() argument 818 struct virtproc_info *vrp = svq->vdev->priv; in rpmsg_xmit_done() 820 dev_dbg(&svq->vdev->dev, "%s\n", __func__); in rpmsg_xmit_done() 899 vrp->svq = vqs[1]; in rpmsg_probe() [all …]
|
/openbmc/qemu/net/ |
H A D | vhost-vdpa.c | 167 error_setg(errp, "vdpa svq does not work with features 0x%" PRIx64, in vhost_vdpa_net_valid_svq_features() 319 /* We are only called on the first data vqs and only if x-svq is not set */ in vhost_vdpa_net_log_global_enable() 648 VhostShadowVirtqueue *svq = g_ptr_array_index(s->vhost_vdpa.shadow_vqs, 0); in vhost_vdpa_net_cvq_add() 651 r = vhost_svq_add(svq, out_sg, out_num, in_sg, in_num, NULL); in vhost_vdpa_net_cvq_add() 670 VhostShadowVirtqueue *svq = g_ptr_array_index(s->vhost_vdpa.shadow_vqs, 0); in vhost_vdpa_net_load_cursor_reset() 671 return vhost_svq_poll(svq, cmds_in_flight); in vhost_vdpa_net_load_cursor_reset() 726 VhostShadowVirtqueue *svq = g_ptr_array_index(s->vhost_vdpa.shadow_vqs, 0); in vhost_vdpa_net_load_cmd() 731 if (vhost_svq_available_slots(svq) < 2 || in vhost_vdpa_net_load_cmd() 1481 static int vhost_vdpa_net_handle_ctrl_avail(VhostShadowVirtqueue *svq, in vhost_vdpa_net_handle_ctrl_avail() 1560 virtio_net_handle_ctrl_iov(svq in vhost_vdpa_net_handle_ctrl_avail() 643 VhostShadowVirtqueue *svq = g_ptr_array_index(s->vhost_vdpa.shadow_vqs, 0); vhost_vdpa_net_cvq_add() local 665 VhostShadowVirtqueue *svq = g_ptr_array_index(s->vhost_vdpa.shadow_vqs, 0); vhost_vdpa_net_svq_poll() local 721 VhostShadowVirtqueue *svq = g_ptr_array_index(s->vhost_vdpa.shadow_vqs, 0); vhost_vdpa_net_load_cmd() local 1476 vhost_vdpa_net_handle_ctrl_avail(VhostShadowVirtqueue * svq,VirtQueueElement * elem,void * opaque) vhost_vdpa_net_handle_ctrl_avail() argument 1678 net_vhost_vdpa_init(NetClientState * peer,const char * device,const char * name,int vdpa_device_fd,int queue_pair_index,int nvqs,bool is_datapath,bool svq,struct vhost_vdpa_iova_range iova_range,uint64_t features,VhostVDPAShared * shared,Error ** errp) net_vhost_vdpa_init() argument [all...] |
/openbmc/qemu/include/hw/virtio/ |
H A D | virtio-balloon.h | 45 VirtQueue *ivq, *dvq, *svq, *free_page_vq, *reporting_vq; member
|
/openbmc/qemu/qapi/ |
H A D | net.json | 513 # @x-svq: Start device with (experimental) shadow virtqueue. (Since 518 # @unstable: Member @x-svq is experimental. 527 '*x-svq': {'type': 'bool', 'features' : [ 'unstable'] } } }
|