/* * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. * Copyright (c) 2004-2006 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2006 The Regents of the University of California. * All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow * * $HEADER$ */ /** * @file * * BML Management Layer (BML) * */ #include "opal/mca/mca.h" #include "ompi/mca/btl/btl.h" #ifndef MCA_BML_R2_H #define MCA_BML_R2_H #include "ompi/types.h" #include "ompi/class/ompi_free_list.h" #include "ompi/mca/bml/bml.h" #if defined(c_plusplus) || defined(__cplusplus) extern "C" { #endif /** * BML module interface functions and attributes. */ struct mca_bml_r2_module_t { mca_bml_base_module_t super; size_t num_btl_modules; mca_btl_base_module_t** btl_modules; size_t num_btl_progress; mca_btl_base_component_progress_fn_t * btl_progress; bool btls_added; bool show_unreach_errors; }; typedef struct mca_bml_r2_module_t mca_bml_r2_module_t; OMPI_DECLSPEC extern mca_bml_base_component_1_0_0_t mca_bml_r2_component; extern mca_bml_r2_module_t mca_bml_r2; int mca_bml_r2_component_open(void); int mca_bml_r2_component_close(void); mca_bml_base_module_t* mca_bml_r2_component_init( int* priority, bool enable_progress_threads, bool enable_mpi_threads ); int mca_bml_r2_progress(void); int mca_bml_r2_add_procs( size_t nprocs, struct ompi_proc_t** procs, struct mca_bml_base_endpoint_t** bml_endpoints, struct ompi_bitmap_t* reachable ); int mca_bml_r2_del_procs( size_t nprocs, struct ompi_proc_t** procs ); int mca_bml_r2_add_btl( mca_btl_base_module_t* btl ); int mca_bml_r2_del_btl( mca_btl_base_module_t* btl ); int mca_bml_r2_del_proc_btl( struct ompi_proc_t* proc, mca_btl_base_module_t* btl ); int mca_bml_r2_register( mca_btl_base_tag_t tag, mca_btl_base_module_recv_cb_fn_t cbfunc, void* data ); int mca_bml_r2_register_error( mca_btl_base_module_error_cb_fn_t cbfunc ); int mca_bml_r2_finalize( void ); int mca_bml_r2_component_fini(void); int mca_bml_r2_ft_event(int status); #if defined(c_plusplus) || defined(__cplusplus) } #endif #endif /* OMPI_MCA_BML_R2_H */