root/ompi/mca/mtl/ofi/mtl_ofi_opt.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


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

/* [<][>][^][v][top][bottom][index][help] */