MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / virtio_submit_chain

Function virtio_submit_chain

components/drivers/virtio/virtio.c:183–200  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

181}
182
183void virtio_submit_chain(struct virtio_device *dev, rt_uint32_t queue_index, rt_uint16_t desc_index)
184{
185 rt_size_t ring_size;
186 struct virtq *queue;
187
188 _virtio_dev_check(dev);
189
190 queue = &dev->queues[queue_index];
191 ring_size = queue->num;
192
193 /* Tell the device the first index in our chain of descriptors */
194 queue->avail->ring[queue->avail->idx % ring_size] = desc_index;
195 rt_hw_dsb();
196
197 /* Tell the device another avail ring entry is available */
198 queue->avail->idx++;
199 rt_hw_dsb();
200}
201
202rt_uint16_t virtio_alloc_desc(struct virtio_device *dev, rt_uint32_t queue_index)
203{

Callers 12

virtio_console_send_ctrlFunction · 0.85
virtio_console_port_readFunction · 0.85
virtio_console_isrFunction · 0.85
virtio_blk_rwFunction · 0.85
virtio_input_initFunction · 0.85
virtio_input_controlFunction · 0.85
virtio_input_isrFunction · 0.85
virtio_net_txFunction · 0.85
virtio_net_rxFunction · 0.85

Calls 2

_virtio_dev_checkFunction · 0.85
rt_hw_dsbFunction · 0.50

Tested by

no test coverage detected