Searched refs:ring (Results 1 - 3 of 3) sorted by relevance

/gem5/src/dev/virtio/
H A Dvirtio_ring.h56 * at the end of the avail ring. Host should ignore the avail->flags field. */
58 * at the end of the used ring. Guest should ignore the used->flags field. */
61 /* Virtio ring descriptors: 16 bytes. These can chain together via "next". */
76 uint16_t ring[]; member in struct:vring_avail
90 struct vring_used_elem ring[]; member in struct:vring_used
103 /* The standard layout for the ring is a continuous chunk of memory which looks
111 * // A ring of available descriptor heads with free-running index.
120 * // A ring of used descriptor heads with free-running index.
127 /* We publish the used event index at the end of the available ring, and vice
129 #define vring_used_event(vr) ((vr)->avail->ring[(v
[all...]
H A Dbase.hh464 * VirtIO ring buffer wrapper.
466 * This class wraps a VirtIO ring buffer. The template parameter T
467 * is used to select the data type for the items in the ring (used
483 : header{0, 0}, ring(size), _proxy(proxy), _base(0) {}
486 * Set the base address of the VirtIO ring buffer.
492 /** Update the ring buffer header with data from the guest. */
511 /* Read and byte-swap the elements in the ring */
512 T temp[ring.size()];
514 temp, sizeof(T) * ring.size());
515 for (int i = 0; i < ring
534 std::vector<T> ring; member in class:VirtQueue::VirtRing
[all...]
H A Dbase.cc252 // Use the address setter to ensure that the ring buffer addresses
276 avail.ring[_last_avail % used.ring.size()]);
280 VirtDescriptor::Index index(avail.ring[_last_avail % used.ring.size()]);
296 struct vring_used_elem &e(used.ring[used.header.index % used.ring.size()]);

Completed in 9 milliseconds