/u-boot/drivers/virtio/ |
H A D | virtio_ring.c | 44 static unsigned int virtqueue_attach_desc(struct virtqueue *vq, unsigned int i, argument 47 struct vring_desc_shadow *desc_shadow = &vq->vring_desc_shadow[i]; 48 struct vring_desc *desc = &vq->vring.desc[i]; 51 if (IS_ENABLED(CONFIG_BOUNCE_BUFFER) && vq->vring.bouncebufs) { 52 struct bounce_buffer *bb = &vq->vring.bouncebufs[i]; 66 vq->vdev->name, sg->length); 80 desc->addr = cpu_to_virtio64(vq->vdev, desc_shadow->addr); 81 desc->len = cpu_to_virtio32(vq->vdev, desc_shadow->len); 82 desc->flags = cpu_to_virtio16(vq->vdev, desc_shadow->flags); 83 desc->next = cpu_to_virtio16(vq 88 virtqueue_detach_desc(struct virtqueue *vq, unsigned int idx) argument 101 virtqueue_add(struct virtqueue *vq, struct virtio_sg *sgs[], unsigned int out_sgs, unsigned int in_sgs) argument 176 virtqueue_kick_prepare(struct virtqueue *vq) argument 202 virtqueue_kick(struct virtqueue *vq) argument 208 detach_buf(struct virtqueue *vq, unsigned int head) argument 232 more_used(const struct virtqueue *vq) argument 238 virtqueue_get_buf(struct virtqueue *vq, unsigned int *len) argument 292 struct virtqueue *vq; local 340 struct virtqueue *vq; local 396 vring_del_virtqueue(struct virtqueue *vq) argument 406 virtqueue_get_vring_size(struct virtqueue *vq) argument 411 virtqueue_get_desc_addr(struct virtqueue *vq) argument 416 virtqueue_get_avail_addr(struct virtqueue *vq) argument 422 virtqueue_get_used_addr(struct virtqueue *vq) argument 428 virtqueue_poll(struct virtqueue *vq, u16 last_used_idx) argument 435 virtqueue_dump(struct virtqueue *vq) argument [all...] |
H A D | virtio_sandbox.c | 94 struct virtqueue *vq; local 99 vq = vring_create_virtqueue(index, 4, 4096, udev); 100 if (!vq) { 105 addr = virtqueue_get_desc_addr(vq); 108 addr = virtqueue_get_avail_addr(vq); 111 addr = virtqueue_get_used_addr(vq); 114 return vq; 120 static void virtio_sandbox_del_vq(struct virtqueue *vq) argument 122 vring_del_virtqueue(vq); 128 struct virtqueue *vq, * local 152 virtio_sandbox_notify(struct udevice *udev, struct virtqueue *vq) argument [all...] |
H A D | virtio_mmio.c | 195 struct virtqueue *vq; local 216 vq = vring_create_virtqueue(index, num, VIRTIO_MMIO_VRING_ALIGN, udev); 217 if (!vq) { 223 writel(virtqueue_get_vring_size(vq), 226 u64 q_pfn = virtqueue_get_desc_addr(vq) >> PAGE_SHIFT; 245 addr = virtqueue_get_desc_addr(vq); 250 addr = virtqueue_get_avail_addr(vq); 255 addr = virtqueue_get_used_addr(vq); 263 return vq; 266 vring_del_virtqueue(vq); 280 virtio_mmio_del_vq(struct virtqueue *vq) argument 300 struct virtqueue *vq, *n; local 324 virtio_mmio_notify(struct udevice *udev, struct virtqueue *vq) argument [all...] |
H A D | virtio_blk.c | 19 struct virtqueue *vq; member in struct:virtio_blk_priv 47 log_debug("dev=%s, active=%d, priv=%p, priv->vq=%p\n", dev->name, 48 device_active(dev), priv, priv->vq); 50 ret = virtqueue_add(priv->vq, sgs, num_out, num_in); 54 virtqueue_kick(priv->vq); 57 while (!virtqueue_get_buf(priv->vq, NULL)) 120 ret = virtio_find_vqs(dev, 1, &priv->vq);
|
H A D | virtio_pci_legacy.c | 197 struct virtqueue *vq; local 212 vq = vring_create_virtqueue(index, num, VIRTIO_PCI_VRING_ALIGN, udev); 213 if (!vq) { 219 iowrite32(virtqueue_get_desc_addr(vq) >> VIRTIO_PCI_QUEUE_ADDR_SHIFT, 222 return vq; 228 static void virtio_pci_del_vq(struct virtqueue *vq) argument 230 struct virtio_pci_priv *priv = dev_get_priv(vq->vdev); 231 unsigned int index = vq->index; 238 vring_del_virtqueue(vq); 244 struct virtqueue *vq, * local 268 virtio_pci_notify(struct udevice *udev, struct virtqueue *vq) argument [all...] |
H A D | virtio_pci_modern.c | 256 struct virtqueue *vq; local 278 vq = vring_create_virtqueue(index, num, VIRTIO_PCI_VRING_ALIGN, udev); 279 if (!vq) { 285 iowrite16(virtqueue_get_vring_size(vq), &cfg->queue_size); 287 addr = virtqueue_get_desc_addr(vq); 291 addr = virtqueue_get_avail_addr(vq); 295 addr = virtqueue_get_used_addr(vq); 301 return vq; 307 static void virtio_pci_del_vq(struct virtqueue *vq) argument 309 struct virtio_pci_priv *priv = dev_get_priv(vq 323 struct virtqueue *vq, *n; local 366 virtio_pci_notify(struct udevice *udev, struct virtqueue *vq) argument [all...] |
H A D | virtio-uclass.c | 131 int virtio_notify(struct udevice *vdev, struct virtqueue *vq) argument 137 return ops->notify(vdev->parent, vq);
|
/u-boot/test/fuzz/ |
H A D | virtio.c | 17 struct virtqueue *vq; local 55 if (virtio_find_vqs(dev, 1, &vq)) 57 if (virtqueue_add(vq, sgs, 0, 1)) 60 memcpy(vq->vring.desc, data, desc_size); 61 memcpy(vq->vring.avail, data + desc_size, avail_size); 62 memcpy(vq->vring.used, data + desc_size + avail_size, used_size); 64 if (vq->vring.used->idx == 0) 65 vq->vring.used->idx = 1; 66 virtqueue_get_buf(vq, &len);
|
/u-boot/test/dm/ |
H A D | virtio_device.c | 133 struct virtqueue *vq; local 164 ut_assertok(virtio_find_vqs(dev, 1, &vq)); 165 ut_assertok(virtqueue_add(vq, sgs, 0, 1)); 166 vq->vring.used->idx = 1; 167 vq->vring.used->ring[0].id = 0; 168 vq->vring.used->ring[0].len = 0x53355885; 169 ut_asserteq_ptr(buffer, virtqueue_get_buf(vq, &len)); 174 ut_assertok(virtio_find_vqs(dev, 1, &vq)); 175 ut_assertok(virtqueue_add(vq, sgs, 0, 2)); 176 vq [all...] |
/u-boot/include/ |
H A D | virtio_ring.h | 184 * @vq: the struct virtqueue we're talking about 195 int virtqueue_add(struct virtqueue *vq, struct virtio_sg *sgs[], 201 * @vq: the struct virtqueue 209 void virtqueue_kick(struct virtqueue *vq); 214 * @vq: the struct virtqueue we're talking about 228 void *virtqueue_get_buf(struct virtqueue *vq, unsigned int *len); 253 * @vq: the struct virtqueue we're talking about 261 void vring_del_virtqueue(struct virtqueue *vq); 266 * @vq: the struct virtqueue containing the vring of interest 269 unsigned int virtqueue_get_vring_size(struct virtqueue *vq); [all...] |
H A D | virtio.h | 189 * @vq: virtqueue to process 192 int (*notify)(struct udevice *vdev, struct virtqueue *vq); 324 * @vq: virtqueue to process 327 int virtio_notify(struct udevice *vdev, struct virtqueue *vq);
|
H A D | remoteproc.h | 322 * @vq: the virtqueue of this vring 332 struct virtqueue *vq; member in struct:rproc_vring
|