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 }