Lines Matching refs:virtio_dev

26     struct virtio_device *virtio_dev = &virtio_blk_dev->virtio_dev;  in virtio_blk_rw()  local
29 rt_base_t level = rt_spin_lock_irqsave(&virtio_dev->spinlock); in virtio_blk_rw()
33 while (virtio_alloc_desc_chain(virtio_dev, 0, 3, idx)) in virtio_blk_rw()
36 rt_spin_unlock_irqrestore(&virtio_dev->spinlock, level); in virtio_blk_rw()
41 level = rt_spin_lock_irqsave(&virtio_dev->spinlock); in virtio_blk_rw()
53 virtio_fill_desc(virtio_dev, VIRTIO_BLK_QUEUE, idx[0], in virtio_blk_rw()
56 virtio_fill_desc(virtio_dev, VIRTIO_BLK_QUEUE, idx[1], in virtio_blk_rw()
59 virtio_fill_desc(virtio_dev, VIRTIO_BLK_QUEUE, idx[2], in virtio_blk_rw()
62 virtio_submit_chain(virtio_dev, VIRTIO_BLK_QUEUE, idx[0]); in virtio_blk_rw()
64 virtio_queue_notify(virtio_dev, VIRTIO_BLK_QUEUE); in virtio_blk_rw()
70 rt_spin_unlock_irqrestore(&virtio_dev->spinlock, level); in virtio_blk_rw()
75 level = rt_spin_lock_irqsave(&virtio_dev->spinlock); in virtio_blk_rw()
79 virtio_free_desc_chain(virtio_dev, VIRTIO_BLK_QUEUE, idx[0]); in virtio_blk_rw()
82 rt_spin_unlock_irqrestore(&virtio_dev->spinlock, level); in virtio_blk_rw()
146 struct virtio_device *virtio_dev = &virtio_blk_dev->virtio_dev; in virtio_blk_isr() local
147 struct virtq *queue = &virtio_dev->queues[VIRTIO_BLK_QUEUE]; in virtio_blk_isr()
150 rt_base_t level = rt_spin_lock_irqsave(&virtio_dev->spinlock); in virtio_blk_isr()
153 virtio_interrupt_ack(virtio_dev); in virtio_blk_isr()
171 rt_spin_unlock_irqrestore(&virtio_dev->spinlock, level); in virtio_blk_isr()
179 struct virtio_device *virtio_dev; in rt_virtio_blk_init() local
189 virtio_dev = &virtio_blk_dev->virtio_dev; in rt_virtio_blk_init()
190 virtio_dev->irq = irq; in rt_virtio_blk_init()
191 virtio_dev->mmio_base = mmio_base; in rt_virtio_blk_init()
193 virtio_blk_dev->config = (struct virtio_blk_config *)virtio_dev->mmio_config->config; in rt_virtio_blk_init()
196 rt_spin_lock_init(&virtio_dev->spinlock); in rt_virtio_blk_init()
199 virtio_reset_device(virtio_dev); in rt_virtio_blk_init()
200 virtio_status_acknowledge_driver(virtio_dev); in rt_virtio_blk_init()
203 virtio_dev->mmio_config->driver_features = virtio_dev->mmio_config->device_features & ~( in rt_virtio_blk_init()
213 virtio_status_driver_ok(virtio_dev); in rt_virtio_blk_init()
215 if (virtio_queues_alloc(virtio_dev, 1) != RT_EOK) in rt_virtio_blk_init()
221 if (virtio_queue_init(virtio_dev, 0, VIRTIO_BLK_QUEUE_RING_SIZE) != RT_EOK) in rt_virtio_blk_init()
249 virtio_queues_free(virtio_dev); in rt_virtio_blk_init()