{
}
static void req_monitor_bench_server(
void*buf,
nm_len_t len)
{
}
static void req_monitor_bench_client(
void*buf,
nm_len_t len)
{
}
{
.server = &req_monitor_bench_server,
.client = &req_monitor_bench_client
};
nm_status_t nm_cond_status_t
status with synchronization (wait/signal)
#define NM_STATUS_FINALIZED
request is finalized, may be freed
static void nm_cond_init(nm_cond_status_t *p_cond, nm_status_t bitmask)
initialize a nm_cond_status_t object
static void nm_cond_signal(nm_cond_status_t *p_cond, nm_status_t bitmask)
add a bit and wake up threads waiting for it
static void nm_cond_wait(nm_cond_status_t *p_cond, nm_status_t bitmask, nm_core_t p_core)
wait for the given bit to be set in the status; do active polling while waiting
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.
nm_sr_event_t
events for nm_sr_monitor()
static int nm_sr_request_set_ref(nm_sr_request_t *p_request, void *ref)
Add a user reference to a request.
@ NM_SR_EVENT_FINALIZED
request finalized, may be freed by user
struct nm_bench_common_s nm_bench_common
static const nm_tag_t data_tag
static int nm_sr_swait(nm_session_t p_session, nm_sr_request_t *p_request)
Wait for the completion of a non blocking send request.
static int nm_sr_irecv(nm_session_t p_session, nm_gate_t p_gate, nm_tag_t tag, void *data, nm_len_t len, nm_sr_request_t *p_request)
Post a non blocking receive request.
static int nm_sr_isend(nm_session_t p_session, nm_gate_t p_gate, nm_tag_t tag, const void *data, nm_len_t len, nm_sr_request_t *p_request)
Post a non blocking send request.
uint64_t nm_tag_t
user tags, 64 bits, contained in indirect hashtable
uint64_t nm_len_t
data length used by nmad
internal defintion of the sendrecv request
information field for sendrecv events