OpenMPI
0.1.1
|
This is the bxor module source code. More...
#include "ompi_config.h"
#include "opal/class/opal_object.h"
#include "opal/util/output.h"
#include "ompi/constants.h"
#include "ompi/op/op.h"
#include "ompi/mca/op/op.h"
#include "ompi/mca/op/base/base.h"
#include "ompi/mca/op/example/op_example.h"
Data Structures | |
struct | module_bxor_t |
Derive a struct from the base op module struct, allowing us to cache some module-specific information for BXOR. More... | |
Functions | |
static void | module_bxor_constructor (module_bxor_t *m) |
"Constructor" for the bxor module class | |
static void | module_bxor_destructor (module_bxor_t *m) |
"Destructor" for the bxor module class | |
static | OBJ_CLASS_INSTANCE (module_bxor_t, ompi_op_base_module_t, module_bxor_constructor, module_bxor_destructor) |
Setup the class for the bxor module, listing: More... | |
static void | bxor_int (void *in, void *out, int *count, ompi_datatype_t **type, ompi_op_base_module_t *module) |
Bxor function for C int. | |
static void | bxor_long (void *in, void *out, int *count, ompi_datatype_t **type, ompi_op_base_module_t *module) |
Bxor function for C long. | |
static void | bxor_integer (void *in, void *out, int *count, ompi_datatype_t **type, ompi_op_base_module_t *module) |
Bxor function for Fortran INTEGER. | |
ompi_op_base_module_t * | ompi_op_example_setup_bxor (ompi_op_t *op) |
Setup function for MPI_BXOR. More... | |
This is the bxor module source code.
It contains the "setup" functions that will create a module for the MPI_BXOR MPI_Op.
|
static |
Setup the class for the bxor module, listing:
ompi_op_base_module_t* ompi_op_example_setup_bxor | ( | ompi_op_t * | op | ) |
Setup function for MPI_BXOR.
Setup for MPI_BXOR and return a module.
If we get here, we can assume that a) the hardware is present, b) the MPI thread scenario is what we want, and c) the BXOR operation is supported. So this function's job is to create a module and fill in function pointers for the functions that this hardware supports.
This function is not allowed to changed the op; it can only read it to save functions/modules that were already set. The op base will analyze what was returned in the module and re-set values on the op if necessary.
References bxor_int(), bxor_integer(), bxor_long(), ompi_op_t::intrinsic, ompi_op_t::o_func, OBJ_RETAIN, OMPI_OP_BASE_TYPE_INTEGER, and ompi_op_base_module_1_0_0_t::opm_fns.