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_s * | nm_onesided_t |
| an instance of the 'onesided' interface | |
| typedef struct nm_onesided_request_s | nm_onesided_request_t |
| request type for 'onesided' interface | |
| typedef int | nm_onesided_queue_id_t |
| local id for a queue | |
| typedef struct nm_onesided_target_request_s | nm_onesided_target_request_t |
| request type to receive target-side completions | |
Functions | |
| void | nm_onesided_init (nm_session_t p_session, nm_onesided_t *pp_onesided) |
| initialize the interface, using the given session. | |
| 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 | |
| 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) | |
| 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. | |
| 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). | |
| 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 | |
| void | nm_onesided_req_wait (nm_onesided_request_t *p_req) |
| wait for this request completion | |
| void | nm_onesided_req_wait_all (nm_onesided_request_t **p_reqs, int n) |
| wait for completion of a vector of requests | |
| int | nm_onesided_req_test (nm_onesided_request_t *p_req) |
| test for completion of a request | |
| nm_onesided_queue_id_t | nm_onesided_queue_create (nm_onesided_t p_onesided) |
| create a local queue, accessible remotely | |
| 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 | |
| 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 | |
| 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. | |
| 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. | |
| 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 | |
| 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 | |
| void | nm_onesided_target_wait (nm_onesided_target_request_t *p_req) |
| wait completion of a request on target side | |
| nm_gate_t | nm_onesided_target_get_source (nm_onesided_target_request_t *p_req) |
| get the source of a request | |
| uintptr_t | nm_onesided_target_get_addr (nm_onesided_target_request_t *p_req) |
| get the address of a request | |
| 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) | |
| 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 | |
| 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 | |
| void | nm_onesided_fence (nm_onesided_t p_onesided, struct nm_gate_s *p_gate) |
| blocking version of ifence | |