Motr  M0
m0_0vec Struct Reference

#include <vec.h>

Collaboration diagram for m0_0vec:
Collaboration graph

Data Fields

struct m0_bufvec z_bvec
 
m0_bindex_tz_index
 
m0_bindex_t z_last_buf_idx
 
m0_bcount_t z_count
 

Detailed Description

Zero vector is a full fledged IO vector containing IO extents as well as the IO buffers. An invariant (m0_0vec_invariant) is maintained for m0_0vec. It always checks sanity of zero vector and keeps a bound check on array of IO buffers by checking buffer alignment and count check.

Zero vector is typically allocated by upper layer by following the bounds of network layer (max buffer size, max segments, max seg size) and adds buffers/pages later as and when needed. Size of z_index array is same as array of buffer addresses and array of segment counts.

Definition at line 512 of file vec.h.

Field Documentation

◆ z_bvec

struct m0_bufvec z_bvec

Bufvec representing extent of IO vector and array of buffers.

Definition at line 514 of file vec.h.

◆ z_count

m0_bcount_t z_count

Count of data buffers added to the zero vec.

Definition at line 520 of file vec.h.

◆ z_index

m0_bindex_t* z_index

Array of indices of target object to start IO from.

Definition at line 516 of file vec.h.

◆ z_last_buf_idx

m0_bindex_t z_last_buf_idx

Stores last buffer index.

Definition at line 518 of file vec.h.


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