root/ompi/mca/crcp/base/base.h

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

INCLUDED FROM


   1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
   2 /*
   3  * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana
   4  *                         University Research and Technology
   5  *                         Corporation.  All rights reserved.
   6  * Copyright (c) 2004-2005 The University of Tennessee and The University
   7  *                         of Tennessee Research Foundation.  All rights
   8  *                         reserved.
   9  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
  10  *                         University of Stuttgart.  All rights reserved.
  11  * Copyright (c) 2004-2005 The Regents of the University of California.
  12  *                         All rights reserved.
  13  * Copyright (c) 2015      Los Alamos National Security, LLC.  All rights
  14  *                         reserved.
  15  * $COPYRIGHT$
  16  *
  17  * Additional copyrights may follow
  18  *
  19  * $HEADER$
  20  */
  21 #ifndef OMPI_CRCP_BASE_H
  22 #define OMPI_CRCP_BASE_H
  23 
  24 #include "ompi_config.h"
  25 
  26 #include "opal/mca/base/base.h"
  27 #include "ompi/constants.h"
  28 
  29 #include "ompi/mca/crcp/crcp.h"
  30 
  31 /*
  32  * Global functions for MCA overall CRCP
  33  */
  34 
  35 BEGIN_C_DECLS
  36 
  37     /**
  38      * Select an available component.
  39      *
  40      * @retval OMPI_SUCCESS Upon Success
  41      * @retval OMPI_NOT_FOUND If no component can be selected
  42      * @retval OMPI_ERROR Upon other failure
  43      *
  44      */
  45     OMPI_DECLSPEC int ompi_crcp_base_select(void);
  46 
  47     /**
  48      * Quiesce Interface (For MPI Ext.)
  49      */
  50     OMPI_DECLSPEC int ompi_crcp_base_quiesce_start(MPI_Info *info);
  51     OMPI_DECLSPEC int ompi_crcp_base_quiesce_end(MPI_Info *info);
  52 
  53     /**
  54      * 'None' component functions
  55      * These are to be used when no component is selected.
  56      * They just return success, and empty strings as necessary.
  57      */
  58     int ompi_crcp_base_none_open(void);
  59     int ompi_crcp_base_none_close(void);
  60     int ompi_crcp_base_none_query(mca_base_module_t **module, int *priority);
  61 
  62     int ompi_crcp_base_module_init(void);
  63     int ompi_crcp_base_module_finalize(void);
  64 
  65     /* Quiesce Interface */
  66     int ompi_crcp_base_none_quiesce_start(MPI_Info *info);
  67     int ompi_crcp_base_none_quiesce_end(MPI_Info *info);
  68 
  69     /* PML Interface */
  70     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_enable( bool enable, ompi_crcp_base_pml_state_t* );
  71 
  72     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_add_comm( struct ompi_communicator_t* comm, ompi_crcp_base_pml_state_t* );
  73     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_del_comm( struct ompi_communicator_t* comm, ompi_crcp_base_pml_state_t* );
  74 
  75     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_add_procs( struct ompi_proc_t **procs, size_t nprocs, ompi_crcp_base_pml_state_t* );
  76     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_del_procs( struct ompi_proc_t **procs, size_t nprocs, ompi_crcp_base_pml_state_t* );
  77 
  78     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_progress(ompi_crcp_base_pml_state_t*);
  79 
  80     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_iprobe(int dst, int tag, struct ompi_communicator_t* comm, int *matched, ompi_status_public_t* status, ompi_crcp_base_pml_state_t* );
  81 
  82     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_probe( int dst, int tag, struct ompi_communicator_t* comm, ompi_status_public_t* status, ompi_crcp_base_pml_state_t* );
  83 
  84     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_isend_init( void *buf, size_t count, ompi_datatype_t *datatype, int dst, int tag,
  85                                             mca_pml_base_send_mode_t mode, struct ompi_communicator_t* comm, struct ompi_request_t **request, ompi_crcp_base_pml_state_t* );
  86 
  87     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_isend( void *buf, size_t count, ompi_datatype_t *datatype, int dst, int tag,
  88                                        mca_pml_base_send_mode_t mode, struct ompi_communicator_t* comm, struct ompi_request_t **request, ompi_crcp_base_pml_state_t* );
  89 
  90     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_send(  void *buf, size_t count, ompi_datatype_t *datatype, int dst, int tag,
  91                                        mca_pml_base_send_mode_t mode, struct ompi_communicator_t* comm, ompi_crcp_base_pml_state_t* );
  92 
  93     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_irecv_init( void *buf, size_t count, ompi_datatype_t *datatype, int src, int tag,
  94                                             struct ompi_communicator_t* comm,  struct ompi_request_t **request, ompi_crcp_base_pml_state_t*);
  95 
  96     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_irecv( void *buf, size_t count, ompi_datatype_t *datatype, int src, int tag,
  97                                        struct ompi_communicator_t* comm, struct ompi_request_t **request, ompi_crcp_base_pml_state_t* );
  98 
  99     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_recv(  void *buf, size_t count, ompi_datatype_t *datatype, int src, int tag,
 100                                        struct ompi_communicator_t* comm,  ompi_status_public_t* status, ompi_crcp_base_pml_state_t*);
 101 
 102     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_dump( struct ompi_communicator_t* comm, int verbose, ompi_crcp_base_pml_state_t* );
 103 
 104     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_start( size_t count, ompi_request_t** requests, ompi_crcp_base_pml_state_t* );
 105 
 106     ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_ft_event(int state, ompi_crcp_base_pml_state_t*);
 107 
 108     /* Request Interface */
 109     int ompi_crcp_base_none_request_complete( struct ompi_request_t *request );
 110 
 111     /* BTL Interface */
 112     ompi_crcp_base_btl_state_t*
 113     ompi_crcp_base_none_btl_add_procs( struct mca_btl_base_module_t* btl,
 114                                        size_t nprocs,
 115                                        struct ompi_proc_t** procs,
 116                                        struct mca_btl_base_endpoint_t** endpoints,
 117                                        struct opal_bitmap_t* reachable,
 118                                        ompi_crcp_base_btl_state_t* );
 119 
 120     ompi_crcp_base_btl_state_t*
 121     ompi_crcp_base_none_btl_del_procs( struct mca_btl_base_module_t* btl,
 122                                        size_t nprocs,
 123                                        struct ompi_proc_t** procs,
 124                                        struct mca_btl_base_endpoint_t**,
 125                                        ompi_crcp_base_btl_state_t*);
 126 
 127     ompi_crcp_base_btl_state_t*
 128     ompi_crcp_base_none_btl_register( struct mca_btl_base_module_t* btl,
 129                                       mca_btl_base_tag_t tag,
 130                                       mca_btl_base_module_recv_cb_fn_t cbfunc,
 131                                       void* cbdata,
 132                                       ompi_crcp_base_btl_state_t*);
 133 
 134     ompi_crcp_base_btl_state_t*
 135     ompi_crcp_base_none_btl_finalize( struct mca_btl_base_module_t* btl,
 136                                       ompi_crcp_base_btl_state_t*);
 137 
 138     ompi_crcp_base_btl_state_t*
 139     ompi_crcp_base_none_btl_alloc( struct mca_btl_base_module_t* btl,
 140                                    size_t size,
 141                                    ompi_crcp_base_btl_state_t*);
 142 
 143     ompi_crcp_base_btl_state_t*
 144     ompi_crcp_base_none_btl_free( struct mca_btl_base_module_t* btl,
 145                                   mca_btl_base_descriptor_t* descriptor,
 146                                   ompi_crcp_base_btl_state_t*);
 147 
 148     ompi_crcp_base_btl_state_t*
 149     ompi_crcp_base_none_btl_prepare_src( struct mca_btl_base_module_t* btl,
 150                                          struct mca_btl_base_endpoint_t* endpoint,
 151                                          mca_rcache_base_registration_t* registration,
 152                                          struct opal_convertor_t* convertor,
 153                                          size_t reserve,
 154                                          size_t* size,
 155                                          ompi_crcp_base_btl_state_t*);
 156 
 157     ompi_crcp_base_btl_state_t*
 158     ompi_crcp_base_none_btl_prepare_dst( struct mca_btl_base_module_t* btl,
 159                                          struct mca_btl_base_endpoint_t* endpoint,
 160                                          mca_rcache_base_registration_t* registration,
 161                                          struct opal_convertor_t* convertor,
 162                                          size_t reserve,
 163                                          size_t* size,
 164                                          ompi_crcp_base_btl_state_t*);
 165 
 166     ompi_crcp_base_btl_state_t*
 167     ompi_crcp_base_none_btl_send( struct mca_btl_base_module_t* btl,
 168                                   struct mca_btl_base_endpoint_t* endpoint,
 169                                   struct mca_btl_base_descriptor_t* descriptor,
 170                                   mca_btl_base_tag_t tag,
 171                                   ompi_crcp_base_btl_state_t*);
 172 
 173     ompi_crcp_base_btl_state_t*
 174     ompi_crcp_base_none_btl_put( struct mca_btl_base_module_t* btl,
 175                                  struct mca_btl_base_endpoint_t* endpoint,
 176                                  struct mca_btl_base_descriptor_t* descriptor,
 177                                  ompi_crcp_base_btl_state_t*);
 178 
 179     ompi_crcp_base_btl_state_t*
 180     ompi_crcp_base_none_btl_get( struct mca_btl_base_module_t* btl,
 181                                  struct mca_btl_base_endpoint_t* endpoint,
 182                                  struct mca_btl_base_descriptor_t* descriptor,
 183                                  ompi_crcp_base_btl_state_t*);
 184 
 185     ompi_crcp_base_btl_state_t*
 186     ompi_crcp_base_none_btl_dump( struct mca_btl_base_module_t* btl,
 187                                   struct mca_btl_base_endpoint_t* endpoint,
 188                                   int verbose,
 189                                   ompi_crcp_base_btl_state_t*);
 190 
 191     ompi_crcp_base_btl_state_t*
 192     ompi_crcp_base_none_btl_ft_event(int state,
 193                                      ompi_crcp_base_btl_state_t*);
 194 
 195     OMPI_DECLSPEC extern mca_base_framework_t ompi_crcp_base_framework;
 196     OMPI_DECLSPEC extern ompi_crcp_base_component_t ompi_crcp_base_selected_component;
 197     OMPI_DECLSPEC extern ompi_crcp_base_module_t ompi_crcp;
 198 
 199 END_C_DECLS
 200 
 201 #endif /* OMPI_CRCP_BASE_H */

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