class Ring
Defined at line 19 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/ring.h
Public Methods
void Ring (const Ring & other)
Defined at line 23 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/ring.h
Ring & operator= (const Ring & other)
Defined at line 24 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/ring.h
void Ring (Device * device)
Defined at line 30 of file ../../src/devices/bus/lib/virtio/ring.cc
void Ring (Ring && other)
Defined at line 32 of file ../../src/devices/bus/lib/virtio/ring.cc
struct vring_desc * DescFromIndex (uint16_t index)
Defined at line 39 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/ring.h
Ring & operator= (Ring && other)
Defined at line 43 of file ../../src/devices/bus/lib/virtio/ring.cc
void ~Ring ()
Defined at line 41 of file ../../src/devices/bus/lib/virtio/ring.cc
bool NoNotify ()
Defined at line 44 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/ring.h
void SetNoInterrupt ()
Defined at line 45 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/ring.h
void ClearNoInterrupt ()
Note that unless you are performing you own memory barriers, you most likely want to use the
combined ClearNoInterruptCheckHasWork below.
Defined at line 48 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/ring.h
bool HasWork ()
Defined at line 49 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/ring.h
zx_status_t Init (uint16_t index)
Initialize ring |index| with default (device-offered) size.
Defined at line 53 of file ../../src/devices/bus/lib/virtio/ring.cc
bool ClearNoInterruptCheckHasWork ()
Re-enables interrupts and then checks if there is any work pending. This is performed with an
appropriate barrier to ensure the driver cannot observe a state that would cause it to fail to
an inject an interrupt, whilst at the same time we are waiting for one.
Defined at line 54 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/ring.h
zx_status_t Init (uint16_t index, uint16_t count)
Defined at line 57 of file ../../src/devices/bus/lib/virtio/ring.cc
vring & vring_unsafe ()
Provides access to the underlying memory. Meant for use in tests.
Defined at line 63 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/ring.h
void FreeDesc (uint16_t desc_index)
Defined at line 115 of file ../../src/devices/bus/lib/virtio/ring.cc
struct vring_desc * AllocDescChain (uint16_t count, uint16_t * start_index)
Defined at line 122 of file ../../src/devices/bus/lib/virtio/ring.cc
void SubmitChain (uint16_t desc_index)
Defined at line 157 of file ../../src/devices/bus/lib/virtio/ring.cc
void Kick ()
Defined at line 170 of file ../../src/devices/bus/lib/virtio/ring.cc
template <typename T>
void IrqRingUpdate (T free_chain)
perform the main loop of finding free descriptor chains and passing it to a passed in function
Defined at line 77 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/ring.h