#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <mpi.h>
#include "core/ppm_xfuncs.h"
#include "xt/xt_mpi.h"
#include "xt/xt_request_msgs_ebuf.h"
#include "xt_request_msgs_ebuf_internal.h"
#include "xt_config_internal.h"
#include "xt_mpi_internal.h"
#include "xt_request_internal.h"
Go to the source code of this file.
|
static void | xt_request_msgs_ebuf_wait (Xt_request request) |
|
static int | xt_request_msgs_ebuf_test (Xt_request request) |
|
Xt_request | xt_request_msgs_ebuf_alloc (int n_requests, MPI_Comm comm, size_t extra_buf_size, Xt_config config) |
|
static void * | extra_buf (Xt_request_msgs_ebuf request_msgs_ebuf) |
|
Xt_request | xt_request_msgs_ebuf_new (int n_requests, size_t extra_buf_size, Xt_fill_ebuf_requests init, void *data, Xt_request_msgs_ebuf_finalizer finalize, MPI_Comm comm) |
|
Xt_request | xt_request_msgs_ebuf_custom_new (int n_requests, size_t extra_buf_size, Xt_fill_ebuf_requests init, void *data, Xt_request_msgs_ebuf_finalizer finalize, MPI_Comm comm, Xt_config config) |
|
static void | finish_requests (Xt_request_msgs_ebuf request_msgs_ebuf) |
|
MPI_Request * | xt_request_msgs_ebuf_get_req_ptr (Xt_request request) |
|
MPI_Comm | xt_request_msgs_ebuf_get_comm (Xt_request request) |
|
void | xt_request_msgs_ebuf_set_finalizer (Xt_request request, Xt_request_msgs_ebuf_finalizer finalizer) |
|
void * | xt_request_msgs_ebuf_get_extra_buf (Xt_request request) |
|
◆ no_finalizer
#define no_finalizer ((void (*)(Xt_request, void *))0) |
◆ Xt_request_msgs_ebuf
◆ extra_buf()
◆ finish_requests()
◆ xt_request_msgs_ebuf_alloc()
- Parameters
-
n_requests | number of requests that can be stored |
comm | communicator to use for error handling |
config | custom configuration object handle |
extra_buf_size | size of buffer to allocate additionally |
- Returns
- Xt_request_msgs object ready for n MPI requests
Definition at line 105 of file xt_request_msgs_ebuf.c.
◆ xt_request_msgs_ebuf_custom_new()
customizable constructor for message request handle
- Parameters
-
[in] | n_requests | number of entries in requests array |
[in] | extra_buf_size | amount of extra bytes to allocate and make available to init |
[in] | init | function to call before returning which will then initialize the requests array completely and the extra buffer as needed |
[in] | data | pointer to caller-defined additional information needed by and passed to init |
[in] | finalize | pointer to function to call when deleting the request handle object (because all requests are finished) |
[in] | comm | MPI communicator |
[in] | config | configuration object handle |
- Returns
- request handle associated with extra buffer
Definition at line 153 of file xt_request_msgs_ebuf.c.
◆ xt_request_msgs_ebuf_get_comm()
◆ xt_request_msgs_ebuf_get_extra_buf()
void * xt_request_msgs_ebuf_get_extra_buf |
( |
Xt_request | request | ) |
|
◆ xt_request_msgs_ebuf_get_req_ptr()
MPI_Request * xt_request_msgs_ebuf_get_req_ptr |
( |
Xt_request | request | ) |
|
- Parameters
-
request | xt_request_msgs_ebuf object |
- Returns
- Pointer to first element of MPI_Request array for requests stored in request object
Definition at line 218 of file xt_request_msgs_ebuf.c.
◆ xt_request_msgs_ebuf_new()
constructor for message request handle associated with extra buffer
- Parameters
-
[in] | n_requests | number of requests needed |
[in] | extra_buf_size | amount of extra bytes to allocate and make available to init |
[in] | init | function to call before returning which will then initialize the requests array completely and the extra buffer as needed |
[in] | data | pointer to caller-defined additional information needed by and passed to init |
[in] | finalize | pointer to function to call when deleting the request handle object (because all requests are finished) |
[in] | comm | MPI communicator |
- Returns
- request handle associated with extra buffer
Definition at line 142 of file xt_request_msgs_ebuf.c.
◆ xt_request_msgs_ebuf_set_finalizer()
◆ xt_request_msgs_ebuf_test()
static int xt_request_msgs_ebuf_test |
( |
Xt_request | request | ) |
|
|
static |
◆ xt_request_msgs_ebuf_wait()
static void xt_request_msgs_ebuf_wait |
( |
Xt_request | request | ) |
|
|
static |
◆ request_msgs_ebuf_vtable
Initial value:= {
}
static int xt_request_msgs_ebuf_test(Xt_request request)
static void xt_request_msgs_ebuf_wait(Xt_request request)
Definition at line 78 of file xt_request_msgs_ebuf.c.