Lines Matching refs:vdev

63 	if (vq->vdev->negotiated_features & (1ULL << VIRTIO_RING_F_EVENT_IDX)) {  in virtio_init_vring()
105 vq->vdev = dev; in virtio_init_queue()
229 virtio_dev_construct(struct virtio_dev *vdev, const char *name, in virtio_dev_construct() argument
234 vdev->name = strdup(name); in virtio_dev_construct()
235 if (vdev->name == NULL) { in virtio_dev_construct()
239 rc = pthread_mutex_init(&vdev->mutex, NULL); in virtio_dev_construct()
241 free(vdev->name); in virtio_dev_construct()
245 vdev->backend_ops = ops; in virtio_dev_construct()
246 vdev->ctx = ctx; in virtio_dev_construct()
274 virtio_dev_start(struct virtio_dev *vdev, uint16_t max_queues, uint16_t fixed_queue_num) in virtio_dev_start() argument
278 ret = virtio_alloc_queues(vdev, max_queues, fixed_queue_num); in virtio_dev_start()
283 virtio_dev_set_status(vdev, VIRTIO_CONFIG_S_DRIVER_OK); in virtio_dev_start()
284 if (!(virtio_dev_get_status(vdev) & VIRTIO_CONFIG_S_DRIVER_OK)) { in virtio_dev_start()
431 if (vq->vdev->negotiated_features & (1ULL << VIRTIO_RING_F_EVENT_IDX)) { in virtqueue_req_flush()
446 virtio_dev_backend_ops(vq->vdev)->notify_queue(vq->vdev, vq); in virtqueue_req_flush()
496 if (!vq->vdev->is_hw) { in virtqueue_req_add_iovs()
547 virtio_dev_acquire_queue(struct virtio_dev *vdev, uint16_t index) in virtio_dev_acquire_queue() argument
551 if (index >= vdev->max_queues) { in virtio_dev_acquire_queue()
553 index, vdev->max_queues); in virtio_dev_acquire_queue()
557 pthread_mutex_lock(&vdev->mutex); in virtio_dev_acquire_queue()
558 vq = vdev->vqs[index]; in virtio_dev_acquire_queue()
560 pthread_mutex_unlock(&vdev->mutex); in virtio_dev_acquire_queue()
565 pthread_mutex_unlock(&vdev->mutex); in virtio_dev_acquire_queue()
570 virtio_dev_find_and_acquire_queue(struct virtio_dev *vdev, uint16_t start_index) in virtio_dev_find_and_acquire_queue() argument
575 pthread_mutex_lock(&vdev->mutex); in virtio_dev_find_and_acquire_queue()
576 for (i = start_index; i < vdev->max_queues; ++i) { in virtio_dev_find_and_acquire_queue()
577 vq = vdev->vqs[i]; in virtio_dev_find_and_acquire_queue()
583 if (vq == NULL || i == vdev->max_queues) { in virtio_dev_find_and_acquire_queue()
585 pthread_mutex_unlock(&vdev->mutex); in virtio_dev_find_and_acquire_queue()
590 pthread_mutex_unlock(&vdev->mutex); in virtio_dev_find_and_acquire_queue()
595 virtio_dev_queue_get_thread(struct virtio_dev *vdev, uint16_t index) in virtio_dev_queue_get_thread() argument
599 if (index >= vdev->max_queues) { in virtio_dev_queue_get_thread()
601 index, vdev->max_queues); in virtio_dev_queue_get_thread()
605 pthread_mutex_lock(&vdev->mutex); in virtio_dev_queue_get_thread()
606 thread = vdev->vqs[index]->owner_thread; in virtio_dev_queue_get_thread()
607 pthread_mutex_unlock(&vdev->mutex); in virtio_dev_queue_get_thread()
613 virtio_dev_queue_is_acquired(struct virtio_dev *vdev, uint16_t index) in virtio_dev_queue_is_acquired() argument
615 return virtio_dev_queue_get_thread(vdev, index) != NULL; in virtio_dev_queue_is_acquired()
619 virtio_dev_release_queue(struct virtio_dev *vdev, uint16_t index) in virtio_dev_release_queue() argument
623 if (index >= vdev->max_queues) { in virtio_dev_release_queue()
625 index, vdev->max_queues); in virtio_dev_release_queue()
629 pthread_mutex_lock(&vdev->mutex); in virtio_dev_release_queue()
630 vq = vdev->vqs[index]; in virtio_dev_release_queue()
633 pthread_mutex_unlock(&vdev->mutex); in virtio_dev_release_queue()
639 pthread_mutex_unlock(&vdev->mutex); in virtio_dev_release_queue()