This is the nmad SendRecv interface, the main interface to send and receive packets.
More...
|
file | nm_sendrecv_interface.h |
|
enum | nm_sr_event_t {
NM_SR_EVENT_RECV_UNEXPECTED
, NM_SR_EVENT_RECV_COMPLETED
, NM_SR_EVENT_SEND_COMPLETED
, NM_SR_EVENT_RECV_DATA
,
NM_SR_EVENT_RECV_CANCELLED
, NM_SR_EVENT_FINALIZED
} |
| events for nm_sr_monitor() More...
|
|
typedef struct nm_sr_request_s | nm_sr_request_t |
| a sendrecv request object. More...
|
|
typedef void(* | nm_sr_event_notifier_t) (nm_sr_event_t event, const nm_sr_event_info_t *event_info, void *ref) |
| notification function for sendrecv events. More...
|
|
int | nm_sr_request_monitor (nm_session_t p_session, nm_sr_request_t *p_request, nm_sr_event_t mask, nm_sr_event_notifier_t notifier) |
| Set a notification function called upon request completion. More...
|
|
int | nm_sr_request_set_completion_queue (nm_session_t p_session, nm_sr_request_t *p_request) |
| Ask to enqueue the request in the completion queue upon completion. More...
|
|
int | nm_sr_request_unset_completion_queue (nm_session_t p_session, nm_sr_request_t *p_request) |
| Ask to not enqueue the request in the completion queue upon completion. More...
|
|
static int | nm_sr_request_isnull (nm_sr_request_t *p_request) |
| tests whether a request is NULL More...
|
|
static int | nm_sr_request_set_ref (nm_sr_request_t *p_request, void *ref) |
| Add a user reference to a request. More...
|
|
static void * | nm_sr_request_get_ref (nm_sr_request_t *p_request) |
| Retrieve the 'ref' from a sendrecv request. More...
|
|
static nm_tag_t | nm_sr_request_get_tag (nm_sr_request_t *p_request) |
| Retrieve the tag from a sendrecv request. More...
|
|
static int | nm_sr_request_get_size (nm_sr_request_t *request, nm_len_t *size) |
| Returns the actual received or sent size of the message with the specified request. More...
|
|
static int | nm_sr_request_get_expected_size (nm_sr_request_t *request, nm_len_t *size) |
| Returns the expected size (to be received or to be sent) of the message with the specified request. More...
|
|
static nm_gate_t | nm_sr_request_get_gate (nm_sr_request_t *p_request) |
|
static nm_session_t | nm_sr_request_get_session (nm_sr_request_t *p_request) |
| Returns the session this request belongs to. More...
|
|
int | nm_sr_request_wait (nm_sr_request_t *p_request) |
| Wait for request completion (or cancelation) More...
|
|
static void | nm_sr_request_wait_all (nm_sr_request_t **p_requests, int n) |
| wait for completion of an array of requests More...
|
|
static int | nm_sr_request_test (nm_sr_request_t *p_request, nm_status_t status) |
| Tests whether the given status bits are set in request. More...
|
|
static int | nm_sr_request_get_error (nm_sr_request_t *p_request) |
| Get the error status of the request. More...
|
|
int | nm_sr_flush (struct nm_session_s *p_session) |
| Flush all pending requests (force submission to the core) and all pending events. More...
|
|
static void | nm_sr_send_init (nm_session_t p_session, nm_sr_request_t *p_request) |
| Init a send request. More...
|
|
static void | nm_sr_send_pack_contiguous (nm_session_t p_session, nm_sr_request_t *p_request, const void *, nm_len_t len) |
| Pack contiguous data into the given request. More...
|
|
static void | nm_sr_send_pack_iov (nm_session_t p_session, nm_sr_request_t *p_request, const struct iovec *iov, int num_entries) |
| Pack data described through iovec into the given request. More...
|
|
static void | nm_sr_send_pack_data (nm_session_t p_session, nm_sr_request_t *p_request, const struct nm_data_s *p_data) |
| Pack data described through an iterator into the given request. More...
|
|
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) |
| send a built request to given gate & tag More...
|
|
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) |
| send a built request in synchronous mode More...
|
|
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) |
| send a built request in ready mode More...
|
|
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) |
| set destination to a request, but do not send it immediately More...
|
|
static int | nm_sr_send_header (nm_session_t p_session, nm_sr_request_t *p_request, nm_len_t hlen) |
|
static int | nm_sr_send_submit (nm_session_t p_session, nm_sr_request_t *p_request) |
| submit the request once it is built More...
|
|
static int | nm_sr_send_submit_chunks (nm_session_t p_session, nm_sr_request_t *p_request, int n, const struct nm_chunk_s *p_chunks) |
| submit partial chunks of a request. More...
|
|
static void | nm_sr_send_set_priority (nm_session_t p_session, nm_sr_request_t *p_request, nm_prio_t priority) |
| attach the given priority to the request. More...
|
|
This is the nmad SendRecv interface, the main interface to send and receive packets.