1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
/*
* Copyright (c) 2013-2018 Intel, Inc. All rights reserved
*
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#ifndef MTL_OFI_OPT_H
#define MTL_OFI_OPT_H
#include "mtl_ofi.h"
BEGIN_C_DECLS
#define CQ_DATA_TYPES 2
#define OMPI_MTL_OFI_SEND_TYPES [CQ_DATA_TYPES]
#define OMPI_MTL_OFI_ISEND_TYPES [CQ_DATA_TYPES]
#define OMPI_MTL_OFI_IRECV_TYPES [CQ_DATA_TYPES]
#define OMPI_MTL_OFI_IPROBE_TYPES [CQ_DATA_TYPES]
#define OMPI_MTL_OFI_IMPROBE_TYPES [CQ_DATA_TYPES]
struct ompi_mtl_ofi_symtable {
int (*ompi_mtl_ofi_send OMPI_MTL_OFI_SEND_TYPES )
(struct mca_mtl_base_module_t *mtl,
struct ompi_communicator_t *comm,
int dest,
int tag,
struct opal_convertor_t *convertor,
mca_pml_base_send_mode_t mode);
int (*ompi_mtl_ofi_isend OMPI_MTL_OFI_ISEND_TYPES )
(struct mca_mtl_base_module_t *mtl,
struct ompi_communicator_t *comm,
int dest,
int tag,
struct opal_convertor_t *convertor,
mca_pml_base_send_mode_t mode,
bool blocking,
mca_mtl_request_t *mtl_request);
int (*ompi_mtl_ofi_irecv OMPI_MTL_OFI_IRECV_TYPES )
(struct mca_mtl_base_module_t *mtl,
struct ompi_communicator_t *comm,
int src,
int tag,
struct opal_convertor_t *convertor,
mca_mtl_request_t *mtl_request);
int (*ompi_mtl_ofi_iprobe OMPI_MTL_OFI_IPROBE_TYPES )
(struct mca_mtl_base_module_t *mtl,
struct ompi_communicator_t *comm,
int src,
int tag,
int *flag,
struct ompi_status_public_t *status);
int (*ompi_mtl_ofi_improbe OMPI_MTL_OFI_IMPROBE_TYPES )
(struct mca_mtl_base_module_t *mtl,
struct ompi_communicator_t *comm,
int src,
int tag,
int *matched,
struct ompi_message_t **message,
struct ompi_status_public_t *status);
};
/**
* MTL OFI specialization function symbol table init
*/
void ompi_mtl_ofi_send_symtable_init(struct ompi_mtl_ofi_symtable* sym_table);
void ompi_mtl_ofi_isend_symtable_init(struct ompi_mtl_ofi_symtable* sym_table);
void ompi_mtl_ofi_irecv_symtable_init(struct ompi_mtl_ofi_symtable* sym_table);
void ompi_mtl_ofi_iprobe_symtable_init(struct ompi_mtl_ofi_symtable* sym_table);
void ompi_mtl_ofi_improbe_symtable_init(struct ompi_mtl_ofi_symtable* sym_table);
END_C_DECLS
#endif /* MTL_OFI_OPT_H */
|