NewMadeleine

Documentation

« back to PM2 home.
nm_sendrecv_private.h File Reference

This file contains private bits of the sendrecv interface. More...

Include dependency graph for nm_sendrecv_private.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  nm_sr_event_monitor_s
 descriptor for an event monitor More...
 
struct  nm_sr_request_s
 internal defintion of the sendrecv request More...
 

Macros

#define NM_SR_EVENT_MONITOR_NULL   ((struct nm_sr_event_monitor_s){ .mask = NM_SR_EVENT_NONE, .notifier = NULL })
 
#define NM_SR_REQUEST_NULL   ((struct nm_sr_request_s){ .p_session = NULL, .monitor = NM_SR_EVENT_MONITOR_NULL, .ref = NULL})
 

Functions

static int nm_sr_request_isnull (nm_sr_request_t *p_request)
 
static void * nm_sr_request_get_ref (nm_sr_request_t *p_request)
 
static nm_session_t nm_sr_request_get_session (nm_sr_request_t *p_request)
 
static nm_tag_t nm_sr_request_get_tag (nm_sr_request_t *p_request)
 
static nm_gate_t nm_sr_request_get_gate (nm_sr_request_t *p_request)
 
static int nm_sr_request_set_ref (nm_sr_request_t *p_request, void *ref)
 
static int nm_sr_request_get_size (nm_sr_request_t *p_request, nm_len_t *size)
 
static int nm_sr_request_get_expected_size (nm_sr_request_t *p_request, nm_len_t *size)
 
static void nm_sr_request_wait_all (nm_sr_request_t **p_requests, int n)
 
static int nm_sr_request_test (nm_sr_request_t *p_request, nm_status_t status)
 
static int nm_sr_request_get_error (nm_sr_request_t *p_request)
 
static int nm_sr_rwait (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request)
 
static int nm_sr_rwait_data (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request)
 
static int nm_sr_swait (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request)
 
static void nm_sr_send_init (nm_session_t p_session, nm_sr_request_t *p_request)
 
static void nm_sr_send_pack_data (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request, const struct nm_data_s *p_data)
 
static void nm_sr_send_pack_contiguous (nm_session_t p_session, nm_sr_request_t *p_request, const void *ptr, nm_len_t len)
 
static void nm_sr_send_pack_iov (nm_session_t p_session, nm_sr_request_t *p_request, const struct iovec *v, int n)
 
static int nm_sr_send_dest (nm_session_t p_session, nm_sr_request_t *p_request, nm_gate_t p_gate, nm_tag_t tag)
 
static void nm_sr_send_set_priority (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request, nm_prio_t priority)
 
static int nm_sr_send_header (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request, nm_len_t hlen)
 
static int nm_sr_send_submit (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request)
 
static int nm_sr_send_submit_chunks (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request, int n, const struct nm_chunk_s *p_chunks)
 
static int nm_sr_send_isend (nm_session_t p_session, nm_sr_request_t *p_request, nm_gate_t p_gate, nm_tag_t tag)
 
static int nm_sr_send_issend (nm_session_t p_session, nm_sr_request_t *p_request, nm_gate_t p_gate, nm_tag_t tag)
 
static int nm_sr_send_rsend (nm_session_t p_session, nm_sr_request_t *p_request, nm_gate_t p_gate, nm_tag_t tag)
 
static void nm_sr_recv_init (nm_session_t p_session, nm_sr_request_t *p_request)
 
static void nm_sr_recv_unpack_data (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request, const struct nm_data_s *p_data)
 
static void nm_sr_recv_unpack_contiguous (nm_session_t p_session, nm_sr_request_t *p_request, void *ptr, nm_len_t len)
 
static void nm_sr_recv_unpack_iov (nm_session_t p_session, nm_sr_request_t *p_request, const struct iovec *v, int n)
 
static int nm_sr_recv_irecv (nm_session_t p_session, nm_sr_request_t *p_request, nm_gate_t p_gate, nm_tag_t tag, nm_tag_t mask)
 
