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) 2008-2014 University of Houston. All rights reserved. 13 * Copyright (c) 2018 Research Organization for Information Science 14 * and Technology (RIST). All rights reserved. 15 * $COPYRIGHT$ 16 * 17 * Additional copyrights may follow 18 * 19 * $HEADER$ 20 * 21 * These symbols are in a file by themselves to provide nice linker 22 * semantics. Since linkers generally pull in symbols by object fules, 23 * keeping these symbols as the only symbols in this file prevents 24 * utility programs such as "ompi_info" from having to import entire 25 * modules just to query their version and parameters 26 */ 27 28 #include "ompi_config.h" 29 #include "mpi.h" 30 #include "ompi/mca/fbtl/fbtl.h" 31 #include "ompi/mca/fbtl/pvfs2/fbtl_pvfs2.h" 32 33 /* 34 * ******************************************************************* 35 * ************************ actions structure ************************ 36 * ******************************************************************* 37 */ 38 static mca_fbtl_base_module_1_0_0_t pvfs2 = { 39 mca_fbtl_pvfs2_module_init, /* initalise after being selected */ 40 mca_fbtl_pvfs2_module_finalize, /* close a module on a communicator */ 41 mca_fbtl_pvfs2_preadv, /* blocking read */ 42 NULL, /* non-blocking read */ 43 mca_fbtl_pvfs2_pwritev, /* blocking write */ 44 NULL, /* non-blocking write */ 45 NULL, /* module specific progress */ 46 NULL /* free module specific data items on the request */ 47 }; 48 /* 49 * ******************************************************************* 50 * ************************* structure ends ************************** 51 * ******************************************************************* 52 */ 53 54 int mca_fbtl_pvfs2_component_init_query(bool enable_progress_threads, 55 bool enable_mpi_threads) { 56 /* Nothing to do */ 57 58 return OMPI_SUCCESS; 59 } 60 61 struct mca_fbtl_base_module_1_0_0_t * 62 mca_fbtl_pvfs2_component_file_query (ompio_file_t *fh, int *priority) { 63 *priority = mca_fbtl_pvfs2_priority; 64 65 if (PVFS2 == fh->f_fstype) { 66 if (*priority < 50) { 67 *priority = 50; 68 } 69 } 70 71 return &pvfs2; 72 } 73 74 int mca_fbtl_pvfs2_component_file_unquery (ompio_file_t *file) { 75 /* This function might be needed for some purposes later. for now it 76 * does not have anything to do since there are no steps which need 77 * to be undone if this module is not selected */ 78 79 return OMPI_SUCCESS; 80 } 81 82 int mca_fbtl_pvfs2_module_init (ompio_file_t *file) { 83 return OMPI_SUCCESS; 84 } 85 86 87 int mca_fbtl_pvfs2_module_finalize (ompio_file_t *file) { 88 return OMPI_SUCCESS; 89 }