Changeset b8ef198b in mainline for uspace/lib/virtio/virtio.c
- Timestamp:
- 2018-06-20T18:58:44Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 9afd2a8
- Parents:
- 3d135e9
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/virtio/virtio.c
r3d135e9 rb8ef198b 71 71 } 72 72 73 bool virtio_virtq_consume_used(virtio_dev_t *vdev, uint16_t num, 74 uint16_t *descno, uint32_t *len) 75 { 76 virtq_t *q = &vdev->queues[num]; 77 78 uint16_t last_idx = q->used_last_idx % q->queue_size; 79 if (last_idx == (pio_read_le16(&q->used->idx) % q->queue_size)) 80 return false; 81 82 *descno = (uint16_t) pio_read_le32(&q->used->ring[last_idx].id); 83 *len = pio_read_le32(&q->used->ring[last_idx].len); 84 85 q->used_last_idx++; 86 87 return true; 88 } 89 73 90 errno_t virtio_virtq_setup(virtio_dev_t *vdev, uint16_t num, uint16_t size) 74 91 { … … 120 137 q->avail = q->virt + avail_offset; 121 138 q->used = q->virt + used_offset; 139 q->used_last_idx = 0; 122 140 123 141 memset(q->virt, 0, q->size);
Note:
See TracChangeset
for help on using the changeset viewer.