static void nm_sr_recv_match (nm_session_t p_session, nm_sr_request_t *p_request, nm_gate_t p_gate, nm_tag_t tag, nm_tag_t mask)
 
static void nm_sr_recv_match_event (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request, const nm_sr_event_info_t *p_event)
 
static int nm_sr_recv_post (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request)
 
static int nm_sr_recv_peek (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request, const struct nm_data_s *p_data)
 
static int nm_sr_recv_peek_offset (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request, const struct nm_data_s *p_data, nm_len_t peek_offset, nm_len_t peek_len)
 
static void nm_sr_recv_offset (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request, nm_len_t offset)
 
static int nm_sr_recv_iprobe (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request)
 
static void nm_sr_recv_data_wait (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request)
 
static void nm_sr_recv_data_size_wait (nm_session_t p_session __attribute__((unused)), nm_sr_request_t *p_request)
 
static int nm_sr_recv_data_test (nm_session_t p_session, nm_sr_request_t *p_request)
 

Detailed Description

This file contains private bits of the sendrecv interface.

Though it is not part of the interface, it is included in nm_sendrecv_interface.h for the sake of inlining.

Definition in file nm_sendrecv_private.h.

Macro Definition Documentation

◆ NM_SR_EVENT_MONITOR_NULL

#define NM_SR_EVENT_MONITOR_NULL   ((struct nm_sr_event_monitor_s){ .mask = NM_SR_EVENT_NONE, .notifier = NULL })

Definition at line 46 of file nm_sendrecv_private.h.

◆ NM_SR_REQUEST_NULL

#define NM_SR_REQUEST_NULL   ((struct nm_sr_request_s){ .p_session = NULL, .monitor = NM_SR_EVENT_MONITOR_NULL, .ref = NULL})

Definition at line 60 of file nm_sendrecv_private.h.

Function Documentation

◆ nm_sr_recv_data_size_wait()

static void nm_sr_recv_data_size_wait ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request 
)
inlinestatic

Definition at line 374 of file nm_sendrecv_private.h.

References nm_status_test(), NM_STATUS_UNPACK_DATA_SIZE, NM_STATUS_UNPACK_POSTED, nm_status_wait(), and nm_sr_request_s::req.

Here is the call graph for this function:

◆ nm_sr_recv_data_test()

static int nm_sr_recv_data_test ( nm_session_t  p_session,
nm_sr_request_t p_request 
)
inlinestatic

Definition at line 381 of file nm_sendrecv_private.h.

References NM_EAGAIN, NM_ESUCCESS, nm_sr_progress(), nm_status_test(), NM_STATUS_UNPACK_DATA0, NM_STATUS_UNPACK_POSTED, p_session, and nm_sr_request_s::req.

Here is the call graph for this function:

◆ nm_sr_recv_data_wait()

static void nm_sr_recv_data_wait ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request 
)
inlinestatic

Definition at line 367 of file nm_sendrecv_private.h.

References nm_status_test(), NM_STATUS_UNPACK_DATA0, NM_STATUS_UNPACK_POSTED, nm_status_wait(), and nm_sr_request_s::req.

Here is the call graph for this function:

◆ nm_sr_recv_init()

static void nm_sr_recv_init ( nm_session_t  p_session,
nm_sr_request_t p_request 
)
inlinestatic

◆ nm_sr_recv_iprobe()

static int nm_sr_recv_iprobe ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request 
)
inlinestatic

Definition at line 360 of file nm_sendrecv_private.h.

References nm_core_unpack_iprobe(), and nm_sr_request_s::req.

Here is the call graph for this function:

◆ nm_sr_recv_irecv()

static int nm_sr_recv_irecv ( nm_session_t  p_session,
nm_sr_request_t p_request,
nm_gate_t  p_gate,
nm_tag_t  tag,
nm_tag_t  mask 
)
inlinestatic

Definition at line 307 of file nm_sendrecv_private.h.

References nm_sr_recv_match(), nm_sr_recv_post(), p_gate, p_session, and tag.

