Changeset c1ba24a in mainline for uspace/lib/virtio/virtio.c
- Timestamp:
- 2018-05-23T20:38:54Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5dddac1
- Parents:
- 9364ced
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/virtio/virtio.c
r9364ced rc1ba24a 37 37 38 38 #include <ddf/log.h> 39 #include <libarch/barrier.h> 40 41 void virtio_virtq_set_desc(virtio_dev_t *vdev, uint16_t num, uint16_t descno, 42 uint64_t addr, uint32_t len, uint16_t flags, uint16_t next) 43 { 44 virtq_desc_t *d = &vdev->queues[num].desc[descno]; 45 pio_write_64(&d->addr, addr); 46 pio_write_32(&d->len, len); 47 pio_write_16(&d->flags, flags); 48 pio_write_16(&d->next, next); 49 } 50 51 void virtio_virtq_produce_available(virtio_dev_t *vdev, uint16_t num, 52 uint16_t descno) 53 { 54 virtq_t *q = &vdev->queues[num]; 55 56 uint16_t idx = pio_read_16(&q->avail->idx); 57 pio_write_16(&q->avail->ring[idx], descno); 58 write_barrier(); 59 pio_write_16(&q->avail->idx, (idx + 1) % q->queue_size); 60 write_barrier(); 61 pio_write_16(&q->notify, num); 62 } 39 63 40 64 errno_t virtio_virtq_setup(virtio_dev_t *vdev, uint16_t num, uint16_t size)
Note:
See TracChangeset
for help on using the changeset viewer.