diff options
Diffstat (limited to 'src/H5Sprivate.h')
-rw-r--r-- | src/H5Sprivate.h | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/src/H5Sprivate.h b/src/H5Sprivate.h index 713d52f..5af635d 100644 --- a/src/H5Sprivate.h +++ b/src/H5Sprivate.h @@ -32,6 +32,12 @@ /* Flags for H5S_find */ #define H5S_CONV_PAR_IO_POSSIBLE 0x0001 +/* The storage options are mutually exclusive */ +/* (2-bits reserved for storage type currently) */ +#define H5S_CONV_STORAGE_COMPACT 0x0000 /* i.e. '0' */ +#define H5S_CONV_STORAGE_CONTIGUOUS 0x0002 /* i.e. '1' */ +#define H5S_CONV_STORAGE_CHUNKED 0x0004 /* i.e. '2' */ +#define H5S_CONV_STORAGE_MASK 0x0006 /* Forward references of common typedefs */ typedef struct H5S_t H5S_t; @@ -129,17 +135,6 @@ typedef struct H5S_conv_t { * If there is no data type conversion then it might be possible to * transfer data points between application memory and the file in one * step without going through the data type conversion buffer. - * - * rky 980918 - * If the direct read or write function determines that the transfer - * must be done indirectly, i.e., through the conversion buffer or - * (in the case of parallel MPI-IO) in block-by-block transfers - * then the function returns with the value of must_convert!=0, - * the function's return value is SUCCEED, - * and no transfer of data is attempted. - * Otherwise the direct read or write function returns must_convert 0, - * with the function's return value being SUCCEED or FAIL - * depending on whether or not the transfer of data was successful. */ /* Read from file to application w/o intermediate scratch buffer */ @@ -148,8 +143,7 @@ typedef struct H5S_conv_t { const struct H5O_fill_t *fill, const struct H5O_efl_t *efl, size_t elmt_size, const H5S_t *file_space, const H5S_t *mem_space, - hid_t dxpl_id, void *buf/*out*/, - hbool_t *must_convert/*out*/); + hid_t dxpl_id, void *buf/*out*/); /* Write directly from app buffer to file */ @@ -158,8 +152,7 @@ typedef struct H5S_conv_t { const struct H5O_fill_t *fill, const struct H5O_efl_t *efl, size_t elmt_size, const H5S_t *file_space, const H5S_t *mem_space, - hid_t dxpl_id, const void *buf, - hbool_t *must_convert/*out*/); + hid_t dxpl_id, const void *buf); #ifdef H5S_DEBUG struct { @@ -224,12 +217,19 @@ __DLL__ herr_t H5S_select_serialize(const H5S_t *space, uint8_t *buf); __DLL__ herr_t H5S_select_deserialize(H5S_t *space, const uint8_t *buf); __DLL__ htri_t H5S_select_contiguous(const H5S_t *space); __DLL__ htri_t H5S_select_single(const H5S_t *space); +__DLL__ htri_t H5S_select_regular(const H5S_t *space); +__DLL__ htri_t H5S_select_shape_same(const H5S_t *space1, const H5S_t *space2); __DLL__ herr_t H5S_select_iterate(void *buf, hid_t type_id, H5S_t *space, H5D_operator_t op, void *operator_data); __DLL__ herr_t H5S_sel_iter_release(const H5S_t *space, H5S_sel_iter_t *sel_iter); #ifdef H5_HAVE_PARALLEL + +/* MPI-IO function to check whether its possible to transfer directly from app buffer to file */ +__DLL__ htri_t H5S_all_opt_possible(const H5S_t *mem_space, + const H5S_t *file_space, const unsigned flags); + /* MPI-IO function to read directly from app buffer to file rky980813 */ __DLL__ herr_t H5S_mpio_spaces_read(H5F_t *f, const struct H5O_layout_t *layout, @@ -238,8 +238,7 @@ __DLL__ herr_t H5S_mpio_spaces_read(H5F_t *f, const struct H5O_efl_t *efl, size_t elmt_size, const H5S_t *file_space, const H5S_t *mem_space, hid_t dxpl_id, - void *buf/*out*/, - hbool_t *must_convert /*out*/ ); + void *buf/*out*/); /* MPI-IO function to write directly from app buffer to file rky980813 */ __DLL__ herr_t H5S_mpio_spaces_write(H5F_t *f, @@ -249,8 +248,7 @@ __DLL__ herr_t H5S_mpio_spaces_write(H5F_t *f, const struct H5O_efl_t *efl, size_t elmt_size, const H5S_t *file_space, const H5S_t *mem_space, hid_t dxpl_id, - const void *buf, - hbool_t *must_convert /*out*/ ); + const void *buf); #ifndef _H5S_IN_H5S_C /* Global var whose value comes from environment variable */ __DLLVAR__ hbool_t H5_mpi_opt_types_g; |