|
iPXE
|
#include "etherboot.h"#include "ipxe/io.h"#include "ipxe/virtio-pci.h"#include "ipxe/virtio-ring.h"Go to the source code of this file.
Macros | |
| #define | BUG() |
| #define | BUG_ON(condition) do { if (condition) BUG(); } while (0) |
Functions | |
| FILE_LICENCE (GPL2_OR_LATER) | |
| void | vring_detach (struct vring_virtqueue *vq, unsigned int head) |
| void * | vring_get_buf (struct vring_virtqueue *vq, unsigned int *len) |
| void | vring_add_buf (struct vring_virtqueue *vq, struct vring_list list[], unsigned int out, unsigned int in, void *opaque, int num_added) |
| void | vring_kick (struct virtio_pci_modern_device *vdev, unsigned int ioaddr, struct vring_virtqueue *vq, int num_added) |
| #define BUG | ( | ) |
Definition at line 24 of file virtio-ring.c.
Definition at line 29 of file virtio-ring.c.
| FILE_LICENCE | ( | GPL2_OR_LATER | ) |
| void vring_detach | ( | struct vring_virtqueue * | vq, |
| unsigned int | head | ||
| ) |
Definition at line 37 of file virtio-ring.c.
References vring::desc, vring_desc::flags, vring_virtqueue::free_head, head, vring_desc::next, vring_virtqueue::vring, VRING_DESC_F_NEXT, and wmb().
Referenced by vring_get_buf().
| void* vring_get_buf | ( | struct vring_virtqueue * | vq, |
| unsigned int * | len | ||
| ) |
Definition at line 62 of file virtio-ring.c.
References BUG_ON, id, vring_used_elem::id, vring_virtqueue::last_used_idx, vring_used_elem::len, len, NULL, vring::num, vring_used::ring, vring::used, vring_virtqueue::vdata, vring_virtqueue::vring, vring_detach(), vring_more_used(), and wmb().
Referenced by virtnet_process_rx_packets(), and virtnet_process_tx_packets().
| void vring_add_buf | ( | struct vring_virtqueue * | vq, |
| struct vring_list | list[], | ||
| unsigned int | out, | ||
| unsigned int | in, | ||
| void * | opaque, | ||
| int | num_added | ||
| ) |
Definition at line 86 of file virtio-ring.c.
References vring_desc::addr, vring_list::addr, vring::avail, BUG_ON, vring::desc, vring_desc::flags, vring_virtqueue::free_head, head, vring_avail::idx, in, vring_desc::len, vring_list::length, vring_desc::next, vring::num, out, vring_avail::ring, vring_virtqueue::vdata, vring_virtqueue::vring, VRING_DESC_F_NEXT, VRING_DESC_F_WRITE, and wmb().
Referenced by virtnet_enqueue_iob().
| void vring_kick | ( | struct virtio_pci_modern_device * | vdev, |
| unsigned int | ioaddr, | ||
| struct vring_virtqueue * | vq, | ||
| int | num_added | ||
| ) |
Definition at line 125 of file virtio-ring.c.
References vring::avail, vring_used::flags, vring_avail::idx, ioaddr, mb(), vring_virtqueue::queue_index, vring::used, vp_notify(), vpm_notify(), vring_virtqueue::vring, VRING_USED_F_NO_NOTIFY, and wmb().
Referenced by virtnet_enqueue_iob().
1.8.15