root/orte/mca/grpcomm/base/base.h

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

INCLUDED FROM


   1 /*
   2  * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
   3  *                         University Research and Technology
   4  *                         Corporation.  All rights reserved.
   5  * Copyright (c) 2004-2005 The University of Tennessee and The University
   6  *                         of Tennessee Research Foundation.  All rights
   7  *                         reserved.
   8  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
   9  *                         University of Stuttgart.  All rights reserved.
  10  * Copyright (c) 2004-2005 The Regents of the University of California.
  11  *                         All rights reserved.
  12  * Copyright (c) 2011-2013 Los Alamos National Security, LLC.
  13  *                         All rights reserved.
  14  * Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
  15  * Copyright (c) 2017      Cisco Systems, Inc.  All rights reserved
  16  * $COPYRIGHT$
  17  *
  18  * Additional copyrights may follow
  19  *
  20  * $HEADER$
  21  */
  22 /** @file:
  23  */
  24 
  25 #ifndef MCA_GRPCOMM_BASE_H
  26 #define MCA_GRPCOMM_BASE_H
  27 
  28 /*
  29  * includes
  30  */
  31 #include "orte_config.h"
  32 
  33 #include "opal/class/opal_list.h"
  34 #include "opal/class/opal_hash_table.h"
  35 #include "opal/dss/dss_types.h"
  36 #include "orte/mca/mca.h"
  37 #include "opal/mca/hwloc/hwloc-internal.h"
  38 
  39 #include "orte/mca/odls/odls_types.h"
  40 #include "orte/mca/rml/rml_types.h"
  41 #include "orte/mca/grpcomm/grpcomm.h"
  42 
  43 
  44 /*
  45  * Global functions for MCA overall collective open and close
  46  */
  47 BEGIN_C_DECLS
  48 
  49 /*
  50  * MCA framework
  51  */
  52 ORTE_DECLSPEC extern mca_base_framework_t orte_grpcomm_base_framework;
  53 /*
  54  * Select an available component.
  55  */
  56 ORTE_DECLSPEC int orte_grpcomm_base_select(void);
  57 
  58 /*
  59  * globals that might be needed
  60  */
  61 typedef struct {
  62     opal_list_item_t super;
  63     int pri;
  64     orte_grpcomm_base_module_t *module;
  65     mca_base_component_t *component;
  66 } orte_grpcomm_base_active_t;
  67 OBJ_CLASS_DECLARATION(orte_grpcomm_base_active_t);
  68 
  69 typedef struct {
  70     opal_list_t actives;
  71     opal_list_t ongoing;
  72     opal_hash_table_t sig_table;
  73     char *transports;
  74 } orte_grpcomm_base_t;
  75 
  76 ORTE_DECLSPEC extern orte_grpcomm_base_t orte_grpcomm_base;
  77 
  78 /* Public API stubs */
  79 ORTE_DECLSPEC int orte_grpcomm_API_xcast(orte_grpcomm_signature_t *sig,
  80                                          orte_rml_tag_t tag,
  81                                          opal_buffer_t *buf);
  82 
  83 ORTE_DECLSPEC int orte_grpcomm_API_allgather(orte_grpcomm_signature_t *sig,
  84                                              opal_buffer_t *buf,
  85                                              orte_grpcomm_cbfunc_t cbfunc,
  86                                              void *cbdata);
  87 
  88 ORTE_DECLSPEC orte_grpcomm_coll_t* orte_grpcomm_base_get_tracker(orte_grpcomm_signature_t *sig, bool create);
  89 ORTE_DECLSPEC void orte_grpcomm_base_mark_distance_recv(orte_grpcomm_coll_t *coll, uint32_t distance);
  90 ORTE_DECLSPEC unsigned int orte_grpcomm_base_check_distance_recv(orte_grpcomm_coll_t *coll, uint32_t distance);
  91 
  92 END_C_DECLS
  93 #endif

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