From 7c22743e8eaa5e5d2ffc8b0db7518ed6c5be40ee Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Wed, 29 Jul 2009 19:55:45 -0500 Subject: [svn-r17267] Description: Bring r17262:17265 from trunk to revise_chunks brach. Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode Mac OS X/32 10.5.7 (amazon) in debug mode Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode --- src/H5Dbtree.c | 34 +++++++++++++++++----------------- src/H5Dearray.c | 38 +++++++++++++++++++------------------- src/H5Dfarray.c | 34 +++++++++++++++++----------------- src/H5Olayout.c | 42 ++++++++++++++---------------------------- src/H5Oprivate.h | 19 +------------------ src/H5Pdcpl.c | 2 +- 6 files changed, 69 insertions(+), 100 deletions(-) diff --git a/src/H5Dbtree.c b/src/H5Dbtree.c index c251994..6b8da2f 100644 --- a/src/H5Dbtree.c +++ b/src/H5Dbtree.c @@ -901,13 +901,13 @@ H5D_btree_idx_create(const H5D_chk_idx_info_t *idx_info) HDassert(idx_info->f); HDassert(idx_info->pline); HDassert(idx_info->layout); - HDassert(!H5F_addr_defined(idx_info->layout->store.u.chunk.u.btree.addr)); + HDassert(!H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); /* Initialize "user" data for B-tree callbacks, etc. */ udata.mesg = idx_info->layout; /* Create the v1 B-tree for the chunk index */ - if(H5B_create(idx_info->f, idx_info->dxpl_id, H5B_BTREE, &udata, &(idx_info->layout->store.u.chunk.u.btree.addr)/*out*/) < 0) + if(H5B_create(idx_info->f, idx_info->dxpl_id, H5B_BTREE, &udata, &(idx_info->layout->store.u.chunk.idx_addr)/*out*/) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't create B-tree") done: @@ -938,7 +938,7 @@ H5D_btree_idx_is_space_alloc(const H5O_layout_t *layout) HDassert(layout); /* Set return value */ - ret_value = (hbool_t)H5F_addr_defined(layout->store.u.chunk.u.btree.addr); + ret_value = (hbool_t)H5F_addr_defined(layout->store.u.chunk.idx_addr); FUNC_LEAVE_NOAPI(ret_value) } /* end H5D_btree_idx_is_space_alloc() */ @@ -968,14 +968,14 @@ H5D_btree_idx_insert(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata) HDassert(idx_info->f); HDassert(idx_info->pline); HDassert(idx_info->layout); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.btree.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(udata); /* * Create the chunk it if it doesn't exist, or reallocate the chunk if * its size changed. */ - if(H5B_insert(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.u.btree.addr, udata) < 0) + if(H5B_insert(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.idx_addr, udata) < 0) HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "unable to allocate chunk") done: @@ -1012,7 +1012,7 @@ H5D_btree_idx_get_addr(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata HDassert(udata); /* Go get the chunk information from the B-tree */ - if(H5B_find(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.u.btree.addr, udata) < 0) + if(H5B_find(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.idx_addr, udata) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get chunk info") done: @@ -1094,7 +1094,7 @@ H5D_btree_idx_iterate(const H5D_chk_idx_info_t *idx_info, HDassert(idx_info->f); HDassert(idx_info->pline); HDassert(idx_info->layout); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.btree.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(chunk_cb); HDassert(chunk_udata); @@ -1105,7 +1105,7 @@ H5D_btree_idx_iterate(const H5D_chk_idx_info_t *idx_info, udata.udata = chunk_udata; /* Iterate over existing chunks */ - if((ret_value = H5B_iterate(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.u.btree.addr, H5D_btree_idx_iterate_cb, &udata)) < 0) + if((ret_value = H5B_iterate(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.idx_addr, H5D_btree_idx_iterate_cb, &udata)) < 0) HERROR(H5E_DATASET, H5E_BADITER, "unable to iterate over chunk B-tree"); FUNC_LEAVE_NOAPI(ret_value) @@ -1135,13 +1135,13 @@ H5D_btree_idx_remove(const H5D_chk_idx_info_t *idx_info, H5D_chunk_common_ud_t * HDassert(idx_info->f); HDassert(idx_info->pline); HDassert(idx_info->layout); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.btree.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(udata); /* Remove the chunk from the v1 B-tree index and release the space for the * chunk (in the B-tree callback). */ - if(H5B_remove(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.u.btree.addr, udata) < 0) + if(H5B_remove(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.idx_addr, udata) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTDELETE, FAIL, "unable to remove chunk entry") done: @@ -1177,7 +1177,7 @@ H5D_btree_idx_delete(const H5D_chk_idx_info_t *idx_info) HDassert(idx_info->layout); /* Check if the index data structure has been allocated */ - if(H5F_addr_defined(idx_info->layout->store.u.chunk.u.btree.addr)) { + if(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)) { H5O_layout_t tmp_layout; /* Local copy of layout info */ H5D_btree_ud0_t udata; /* User data for B-tree iterator call */ @@ -1191,7 +1191,7 @@ H5D_btree_idx_delete(const H5D_chk_idx_info_t *idx_info) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't create wrapper for shared B-tree info") /* Delete entire B-tree */ - if(H5B_delete(idx_info->f, idx_info->dxpl_id, H5B_BTREE, tmp_layout.store.u.chunk.u.btree.addr, &udata) < 0) + if(H5B_delete(idx_info->f, idx_info->dxpl_id, H5B_BTREE, tmp_layout.store.u.chunk.idx_addr, &udata) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTDELETE, FAIL, "unable to delete chunk B-tree") /* Free the raw B-tree node buffer */ @@ -1234,7 +1234,7 @@ H5D_btree_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src, HDassert(idx_info_dst->f); HDassert(idx_info_dst->pline); HDassert(idx_info_dst->layout); - HDassert(!H5F_addr_defined(idx_info_dst->layout->store.u.chunk.u.btree.addr)); + HDassert(!H5F_addr_defined(idx_info_dst->layout->store.u.chunk.idx_addr)); /* Create shared B-tree info for each file */ if(H5D_btree_shared_create(idx_info_src->f, idx_info_src->layout) < 0) @@ -1245,7 +1245,7 @@ H5D_btree_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src, /* Create the root of the B-tree that describes chunked storage in the dest. file */ if(H5D_btree_idx_create(idx_info_dst) < 0) HGOTO_ERROR(H5E_IO, H5E_CANTINIT, FAIL, "unable to initialize chunked storage") - HDassert(H5F_addr_defined(idx_info_dst->layout->store.u.chunk.u.btree.addr)); + HDassert(H5F_addr_defined(idx_info_dst->layout->store.u.chunk.idx_addr)); done: FUNC_LEAVE_NOAPI(ret_value) @@ -1326,7 +1326,7 @@ H5D_btree_idx_size(const H5D_chk_idx_info_t *idx_info, hsize_t *index_size) udata.mesg = idx_info->layout; /* Get metadata information for B-tree */ - if(H5B_get_info(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.u.btree.addr, &bt_info, NULL, &udata) < 0) + if(H5B_get_info(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.idx_addr, &bt_info, NULL, &udata) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, FAIL, "unable to iterate over chunk B-tree") /* Set the size of the B-tree */ @@ -1369,7 +1369,7 @@ H5D_btree_idx_reset(H5O_layout_t *layout, hbool_t reset_addr) /* Reset index info */ if(reset_addr) - layout->store.u.chunk.u.btree.addr = HADDR_UNDEF; + layout->store.u.chunk.idx_addr = HADDR_UNDEF; layout->u.chunk.u.btree.shared = NULL; FUNC_LEAVE_NOAPI(SUCCEED) @@ -1399,7 +1399,7 @@ H5D_btree_idx_dump(const H5D_chk_idx_info_t *idx_info, FILE *stream) HDassert(idx_info->layout); HDassert(stream); - HDfprintf(stream, " Address: %a\n", idx_info->layout->store.u.chunk.u.btree.addr); + HDfprintf(stream, " Address: %a\n", idx_info->layout->store.u.chunk.idx_addr); FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5D_btree_idx_dump() */ diff --git a/src/H5Dearray.c b/src/H5Dearray.c index 204b455..865526e 100644 --- a/src/H5Dearray.c +++ b/src/H5Dearray.c @@ -622,7 +622,7 @@ H5D_earray_idx_depend(const H5D_chk_idx_info_t *idx_info) HDassert(idx_info->pline); HDassert(idx_info->layout); HDassert(H5D_CHUNK_IDX_EARRAY == idx_info->layout->u.chunk.idx_type); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(idx_info->layout->u.chunk.u.earray.ea); /* Set up object header location for dataset */ @@ -677,7 +677,7 @@ H5D_earray_idx_undepend(const H5D_chk_idx_info_t *idx_info) HDassert(idx_info->pline); HDassert(idx_info->layout); HDassert(H5D_CHUNK_IDX_EARRAY == idx_info->layout->u.chunk.idx_type); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(idx_info->layout->u.chunk.u.earray.ea); /* Set up object header location for dataset */ @@ -735,7 +735,7 @@ H5D_earray_idx_open(const H5D_chk_idx_info_t *idx_info) HDassert(idx_info->pline); HDassert(idx_info->layout); HDassert(H5D_CHUNK_IDX_EARRAY == idx_info->layout->u.chunk.idx_type); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(NULL == idx_info->layout->u.chunk.u.earray.ea); /* Set up the user data */ @@ -744,7 +744,7 @@ H5D_earray_idx_open(const H5D_chk_idx_info_t *idx_info) /* Open the extensible array for the chunk index */ cls = (idx_info->pline->nused > 0) ? H5EA_CLS_FILT_CHUNK : H5EA_CLS_CHUNK; - if(NULL == (idx_info->layout->u.chunk.u.earray.ea = H5EA_open(idx_info->f, idx_info->dxpl_id, idx_info->layout->store.u.chunk.u.earray.addr, cls, &udata))) + if(NULL == (idx_info->layout->u.chunk.u.earray.ea = H5EA_open(idx_info->f, idx_info->dxpl_id, idx_info->layout->store.u.chunk.idx_addr, cls, &udata))) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't open extensible array") /* Check for SWMR writes to the file */ @@ -857,7 +857,7 @@ H5D_earray_idx_create(const H5D_chk_idx_info_t *idx_info) HDassert(idx_info->f); HDassert(idx_info->pline); HDassert(idx_info->layout); - HDassert(!H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr)); + HDassert(!H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(NULL == idx_info->layout->u.chunk.u.earray.ea); /* General parameters */ @@ -898,7 +898,7 @@ H5D_earray_idx_create(const H5D_chk_idx_info_t *idx_info) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't create extensible array") /* Get the address of the extensible array in file */ - if(H5EA_get_addr(idx_info->layout->u.chunk.u.earray.ea, &(idx_info->layout->store.u.chunk.u.earray.addr)) < 0) + if(H5EA_get_addr(idx_info->layout->u.chunk.u.earray.ea, &(idx_info->layout->store.u.chunk.idx_addr)) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't query extensible array address") /* Check for SWMR writes to the file */ @@ -935,7 +935,7 @@ H5D_earray_idx_is_space_alloc(const H5O_layout_t *layout) HDassert(layout); /* Set return value */ - ret_value = (hbool_t)H5F_addr_defined(layout->store.u.chunk.u.earray.addr); + ret_value = (hbool_t)H5F_addr_defined(layout->store.u.chunk.idx_addr); FUNC_LEAVE_NOAPI(ret_value) } /* end H5D_earray_idx_is_space_alloc() */ @@ -967,7 +967,7 @@ H5D_earray_idx_insert(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata) HDassert(idx_info->f); HDassert(idx_info->pline); HDassert(idx_info->layout); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(udata); /* Check if the extensible array is open yet */ @@ -1127,7 +1127,7 @@ H5D_earray_idx_get_addr(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udat HDassert(idx_info->f); HDassert(idx_info->pline); HDassert(idx_info->layout); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(udata); /* Check if the extensible array is open yet */ @@ -1258,7 +1258,7 @@ H5D_earray_idx_iterate(const H5D_chk_idx_info_t *idx_info, HDassert(idx_info->f); HDassert(idx_info->pline); HDassert(idx_info->layout); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(chunk_cb); HDassert(chunk_udata); @@ -1366,7 +1366,7 @@ H5D_earray_idx_remove(const H5D_chk_idx_info_t *idx_info, H5D_chunk_common_ud_t HDassert(idx_info->f); HDassert(idx_info->pline); HDassert(idx_info->layout); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(udata); /* Check if the extensible array is open yet */ @@ -1513,7 +1513,7 @@ H5D_earray_idx_delete(const H5D_chk_idx_info_t *idx_info) HDassert(idx_info->layout); /* Check if the index data structure has been allocated */ - if(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr)) { + if(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)) { H5D_earray_ud_t udata; /* User data for callback */ /* Initialize user data for callback */ @@ -1530,9 +1530,9 @@ H5D_earray_idx_delete(const H5D_chk_idx_info_t *idx_info) idx_info->layout->u.chunk.u.earray.ea = NULL; /* Delete extensible array */ - if(H5EA_delete(idx_info->f, idx_info->dxpl_id, idx_info->layout->store.u.chunk.u.earray.addr) < 0) + if(H5EA_delete(idx_info->f, idx_info->dxpl_id, idx_info->layout->store.u.chunk.idx_addr) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTDELETE, FAIL, "unable to delete chunk extensible array") - idx_info->layout->store.u.chunk.u.earray.addr = HADDR_UNDEF; + idx_info->layout->store.u.chunk.idx_addr = HADDR_UNDEF; } /* end if */ else HDassert(NULL == idx_info->layout->u.chunk.u.earray.ea); @@ -1571,7 +1571,7 @@ H5D_earray_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src, HDassert(idx_info_dst->f); HDassert(idx_info_dst->pline); HDassert(idx_info_dst->layout); - HDassert(!H5F_addr_defined(idx_info_dst->layout->store.u.chunk.u.earray.addr)); + HDassert(!H5F_addr_defined(idx_info_dst->layout->store.u.chunk.idx_addr)); /* Check if the source extensible array is open yet */ if(NULL == idx_info_src->layout->u.chunk.u.earray.ea) { @@ -1583,7 +1583,7 @@ H5D_earray_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src, /* Create the extensible array that describes chunked storage in the dest. file */ if(H5D_earray_idx_create(idx_info_dst) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize chunked storage") - HDassert(H5F_addr_defined(idx_info_dst->layout->store.u.chunk.u.earray.addr)); + HDassert(H5F_addr_defined(idx_info_dst->layout->store.u.chunk.idx_addr)); done: FUNC_LEAVE_NOAPI(ret_value) @@ -1656,7 +1656,7 @@ H5D_earray_idx_size(const H5D_chk_idx_info_t *idx_info, hsize_t *index_size) HDassert(idx_info->f); HDassert(idx_info->pline); HDassert(idx_info->layout); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(index_size); /* Open the extensible array in file */ @@ -1711,7 +1711,7 @@ H5D_earray_idx_reset(H5O_layout_t *layout, hbool_t reset_addr) /* Reset index info */ if(reset_addr) { - layout->store.u.chunk.u.earray.addr = HADDR_UNDEF; + layout->store.u.chunk.idx_addr = HADDR_UNDEF; layout->u.chunk.u.earray.dset_ohdr_addr = HADDR_UNDEF; } /* end if */ layout->u.chunk.u.earray.ea = NULL; @@ -1879,7 +1879,7 @@ H5D_earray_idx_dump(const H5D_chk_idx_info_t *idx_info, FILE *stream) HDassert(idx_info->layout); HDassert(stream); - HDfprintf(stream, " Address: %a\n", idx_info->layout->store.u.chunk.u.earray.addr); + HDfprintf(stream, " Address: %a\n", idx_info->layout->store.u.chunk.idx_addr); FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5D_earray_idx_dump() */ diff --git a/src/H5Dfarray.c b/src/H5Dfarray.c index f1b3ee1..8bba822 100644 --- a/src/H5Dfarray.c +++ b/src/H5Dfarray.c @@ -630,7 +630,7 @@ H5D_farray_idx_open(const H5D_chk_idx_info_t *idx_info) HDassert(idx_info->pline); HDassert(idx_info->layout); HDassert(H5D_CHUNK_IDX_FARRAY == idx_info->layout->u.chunk.idx_type); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.farray.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(NULL == idx_info->layout->u.chunk.u.farray.fa); /* Set up the user data */ @@ -639,7 +639,7 @@ H5D_farray_idx_open(const H5D_chk_idx_info_t *idx_info) /* Open the fixed array for the chunk index */ cls = (idx_info->pline->nused > 0) ? H5FA_CLS_FILT_CHUNK : H5FA_CLS_CHUNK; - if(NULL == (idx_info->layout->u.chunk.u.farray.fa = H5FA_open(idx_info->f, idx_info->dxpl_id, idx_info->layout->store.u.chunk.u.farray.addr, cls, &udata))) + if(NULL == (idx_info->layout->u.chunk.u.farray.fa = H5FA_open(idx_info->f, idx_info->dxpl_id, idx_info->layout->store.u.chunk.idx_addr, cls, &udata))) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't open fixed array") done: @@ -679,7 +679,7 @@ H5D_farray_idx_create(const H5D_chk_idx_info_t *idx_info) HDassert(idx_info->f); HDassert(idx_info->pline); HDassert(idx_info->layout); - HDassert(!H5F_addr_defined(idx_info->layout->store.u.chunk.u.farray.addr)); + HDassert(!H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(NULL == idx_info->layout->u.chunk.u.farray.fa); HDassert(idx_info->layout->u.chunk.nchunks); @@ -714,7 +714,7 @@ H5D_farray_idx_create(const H5D_chk_idx_info_t *idx_info) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't create fixed array") /* Get the address of the fixed array in file */ - if(H5FA_get_addr(idx_info->layout->u.chunk.u.farray.fa, &(idx_info->layout->store.u.chunk.u.farray.addr)) < 0) + if(H5FA_get_addr(idx_info->layout->u.chunk.u.farray.fa, &(idx_info->layout->store.u.chunk.idx_addr)) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't query fixed array address") done: @@ -745,7 +745,7 @@ H5D_farray_idx_is_space_alloc(const H5O_layout_t *layout) HDassert(layout); /* Set return value */ - ret_value = (hbool_t)H5F_addr_defined(layout->store.u.chunk.u.farray.addr); + ret_value = (hbool_t)H5F_addr_defined(layout->store.u.chunk.idx_addr); FUNC_LEAVE_NOAPI(ret_value) } /* end H5D_farray_idx_is_space_alloc() */ @@ -777,7 +777,7 @@ H5D_farray_idx_insert(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata) HDassert(idx_info->f); HDassert(idx_info->pline); HDassert(idx_info->layout); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.farray.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(udata); /* Check if the fixed array is open yet */ @@ -922,7 +922,7 @@ H5D_farray_idx_get_addr(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udat HDassert(idx_info->f); HDassert(idx_info->pline); HDassert(idx_info->layout); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.farray.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(udata); /* Check if the fixed array is open yet */ @@ -1055,7 +1055,7 @@ H5D_farray_idx_iterate(const H5D_chk_idx_info_t *idx_info, HDassert(idx_info->f); HDassert(idx_info->pline); HDassert(idx_info->layout); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.farray.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(chunk_cb); HDassert(chunk_udata); @@ -1125,7 +1125,7 @@ H5D_farray_idx_remove(const H5D_chk_idx_info_t *idx_info, H5D_chunk_common_ud_t HDassert(idx_info->f); HDassert(idx_info->pline); HDassert(idx_info->layout); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.farray.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(udata); /* Check if the fixed array is open yet */ @@ -1265,7 +1265,7 @@ H5D_farray_idx_delete(const H5D_chk_idx_info_t *idx_info) HDassert(idx_info->layout); /* Check if the index data structure has been allocated */ - if(H5F_addr_defined(idx_info->layout->store.u.chunk.u.farray.addr)) { + if(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)) { H5FA_t *fa; /* Pointer to fixed array structure */ H5FA_stat_t fa_stat; /* Fixed array statistics */ @@ -1304,9 +1304,9 @@ H5D_farray_idx_delete(const H5D_chk_idx_info_t *idx_info) idx_info->layout->u.chunk.u.farray.fa = NULL; /* Delete fixed array */ - if(H5FA_delete(idx_info->f, idx_info->dxpl_id, idx_info->layout->store.u.chunk.u.farray.addr) < 0) + if(H5FA_delete(idx_info->f, idx_info->dxpl_id, idx_info->layout->store.u.chunk.idx_addr) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTDELETE, FAIL, "unable to delete chunk fixed array") - idx_info->layout->store.u.chunk.u.farray.addr = HADDR_UNDEF; + idx_info->layout->store.u.chunk.idx_addr = HADDR_UNDEF; } /* end if */ else HDassert(NULL == idx_info->layout->u.chunk.u.farray.fa); @@ -1345,7 +1345,7 @@ H5D_farray_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src, HDassert(idx_info_dst->f); HDassert(idx_info_dst->pline); HDassert(idx_info_dst->layout); - HDassert(!H5F_addr_defined(idx_info_dst->layout->store.u.chunk.u.farray.addr)); + HDassert(!H5F_addr_defined(idx_info_dst->layout->store.u.chunk.idx_addr)); /* Check if the source fixed array is open yet */ if(NULL == idx_info_src->layout->u.chunk.u.farray.fa) { @@ -1357,7 +1357,7 @@ H5D_farray_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src, /* Create the fixed array that describes chunked storage in the dest. file */ if(H5D_farray_idx_create(idx_info_dst) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize chunked storage") - HDassert(H5F_addr_defined(idx_info_dst->layout->store.u.chunk.u.farray.addr)); + HDassert(H5F_addr_defined(idx_info_dst->layout->store.u.chunk.idx_addr)); done: FUNC_LEAVE_NOAPI(ret_value) @@ -1430,7 +1430,7 @@ H5D_farray_idx_size(const H5D_chk_idx_info_t *idx_info, hsize_t *index_size) HDassert(idx_info->f); HDassert(idx_info->pline); HDassert(idx_info->layout); - HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.farray.addr)); + HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)); HDassert(index_size); /* Open the fixed array in file */ @@ -1480,7 +1480,7 @@ H5D_farray_idx_reset(H5O_layout_t *layout, hbool_t reset_addr) /* Reset index info */ if(reset_addr) - layout->store.u.chunk.u.farray.addr = HADDR_UNDEF; + layout->store.u.chunk.idx_addr = HADDR_UNDEF; layout->u.chunk.u.farray.fa = NULL; FUNC_LEAVE_NOAPI(SUCCEED) @@ -1510,7 +1510,7 @@ H5D_farray_idx_dump(const H5D_chk_idx_info_t *idx_info, FILE *stream) HDassert(idx_info->layout); HDassert(stream); - HDfprintf(stream, " Address: %a\n", idx_info->layout->store.u.chunk.u.farray.addr); + HDfprintf(stream, " Address: %a\n", idx_info->layout->store.u.chunk.idx_addr); FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5D_farray_idx_dump() */ diff --git a/src/H5Olayout.c b/src/H5Olayout.c index a456ef5..18fd664 100644 --- a/src/H5Olayout.c +++ b/src/H5Olayout.c @@ -159,7 +159,7 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh, mesg->ops = H5D_LOPS_CONTIG; } /* end if */ else if(mesg->type == H5D_CHUNKED) { - H5F_addr_decode(f, &p, &(mesg->store.u.chunk.u.btree.addr)); + H5F_addr_decode(f, &p, &(mesg->store.u.chunk.idx_addr)); /* Set the layout operations */ mesg->ops = H5D_LOPS_CHUNK; @@ -242,7 +242,7 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh, HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "dimensionality is too large") /* B-tree address */ - H5F_addr_decode(f, &p, &(mesg->store.u.chunk.u.btree.addr)); + H5F_addr_decode(f, &p, &(mesg->store.u.chunk.idx_addr)); /* Chunk dimensions */ for(u = 0; u < mesg->u.chunk.ndims; u++) @@ -289,15 +289,15 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh, mesg->u.chunk.size *= mesg->u.chunk.dim[u]; /* Chunk index type */ - mesg->u.chunk.idx_type = *p++; + mesg->u.chunk.idx_type = (H5D_chunk_index_t)*p++; if(mesg->u.chunk.idx_type >= H5D_CHUNK_IDX_NTYPES) HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "unknown chunk index type") + /* Chunk index address */ + H5F_addr_decode(f, &p, &(mesg->store.u.chunk.idx_addr)); + switch(mesg->u.chunk.idx_type) { case H5D_CHUNK_IDX_BTREE: /* Remove this when v2 B-tree indices added */ - /* B-tree address */ - H5F_addr_decode(f, &p, &(mesg->store.u.chunk.u.btree.addr)); - /* Set the chunk operations */ mesg->u.chunk.ops = H5D_COPS_BTREE; break; @@ -308,9 +308,6 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh, if(0 == mesg->u.chunk.u.farray.cparam.max_dblk_page_nelmts_bits) HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "invalid fixed array creation parameter") - /* Fixed array header address */ - H5F_addr_decode(f, &p, &(mesg->store.u.chunk.u.farray.addr)); - /* Set the chunk operations */ mesg->u.chunk.ops = H5D_COPS_FARRAY; break; @@ -333,9 +330,6 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh, if(0 == mesg->u.chunk.u.earray.cparam.max_dblk_page_nelmts_bits) HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "invalid extensible array creation parameter") - /* Extensible array header address */ - H5F_addr_decode(f, &p, &(mesg->store.u.chunk.u.earray.addr)); - /* Set the chunk operations */ mesg->u.chunk.ops = H5D_COPS_EARRAY; break; @@ -449,7 +443,7 @@ H5O_layout_encode(H5F_t *f, hbool_t UNUSED disable_shared, uint8_t *p, const voi *p++ = (uint8_t)mesg->u.chunk.ndims; /* B-tree address */ - H5F_addr_encode(f, &p, mesg->store.u.chunk.u.btree.addr); + H5F_addr_encode(f, &p, mesg->store.u.chunk.idx_addr); /* Dimension sizes */ for(u = 0; u < mesg->u.chunk.ndims; u++) @@ -474,18 +468,17 @@ H5O_layout_encode(H5F_t *f, hbool_t UNUSED disable_shared, uint8_t *p, const voi /* Chunk index type */ *p++ = (uint8_t)mesg->u.chunk.idx_type; + /* Chunk index address */ + H5F_addr_encode(f, &p, mesg->store.u.chunk.idx_addr); + switch(mesg->u.chunk.idx_type) { - case H5D_CHUNK_IDX_BTREE: /* Remove this when v2 B-tree indices added */ - /* B-tree address */ - H5F_addr_encode(f, &p, mesg->store.u.chunk.u.btree.addr); + case H5D_CHUNK_IDX_BTREE: /* Remove this when v2 B-tree indices added */ + /* Nothing to do */ break; case H5D_CHUNK_IDX_FARRAY: /* Fixed array creation parameters */ *p++ = mesg->u.chunk.u.farray.cparam.max_dblk_page_nelmts_bits; - - /* Fixed array header address */ - H5F_addr_encode(f, &p, mesg->store.u.chunk.u.farray.addr); break; case H5D_CHUNK_IDX_EARRAY: @@ -495,9 +488,6 @@ H5O_layout_encode(H5F_t *f, hbool_t UNUSED disable_shared, uint8_t *p, const voi *p++ = mesg->u.chunk.u.earray.cparam.sup_blk_min_data_ptrs; *p++ = mesg->u.chunk.u.earray.cparam.data_blk_min_elmts; *p++ = mesg->u.chunk.u.earray.cparam.max_dblk_page_nelmts_bits; - - /* Extensible array header address */ - H5F_addr_encode(f, &p, mesg->store.u.chunk.u.earray.addr); break; default: @@ -879,22 +869,16 @@ H5O_layout_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, case H5D_CHUNK_IDX_BTREE: HDfprintf(stream, "%*s%-*s %s\n", indent, "", fwidth, "Index Type:", "v1 B-tree"); - HDfprintf(stream, "%*s%-*s %a\n", indent, "", fwidth, - "B-tree address:", mesg->store.u.chunk.u.btree.addr); break; case H5D_CHUNK_IDX_FARRAY: HDfprintf(stream, "%*s%-*s %s\n", indent, "", fwidth, "Index Type:", "Fixed Array"); - HDfprintf(stream, "%*s%-*s %a\n", indent, "", fwidth, - "Fixed Array address:", mesg->store.u.chunk.u.farray.addr); break; case H5D_CHUNK_IDX_EARRAY: HDfprintf(stream, "%*s%-*s %s\n", indent, "", fwidth, "Index Type:", "Extensible Array"); - HDfprintf(stream, "%*s%-*s %a\n", indent, "", fwidth, - "Extensible Array address:", mesg->store.u.chunk.u.earray.addr); break; default: @@ -902,6 +886,8 @@ H5O_layout_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, "Index Type:", "Unknown", (unsigned)mesg->u.chunk.idx_type); break; } /* end switch */ + HDfprintf(stream, "%*s%-*s %a\n", indent, "", fwidth, + "Index address:", mesg->store.u.chunk.idx_addr); break; case H5D_CONTIGUOUS: diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h index 49f0b9b..6a13af9 100644 --- a/src/H5Oprivate.h +++ b/src/H5Oprivate.h @@ -362,25 +362,8 @@ typedef struct H5O_storage_contig_t { haddr_t addr; /* File address of data */ } H5O_storage_contig_t; -typedef struct H5O_storage_chunk_btree_t { - haddr_t addr; /* File address of B-tree */ -} H5O_storage_chunk_btree_t; - -typedef struct H5O_storage_chunk_farray_t { - haddr_t addr; /* File address of fixed array */ -} H5O_storage_chunk_farray_t; - -typedef struct H5O_storage_chunk_earray_t { - haddr_t addr; /* File address of extensible array */ -} H5O_storage_chunk_earray_t; - typedef struct H5O_storage_chunk_t { - H5D_chunk_index_t idx_type; /* Type of chunk index */ - union { - H5O_storage_chunk_btree_t btree; /* Information for v1 B-tree index */ - H5O_storage_chunk_farray_t farray; /* Information for fixed array index */ - H5O_storage_chunk_earray_t earray; /* Information for extensible array index */ - } u; + haddr_t idx_addr; /* File address of chunk index */ } H5O_storage_chunk_t; typedef struct H5O_storage_compact_t { diff --git a/src/H5Pdcpl.c b/src/H5Pdcpl.c index dd9843e..36e81b6 100644 --- a/src/H5Pdcpl.c +++ b/src/H5Pdcpl.c @@ -51,7 +51,7 @@ /* Define default layout information */ #define H5D_DEF_STORAGE_COMPACT_INIT {(hbool_t)FALSE, (size_t)0, NULL} #define H5D_DEF_STORAGE_CONTIG_INIT {HADDR_UNDEF} -#define H5D_DEF_STORAGE_CHUNK_INIT {H5D_CHUNK_IDX_BTREE, {{HADDR_UNDEF}}} +#define H5D_DEF_STORAGE_CHUNK_INIT {HADDR_UNDEF} #define H5D_DEF_LAYOUT_CONTIG_INIT {(hsize_t)0} #define H5D_DEF_LAYOUT_CHUNK_INIT {H5D_CHUNK_IDX_BTREE, (unsigned)1, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, (unsigned)0, (uint32_t)0, (hsize_t)0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL, {{NULL}}} #ifdef H5_HAVE_C99_DESIGNATED_INITIALIZER -- cgit v0.12