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-2006 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) 2006 Sun Microsystems, Inc. All rights reserved. 13 * Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. 14 * $COPYRIGHT$ 15 * 16 * Additional copyrights may follow 17 * 18 * $HEADER$ 19 */ 20 /** 21 * @file 22 */ 23 #ifndef MCA_BTL_BASE_H 24 #define MCA_BTL_BASE_H 25 26 #include "opal_config.h" 27 #include "opal/class/opal_list.h" 28 #include "opal/mca/mca.h" 29 #include "opal/mca/btl/btl.h" 30 31 BEGIN_C_DECLS 32 33 struct mca_btl_base_selected_module_t { 34 opal_list_item_t super; 35 mca_btl_base_component_t *btl_component; 36 mca_btl_base_module_t *btl_module; 37 }; 38 typedef struct mca_btl_base_selected_module_t mca_btl_base_selected_module_t; 39 40 41 /* holds the recv call back function to be called by the btl on 42 * a receive. 43 */ 44 struct mca_btl_base_recv_reg_t { 45 mca_btl_base_module_recv_cb_fn_t cbfunc; 46 void* cbdata; 47 }; 48 typedef struct mca_btl_base_recv_reg_t mca_btl_base_recv_reg_t; 49 50 51 OPAL_DECLSPEC OBJ_CLASS_DECLARATION(mca_btl_base_selected_module_t); 52 53 /* 54 * Global functions for MCA: overall BTL open and close 55 */ 56 57 OPAL_DECLSPEC int mca_btl_base_select(bool enable_progress_threads, bool enable_mpi_threads); 58 OPAL_DECLSPEC void mca_btl_base_dump( 59 struct mca_btl_base_module_t*, 60 struct mca_btl_base_endpoint_t*, 61 int verbose); 62 OPAL_DECLSPEC int mca_btl_base_param_register(mca_base_component_t *version, 63 mca_btl_base_module_t *module); 64 OPAL_DECLSPEC int mca_btl_base_param_verify(mca_btl_base_module_t *module); 65 66 /* 67 * Globals 68 */ 69 extern char* mca_btl_base_include; 70 extern char* mca_btl_base_exclude; 71 extern int mca_btl_base_warn_component_unused; 72 extern int mca_btl_base_already_opened; 73 OPAL_DECLSPEC extern opal_list_t mca_btl_base_modules_initialized; 74 OPAL_DECLSPEC extern bool mca_btl_base_thread_multiple_override; 75 76 OPAL_DECLSPEC extern mca_base_framework_t opal_btl_base_framework; 77 78 extern mca_base_var_enum_flag_t *mca_btl_base_flag_enum; 79 extern mca_base_var_enum_flag_t *mca_btl_base_atomic_enum; 80 81 END_C_DECLS 82 83 #endif /* MCA_BTL_BASE_H */ 84