nm_pkt_wrap.h
Go to the documentation of this file.
248void nm_pw_split(struct nm_core*p_core, struct nm_pkt_wrap_s*p_pw, struct nm_pkt_wrap_s**pp_pw2, nm_len_t offset);
250void nm_pw_add_req_chunk(struct nm_pkt_wrap_s*p_pw, struct nm_req_chunk_s*p_req_chunk, nm_req_chunk_flag_t flags);
255void nm_pw_set_data_raw(struct nm_pkt_wrap_s*p_pw, struct nm_data_s*p_data, nm_len_t chunk_len, nm_len_t chunk_offset,
265int nm_pw_add_control(struct nm_pkt_wrap_s*p_pw, const union nm_header_ctrl_generic_s*p_ctrl, const void*p_payload);
assert(p_data->ops.p_traversal !=NULL)
#define NM_PREALLOC_IOV_LEN
Number of preallocated iovec entries within packet wrappers.
Definition nm_parameters.h:34
PUK_LIST_TYPE(nm_pw_pending_rtr, struct nm_gate_s *p_gate;struct nm_header_ctrl_rtr_s header;void *p_payload;)
a pending RTR, not processed immediately because prefetch was in progress
void nm_pw_add_data_in_header(struct nm_pkt_wrap_s *p_pw, nm_core_tag_t tag, nm_seq_t seq, struct nm_data_s *p_data, nm_len_t len, nm_len_t chunk_offset, nm_proto_t proto_flags)
struct nm_pkt_wrap_s * nm_pw_alloc_noheader(struct nm_core *p_core)
PUK_ALLOCATOR_TYPE_SINGLE(nm_pw_nohd, struct nm_pkt_wrap_s)
Allocator for headerless pkt wrapper.
struct iovec * nm_pw_grow_iovec(struct nm_pkt_wrap_s *p_pw)
int nm_pw_finalize(struct nm_pkt_wrap_s *p_pw)
struct nm_pkt_wrap_s * nm_pw_alloc_buffer(struct nm_core *p_core)
PUK_LIST_DECLARE_TYPE2(nm_pw_poll, struct nm_pkt_wrap_s)
list used for pw polling without pioman.
void nm_pw_split(struct nm_core *p_core, struct nm_pkt_wrap_s *p_pw, struct nm_pkt_wrap_s **pp_pw2, nm_len_t offset)
const char nm_pw_refcount_unexpected[]
ref by an unexpected (nm_unexpected_s)
struct nm_pkt_wrap_s * nm_pw_alloc_global_header(struct nm_core *p_core, struct nm_trk_s *p_trk)
void nm_pw_add_req_chunk(struct nm_pkt_wrap_s *p_pw, struct nm_req_chunk_s *p_req_chunk, nm_req_chunk_flag_t flags)
void nm_pw_set_data_raw(struct nm_pkt_wrap_s *p_pw, struct nm_data_s *p_data, nm_len_t chunk_len, nm_len_t chunk_offset, const struct nm_data_properties_s *p_props)
PUK_LIST_CREATE_FUNCS(nm_pkt_wrap)
static nm_len_t nm_pw_remaining_buf(struct nm_pkt_wrap_s *p_pw)
remaining space in pw buffer
Definition nm_pkt_wrap.h:270
void nm_pw_free(struct nm_core *p_core, struct nm_pkt_wrap_s *p_pw)
int nm_pw_add_control(struct nm_pkt_wrap_s *p_pw, const union nm_header_ctrl_generic_s *p_ctrl, const void *p_payload)
void nm_pw_data_to_iovec(struct nm_pkt_wrap_s *p_pw)
uint8_t nm_proto_t
protocol flags- not part of the public API, but needed for inline
Definition nm_types.h:99
a data descriptor, used to pack/unpack data from app layout to/from contiguous buffers
Definition nm_data.h:199
Definition nm_headers.h:118
struct nm_req_s * p_unpack
user-level unpack request (large message only)
Definition nm_pkt_wrap.h:181
struct nm_data_properties_s data_props
pre-computed properties for the chunk of data
Definition nm_pkt_wrap.h:185
nm_len_t length
cumulated amount of data (everything included) referenced by this wrap.
Definition nm_pkt_wrap.h:159
PUK_LIST_LINK(nm_pkt_wrap)
link to insert the pw into a nm_pkt_wrap_list.
void(* destructor)(struct nm_pkt_wrap_s *p_pw)
destructor called uppon packet destroy
Definition nm_pkt_wrap.h:171
struct nm_refcount_s refcount
number of references pointing to the header
Definition nm_pkt_wrap.h:170
struct nm_data_s * p_data
data represented as datatype (if non-NULL, v must be empty)
Definition nm_pkt_wrap.h:161
struct nm_req_chunk_list_s req_chunks
list of req chunks contained in this pw (sending)
Definition nm_pkt_wrap.h:176
nm_len_t chunk_offset
offset of this chunk in the message (for large message)
Definition nm_pkt_wrap.h:184
struct nm_pw_pending_rtr_list_s pending_rtrs
pending RTRs attached to this pw
Definition nm_pkt_wrap.h:177
__attribute__((aligned(16))) struct iovec prealloc_v[NM_PREALLOC_IOV_LEN]
pre-allcoated iovec
nm_prio_t prio
priority, used for sending (all trks) and recv (large only)
Definition nm_pkt_wrap.h:166
a reference-counter that keeps trace of who increments/decrements in debug: full reference tracking i...
Definition nm_core_interface.h:1221