1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ 2 /* 3 * Copyright (c) 2004-2007 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) 2008 Cisco Systems, Inc. All rights reserved. 14 * Copyright (c) 2008-2014 University of Houston. All rights reserved. 15 * Copyright (c) 2015 Los Alamos National Security, LLC. All rights 16 * reserved. 17 * $COPYRIGHT$ 18 * 19 * Additional copyrights may follow 20 * 21 * $HEADER$ 22 * 23 * These symbols are in a file by themselves to provide nice linker 24 * semantics. Since linkers generally pull in symbols by object 25 * files, keeping these symbols as the only symbols in this file 26 * prevents utility programs such as "ompi_info" from having to import 27 * entire components just to query their version and parameters. 28 */ 29 30 #include "ompi_config.h" 31 #include "fcoll_dynamic.h" 32 #include "mpi.h" 33 34 /* 35 * Public string showing the fcoll ompi_dynamic component version number 36 */ 37 const char *mca_fcoll_dynamic_component_version_string = 38 "Open MPI dynamic collective MCA component version " OMPI_VERSION; 39 40 /* 41 * Global variables 42 */ 43 int mca_fcoll_dynamic_priority = 10; 44 45 /* 46 * Local function 47 */ 48 static int dynamic_register(void); 49 50 /* 51 * Instantiate the public struct with all of our public information 52 * and pointers to our public functions in it 53 */ 54 mca_fcoll_base_component_2_0_0_t mca_fcoll_dynamic_component = { 55 56 /* First, the mca_component_t struct containing meta information 57 * about the component itself */ 58 59 .fcollm_version = { 60 MCA_FCOLL_BASE_VERSION_2_0_0, 61 62 /* Component name and version */ 63 .mca_component_name = "dynamic", 64 MCA_BASE_MAKE_VERSION(component, OMPI_MAJOR_VERSION, OMPI_MINOR_VERSION, 65 OMPI_RELEASE_VERSION), 66 .mca_register_component_params = dynamic_register, 67 }, 68 .fcollm_data = { 69 /* The component is checkpoint ready */ 70 MCA_BASE_METADATA_PARAM_CHECKPOINT 71 }, 72 73 .fcollm_init_query = mca_fcoll_dynamic_component_init_query, 74 .fcollm_file_query = mca_fcoll_dynamic_component_file_query, 75 .fcollm_file_unquery = mca_fcoll_dynamic_component_file_unquery, 76 }; 77 78 79 static int 80 dynamic_register(void) 81 { 82 mca_fcoll_dynamic_priority = 10; 83 (void) mca_base_component_var_register(&mca_fcoll_dynamic_component.fcollm_version, 84 "priority", "Priority of the dynamic fcoll component", 85 MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, 86 OPAL_INFO_LVL_9, 87 MCA_BASE_VAR_SCOPE_READONLY, &mca_fcoll_dynamic_priority); 88 89 return OMPI_SUCCESS; 90 }