class VirtioQueue

Defined at line 57 of file ../../src/virtualization/bin/vmm/device/virtio_queue.h

Public Members

static const zx_signals_t SIGNAL_QUEUE_AVAIL

Public Methods

void VirtioQueue ()

Defined at line 11 of file ../../src/virtualization/bin/vmm/device/virtio_queue.cc

void Configure (uint16_t size, zx_gpaddr_t desc, zx_gpaddr_t avail, zx_gpaddr_t used)

Configure the queue using a set of addresses, and set the queue size.

Defined at line 13 of file ../../src/virtualization/bin/vmm/device/virtio_queue.cc

bool NextChain (VirtioChain * chain)

Defined at line 38 of file ../../src/virtualization/bin/vmm/device/virtio_queue.cc

void set_phys_mem (const PhysMem * phys_mem)

Sets the guest physical memory for the queue.

Defined at line 65 of file ../../src/virtualization/bin/vmm/device/virtio_queue.h

void set_interrupt (InterruptFn fn)

Defined at line 74 of file ../../src/virtualization/bin/vmm/device/virtio_queue.h

uint16_t size ()

Gets the number of descriptors in the queue.

Defined at line 77 of file ../../src/virtualization/bin/vmm/device/virtio_queue.h

void set_use_event_index (bool use)

Defined at line 82 of file ../../src/virtualization/bin/vmm/device/virtio_queue.h

zx_handle_t event ()

Returns a handle that can waited on for available descriptors in the.

While buffers are available in the queue |ZX_USER_SIGNAL_0| will be

asserted.

Defined at line 90 of file ../../src/virtualization/bin/vmm/device/virtio_queue.h

zx_status_t NextAvail (uint16_t * index)

Get the index of the next descriptor in the available ring.

If a buffer is a available, the descriptor index is written to |index|, the

queue index pointer is incremented, and ZX_OK is returned.

If no buffers are available ZX_ERR_SHOULD_WAIT is returned.

Defined at line 103 of file ../../src/virtualization/bin/vmm/device/virtio_queue.h

zx_status_t Notify ()

Notify waiting threads blocked on |virtio_queue_wait| that the avail ring

has descriptors available.

Defined at line 104 of file ../../src/virtualization/bin/vmm/device/virtio_queue.cc

bool HasAvail ()

Defined at line 108 of file ../../src/virtualization/bin/vmm/device/virtio_queue.h

zx_status_t Return (uint16_t index, uint32_t len, uint8_t actions)

Return a descriptor to the used ring.

|index| must be a value received from a call to virtio_queue_next_avail.

Any buffers accessed via |index| or any chained descriptors must not be

used after calling virtio_queue_return.

The |action| parameter allows the caller to suppress sending an interrupt

if (for example) the device is returning several descriptors sequentially.

The |SEND_INTERRUPT| flag will still respect any requirements enforced by

the bus regarding interrupt suppression.

Defined at line 134 of file ../../src/virtualization/bin/vmm/device/virtio_queue.cc

zx_status_t ReadDesc (uint16_t index, VirtioDescriptor * desc)

Reads a single descriptor from the queue.

This method should only be called using descriptor indices acquired with

virtio_queue_next_avail (including any chained descriptors) and before

they've been released with virtio_queue_return.

Defined at line 112 of file ../../src/virtualization/bin/vmm/device/virtio_queue.cc

Enumerations

enum InterruptAction
Name Value
SET_QUEUE 1 << fuchsia::virtualization::hardware::EVENT_SET_QUEUE
SET_CONFIG 1 << fuchsia::virtualization::hardware::EVENT_SET_CONFIG
TRY_INTERRUPT 1 << fuchsia::virtualization::hardware::EVENT_SET_INTERRUPT

Sets the interrupt callback from the queue.

Defined at line 68 of file ../../src/virtualization/bin/vmm/device/virtio_queue.h

Friends

class VirtioQueueFake