Lines Matching full:b
24 vhost_user_backend_dev_init(VhostUserBackend *b, VirtIODevice *vdev, in vhost_user_backend_dev_init() argument
29 assert(!b->vdev && vdev); in vhost_user_backend_dev_init()
31 if (!vhost_user_init(&b->vhost_user, &b->chr, errp)) { in vhost_user_backend_dev_init()
35 b->vdev = vdev; in vhost_user_backend_dev_init()
36 b->dev.nvqs = nvqs; in vhost_user_backend_dev_init()
37 b->dev.vqs = g_new0(struct vhost_virtqueue, nvqs); in vhost_user_backend_dev_init()
39 ret = vhost_dev_init(&b->dev, &b->vhost_user, VHOST_BACKEND_TYPE_USER, 0, in vhost_user_backend_dev_init()
49 vhost_user_backend_start(VhostUserBackend *b) in vhost_user_backend_start() argument
51 BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(b->vdev))); in vhost_user_backend_start()
55 if (b->started) { in vhost_user_backend_start()
64 ret = vhost_dev_enable_notifiers(&b->dev, b->vdev); in vhost_user_backend_start()
69 ret = k->set_guest_notifiers(qbus->parent, b->dev.nvqs, true); in vhost_user_backend_start()
75 b->dev.acked_features = b->vdev->guest_features; in vhost_user_backend_start()
76 ret = vhost_dev_start(&b->dev, b->vdev, true); in vhost_user_backend_start()
86 for (i = 0; i < b->dev.nvqs; i++) { in vhost_user_backend_start()
87 vhost_virtqueue_mask(&b->dev, b->vdev, in vhost_user_backend_start()
88 b->dev.vq_index + i, false); in vhost_user_backend_start()
91 b->started = true; in vhost_user_backend_start()
95 k->set_guest_notifiers(qbus->parent, b->dev.nvqs, false); in vhost_user_backend_start()
97 vhost_dev_disable_notifiers(&b->dev, b->vdev); in vhost_user_backend_start()
101 vhost_user_backend_stop(VhostUserBackend *b) in vhost_user_backend_stop() argument
103 BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(b->vdev))); in vhost_user_backend_stop()
107 if (!b->started) { in vhost_user_backend_stop()
111 ret = vhost_dev_stop(&b->dev, b->vdev, true); in vhost_user_backend_stop()
114 k->set_guest_notifiers(qbus->parent, b->dev.nvqs, false) < 0) { in vhost_user_backend_stop()
119 vhost_dev_disable_notifiers(&b->dev, b->vdev); in vhost_user_backend_stop()
120 b->started = false; in vhost_user_backend_stop()
126 VhostUserBackend *b = VHOST_USER_BACKEND(obj); in set_chardev() local
129 if (b->completed) { in set_chardev()
134 g_free(b->chr_name); in set_chardev()
135 b->chr_name = g_strdup(value); in set_chardev()
137 chr = qemu_chr_find(b->chr_name); in set_chardev()
140 "Chardev '%s' not found", b->chr_name); in set_chardev()
144 if (!qemu_chr_fe_init(&b->chr, chr, errp)) { in set_chardev()
148 b->completed = true; in set_chardev()
154 VhostUserBackend *b = VHOST_USER_BACKEND(obj); in get_chardev() local
155 Chardev *chr = qemu_chr_fe_get_driver(&b->chr); in get_chardev()
171 VhostUserBackend *b = VHOST_USER_BACKEND(obj); in vhost_user_backend_finalize() local
173 g_free(b->dev.vqs); in vhost_user_backend_finalize()
174 g_free(b->chr_name); in vhost_user_backend_finalize()
176 vhost_user_cleanup(&b->vhost_user); in vhost_user_backend_finalize()
177 qemu_chr_fe_deinit(&b->chr, true); in vhost_user_backend_finalize()