|
iPXE
|
Go to the source code of this file.
Data Structures | |
| struct | vring_desc |
| struct | vring_avail |
| struct | vring_used_elem |
| struct | vring_used |
| struct | vring |
| struct | vring_virtqueue |
| struct | vring_list |
Macros | |
| #define | VIRTIO_CONFIG_S_ACKNOWLEDGE 1 |
| #define | VIRTIO_CONFIG_S_DRIVER 2 |
| #define | VIRTIO_CONFIG_S_DRIVER_OK 4 |
| #define | VIRTIO_CONFIG_S_FEATURES_OK 8 |
| #define | VIRTIO_CONFIG_S_FAILED 0x80 |
| #define | VIRTIO_F_ANY_LAYOUT 27 |
| #define | VIRTIO_F_VERSION_1 32 |
| #define | VIRTIO_F_IOMMU_PLATFORM 33 |
| #define | MAX_QUEUE_NUM (256) |
| #define | VRING_DESC_F_NEXT 1 |
| #define | VRING_DESC_F_WRITE 2 |
| #define | VRING_AVAIL_F_NO_INTERRUPT 1 |
| #define | VRING_USED_F_NO_NOTIFY 1 |
| #define | vring_size(num) |
Functions | |
| static void | vring_init (struct vring *vr, unsigned int num, unsigned char *queue) |
| static void | vring_enable_cb (struct vring_virtqueue *vq) |
| static void | vring_disable_cb (struct vring_virtqueue *vq) |
| static int | vring_more_used (struct vring_virtqueue *vq) |
| 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 *index, int num_added) |
| void | vring_kick (struct virtio_pci_modern_device *vdev, unsigned int ioaddr, struct vring_virtqueue *vq, int num_added) |
| #define VIRTIO_CONFIG_S_ACKNOWLEDGE 1 |
Definition at line 9 of file virtio-ring.h.
| #define VIRTIO_CONFIG_S_DRIVER 2 |
Definition at line 11 of file virtio-ring.h.
| #define VIRTIO_CONFIG_S_DRIVER_OK 4 |
Definition at line 13 of file virtio-ring.h.
| #define VIRTIO_CONFIG_S_FEATURES_OK 8 |
Definition at line 15 of file virtio-ring.h.
| #define VIRTIO_CONFIG_S_FAILED 0x80 |
Definition at line 17 of file virtio-ring.h.
| #define VIRTIO_F_ANY_LAYOUT 27 |
Definition at line 21 of file virtio-ring.h.
| #define VIRTIO_F_VERSION_1 32 |
Definition at line 23 of file virtio-ring.h.
| #define VIRTIO_F_IOMMU_PLATFORM 33 |
Definition at line 24 of file virtio-ring.h.
| #define MAX_QUEUE_NUM (256) |
Definition at line 26 of file virtio-ring.h.
| #define VRING_DESC_F_NEXT 1 |
Definition at line 28 of file virtio-ring.h.
| #define VRING_DESC_F_WRITE 2 |
Definition at line 29 of file virtio-ring.h.
| #define VRING_AVAIL_F_NO_INTERRUPT 1 |
Definition at line 31 of file virtio-ring.h.
| #define VRING_USED_F_NO_NOTIFY 1 |
Definition at line 33 of file virtio-ring.h.
| #define vring_size | ( | num | ) |
Definition at line 70 of file virtio-ring.h.
|
inlinestatic |
Definition at line 96 of file virtio-ring.h.
References vring::avail, vring::desc, vring_desc::next, num, vring::num, PAGE_MASK, queue, vring_avail::ring, and vring::used.
Referenced by vp_find_vq(), and vpm_find_vqs().
|
inlinestatic |
Definition at line 123 of file virtio-ring.h.
References vring::avail, vring_avail::flags, vring_virtqueue::vring, and VRING_AVAIL_F_NO_INTERRUPT.
Referenced by virtnet_irq().
|
inlinestatic |
Definition at line 128 of file virtio-ring.h.
References vring::avail, vring_avail::flags, vring_virtqueue::vring, and VRING_AVAIL_F_NO_INTERRUPT.
Referenced by virtnet_irq().
|
inlinestatic |
Definition at line 141 of file virtio-ring.h.
References vring_used::idx, vring_virtqueue::last_used_idx, vring::used, vring_virtqueue::vring, and wmb().
Referenced by virtnet_process_rx_packets(), virtnet_process_tx_packets(), and vring_get_buf().
| 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 * | index, | ||
| 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