Motr  M0

#include <bulk.h>

Collaboration diagram for m0_rpc_bulk:
Collaboration graph

Data Fields

uint64_t rb_magic
 
struct m0_mutex rb_mutex
 
struct m0_tl rb_buflist
 
struct m0_chan rb_chan
 
m0_bcount_t rb_bytes
 
int32_t rb_rc
 
uint64_t rb_id
 

Detailed Description

An abstract data structure that avails bulk transport for io operations. End users will register the IO vectors using this structure and bulk transfer apis will take care of doing the data transfer in zero-copy fashion. These APIs are primarily used by another in-memory structure m0_io_fop.

See also
m0_io_fop.
Note
Passive entities engaging in bulk transfer do not block for m0_rpc_bulk callback. Only active entities are blocked since they can not proceed until bulk transfer is complete.
See also
rpc_bulk_buf_cb().

Definition at line 247 of file bulk.h.

Field Documentation

◆ rb_buflist

struct m0_tl rb_buflist

List of m0_rpc_bulk_buf structures linked through m0_rpc_bulk_buf::rb_link.

Definition at line 256 of file bulk.h.

◆ rb_bytes

m0_bcount_t rb_bytes

Number of bytes read/written through this structure.

Definition at line 260 of file bulk.h.

◆ rb_chan

struct m0_chan rb_chan

Channel to wait on rpc bulk to complete the io.

Definition at line 258 of file bulk.h.

◆ rb_id

uint64_t rb_id

Definition at line 267 of file bulk.h.

◆ rb_magic

uint64_t rb_magic

Magic to verify sanity of struct m0_rpc_bulk.

Definition at line 249 of file bulk.h.

◆ rb_mutex

struct m0_mutex rb_mutex

Mutex to protect access on list rb_buflist.

Definition at line 251 of file bulk.h.

◆ rb_rc

int32_t rb_rc

Return value of operations like addition of buffers to transfer machine and zero-copy operation. This field is updated by net buffer send/receive callbacks.

Definition at line 266 of file bulk.h.


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