Here is the call graph for this function:

◆ nm_sr_recv_match()

static void nm_sr_recv_match ( nm_session_t  p_session,
nm_sr_request_t p_request,
nm_gate_t  p_gate,
nm_tag_t  tag,
nm_tag_t  mask 
)
inlinestatic

Definition at line 314 of file nm_sendrecv_private.h.

References nm_session_s::hash_code, nm_core_tag_build(), NM_CORE_TAG_HASH_FULL, nm_core_unpack_match_recv(), p_gate, p_session, nm_sr_request_s::req, and tag.

Referenced by nm_sr_recv_irecv().

Here is the call graph for this function:

◆ nm_sr_recv_match_event()

static void nm_sr_recv_match_event ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request,
const nm_sr_event_info_t p_event 
)
inlinestatic

Definition at line 323 of file nm_sendrecv_private.h.

References nm_core_unpack_match_event(), nm_sr_event_info_t::p_core_event, nm_sr_event_info_t::recv_unexpected, and nm_sr_request_s::req.

Here is the call graph for this function:

◆ nm_sr_recv_offset()

static void nm_sr_recv_offset ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request,
nm_len_t  offset 
)
inlinestatic

Definition at line 353 of file nm_sendrecv_private.h.

References nm_core_unpack_offset(), and nm_sr_request_s::req.

Here is the call graph for this function:

◆ nm_sr_recv_peek()

static int nm_sr_recv_peek ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request,
const struct nm_data_s p_data 
)
inlinestatic

Definition at line 337 of file nm_sendrecv_private.h.

References nm_core_unpack_peek(), nm_data_size(), and nm_sr_request_s::req.

Here is the call graph for this function:

◆ nm_sr_recv_peek_offset()

static int nm_sr_recv_peek_offset ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request,
const struct nm_data_s p_data,
nm_len_t  peek_offset,
nm_len_t  peek_len 
)
inlinestatic

Definition at line 345 of file nm_sendrecv_private.h.

References nm_core_unpack_peek(), and nm_sr_request_s::req.

Here is the call graph for this function:

◆ nm_sr_recv_post()

static int nm_sr_recv_post ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request 
)
inlinestatic

Definition at line 330 of file nm_sendrecv_private.h.

References nm_core_unpack_submit(), NM_ESUCCESS, NM_REQ_FLAG_NONE, and nm_sr_request_s::req.

Referenced by nm_sr_recv_irecv().

Here is the call graph for this function:

◆ nm_sr_recv_unpack_contiguous()

static void nm_sr_recv_unpack_contiguous ( nm_session_t  p_session,
nm_sr_request_t p_request,
void *  ptr,
nm_len_t  len 
)
inlinestatic

Definition at line 291 of file nm_sendrecv_private.h.

References len, nm_data_contiguous_build(), nm_sr_recv_unpack_data(), and p_session.

Here is the call graph for this function:

◆ nm_sr_recv_unpack_data()

static void nm_sr_recv_unpack_data ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request,
const struct nm_data_s p_data 
)
inlinestatic

Definition at line 284 of file nm_sendrecv_private.h.

References nm_core_unpack_data(), and nm_sr_request_s::req.

Referenced by nm_sr_recv_unpack_contiguous(), and nm_sr_recv_unpack_iov().

Here is the call graph for this function:

◆ nm_sr_recv_unpack_iov()

static void nm_sr_recv_unpack_iov ( nm_session_t  p_session,
nm_sr_request_t p_request,
const struct iovec *  v,
int  n 
)
inlinestatic

Definition at line 299 of file nm_sendrecv_private.h.

References nm_data_iov_build(), nm_sr_recv_unpack_data(), and p_session.

Here is the call graph for this function:

◆ nm_sr_request_get_error()

static int nm_sr_request_get_error ( nm_sr_request_t p_request)
inlinestatic

Definition at line 159 of file nm_sendrecv_private.h.

References nm_req_s::err, and nm_sr_request_s::req.

