Virtqueue Used Ring.
More...
#include <split.hpp>
|
| auto | avail_event (uint16_t queue_size) volatile -> volatile uint16_t * |
| | 获取 avail_event 字段的指针
|
| |
| auto | avail_event (uint16_t queue_size) const volatile -> const volatile uint16_t * |
| |
|
| uint16_t | flags |
| | 标志位: UsedFlags (little-endian)
|
| |
| uint16_t | idx |
| | 设备将下一个描述符条目放入环中的位置(模 queue_size) (little-endian)
|
| |
| UsedElem | ring [] |
| | 已用描述符元素数组 ring[queue_size]
|
| |
|
| static constexpr size_t | kAlign = 4 |
| | Used Ring 对齐要求(字节)
|
| |
Virtqueue Used Ring.
Used Ring 是设备完成缓冲区处理后返回它们的地方。 它只由设备写入,由驱动程序读取。
- Note
- 实际 ring[] 大小由 queue_size 决定
-
4 字节对齐
- See also
- virtio-v1.2#2.7.8 The Virtqueue Used Ring
Definition at line 158 of file split.hpp.
◆ avail_event() [1/2]
| auto virtio::SplitVirtqueue::Used::avail_event |
( |
uint16_t |
queue_size | ) |
const volatile -> const
volatile uint16_t* |
|
inline |
Definition at line 186 of file split.hpp.
187 {
188 const auto* byte_ptr =
reinterpret_cast<const volatile uint8_t*
>(
ring);
189 return reinterpret_cast<const volatile uint16_t*>(
190 byte_ptr + sizeof(UsedElem) * queue_size);
191 }
UsedElem ring[]
已用描述符元素数组 ring[queue_size]
◆ avail_event() [2/2]
| auto virtio::SplitVirtqueue::Used::avail_event |
( |
uint16_t |
queue_size | ) |
volatile -> volatile uint16_t* |
|
inline |
获取 avail_event 字段的指针
- Parameters
-
- Returns
- avail_event 字段指针
- Note
- 仅当协商 VIRTIO_F_EVENT_IDX 特性时使用
- See also
- virtio-v1.2#2.7.10 Available Buffer Notification Suppression
Definition at line 178 of file split.hpp.
179 {
180
181 auto* byte_ptr =
reinterpret_cast<volatile uint8_t*
>(
ring);
182 return reinterpret_cast<volatile uint16_t*>(byte_ptr + sizeof(UsedElem) *
183 queue_size);
184 }
◆ flags
| uint16_t virtio::SplitVirtqueue::Used::flags |
标志位: UsedFlags (little-endian)
Definition at line 162 of file split.hpp.
◆ idx
| uint16_t virtio::SplitVirtqueue::Used::idx |
设备将下一个描述符条目放入环中的位置(模 queue_size) (little-endian)
Definition at line 164 of file split.hpp.
◆ kAlign
| constexpr size_t virtio::SplitVirtqueue::Used::kAlign = 4 |
|
staticconstexpr |
◆ ring
| UsedElem virtio::SplitVirtqueue::Used::ring[] |
已用描述符元素数组 ring[queue_size]
Definition at line 168 of file split.hpp.
The documentation for this struct was generated from the following file:
- /workspaces/SimpleKernel/src/device/virtio/virt_queue/split.hpp