Documentation
¶
Overview ¶
Package virtq partially implements packed virtqueues as described by the Virtual I/O Device (VIRTIO) Version 1.2 spec. Split virtqueues are not supported.
Index ¶
Constants ¶
const ( DescFNext = 1 // buffer continues in the next descriptor DescFWrite = 2 // buffer is device wo (otherwise ro) DescFIndirect = 4 // buffer contains a descriptor table DescFAvail = 1 << 7 DescFUsed = 1 << 15 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Chain ¶
type Chain struct {
Desc []Desc
// contains filtered or unexported fields
}
Chain is a descriptor chain in a packed virtqueue.
type Desc ¶
Desc is a packed virtqueue descriptor.
func (Desc) Continues ¶
Continues returns true if the descriptor's buffer continues in the next descriptor.
func (Desc) IsIndirect ¶
IsIndirect returns true if the descriptor's buffer contains more descriptors.
type EventSuppress ¶
EventSuppress is the driver or device event suppression area for a packed virtqueue.
func (EventSuppress) ShouldNotify ¶
func (e EventSuppress) ShouldNotify(index uint16, wrap bool) bool
ShouldNotify returns true if a notification should be sent for the given descriptor index and wrap counter, or false if the event is suppressed.
type Queue ¶
type Queue struct {
// contains filtered or unexported fields
}
Queue is a packed virtqueue.
func New ¶
func New(ring []Desc, drvE, devE *EventSuppress, cfg Config) *Queue
New returns a new virtqueue backed by the given ring and event suppression areas.