NewMadeleine

Documentation

nm_onesided_interface.h File Reference
#include <nm_public.h>
#include <nm_sendrecv_interface.h>
#include <nm_onesided_private.h>
#include <stdint.h>
Include dependency graph for nm_onesided_interface.h:

Go to the source code of this file.

Typedefs

typedef struct nm_onesided_snm_onesided_t
 an instance of the 'onesided' interface More...
 
typedef struct nm_onesided_request_s nm_onesided_request_t
 request type for 'onesided' interface More...
 
typedef int nm_onesided_queue_id_t
 local id for a queue More...
 
typedef struct nm_onesided_target_request_s nm_onesided_target_request_t
 request type to receive target-side completions More...
 

Functions

void nm_onesided_init (nm_session_t p_session, nm_onesided_t *pp_onesided)
 initialize the interface, using the given session. More...
 
void nm_onesided_finalize (nm_onesided_t p_onesided)
 
void nm_onesided_iput (nm_onesided_t p_onesided, struct nm_gate_s *p_gate, const void *p_ptr, nm_len_t len, uintptr_t dest_addr, nm_onesided_request_t *p_req)
 remotely write to destination memory; local data is p_ptr with length len; dest_addr is the address in the remote memory space More...
 
void nm_onesided_iput_data (nm_onesided_t p_onesided, struct nm_gate_s *p_gate, struct nm_data_s *p_data, uintptr_t dest_addr, nm_onesided_request_t *p_req)
 remotely write to destination memory; local data described by p_data; dest_addr is the address in the remote memory space (same as above with data described by an nm_data) More...
 
void nm_onesided_iget (nm_onesided_t p_onesided, struct nm_gate_s *p_gate, void *p_ptr, nm_len_t len, uintptr_t dest_addr, nm_onesided_request_t *p_req)
 remotely read data from target memory. More...
 
void nm_onesided_iget_data (nm_onesided_t p_onesided, struct nm_gate_s *p_gate, struct nm_data_s *p_data, uintptr_t dest_addr, nm_onesided_request_t *p_req)
 remotely read data from target memory (nm_data flavor). More...
 
void nm_onesided_ifence (nm_onesided_t p_onesided, struct nm_gate_s *p_gate, nm_onesided_request_t *p_req)
 ensures all put operations to the remote node are completed More...
 
void nm_onesided_req_wait (nm_onesided_request_t *p_req)
 wait for this request completion More...
 
void nm_onesided_req_wait_all (nm_onesided_request_t **p_reqs, int n)
 wait for completion of a vector of requests More...
 
int nm_onesided_req_test (nm_onesided_request_t *p_req)
 test for completion of a request More...
 
nm_onesided_queue_id_t nm_onesided_queue_create (nm_onesided_t p_onesided)
 create a local queue, accessible remotely More...
 
void nm_onesided_queue_ienqueue (nm_onesided_t p_onesided, struct nm_gate_s *p_gate, nm_onesided_queue_id_t queue, const void *p_ptr, nm_len_t len, nm_onesided_request_t *p_req)
 enqueue a message in the given remote queue, non-blocking version More...
 
void nm_onesided_queue_enqueue (nm_onesided_t p_onesided, struct nm_gate_s *p_gate, nm_onesided_queue_id_t queue, const void *p_ptr, nm_len_t len)
 enqueue a message in the given remote queue, blocking version More...
 
void * nm_onesided_queue_dequeue (nm_onesided_t p_onesided, nm_onesided_queue_id_t queue)
 try to dequeue an entry from local queue; return NULL if queue is empty. More...
 
void nm_onesided_iput_with_target (nm_onesided_t p_onesided, struct nm_gate_s *p_gate, void *p_ptr, nm_len_t len, uintptr_t dest_addr, void *p_target_ptr, nm_len_t target_len, nm_onesided_request_t *p_req)
 send a put request with target-side completion. More...
 
void nm_onesided_iget_with_target (nm_onesided_t p_onesided, struct nm_gate_s *p_gate, void *p_ptr, nm_len_t len, uintptr_t dest_addr, void *p_target_ptr, nm_len_t target_len, nm_onesided_request_t *p_req)
 send a get request with target-side completion More...
 
void nm_onesided_target_irecv (nm_onesided_t p_onesided, nm_gate_t p_gate, void *p_ptr, nm_len_t len, nm_onesided_target_request_t *p_req)
 posts a recv request for target-side completion More...
 
void nm_onesided_target_wait (nm_onesided_target_request_t *p_req)
 wait completion of a request on target side More...
 
nm_gate_t nm_onesided_target_get_source (nm_onesided_target_request_t *p_req)
 get the source of a request More...
 
uintptr_t nm_onesided_target_get_addr (nm_onesided_target_request_t *p_req)
 get the address of a request More...
 
nm_len_t nm_onesided_target_get_size (nm_onesided_target_request_t *p_req)
 get the size of a request (size of the onesided operation, not the target-side completion data) More...
 
void nm_onesided_put (nm_onesided_t p_onesided, struct nm_gate_s *p_gate, void *p_ptr, nm_len_t len, uintptr_t dest_addr)
 blocking version of iput More...
 
void nm_onesided_get (nm_onesided_t p_onesided, struct nm_gate_s *p_gate, void *p_ptr, nm_len_t len, uintptr_t dest_addr)
 blocking version of iget More...
 
void nm_onesided_fence (nm_onesided_t p_onesided, struct nm_gate_s *p_gate)
 blocking version of ifence More...