1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2 * Copyright by The HDF Group. *
3 * Copyright by the Board of Trustees of the University of Illinois. *
4 * All rights reserved. *
5 * *
6 * This file is part of HDF5. The full HDF5 copyright notice, including *
7 * terms governing use, modification, and redistribution, is contained in *
8 * the files COPYING and Copyright.html. COPYING can be found at the root *
9 * of the source code distribution tree; Copyright.html can be found at the *
10 * root level of an installed copy of the electronic HDF5 document set and *
11 * is linked from the top-level documents page. It can also be found at *
12 * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
13 * access to either file, you may request a copy from help@hdfgroup.org. *
14 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15
16 module hdf5.H5FDmpio;
17
18 /*
19 * Programmer: Robb Matzke <matzke@llnl.gov>
20 * Monday, August 2, 1999
21 *
22 * Purpose: The public header file for the mpio driver.
23 */
24
25 import hdf5.H5public;
26 import hdf5.H5Ipublic;
27 public import hdf5.H5FDmpi;
28 import hdf5.H5mpistub;
29
30 extern(C):
31
32 /* Macros */
33
34 /++
35 #ifdef H5_HAVE_PARALLEL
36 # define H5FD_MPIO (H5FD_mpio_init())
37 #else
38 # define H5FD_MPIO (-1)
39 #endif /* H5_HAVE_PARALLEL */
40 +/
41
42 auto H5FD_MPIO()() {
43 return H5FD_mpio_init();
44 }
45
46 /++
47 #ifdef H5_HAVE_PARALLEL
48 /*Turn on H5FDmpio_debug if H5F_DEBUG is on */
49 #ifdef H5F_DEBUG
50 #ifndef H5FDmpio_DEBUG
51 #define H5FDmpio_DEBUG
52 #endif
53 #endif
54 +/
55
56 /* Global var whose value comes from environment variable */
57 /* (Defined in H5FDmpio.c) */
58 extern __gshared hbool_t H5FD_mpi_opt_types_g;
59
60 version(Posix) {
61
62 /* Function prototypes */
63 hid_t H5FD_mpio_init();
64 void H5FD_mpio_term();
65 herr_t H5Pset_fapl_mpio(hid_t fapl_id, MPI_Comm comm, MPI_Info info);
66 herr_t H5Pget_fapl_mpio(hid_t fapl_id, MPI_Comm *comm/*out*/,
67 MPI_Info *info/*out*/);
68 herr_t H5Pset_dxpl_mpio(hid_t dxpl_id, H5FD_mpio_xfer_t xfer_mode);
69 herr_t H5Pget_dxpl_mpio(hid_t dxpl_id, H5FD_mpio_xfer_t *xfer_mode/*out*/);
70 herr_t H5Pset_dxpl_mpio_collective_opt(hid_t dxpl_id, H5FD_mpio_collective_opt_t opt_mode);
71 herr_t H5Pset_dxpl_mpio_chunk_opt(hid_t dxpl_id, H5FD_mpio_chunk_opt_t opt_mode);
72 herr_t H5Pset_dxpl_mpio_chunk_opt_num(hid_t dxpl_id, uint num_chunk_per_proc);
73 herr_t H5Pset_dxpl_mpio_chunk_opt_ratio(hid_t dxpl_id, uint percent_num_proc_per_chunk);
74 }
75