File indexing completed on 2023-05-28 05:10:53 UTC
view on githubraw file Latest commit b4daa243 on 2023-05-28 03:53:22 UTC
b4daa24319 Shre*0001 /*
0002 ##########################################################
0003 # This file is part of the AdjoinableMPI library #
0004 # released under the MIT License. #
0005 # The full COPYRIGHT notice can be found in the top #
0006 # level directory of the AdjoinableMPI distribution. #
0007 ##########################################################
0008
0009 #ifndef _AMPI_TAPE_SUPPORT_H_
0010 #define _AMPI_TAPE_SUPPORT_H_
0011
0012 #include <mpi.h>
0013 #if defined(__cplusplus)
0014 extern "C" {
0015 #endif
0016
0017 #include "ampi/userIF/request.h"
0018
0019 /**
0020 * \file
0021 * \brief interface to a reusable tape to read and write in particular the opaque MPI types
0022 */
0023
0024 void TAPE_AMPI_init();
0025 void TAPE_AMPI_resetBottom();
0026 void TAPE_AMPI_resetTop();
0027
0028 void TAPE_AMPI_push_int(int an_int);
0029 void TAPE_AMPI_pop_int(int *an_int);
0030 void TAPE_AMPI_read_int(int* an_int);
0031
0032 void TAPE_AMPI_push_MPI_Aint(MPI_Aint an_MPI_Aint);
0033 void TAPE_AMPI_pop_MPI_Aint(MPI_Aint *an_MPI_Aint);
0034 void TAPE_AMPI_read_MPI_Aint(MPI_Aint* an_MPI_Aint);
0035
0036 void TAPE_AMPI_push_ptr(void *ptr);
0037 void TAPE_AMPI_pop_ptr(void **ptr);
0038 void TAPE_AMPI_read_ptr(void **ptr);
0039
0040 void TAPE_AMPI_push_MPI_Datatype(MPI_Datatype an_MPI_Datatype);
0041 void TAPE_AMPI_pop_MPI_Datatype(MPI_Datatype *an_MPI_Datatype);
0042 void TAPE_AMPI_read_MPI_Datatype(MPI_Datatype* an_MPI_Datatype);
0043
0044 void TAPE_AMPI_push_MPI_Comm(MPI_Comm an_MPI_Comm);
0045 void TAPE_AMPI_pop_MPI_Comm(MPI_Comm *an_MPI_Comm);
0046 void TAPE_AMPI_read_MPI_Comm(MPI_Comm* an_MPI_Comm);
0047
0048 void TAPE_AMPI_push_MPI_Request(MPI_Request an_MPI_Request);
0049 void TAPE_AMPI_pop_MPI_Request(MPI_Request *an_MPI_Request);
0050 void TAPE_AMPI_read_MPI_Request(MPI_Request* an_MPI_Request);
0051
0052 void TAPE_AMPI_push_MPI_Op(MPI_Op an_MPI_Op);
0053 void TAPE_AMPI_pop_MPI_Op(MPI_Op *an_MPI_Op);
0054 void TAPE_AMPI_read_MPI_Op(MPI_Op* an_MPI_Op);
0055
0056 void TAPE_AMPI_push_double(double a_double);
0057 void TAPE_AMPI_pop_double(double *a_double);
0058 void TAPE_AMPI_read_double(double* a_double);
0059
0060 void TAPE_AMPI_push_MPI_Win(MPI_Win an_MPI_Win);
0061 void TAPE_AMPI_pop_MPI_Win(MPI_Win *an_MPI_Win);
0062 void TAPE_AMPI_read_MPI_Win(MPI_Win* an_MPI_Win);
0063
0064 #if defined(__cplusplus)
0065 }
0066 #endif
0067
0068 #endif
0069