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