diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2020-10-01 15:29:53 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2020-10-01 15:29:53 (GMT) |
commit | ec8ad09125032c9c232878d02e90aa86df162841 (patch) | |
tree | 5d63105d3a0db7d5bbee41c5b74b097649a2115e /src/H5Dsingle.c | |
parent | 453238e90e1574ef1c15e3c79f7fb3d77920e77c (diff) | |
download | hdf5-ec8ad09125032c9c232878d02e90aa86df162841.zip hdf5-ec8ad09125032c9c232878d02e90aa86df162841.tar.gz hdf5-ec8ad09125032c9c232878d02e90aa86df162841.tar.bz2 |
Source formatted
Diffstat (limited to 'src/H5Dsingle.c')
-rw-r--r-- | src/H5Dsingle.c | 194 |
1 files changed, 84 insertions, 110 deletions
diff --git a/src/H5Dsingle.c b/src/H5Dsingle.c index cd71e93..1f354fe 100644 --- a/src/H5Dsingle.c +++ b/src/H5Dsingle.c @@ -26,55 +26,47 @@ /* Module Setup */ /****************/ -#include "H5Dmodule.h" /* This source code file is part of the H5D module */ - +#include "H5Dmodule.h" /* This source code file is part of the H5D module */ /***********/ /* Headers */ /***********/ -#include "H5private.h" /* Generic Functions */ -#include "H5Dpkg.h" /* Datasets */ -#include "H5Eprivate.h" /* Error handling */ -#include "H5FLprivate.h" /* Free Lists */ -#include "H5MFprivate.h" /* File space management */ -#include "H5VMprivate.h" /* Vector functions */ - +#include "H5private.h" /* Generic Functions */ +#include "H5Dpkg.h" /* Datasets */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5FLprivate.h" /* Free Lists */ +#include "H5MFprivate.h" /* File space management */ +#include "H5VMprivate.h" /* Vector functions */ /****************/ /* Local Macros */ /****************/ - /******************/ /* Local Typedefs */ /******************/ - /********************/ /* Local Prototypes */ /********************/ /* Single Chunk Index chunking I/O ops */ -static herr_t H5D__single_idx_init(const H5D_chk_idx_info_t *idx_info, - const H5S_t *space, haddr_t dset_ohdr_addr); -static herr_t H5D__single_idx_create(const H5D_chk_idx_info_t *idx_info); +static herr_t H5D__single_idx_init(const H5D_chk_idx_info_t *idx_info, const H5S_t *space, + haddr_t dset_ohdr_addr); +static herr_t H5D__single_idx_create(const H5D_chk_idx_info_t *idx_info); static hbool_t H5D__single_idx_is_space_alloc(const H5O_storage_chunk_t *storage); -static herr_t H5D__single_idx_insert(const H5D_chk_idx_info_t *idx_info, - H5D_chunk_ud_t *udata, const H5D_t *dset); -static herr_t H5D__single_idx_get_addr(const H5D_chk_idx_info_t *idx_info, - H5D_chunk_ud_t *udata); -static int H5D__single_idx_iterate(const H5D_chk_idx_info_t *idx_info, - H5D_chunk_cb_func_t chunk_cb, void *chunk_udata); -static herr_t H5D__single_idx_remove(const H5D_chk_idx_info_t *idx_info, - H5D_chunk_common_ud_t *udata); -static herr_t H5D__single_idx_delete(const H5D_chk_idx_info_t *idx_info); -static herr_t H5D__single_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src, - const H5D_chk_idx_info_t *idx_info_dst); -static herr_t H5D__single_idx_size(const H5D_chk_idx_info_t *idx_info, - hsize_t *size); -static herr_t H5D__single_idx_reset(H5O_storage_chunk_t *storage, hbool_t reset_addr); -static herr_t H5D__single_idx_dump(const H5O_storage_chunk_t *storage, FILE *stream); - +static herr_t H5D__single_idx_insert(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata, + const H5D_t *dset); +static herr_t H5D__single_idx_get_addr(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata); +static int H5D__single_idx_iterate(const H5D_chk_idx_info_t *idx_info, H5D_chunk_cb_func_t chunk_cb, + void *chunk_udata); +static herr_t H5D__single_idx_remove(const H5D_chk_idx_info_t *idx_info, H5D_chunk_common_ud_t *udata); +static herr_t H5D__single_idx_delete(const H5D_chk_idx_info_t *idx_info); +static herr_t H5D__single_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src, + const H5D_chk_idx_info_t *idx_info_dst); +static herr_t H5D__single_idx_size(const H5D_chk_idx_info_t *idx_info, hsize_t *size); +static herr_t H5D__single_idx_reset(H5O_storage_chunk_t *storage, hbool_t reset_addr); +static herr_t H5D__single_idx_dump(const H5O_storage_chunk_t *storage, FILE *stream); /*********************/ /* Package Variables */ @@ -82,36 +74,32 @@ static herr_t H5D__single_idx_dump(const H5O_storage_chunk_t *storage, FILE *str /* Non Index chunk I/O ops */ const H5D_chunk_ops_t H5D_COPS_SINGLE[1] = {{ - FALSE, /* Single Chunk indexing doesn't current support SWMR access */ - H5D__single_idx_init, /* init */ - H5D__single_idx_create, /* create */ - H5D__single_idx_is_space_alloc, /* is_space_alloc */ - H5D__single_idx_insert, /* insert */ - H5D__single_idx_get_addr, /* get_addr */ - NULL, /* resize */ - H5D__single_idx_iterate, /* iterate */ - H5D__single_idx_remove, /* remove */ - H5D__single_idx_delete, /* delete */ - H5D__single_idx_copy_setup, /* copy_setup */ - NULL, /* copy_shutdown */ - H5D__single_idx_size, /* size */ - H5D__single_idx_reset, /* reset */ - H5D__single_idx_dump, /* dump */ - NULL /* destroy */ + FALSE, /* Single Chunk indexing doesn't current support SWMR access */ + H5D__single_idx_init, /* init */ + H5D__single_idx_create, /* create */ + H5D__single_idx_is_space_alloc, /* is_space_alloc */ + H5D__single_idx_insert, /* insert */ + H5D__single_idx_get_addr, /* get_addr */ + NULL, /* resize */ + H5D__single_idx_iterate, /* iterate */ + H5D__single_idx_remove, /* remove */ + H5D__single_idx_delete, /* delete */ + H5D__single_idx_copy_setup, /* copy_setup */ + NULL, /* copy_shutdown */ + H5D__single_idx_size, /* size */ + H5D__single_idx_reset, /* reset */ + H5D__single_idx_dump, /* dump */ + NULL /* destroy */ }}; - /*****************************/ /* Library Private Variables */ /*****************************/ - /*******************/ /* Local Variables */ /*******************/ - - /*------------------------------------------------------------------------- * Function: H5D__single_idx_init * @@ -125,8 +113,8 @@ const H5D_chunk_ops_t H5D_COPS_SINGLE[1] = {{ *------------------------------------------------------------------------- */ static herr_t -H5D__single_idx_init(const H5D_chk_idx_info_t *idx_info, - const H5S_t H5_ATTR_UNUSED *space, haddr_t H5_ATTR_UNUSED dset_ohdr_addr) +H5D__single_idx_init(const H5D_chk_idx_info_t *idx_info, const H5S_t H5_ATTR_UNUSED *space, + haddr_t H5_ATTR_UNUSED dset_ohdr_addr) { FUNC_ENTER_STATIC_NOERR @@ -137,15 +125,14 @@ H5D__single_idx_init(const H5D_chk_idx_info_t *idx_info, HDassert(idx_info->layout); HDassert(idx_info->storage); - if(idx_info->pline->nused) - idx_info->layout->flags |= H5O_LAYOUT_CHUNK_SINGLE_INDEX_WITH_FILTER; + if (idx_info->pline->nused) + idx_info->layout->flags |= H5O_LAYOUT_CHUNK_SINGLE_INDEX_WITH_FILTER; else - idx_info->layout->flags = 0; + idx_info->layout->flags = 0; FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5D__single_idx_init() */ - /*------------------------------------------------------------------------- * Function: H5D__single_idx_create * @@ -173,15 +160,14 @@ H5D__single_idx_create(const H5D_chk_idx_info_t *idx_info) HDassert(idx_info->layout->nchunks == 1); HDassert(!H5F_addr_defined(idx_info->storage->idx_addr)); - if(idx_info->pline->nused) - HDassert(idx_info->layout->flags & H5O_LAYOUT_CHUNK_SINGLE_INDEX_WITH_FILTER); + if (idx_info->pline->nused) + HDassert(idx_info->layout->flags & H5O_LAYOUT_CHUNK_SINGLE_INDEX_WITH_FILTER); else - HDassert(!(idx_info->layout->flags & H5O_LAYOUT_CHUNK_SINGLE_INDEX_WITH_FILTER)); + HDassert(!(idx_info->layout->flags & H5O_LAYOUT_CHUNK_SINGLE_INDEX_WITH_FILTER)); FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5D__single_idx_create() */ - /*------------------------------------------------------------------------- * Function: H5D__single_idx_is_space_alloc * @@ -204,7 +190,6 @@ H5D__single_idx_is_space_alloc(const H5O_storage_chunk_t *storage) FUNC_LEAVE_NOAPI((hbool_t)H5F_addr_defined(storage->idx_addr)) } /* end H5D__single_idx_is_space_alloc() */ - /*------------------------------------------------------------------------- * Function: H5D__single_idx_insert * @@ -217,10 +202,9 @@ H5D__single_idx_is_space_alloc(const H5O_storage_chunk_t *storage) *------------------------------------------------------------------------- */ static herr_t -H5D__single_idx_insert(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata, - const H5D_t *dset) +H5D__single_idx_insert(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata, const H5D_t *dset) { - herr_t ret_value = SUCCEED; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC @@ -238,22 +222,21 @@ H5D__single_idx_insert(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata HDassert(H5F_addr_defined(udata->chunk_block.offset)); idx_info->storage->idx_addr = udata->chunk_block.offset; - if(idx_info->pline->nused > 0) { + if (idx_info->pline->nused > 0) { H5_CHECKED_ASSIGN(idx_info->storage->u.single.nbytes, uint32_t, udata->chunk_block.length, hsize_t); - idx_info->storage->u.single.filter_mask = udata->filter_mask; + idx_info->storage->u.single.filter_mask = udata->filter_mask; } /* end if */ - if(dset) - if(dset->shared->dcpl_cache.fill.alloc_time != H5D_ALLOC_TIME_EARLY || idx_info->pline->nused > 0) + if (dset) + if (dset->shared->dcpl_cache.fill.alloc_time != H5D_ALLOC_TIME_EARLY || idx_info->pline->nused > 0) /* Mark the layout dirty so that the address of the single chunk will be flushed later */ - if(H5D__mark(dset, H5D_MARK_LAYOUT) < 0) + if (H5D__mark(dset, H5D_MARK_LAYOUT) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "unable to mark layout as dirty") done: FUNC_LEAVE_NOAPI(ret_value) } /* H5D__single_idx_insert() */ - /*------------------------------------------------------------------------- * Function: H5D__single_idx_get_addr * @@ -282,21 +265,20 @@ H5D__single_idx_get_addr(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *uda HDassert(udata); udata->chunk_block.offset = idx_info->storage->idx_addr; - if(idx_info->layout->flags & H5O_LAYOUT_CHUNK_SINGLE_INDEX_WITH_FILTER) { - udata->chunk_block.length = idx_info->storage->u.single.nbytes; - udata->filter_mask = idx_info->storage->u.single.filter_mask; + if (idx_info->layout->flags & H5O_LAYOUT_CHUNK_SINGLE_INDEX_WITH_FILTER) { + udata->chunk_block.length = idx_info->storage->u.single.nbytes; + udata->filter_mask = idx_info->storage->u.single.filter_mask; } /* end if */ else { - udata->chunk_block.length = idx_info->layout->size; - udata->filter_mask = 0; + udata->chunk_block.length = idx_info->layout->size; + udata->filter_mask = 0; } /* end else */ - if(!H5F_addr_defined(udata->chunk_block.offset)) + if (!H5F_addr_defined(udata->chunk_block.offset)) udata->chunk_block.length = 0; FUNC_LEAVE_NOAPI(SUCCEED) } /* H5D__single_idx_get_addr() */ - /*------------------------------------------------------------------------- * Function: H5D__single_idx_iterate * @@ -309,11 +291,10 @@ H5D__single_idx_get_addr(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *uda *------------------------------------------------------------------------- */ static int -H5D__single_idx_iterate(const H5D_chk_idx_info_t *idx_info, - H5D_chunk_cb_func_t chunk_cb, void *chunk_udata) +H5D__single_idx_iterate(const H5D_chk_idx_info_t *idx_info, H5D_chunk_cb_func_t chunk_cb, void *chunk_udata) { - H5D_chunk_rec_t chunk_rec; /* generic chunk record */ - int ret_value = -1; /* Return value */ + H5D_chunk_rec_t chunk_rec; /* generic chunk record */ + int ret_value = -1; /* Return value */ FUNC_ENTER_STATIC_NOERR @@ -331,23 +312,22 @@ H5D__single_idx_iterate(const H5D_chk_idx_info_t *idx_info, HDmemset(&chunk_rec, 0, sizeof(chunk_rec)); chunk_rec.chunk_addr = idx_info->storage->idx_addr; - if(idx_info->layout->flags & H5O_LAYOUT_CHUNK_SINGLE_INDEX_WITH_FILTER) { - chunk_rec.nbytes = idx_info->storage->u.single.nbytes; - chunk_rec.filter_mask = idx_info->storage->u.single.filter_mask; + if (idx_info->layout->flags & H5O_LAYOUT_CHUNK_SINGLE_INDEX_WITH_FILTER) { + chunk_rec.nbytes = idx_info->storage->u.single.nbytes; + chunk_rec.filter_mask = idx_info->storage->u.single.filter_mask; } /* end if */ else { - chunk_rec.nbytes = idx_info->layout->size; - chunk_rec.filter_mask = 0; + chunk_rec.nbytes = idx_info->layout->size; + chunk_rec.filter_mask = 0; } /* end else */ /* Make "generic chunk" callback */ - if((ret_value = (*chunk_cb)(&chunk_rec, chunk_udata)) < 0) - HERROR(H5E_DATASET, H5E_CALLBACK, "failure in generic chunk iterator callback"); + if ((ret_value = (*chunk_cb)(&chunk_rec, chunk_udata)) < 0) + HERROR(H5E_DATASET, H5E_CALLBACK, "failure in generic chunk iterator callback"); FUNC_LEAVE_NOAPI(ret_value) } /* end H5D__single_idx_iterate() */ - /*------------------------------------------------------------------------- * Function: H5D__single_idx_remove * @@ -362,8 +342,8 @@ H5D__single_idx_iterate(const H5D_chk_idx_info_t *idx_info, static herr_t H5D__single_idx_remove(const H5D_chk_idx_info_t *idx_info, H5D_chunk_common_ud_t H5_ATTR_UNUSED *udata) { - hsize_t nbytes; /* Size of all chunks */ - herr_t ret_value = SUCCEED; /* Return value */ + hsize_t nbytes; /* Size of all chunks */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC @@ -375,12 +355,12 @@ H5D__single_idx_remove(const H5D_chk_idx_info_t *idx_info, H5D_chunk_common_ud_t HDassert(idx_info->storage); HDassert(H5F_addr_defined(idx_info->storage->idx_addr)); - if(idx_info->layout->flags & H5O_LAYOUT_CHUNK_SINGLE_INDEX_WITH_FILTER) - nbytes = idx_info->storage->u.single.nbytes; + if (idx_info->layout->flags & H5O_LAYOUT_CHUNK_SINGLE_INDEX_WITH_FILTER) + nbytes = idx_info->storage->u.single.nbytes; else - nbytes = idx_info->layout->size; + nbytes = idx_info->layout->size; - if(H5MF_xfree(idx_info->f, H5FD_MEM_DRAW, idx_info->storage->idx_addr, nbytes) < 0) + if (H5MF_xfree(idx_info->f, H5FD_MEM_DRAW, idx_info->storage->idx_addr, nbytes) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTFREE, H5_ITER_ERROR, "unable to free dataset chunks") idx_info->storage->idx_addr = HADDR_UNDEF; @@ -389,7 +369,6 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* H5D__single_idx_remove() */ - /*------------------------------------------------------------------------- * Function: H5D__single_idx_delete * @@ -405,7 +384,7 @@ done: static herr_t H5D__single_idx_delete(const H5D_chk_idx_info_t *idx_info) { - herr_t ret_value = SUCCEED; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC_NOERR @@ -416,15 +395,14 @@ H5D__single_idx_delete(const H5D_chk_idx_info_t *idx_info) HDassert(idx_info->layout); HDassert(idx_info->storage); - if(H5F_addr_defined(idx_info->storage->idx_addr)) - ret_value = H5D__single_idx_remove(idx_info, NULL); + if (H5F_addr_defined(idx_info->storage->idx_addr)) + ret_value = H5D__single_idx_remove(idx_info, NULL); else - HDassert(!H5F_addr_defined(idx_info->storage->idx_addr)); + HDassert(!H5F_addr_defined(idx_info->storage->idx_addr)); FUNC_LEAVE_NOAPI(ret_value) } /* end H5D__single_idx_delete() */ - /*------------------------------------------------------------------------- * Function: H5D__single_idx_copy_setup * @@ -438,9 +416,9 @@ H5D__single_idx_delete(const H5D_chk_idx_info_t *idx_info) */ static herr_t H5D__single_idx_copy_setup(const H5D_chk_idx_info_t H5_ATTR_NDEBUG_UNUSED *idx_info_src, - const H5D_chk_idx_info_t *idx_info_dst) + const H5D_chk_idx_info_t * idx_info_dst) { - herr_t ret_value = SUCCEED; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_STATIC @@ -462,7 +440,7 @@ H5D__single_idx_copy_setup(const H5D_chk_idx_info_t H5_ATTR_NDEBUG_UNUSED *idx_i H5_BEGIN_TAG(H5AC__COPIED_TAG); /* Set up information at the destination file */ - if(H5D__single_idx_create(idx_info_dst) < 0) + if (H5D__single_idx_create(idx_info_dst) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize chunked storage") /* Reset metadata tag */ @@ -472,7 +450,6 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5D__single_idx_copy_setup() */ - /*------------------------------------------------------------------------- * Function: H5D__single_idx_size * @@ -498,7 +475,6 @@ H5D__single_idx_size(const H5D_chk_idx_info_t H5_ATTR_UNUSED *idx_info, hsize_t FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5D__single_idx_size() */ - /*------------------------------------------------------------------------- * Function: H5D__single_idx_reset * @@ -519,13 +495,12 @@ H5D__single_idx_reset(H5O_storage_chunk_t *storage, hbool_t reset_addr) HDassert(storage); /* Reset index info */ - if(reset_addr) - storage->idx_addr = HADDR_UNDEF; + if (reset_addr) + storage->idx_addr = HADDR_UNDEF; FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5D__single_idx_reset() */ - /*------------------------------------------------------------------------- * Function: H5D__single_idx_dump * @@ -550,4 +525,3 @@ H5D__single_idx_dump(const H5O_storage_chunk_t *storage, FILE *stream) FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5D__single_idx_dump() */ - |