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