◆ nm_sr_request_get_expected_size()

static int nm_sr_request_get_expected_size ( nm_sr_request_t p_request,
nm_len_t size 
)
inlinestatic

◆ nm_sr_request_get_gate()

static nm_gate_t nm_sr_request_get_gate ( nm_sr_request_t p_request)
inlinestatic

Definition at line 84 of file nm_sendrecv_private.h.

References nm_req_s::p_gate, and nm_sr_request_s::req.

◆ nm_sr_request_get_ref()

static void * nm_sr_request_get_ref ( nm_sr_request_t p_request)
inlinestatic

Definition at line 69 of file nm_sendrecv_private.h.

References nm_sr_request_s::ref.

◆ nm_sr_request_get_session()

static nm_session_t nm_sr_request_get_session ( nm_sr_request_t p_request)
inlinestatic

Definition at line 74 of file nm_sendrecv_private.h.

References nm_sr_request_s::p_session.

◆ nm_sr_request_get_size()

static int nm_sr_request_get_size ( nm_sr_request_t p_request,
nm_len_t size 
)
inlinestatic

◆ nm_sr_request_get_tag()

static nm_tag_t nm_sr_request_get_tag ( nm_sr_request_t p_request)
inlinestatic

Definition at line 79 of file nm_sendrecv_private.h.

References nm_core_tag_get_tag(), nm_sr_request_s::req, and nm_req_s::tag.

Here is the call graph for this function:

◆ nm_sr_request_isnull()

static int nm_sr_request_isnull ( nm_sr_request_t p_request)
inlinestatic

Definition at line 64 of file nm_sendrecv_private.h.

References nm_sr_request_s::p_session.

◆ nm_sr_request_set_ref()

static int nm_sr_request_set_ref ( nm_sr_request_t p_request,
void *  ref 
)
inlinestatic

Definition at line 89 of file nm_sendrecv_private.h.

References NM_EALREADY, NM_ESUCCESS, and nm_sr_request_s::ref.

◆ nm_sr_request_test()

static int nm_sr_request_test ( nm_sr_request_t p_request,
nm_status_t  status 
)
inlinestatic

Definition at line 155 of file nm_sendrecv_private.h.

References nm_status_test_allbits(), nm_sr_request_s::req, and status.

Here is the call graph for this function:

◆ nm_sr_request_wait_all()

static void nm_sr_request_wait_all ( nm_sr_request_t **  p_requests,
int  n 
)
inlinestatic

Definition at line 147 of file nm_sendrecv_private.h.

References NM_STATUS_FINALIZED, nm_status_wait_all(), and nm_sr_request_s::req.

Here is the call graph for this function:

◆ nm_sr_rwait()

static int nm_sr_rwait ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request 
)
inlinestatic

Definition at line 163 of file nm_sendrecv_private.h.

References nm_sr_request_wait().

Here is the call graph for this function:

◆ nm_sr_rwait_data()

static int nm_sr_rwait_data ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request 
)
inlinestatic

Definition at line 167 of file nm_sendrecv_private.h.

References nm_req_s::err, NM_STATUS_UNPACK_COMPLETED, nm_status_wait(), and nm_sr_request_s::req.

Here is the call graph for this function:

◆ nm_sr_send_dest()

static int nm_sr_send_dest ( nm_session_t  p_session,
nm_sr_request_t p_request,
nm_gate_t  p_gate,
nm_tag_t  tag 
)
inlinestatic

Definition at line 209 of file nm_sendrecv_private.h.

References nm_session_s::hash_code, nm_core_pack_send(), nm_core_tag_build(), NM_ESUCCESS, p_gate, p_session, nm_sr_request_s::req, and tag.

Referenced by nm_sr_send_isend().

Here is the call graph for this function:

◆ nm_sr_send_header()

static int nm_sr_send_header ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request,
nm_len_t  hlen 
)
inlinestatic

Definition at line 225 of file nm_sendrecv_private.h.

