summaryrefslogtreecommitdiffstats
path: root/src/H5Defl.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5Defl.c')
-rw-r--r--src/H5Defl.c83
1 files changed, 42 insertions, 41 deletions
diff --git a/src/H5Defl.c b/src/H5Defl.c
index d81ed13..c6a1961 100644
--- a/src/H5Defl.c
+++ b/src/H5Defl.c
@@ -61,14 +61,15 @@ typedef struct H5D_efl_writevv_ud_t {
/* Layout operation callbacks */
static herr_t H5D__efl_construct(H5F_t *f, H5D_t *dset);
-static herr_t H5D__efl_io_init(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, hsize_t nelmts,
- H5S_t *file_space, H5S_t *mem_space, H5D_chunk_map_t *cm);
-static ssize_t H5D__efl_readvv(const H5D_io_info_t *io_info, size_t dset_max_nseq, size_t *dset_curr_seq,
- size_t dset_len_arr[], hsize_t dset_offset_arr[], size_t mem_max_nseq,
- size_t *mem_curr_seq, size_t mem_len_arr[], hsize_t mem_offset_arr[]);
-static ssize_t H5D__efl_writevv(const H5D_io_info_t *io_info, size_t dset_max_nseq, size_t *dset_curr_seq,
- size_t dset_len_arr[], hsize_t dset_offset_arr[], size_t mem_max_nseq,
- size_t *mem_curr_seq, size_t mem_len_arr[], hsize_t mem_offset_arr[]);
+static herr_t H5D__efl_io_init(H5D_io_info_t *io_info, H5D_dset_io_info_t *dinfo);
+static ssize_t H5D__efl_readvv(const H5D_io_info_t *io_info, const H5D_dset_io_info_t *dset_info,
+ size_t dset_max_nseq, size_t *dset_curr_seq, size_t dset_len_arr[],
+ hsize_t dset_offset_arr[], size_t mem_max_nseq, size_t *mem_curr_seq,
+ size_t mem_len_arr[], hsize_t mem_offset_arr[]);
+static ssize_t H5D__efl_writevv(const H5D_io_info_t *io_info, const H5D_dset_io_info_t *dset_info,
+ size_t dset_max_nseq, size_t *dset_curr_seq, size_t dset_len_arr[],
+ hsize_t dset_offset_arr[], size_t mem_max_nseq, size_t *mem_curr_seq,
+ size_t mem_len_arr[], hsize_t mem_offset_arr[]);
/* Helper routines */
static herr_t H5D__efl_read(const H5O_efl_t *efl, const H5D_t *dset, haddr_t addr, size_t size, uint8_t *buf);
@@ -86,17 +87,14 @@ const H5D_layout_ops_t H5D_LOPS_EFL[1] = {{
H5D__efl_is_space_alloc, /* is_space_alloc */
NULL, /* is_data_cached */
H5D__efl_io_init, /* io_init */
+ NULL, /* mdio_init */
H5D__contig_read, /* ser_read */
H5D__contig_write, /* ser_write */
-#ifdef H5_HAVE_PARALLEL
- NULL, /* par_read */
- NULL, /* par_write */
-#endif
- H5D__efl_readvv, /* readvv */
- H5D__efl_writevv, /* writevv */
- NULL, /* flush */
- NULL, /* io_term */
- NULL /* dest */
+ H5D__efl_readvv, /* readvv */
+ H5D__efl_writevv, /* writevv */
+ NULL, /* flush */
+ NULL, /* io_term */
+ NULL /* dest */
}};
/*******************/
@@ -209,13 +207,14 @@ H5D__efl_is_space_alloc(const H5O_storage_t H5_ATTR_UNUSED *storage)
*-------------------------------------------------------------------------
*/
static herr_t
-H5D__efl_io_init(H5D_io_info_t *io_info, const H5D_type_info_t H5_ATTR_UNUSED *type_info,
- hsize_t H5_ATTR_UNUSED nelmts, H5S_t H5_ATTR_UNUSED *file_space,
- H5S_t H5_ATTR_UNUSED *mem_space, H5D_chunk_map_t H5_ATTR_UNUSED *cm)
+H5D__efl_io_init(H5D_io_info_t *io_info, H5D_dset_io_info_t *dinfo)
{
FUNC_ENTER_PACKAGE_NOERR
- H5MM_memcpy(&io_info->store->efl, &(io_info->dset->shared->dcpl_cache.efl), sizeof(H5O_efl_t));
+ H5MM_memcpy(&dinfo->store->efl, &(dinfo->dset->shared->dcpl_cache.efl), sizeof(H5O_efl_t));
+
+ /* Disable selection I/O */
+ io_info->use_select_io = FALSE;
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5D__efl_io_init() */
@@ -443,9 +442,9 @@ done:
*-------------------------------------------------------------------------
*/
static ssize_t
-H5D__efl_readvv(const H5D_io_info_t *io_info, size_t dset_max_nseq, size_t *dset_curr_seq,
- size_t dset_len_arr[], hsize_t dset_off_arr[], size_t mem_max_nseq, size_t *mem_curr_seq,
- size_t mem_len_arr[], hsize_t mem_off_arr[])
+H5D__efl_readvv(const H5D_io_info_t *io_info, const H5D_dset_io_info_t *dset_info, size_t dset_max_nseq,
+ size_t *dset_curr_seq, size_t dset_len_arr[], hsize_t dset_off_arr[], size_t mem_max_nseq,
+ size_t *mem_curr_seq, size_t mem_len_arr[], hsize_t mem_off_arr[])
{
H5D_efl_readvv_ud_t udata; /* User data for H5VM_opvv() operator */
ssize_t ret_value = -1; /* Return value (Total size of sequence in bytes) */
@@ -454,10 +453,11 @@ H5D__efl_readvv(const H5D_io_info_t *io_info, size_t dset_max_nseq, size_t *dset
/* Check args */
HDassert(io_info);
- HDassert(io_info->store->efl.nused > 0);
- HDassert(io_info->u.rbuf);
- HDassert(io_info->dset);
- HDassert(io_info->dset->shared);
+ HDassert(dset_info);
+ HDassert(dset_info->store->efl.nused > 0);
+ HDassert(dset_info->buf.vp);
+ HDassert(dset_info->dset);
+ HDassert(dset_info->dset->shared);
HDassert(dset_curr_seq);
HDassert(dset_len_arr);
HDassert(dset_off_arr);
@@ -466,9 +466,9 @@ H5D__efl_readvv(const H5D_io_info_t *io_info, size_t dset_max_nseq, size_t *dset
HDassert(mem_off_arr);
/* Set up user data for H5VM_opvv() */
- udata.efl = &(io_info->store->efl);
- udata.dset = io_info->dset;
- udata.rbuf = (unsigned char *)io_info->u.rbuf;
+ udata.efl = &(dset_info->store->efl);
+ udata.dset = dset_info->dset;
+ udata.rbuf = (unsigned char *)dset_info->buf.vp;
/* Call generic sequence operation routine */
if ((ret_value = H5VM_opvv(dset_max_nseq, dset_curr_seq, dset_len_arr, dset_off_arr, mem_max_nseq,
@@ -523,9 +523,9 @@ done:
*-------------------------------------------------------------------------
*/
static ssize_t
-H5D__efl_writevv(const H5D_io_info_t *io_info, size_t dset_max_nseq, size_t *dset_curr_seq,
- size_t dset_len_arr[], hsize_t dset_off_arr[], size_t mem_max_nseq, size_t *mem_curr_seq,
- size_t mem_len_arr[], hsize_t mem_off_arr[])
+H5D__efl_writevv(const H5D_io_info_t *io_info, const H5D_dset_io_info_t *dset_info, size_t dset_max_nseq,
+ size_t *dset_curr_seq, size_t dset_len_arr[], hsize_t dset_off_arr[], size_t mem_max_nseq,
+ size_t *mem_curr_seq, size_t mem_len_arr[], hsize_t mem_off_arr[])
{
H5D_efl_writevv_ud_t udata; /* User data for H5VM_opvv() operator */
ssize_t ret_value = -1; /* Return value (Total size of sequence in bytes) */
@@ -534,10 +534,11 @@ H5D__efl_writevv(const H5D_io_info_t *io_info, size_t dset_max_nseq, size_t *dse
/* Check args */
HDassert(io_info);
- HDassert(io_info->store->efl.nused > 0);
- HDassert(io_info->u.wbuf);
- HDassert(io_info->dset);
- HDassert(io_info->dset->shared);
+ HDassert(dset_info);
+ HDassert(dset_info->store->efl.nused > 0);
+ HDassert(dset_info->buf.cvp);
+ HDassert(dset_info->dset);
+ HDassert(dset_info->dset->shared);
HDassert(dset_curr_seq);
HDassert(dset_len_arr);
HDassert(dset_off_arr);
@@ -546,9 +547,9 @@ H5D__efl_writevv(const H5D_io_info_t *io_info, size_t dset_max_nseq, size_t *dse
HDassert(mem_off_arr);
/* Set up user data for H5VM_opvv() */
- udata.efl = &(io_info->store->efl);
- udata.dset = io_info->dset;
- udata.wbuf = (const unsigned char *)io_info->u.wbuf;
+ udata.efl = &(dset_info->store->efl);
+ udata.dset = dset_info->dset;
+ udata.wbuf = (const unsigned char *)dset_info->buf.cvp;
/* Call generic sequence operation routine */
if ((ret_value = H5VM_opvv(dset_max_nseq, dset_curr_seq, dset_len_arr, dset_off_arr, mem_max_nseq,