/barrelfish-2018-10-04/lib/virtio/ |
H A D | virtqueue.c | 98 * \param vq virtqueue to enable the interrupts 104 static bool virtqueue_interrupt_enable(struct virtqueue *vq, argument 107 if (vq->flags & (1 << VIRTQUEUE_FLAG_EVENT_IDX)) { 108 uint16_t *used_event = vring_get_used_event(&vq->vring); 109 *used_event = vq->used_tail + num_desc; 111 vq->vring.avail->flags &= ~VIRTIO_RING_AVAIL_F_NO_INTERRUPT; 116 if (virtio_virtqueue_get_num_used(vq) > num_desc) { 126 * \param vq virtqueue of the vring to initialize 128 static void virtqueue_init_vring(struct virtqueue *vq) argument 130 struct vring *vr = &vq 162 virtqueue_init_indirect(struct virtqueue *vq, uint16_t size) argument 180 virtqueue_should_notify_host(struct virtqueue *vq) argument 214 virtio_virtqueue_alloc(struct virtqueue_setup *setup, struct virtqueue **vq) argument 328 struct virtqueue *vq; local 401 virtio_virtqueue_free(struct virtqueue *vq) argument 420 virtio_virtqueue_get_vring_paddr(struct virtqueue *vq) argument 432 virtio_virtqueue_get_vring_align(struct virtqueue *vq) argument 443 virtio_virtqueue_get_vring_cap(struct virtqueue *vq, struct capref *ret_cap) argument 460 virtio_virtqueue_has_buffers(struct virtqueue *vq) argument 476 virtio_virtqueue_buffer_vbase(struct virtqueue *vq) argument 495 virtio_virtqueue_get_num_desc(struct virtqueue *vq) argument 507 virtio_virtqueue_get_queue_index(struct virtqueue *vq) argument 520 virtio_virtqueue_is_empty(struct virtqueue *vq) argument 533 virtio_virtqueue_is_full(struct virtqueue *vq) argument 545 virtio_virtqueue_get_num_used(struct virtqueue *vq) argument 571 virtio_virtqueue_intr_filter(struct virtqueue *vq) argument 587 virtio_virtqueue_intr_handle(struct virtqueue *vq) argument 604 virtio_virtqueue_intr_enable(struct virtqueue *vq) argument 618 virtio_virtqueue_intr_postpone(struct virtqueue *vq, enum virtqueue_intr_postpone hint) argument 642 virtio_virtqueue_intr_disable(struct virtqueue *vq) argument 657 virtio_virtqueue_notify_host(struct virtqueue *vq) argument 811 virtqueue_update_available(struct virtqueue *vq, uint16_t idx) argument 841 virtqueue_enqueue_bufs(struct virtqueue *vq, uint16_t head, struct virtio_buffer_list *bl, uint16_t num_read, uint16_t num_write, uint16_t *ret_idx) argument 934 virtio_virtqueue_desc_enqueue(struct virtqueue *vq, struct virtio_buffer_list *bl, void *st, uint16_t num_wr, uint16_t num_rd) argument 979 virtqueue_free_desc_chain(struct virtqueue *vq, uint16_t desc_idx) argument 1023 virtio_virtqueue_desc_dequeue(struct virtqueue *vq, struct virtio_buffer_list **ret_bl, void **ret_st) argument 1091 virtio_virtqueue_poll(struct virtqueue *vq, struct virtio_buffer_list **ret_bl, void **ret_st, uint8_t handle_msg) argument 1128 virtio_virtqueue_get_buf_alloc(struct virtqueue *vq, struct virtio_buffer_allocator **alloc) argument [all...] |
H A D | virtqueue_host.c | 122 static inline struct virtio_host_buf *vqh_host_buf_alloc(struct virtqueue_host *vq) argument 124 return vqh_host_buf_deq(&vq->host_buffers); 126 static inline uint16_t vqh_host_buf_free_chain(struct virtqueue_host *vq, argument 129 return vqh_host_buf_enq_chain(&vq->host_buffers, buf); 134 static inline void vqh_host_buf_free(struct virtqueue_host *vq, 137 vqh_host_buf_enq(&vq->host_buffers, buf); 143 static errval_t virtio_vq_host_add_mem_range(struct virtqueue_host *vq, argument 146 if (vq->mem == NULL) { 147 vq->mem = meminfo; 151 struct vring_mem_info *prev, *current = vq 174 virtio_vq_host_guest2virt(struct virtqueue_host *vq, lpaddr_t guest_phys) argument 213 virtio_vq_host_alloc(struct virtqueue_host ***vq, struct virtqueue_setup *setup, uint16_t vq_num) argument 439 virtio_vq_host_free(struct virtqueue_host *vq) argument 458 virtio_vq_host_get_vring_paddr(struct virtqueue_host *vq) argument 470 virtio_vq_host_get_vring_align(struct virtqueue_host *vq) argument 481 virtio_vq_host_get_vring_cap(struct virtqueue_host *vq, struct capref *ret_cap) argument 497 virtio_vq_host_get_num_desc(struct virtqueue_host *vq) argument 509 virtio_vq_host_get_queue_index(struct virtqueue_host *vq) argument 522 virtio_vq_host_is_empty(struct virtqueue_host *vq) argument 534 virtio_vq_host_get_num_avail(struct virtqueue_host *vq) argument 559 virtio_vq_host_intr_send(struct virtqueue_host *vq) argument 668 virtqueue_update_used(struct virtqueue_host *vq, uint16_t idx, uint16_t length) argument 697 virtio_vq_host_desc_enqueue(struct virtqueue_host *vq, struct virtio_host_buf *buf, uint16_t idx) argument 729 virtio_vq_host_desc_dequeue(struct virtqueue_host *vq) argument 814 struct virtqueue_host *vq = vqh[i]; local [all...] |
H A D | device.c | 404 struct virtqueue *vq) 407 return dev->f->set_virtq(dev, vq); 430 vdev->vq = calloc(vq_num, sizeof(void *)); 431 if (vdev->vq == NULL) { 440 err = virtio_virtqueue_alloc(setup, &vdev->vq[i]); 443 virtio_virtqueue_free(vdev->vq[i]); 445 free(vdev->vq); 452 struct virtqueue *vq = vdev->vq[i]; local 454 err = virtio_guest_add_virtq(vq); 403 virtio_device_set_virtq(struct virtio_device *dev, struct virtqueue *vq) argument [all...] |
H A D | device.h | 54 struct virtqueue **vq; member in struct:virtio_device 68 errval_t (*set_virtq)(struct virtio_device *dev, struct virtqueue *vq);
|
/barrelfish-2018-10-04/include/virtio/ |
H A D | virtqueue_host.h | 46 errval_t virtio_vq_host_alloc(struct virtqueue_host ***vq, 70 * \param vq pointer to the virtqueue memory to be freed 74 errval_t virtio_vq_host_free(struct virtqueue_host *vq); 77 void *virtqueue_drain(struct virtqueue_host *vq, int *last); 78 int virtqueue_reinit(struct virtqueue_host *vq, uint16_t size); 90 * \param vq pointer to the virtqueue structure 94 lpaddr_t virtio_vq_host_get_vring_paddr(struct virtqueue_host *vq); 100 * \param vq pointer to the virtqueue structure 103 void virtio_vq_host_get_vring_cap(struct virtqueue_host *vq, 109 * \param vq pointe [all...] |
H A D | virtqueue.h | 95 * \param vq pointer where to store the new virtqueue pointer 100 struct virtqueue **vq); 107 * \param vq pointer where to store the new virtqueue pointer 113 struct virtqueue **vq); 118 * \param vq pointer to the virtqueue memory to be freed 122 errval_t virtio_virtqueue_free(struct virtqueue *vq); 125 void *virtqueue_drain(struct virtqueue *vq, int *last); 126 int virtqueue_reinit(struct virtqueue *vq, uint16_t size); 138 * \param vq pointer to the virtqueue structure 142 lpaddr_t virtio_virtqueue_get_vring_paddr(struct virtqueue *vq); [all...] |
H A D | virtio_guest.h | 32 errval_t (*add)(struct virtqueue *vq); 65 static inline errval_t virtio_guest_add_virtq(struct virtqueue *vq) argument 67 return vguest_chan_fn->add(vq);
|
H A D | virtio_host.h | 27 errval_t (*notify)(struct virtio_device *vq, uint16_t index);
|
H A D | virtio_device.h | 403 * \param vq the virtqueue to be added to the device 408 struct virtqueue *vq);
|
/barrelfish-2018-10-04/lib/virtio/guest/ |
H A D | channel_flounder.c | 84 static errval_t add_vring(struct virtqueue *vq) argument 94 virtio_virtqueue_get_vring_cap(vq, &frame); 96 uint16_t id = virtio_virtqueue_get_queue_index(vq); 98 uint8_t buffers = virtio_virtqueue_has_buffers(vq); 100 uint16_t ndesc = virtio_virtqueue_get_num_desc(vq);
|
/barrelfish-2018-10-04/usr/drivers/virtio/block/ |
H A D | device.c | 53 struct virtqueue *vq = dev->blk.vq; local 63 again = !virtio_virtqueue_intr_enable(vq); 65 virtio_virtqueue_intr_disable(vq); 112 err = virtio_virtqueue_get_buf_alloc(blk->blk.vq, &blk->alloc);
|
H A D | request.c | 68 uint16_t ndesc = virtio_virtqueue_get_num_desc(dev->blk.vq); 185 struct virtqueue *vq = dev->blk.vq; local 224 return virtio_virtqueue_desc_enqueue(vq, &req->bl, req, num_rd, num_wr); 243 struct virtqueue *vq = dev->blk.vq; local 246 if (!virtio_virtqueue_is_empty(vq)) { 258 virtio_virtqueue_notify_host(vq); 262 err = virtio_virtqueue_poll(vq, &bl, &ret_req, 1);
|
/barrelfish-2018-10-04/lib/libc/quad/ |
H A D | qdivrem.c | 83 __qdivrem(uq, vq, arq) 84 u_quad_t uq, vq, *arq; 96 if (vq == 0) { 105 if (uq < vq) { 133 tmp.uq = vq;
|
/barrelfish-2018-10-04/include/virtio/devices/ |
H A D | virtio_block.h | 188 struct virtqueue *vq; member in struct:virtio_device_blk 329 struct virqueue_host *vq; ///< the single virtqueue member in struct:virtio_host_blk
|
/barrelfish-2018-10-04/lib/virtio/devices/ |
H A D | virtio_block.c | 152 dev->vq = virtio_device_get_virtq(dev->vdev, 0); 153 assert(dev->vq);
|
/barrelfish-2018-10-04/lib/virtio/backends/ |
H A D | virtio_device_mmio.c | 241 struct virtqueue *vq) 245 uint16_t queue_index = virtio_virtqueue_get_queue_index(vq); 267 uint16_t size = virtio_virtqueue_get_num_desc(vq); 270 lpaddr_t paddr = virtio_virtqueue_get_vring_paddr(vq); 271 lpaddr_t align = virtio_virtqueue_get_vring_align(vq); 240 device_set_virtq(struct virtio_device *dev, struct virtqueue *vq) argument
|