References hlen, nm_core_pack_set_hlen(), NM_ESUCCESS, and nm_sr_request_s::req.

Here is the call graph for this function:

◆ nm_sr_send_init()

static void nm_sr_send_init ( nm_session_t  p_session,
nm_sr_request_t p_request 
)
inlinestatic

◆ nm_sr_send_isend()

static int nm_sr_send_isend ( nm_session_t  p_session,
nm_sr_request_t p_request,
nm_gate_t  p_gate,
nm_tag_t  tag 
)
inlinestatic

Definition at line 247 of file nm_sendrecv_private.h.

References NM_ESUCCESS, nm_sr_send_dest(), nm_sr_send_submit(), p_gate, p_session, and tag.

Here is the call graph for this function:

◆ nm_sr_send_issend()

static int nm_sr_send_issend ( nm_session_t  p_session,
nm_sr_request_t p_request,
nm_gate_t  p_gate,
nm_tag_t  tag 
)
inlinestatic

◆ nm_sr_send_pack_contiguous()

static void nm_sr_send_pack_contiguous ( nm_session_t  p_session,
nm_sr_request_t p_request,
const void *  ptr,
nm_len_t  len 
)
inlinestatic

Definition at line 194 of file nm_sendrecv_private.h.

References len, nm_data_contiguous_build(), nm_sr_send_pack_data(), and p_session.

Here is the call graph for this function:

◆ nm_sr_send_pack_data()

static void nm_sr_send_pack_data ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request,
const struct nm_data_s p_data 
)
inlinestatic

Definition at line 188 of file nm_sendrecv_private.h.

References nm_core_pack_data(), and nm_sr_request_s::req.

Referenced by nm_sr_send_pack_contiguous(), and nm_sr_send_pack_iov().

Here is the call graph for this function:

◆ nm_sr_send_pack_iov()

static void nm_sr_send_pack_iov ( nm_session_t  p_session,
nm_sr_request_t p_request,
const struct iovec *  v,
int  n 
)
inlinestatic

Definition at line 201 of file nm_sendrecv_private.h.

References nm_data_iov_build(), nm_sr_send_pack_data(), and p_session.

Here is the call graph for this function:

◆ nm_sr_send_rsend()

static int nm_sr_send_rsend ( nm_session_t  p_session,
nm_sr_request_t p_request,
nm_gate_t  p_gate,
nm_tag_t  tag 
)
inlinestatic

Definition at line 263 of file nm_sendrecv_private.h.

References nm_session_s::hash_code, nm_core_pack_send(), nm_core_pack_submit(), nm_core_tag_build(), NM_ESUCCESS, p_gate, p_session, nm_sr_request_s::req, and tag.

Here is the call graph for this function:

◆ nm_sr_send_set_priority()

static void nm_sr_send_set_priority ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request,
nm_prio_t  priority 
)
inlinestatic

Definition at line 218 of file nm_sendrecv_private.h.

References nm_core_pack_set_priority(), priority, and nm_sr_request_s::req.

Here is the call graph for this function:

◆ nm_sr_send_submit()

static int nm_sr_send_submit ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request 
)
inlinestatic

Definition at line 232 of file nm_sendrecv_private.h.

References nm_core_pack_submit(), NM_ESUCCESS, and nm_sr_request_s::req.

Referenced by nm_sr_send_isend().

Here is the call graph for this function:

◆ nm_sr_send_submit_chunks()

static int nm_sr_send_submit_chunks ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request,
int  n,
const struct nm_chunk_s p_chunks 
)
inlinestatic

Definition at line 239 of file nm_sendrecv_private.h.

References nm_core_pack_submit_chunks(), NM_ESUCCESS, and nm_sr_request_s::req.

Here is the call graph for this function:

◆ nm_sr_swait()

static int nm_sr_swait ( nm_session_t p_session   __attribute__(unused),
nm_sr_request_t p_request 
)
inlinestatic

Definition at line 173 of file nm_sendrecv_private.h.

References nm_sr_request_wait().

Here is the call graph for this function: