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