/* * Copyright (c) 2004-2007 The Trustees of the University of Tennessee. * All rights reserved. * Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow * * $HEADER$ */ #include "ompi_config.h" #include "base.h" #include "opal/mca/mca.h" #include "opal/mca/base/base.h" #include "ompi/mca/vprotocol/base/static-components.h" opal_list_t mca_vprotocol_base_components_available; char *mca_vprotocol_base_include_list; mca_pml_v_t mca_pml_v = {-1, 0, 0}; /* Load any vprotocol MCA component and call open function of all those * components. * * Also fill the mca_vprotocol_base_include_list with components that exists */ int mca_vprotocol_base_open(char *vprotocol_include_list) { OBJ_CONSTRUCT(&mca_vprotocol_base_components_available, opal_list_t); mca_vprotocol_base_include_list = vprotocol_include_list; if (NULL == mca_vprotocol_base_include_list || mca_vprotocol_base_include_list[0] == 0) { return OMPI_SUCCESS; } return mca_base_components_open("vprotocol", 0, mca_vprotocol_base_static_components, &mca_vprotocol_base_components_available, true); } /* Close and unload any vprotocol MCA component loaded. */ int mca_vprotocol_base_close(void) { int ret; ret = mca_base_components_close(mca_pml_v.output, &mca_vprotocol_base_components_available, NULL); if (NULL != mca_vprotocol_base_include_list) { free(mca_vprotocol_base_include_list); } OBJ_DESTRUCT(&mca_vprotocol_base_components_available); return ret; }