OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

Macros | Typedefs | Functions
datarep.h File Reference

This file does two things: More...

`#include "ompi_config.h"`
`#include "mpi.h"`

Go to the source code of this file.

## Macros
#define | OMPI_DATAREP_FORTRAN_DECLARE(lower_name, upper_name, args)
| Macro for declaring each of the 5 back-end Fortran functions for MPI_CONVERSION_FN_NULL. More...
#define | OMPI_IS_FORTRAN_CONVERSION_FN_NULL(addr) (mpi_conversion_fn_null__ == addr)
| Declare the test macro in all of its forms. More...

## Typedefs
typedef void( | ompi_mpi2_fortran_datarep_extent_fn_t )(MPI_Fint *datatype, MPI_Aint *extent, MPI_Aint *extra_state, MPI_Fint *ierr)
| Function typedef for the extent function pointer in MPI_REGISTER_DATAREP.

## Functions
BEGIN_C_DECLS typedef void() | ompi_mpi2_fortran_datarep_conversion_fn_t (char *userbuf, MPI_Fint *datatype, MPI_Fint *count, char *filebuf, MPI_Offset *position, MPI_Aint *extra_state, MPI_Fint *ierr)
| Function typedef for the conversion function pointer in MPI_REGISTER_DATAREP.

## Detailed Description

This file does two things:

1. Provides typedef for the Fortran versions of the callbacks registered by MPI_REGISTER_DATAREP. These typedefs are needed for the Fortran MPI API.
2. Provides the sentinel value functions/function pointers for Fortran's version of MPI_CONVERSION_FN_NULL, and some helpful macros for testing whether an argument passed to a Fortran MPI API function is that sentinel value or not.

## Macro Definition Documentation

#define OMPI_DATAREP_FORTRAN_DECLARE | ( |  | lower_name,
|  |  | upper_name,
|  |  | args
| ) |  |

Value:
OMPI_DECLSPEC void lower_name##_f args; \
OMPI_DECLSPEC void lower_name args; \
OMPI_DECLSPEC void lower_name##_ args; \
OMPI_DECLSPEC void lower_name##__ args; \
OMPI_DECLSPEC void upper_name args;

Macro for declaring each of the 5 back-end Fortran functions for MPI_CONVERSION_FN_NULL.

We need the 4 fortran compiler convetions and 1 for the "real" back-end function (even though these functions are never invoked – they're only used as sentinel values – it's simpler to use the same kind of code structure that we use for the Fortran MPI API bindings and other callback functions).

#define OMPI_IS_FORTRAN_CONVERSION_FN_NULL | ( |  | addr | ) | (mpi_conversion_fn_null__ == addr)

Declare the test macro in all of its forms.

This macro provides a convenient way to check whether an argument is the sentinel value MPI_CONVERSION_FN_NULL.