SimpleKernel 1.17.0
Loading...
Searching...
No Matches
virtio::SplitVirtqueue::Avail Struct Reference

Virtqueue Available Ring. More...

#include <split.hpp>

Collaboration diagram for virtio::SplitVirtqueue::Avail:
Collaboration graph

Public Member Functions

auto used_event (uint16_t queue_size) volatile -> volatile uint16_t *
 获取 used_event 字段的指针
 
auto used_event (uint16_t queue_size) const volatile -> const volatile uint16_t *
 

Public Attributes

uint16_t flags
 标志位: AvailFlags (little-endian)
 
uint16_t idx
 驱动程序将下一个描述符条目放入环中的位置(模 queue_size) (little-endian)
 
uint16_t ring []
 可用描述符头索引数组 ring[queue_size] (little-endian)
 

Static Public Attributes

static constexpr size_t kAlign = 2
 Available Ring 对齐要求(字节)
 

Detailed Description

Virtqueue Available Ring.

Available Ring 用于驱动程序向设备提供缓冲区。 驱动程序将描述符链的头部放入环中。

Note
实际 ring[] 大小由 queue_size 决定
2 字节对齐
See also
virtio-v1.2#2.7.6 The Virtqueue Available Ring

Definition at line 103 of file split.hpp.

Member Function Documentation

◆ used_event() [1/2]

auto virtio::SplitVirtqueue::Avail::used_event ( uint16_t  queue_size) const volatile -> const volatile uint16_t*
inline

Definition at line 128 of file split.hpp.

129 {
130 return ring + queue_size;
131 }
uint16_t ring[]
可用描述符头索引数组 ring[queue_size] (little-endian)
Definition split.hpp:113

◆ used_event() [2/2]

auto virtio::SplitVirtqueue::Avail::used_event ( uint16_t  queue_size) volatile -> volatile uint16_t*
inline

获取 used_event 字段的指针

Parameters
queue_size队列大小
Returns
used_event 字段指针
Note
仅当协商 VIRTIO_F_EVENT_IDX 特性时使用
See also
virtio-v1.2#2.7.10 Available Buffer Notification Suppression

Definition at line 123 of file split.hpp.

124 {
125 return ring + queue_size;
126 }
Here is the caller graph for this function:

Member Data Documentation

◆ flags

uint16_t virtio::SplitVirtqueue::Avail::flags

标志位: AvailFlags (little-endian)

Definition at line 107 of file split.hpp.

◆ idx

uint16_t virtio::SplitVirtqueue::Avail::idx

驱动程序将下一个描述符条目放入环中的位置(模 queue_size) (little-endian)

Definition at line 109 of file split.hpp.

◆ kAlign

constexpr size_t virtio::SplitVirtqueue::Avail::kAlign = 2
staticconstexpr

Available Ring 对齐要求(字节)

Definition at line 105 of file split.hpp.

◆ ring

uint16_t virtio::SplitVirtqueue::Avail::ring[]

可用描述符头索引数组 ring[queue_size] (little-endian)

Definition at line 113 of file split.hpp.


The documentation for this struct was generated from the following file: