@@ -25,6 +25,16 @@ use super::{Error, Result};
25
25
pub const VHOST_MAX_MEMORY_REGIONS : usize = 255 ;
26
26
27
27
/// Vring configuration data.
28
+ ///
29
+ /// For split virtqueues (traditional layout):
30
+ /// - `desc_table_addr`: Descriptor table address
31
+ /// - `used_ring_addr`: Used ring buffer address
32
+ /// - `avail_ring_addr`: Available ring buffer address
33
+ ///
34
+ /// For packed virtqueues (when VHOST_VRING_F_PACKED flag is set):
35
+ /// - `desc_table_addr`: Packed descriptor ring address
36
+ /// - `used_ring_addr`: Driver event suppression structure address
37
+ /// - `avail_ring_addr`: Device event suppression structure address
28
38
#[ derive( Default , Clone , Copy ) ]
29
39
pub struct VringConfigData {
30
40
/// Maximum queue size supported by the driver.
@@ -33,11 +43,11 @@ pub struct VringConfigData {
33
43
pub queue_size : u16 ,
34
44
/// Bitmask of vring flags.
35
45
pub flags : u32 ,
36
- /// Descriptor table address.
46
+ /// Descriptor table address (split) / Packed descriptor ring address (packed) .
37
47
pub desc_table_addr : u64 ,
38
- /// Used ring buffer address.
48
+ /// Used ring buffer address (split) / Driver event suppression address (packed) .
39
49
pub used_ring_addr : u64 ,
40
- /// Available ring buffer address.
50
+ /// Available ring buffer address (split) / Device event suppression address (packed) .
41
51
pub avail_ring_addr : u64 ,
42
52
/// Optional address for logging.
43
53
pub log_addr : Option < u64 > ,
0 commit comments