summaryrefslogtreecommitdiffstats
path: root/src/H5Dearray.c
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2020-10-01 14:04:36 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2020-10-01 14:04:36 (GMT)
commitf1ba03cea5b82699a984c80bd2deac14fdc8df18 (patch)
treeebe777c3e0b83f4c4cec9212731da9ebe0a0cfd3 /src/H5Dearray.c
parent10343c197906415388f2a4c8d292e21d25cf7381 (diff)
downloadhdf5-f1ba03cea5b82699a984c80bd2deac14fdc8df18.zip
hdf5-f1ba03cea5b82699a984c80bd2deac14fdc8df18.tar.gz
hdf5-f1ba03cea5b82699a984c80bd2deac14fdc8df18.tar.bz2
Source formatted
Diffstat (limited to 'src/H5Dearray.c')
-rw-r--r--src/H5Dearray.c683
1 files changed, 325 insertions, 358 deletions
diff --git a/src/H5Dearray.c b/src/H5Dearray.c
index a53489e..162018a 100644
--- a/src/H5Dearray.c
+++ b/src/H5Dearray.c
@@ -25,30 +25,30 @@
/* 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 "H5EAprivate.h" /* Extensible arrays */
-#include "H5FLprivate.h" /* Free Lists */
-#include "H5MFprivate.h" /* File space management */
-#include "H5MMprivate.h" /* Memory management */
-#include "H5VMprivate.h" /* Vector functions */
-
+#include "H5private.h" /* Generic Functions */
+#include "H5Dpkg.h" /* Datasets */
+#include "H5Eprivate.h" /* Error handling */
+#include "H5EAprivate.h" /* Extensible arrays */
+#include "H5FLprivate.h" /* Free Lists */
+#include "H5MFprivate.h" /* File space management */
+#include "H5MMprivate.h" /* Memory management */
+#include "H5VMprivate.h" /* Vector functions */
/****************/
/* Local Macros */
/****************/
/* Value to fill unset array elements with */
-#define H5D_EARRAY_FILL HADDR_UNDEF
-#define H5D_EARRAY_FILT_FILL {HADDR_UNDEF, 0, 0}
-
+#define H5D_EARRAY_FILL HADDR_UNDEF
+#define H5D_EARRAY_FILT_FILL \
+ { \
+ HADDR_UNDEF, 0, 0 \
+ }
/******************/
/* Local Typedefs */
@@ -56,33 +56,32 @@
/* Extensible array create/open user data */
typedef struct H5D_earray_ctx_ud_t {
- const H5F_t *f; /* Pointer to file info */
- uint32_t chunk_size; /* Size of chunk (bytes) */
+ const H5F_t *f; /* Pointer to file info */
+ uint32_t chunk_size; /* Size of chunk (bytes) */
} H5D_earray_ctx_ud_t;
/* Extensible array callback context */
typedef struct H5D_earray_ctx_t {
- size_t file_addr_len; /* Size of addresses in the file (bytes) */
- size_t chunk_size_len; /* Size of chunk sizes in the file (bytes) */
+ size_t file_addr_len; /* Size of addresses in the file (bytes) */
+ size_t chunk_size_len; /* Size of chunk sizes in the file (bytes) */
} H5D_earray_ctx_t;
/* Extensible Array callback info for iteration over chunks */
typedef struct H5D_earray_it_ud_t {
- H5D_chunk_common_ud_t common; /* Common info for Fixed Array user data (must be first) */
- H5D_chunk_rec_t chunk_rec; /* Generic chunk record for callback */
- hbool_t filtered; /* Whether the chunks are filtered */
- H5D_chunk_cb_func_t cb; /* Chunk callback routine */
- void *udata; /* User data for chunk callback routine */
+ H5D_chunk_common_ud_t common; /* Common info for Fixed Array user data (must be first) */
+ H5D_chunk_rec_t chunk_rec; /* Generic chunk record for callback */
+ hbool_t filtered; /* Whether the chunks are filtered */
+ H5D_chunk_cb_func_t cb; /* Chunk callback routine */
+ void * udata; /* User data for chunk callback routine */
} H5D_earray_it_ud_t;
/* Native extensible array element for chunks w/filters */
typedef struct H5D_earray_filt_elmt_t {
- haddr_t addr; /* Address of chunk */
- uint32_t nbytes; /* Size of chunk (in file) */
- uint32_t filter_mask; /* Excluded filters for chunk */
+ haddr_t addr; /* Address of chunk */
+ uint32_t nbytes; /* Size of chunk (in file) */
+ uint32_t filter_mask; /* Excluded filters for chunk */
} H5D_earray_filt_elmt_t;
-
/********************/
/* Local Prototypes */
/********************/
@@ -91,119 +90,106 @@ static int H5D__earray_idx_iterate_cb(hsize_t idx, const void *_elmt, void *_uda
static int H5D__earray_idx_delete_cb(const H5D_chunk_rec_t *chunk_rec, void *_udata);
/* Extensible array class callbacks for chunks w/o filters */
-static void *H5D__earray_crt_context(void *udata);
+static void * H5D__earray_crt_context(void *udata);
static herr_t H5D__earray_dst_context(void *ctx);
static herr_t H5D__earray_fill(void *nat_blk, size_t nelmts);
-static herr_t H5D__earray_encode(void *raw, const void *elmt, size_t nelmts,
- void *ctx);
-static herr_t H5D__earray_decode(const void *raw, void *elmt, size_t nelmts,
- void *ctx);
-static herr_t H5D__earray_debug(FILE *stream, int indent, int fwidth,
- hsize_t idx, const void *elmt);
-static void *H5D__earray_crt_dbg_context(H5F_t *f, haddr_t obj_addr);
+static herr_t H5D__earray_encode(void *raw, const void *elmt, size_t nelmts, void *ctx);
+static herr_t H5D__earray_decode(const void *raw, void *elmt, size_t nelmts, void *ctx);
+static herr_t H5D__earray_debug(FILE *stream, int indent, int fwidth, hsize_t idx, const void *elmt);
+static void * H5D__earray_crt_dbg_context(H5F_t *f, haddr_t obj_addr);
static herr_t H5D__earray_dst_dbg_context(void *dbg_ctx);
/* Extensible array class callbacks for chunks w/filters */
/* (some shared with callbacks for chunks w/o filters) */
static herr_t H5D__earray_filt_fill(void *nat_blk, size_t nelmts);
-static herr_t H5D__earray_filt_encode(void *raw, const void *elmt, size_t nelmts,
- void *ctx);
-static herr_t H5D__earray_filt_decode(const void *raw, void *elmt, size_t nelmts,
- void *ctx);
-static herr_t H5D__earray_filt_debug(FILE *stream, int indent, int fwidth,
- hsize_t idx, const void *elmt);
+static herr_t H5D__earray_filt_encode(void *raw, const void *elmt, size_t nelmts, void *ctx);
+static herr_t H5D__earray_filt_decode(const void *raw, void *elmt, size_t nelmts, void *ctx);
+static herr_t H5D__earray_filt_debug(FILE *stream, int indent, int fwidth, hsize_t idx, const void *elmt);
/* Chunked layout indexing callbacks */
-static herr_t H5D__earray_idx_init(const H5D_chk_idx_info_t *idx_info,
- const H5S_t *space, haddr_t dset_ohdr_addr);
-static herr_t H5D__earray_idx_create(const H5D_chk_idx_info_t *idx_info);
+static herr_t H5D__earray_idx_init(const H5D_chk_idx_info_t *idx_info, const H5S_t *space,
+ haddr_t dset_ohdr_addr);
+static herr_t H5D__earray_idx_create(const H5D_chk_idx_info_t *idx_info);
static hbool_t H5D__earray_idx_is_space_alloc(const H5O_storage_chunk_t *storage);
-static herr_t H5D__earray_idx_insert(const H5D_chk_idx_info_t *idx_info,
- H5D_chunk_ud_t *udata, const H5D_t *dset);
-static herr_t H5D__earray_idx_get_addr(const H5D_chk_idx_info_t *idx_info,
- H5D_chunk_ud_t *udata);
-static herr_t H5D__earray_idx_resize(H5O_layout_chunk_t *layout);
-static int H5D__earray_idx_iterate(const H5D_chk_idx_info_t *idx_info,
- H5D_chunk_cb_func_t chunk_cb, void *chunk_udata);
-static herr_t H5D__earray_idx_remove(const H5D_chk_idx_info_t *idx_info,
- H5D_chunk_common_ud_t *udata);
-static herr_t H5D__earray_idx_delete(const H5D_chk_idx_info_t *idx_info);
-static herr_t H5D__earray_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__earray_idx_copy_shutdown(H5O_storage_chunk_t *storage_src,
- H5O_storage_chunk_t *storage_dst);
-static herr_t H5D__earray_idx_size(const H5D_chk_idx_info_t *idx_info,
- hsize_t *size);
-static herr_t H5D__earray_idx_reset(H5O_storage_chunk_t *storage, hbool_t reset_addr);
-static herr_t H5D__earray_idx_dump(const H5O_storage_chunk_t *storage,
- FILE *stream);
-static herr_t H5D__earray_idx_dest(const H5D_chk_idx_info_t *idx_info);
+static herr_t H5D__earray_idx_insert(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata,
+ const H5D_t *dset);
+static herr_t H5D__earray_idx_get_addr(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata);
+static herr_t H5D__earray_idx_resize(H5O_layout_chunk_t *layout);
+static int H5D__earray_idx_iterate(const H5D_chk_idx_info_t *idx_info, H5D_chunk_cb_func_t chunk_cb,
+ void *chunk_udata);
+static herr_t H5D__earray_idx_remove(const H5D_chk_idx_info_t *idx_info, H5D_chunk_common_ud_t *udata);
+static herr_t H5D__earray_idx_delete(const H5D_chk_idx_info_t *idx_info);
+static herr_t H5D__earray_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__earray_idx_copy_shutdown(H5O_storage_chunk_t *storage_src,
+ H5O_storage_chunk_t *storage_dst);
+static herr_t H5D__earray_idx_size(const H5D_chk_idx_info_t *idx_info, hsize_t *size);
+static herr_t H5D__earray_idx_reset(H5O_storage_chunk_t *storage, hbool_t reset_addr);
+static herr_t H5D__earray_idx_dump(const H5O_storage_chunk_t *storage, FILE *stream);
+static herr_t H5D__earray_idx_dest(const H5D_chk_idx_info_t *idx_info);
/* Generic extensible array routines */
static herr_t H5D__earray_idx_open(const H5D_chk_idx_info_t *idx_info);
static herr_t H5D__earray_idx_depend(const H5D_chk_idx_info_t *idx_info);
-
/*********************/
/* Package Variables */
/*********************/
/* Extensible array indexed chunk I/O ops */
const H5D_chunk_ops_t H5D_COPS_EARRAY[1] = {{
- TRUE, /* Extensible array indices support SWMR access */
- H5D__earray_idx_init, /* init */
- H5D__earray_idx_create, /* create */
- H5D__earray_idx_is_space_alloc, /* is_space_alloc */
- H5D__earray_idx_insert, /* insert */
- H5D__earray_idx_get_addr, /* get_addr */
- H5D__earray_idx_resize, /* resize */
- H5D__earray_idx_iterate, /* iterate */
- H5D__earray_idx_remove, /* remove */
- H5D__earray_idx_delete, /* delete */
- H5D__earray_idx_copy_setup, /* copy_setup */
- H5D__earray_idx_copy_shutdown, /* copy_shutdown */
- H5D__earray_idx_size, /* size */
- H5D__earray_idx_reset, /* reset */
- H5D__earray_idx_dump, /* dump */
- H5D__earray_idx_dest /* destroy */
+ TRUE, /* Extensible array indices support SWMR access */
+ H5D__earray_idx_init, /* init */
+ H5D__earray_idx_create, /* create */
+ H5D__earray_idx_is_space_alloc, /* is_space_alloc */
+ H5D__earray_idx_insert, /* insert */
+ H5D__earray_idx_get_addr, /* get_addr */
+ H5D__earray_idx_resize, /* resize */
+ H5D__earray_idx_iterate, /* iterate */
+ H5D__earray_idx_remove, /* remove */
+ H5D__earray_idx_delete, /* delete */
+ H5D__earray_idx_copy_setup, /* copy_setup */
+ H5D__earray_idx_copy_shutdown, /* copy_shutdown */
+ H5D__earray_idx_size, /* size */
+ H5D__earray_idx_reset, /* reset */
+ H5D__earray_idx_dump, /* dump */
+ H5D__earray_idx_dest /* destroy */
}};
-
/*****************************/
/* Library Private Variables */
/*****************************/
/* Extensible array class callbacks for dataset chunks w/o filters */
-const H5EA_class_t H5EA_CLS_CHUNK[1]={{
- H5EA_CLS_CHUNK_ID, /* Type of extensible array */
- "Chunk w/o filters", /* Name of extensible array class */
- sizeof(haddr_t), /* Size of native element */
- H5D__earray_crt_context, /* Create context */
- H5D__earray_dst_context, /* Destroy context */
- H5D__earray_fill, /* Fill block of missing elements callback */
- H5D__earray_encode, /* Element encoding callback */
- H5D__earray_decode, /* Element decoding callback */
- H5D__earray_debug, /* Element debugging callback */
+const H5EA_class_t H5EA_CLS_CHUNK[1] = {{
+ H5EA_CLS_CHUNK_ID, /* Type of extensible array */
+ "Chunk w/o filters", /* Name of extensible array class */
+ sizeof(haddr_t), /* Size of native element */
+ H5D__earray_crt_context, /* Create context */
+ H5D__earray_dst_context, /* Destroy context */
+ H5D__earray_fill, /* Fill block of missing elements callback */
+ H5D__earray_encode, /* Element encoding callback */
+ H5D__earray_decode, /* Element decoding callback */
+ H5D__earray_debug, /* Element debugging callback */
H5D__earray_crt_dbg_context, /* Create debugging context */
H5D__earray_dst_dbg_context /* Destroy debugging context */
}};
/* Extensible array class callbacks for dataset chunks w/filters */
-const H5EA_class_t H5EA_CLS_FILT_CHUNK[1]={{
- H5EA_CLS_FILT_CHUNK_ID, /* Type of extensible array */
- "Chunk w/filters", /* Name of extensible array class */
+const H5EA_class_t H5EA_CLS_FILT_CHUNK[1] = {{
+ H5EA_CLS_FILT_CHUNK_ID, /* Type of extensible array */
+ "Chunk w/filters", /* Name of extensible array class */
sizeof(H5D_earray_filt_elmt_t), /* Size of native element */
- H5D__earray_crt_context, /* Create context */
- H5D__earray_dst_context, /* Destroy context */
- H5D__earray_filt_fill, /* Fill block of missing elements callback */
- H5D__earray_filt_encode, /* Element encoding callback */
- H5D__earray_filt_decode, /* Element decoding callback */
- H5D__earray_filt_debug, /* Element debugging callback */
- H5D__earray_crt_dbg_context, /* Create debugging context */
- H5D__earray_dst_dbg_context /* Destroy debugging context */
+ H5D__earray_crt_context, /* Create context */
+ H5D__earray_dst_context, /* Destroy context */
+ H5D__earray_filt_fill, /* Fill block of missing elements callback */
+ H5D__earray_filt_encode, /* Element encoding callback */
+ H5D__earray_filt_decode, /* Element decoding callback */
+ H5D__earray_filt_debug, /* Element debugging callback */
+ H5D__earray_crt_dbg_context, /* Create debugging context */
+ H5D__earray_dst_dbg_context /* Destroy debugging context */
}};
-
/*******************/
/* Local Variables */
/*******************/
@@ -213,8 +199,6 @@ const H5EA_class_t H5EA_CLS_FILT_CHUNK[1]={{
H5FL_DEFINE_STATIC(H5D_earray_ctx_t);
H5FL_DEFINE_STATIC(H5D_earray_ctx_ud_t);
-
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_crt_context
*
@@ -231,9 +215,9 @@ H5FL_DEFINE_STATIC(H5D_earray_ctx_ud_t);
static void *
H5D__earray_crt_context(void *_udata)
{
- H5D_earray_ctx_t *ctx; /* Extensible array callback context */
+ H5D_earray_ctx_t * ctx; /* Extensible array callback context */
H5D_earray_ctx_ud_t *udata = (H5D_earray_ctx_ud_t *)_udata; /* User data for extensible array context */
- void *ret_value = NULL; /* Return value */
+ void * ret_value = NULL; /* Return value */
FUNC_ENTER_STATIC
@@ -243,8 +227,9 @@ H5D__earray_crt_context(void *_udata)
HDassert(udata->chunk_size > 0);
/* Allocate new context structure */
- if(NULL == (ctx = H5FL_MALLOC(H5D_earray_ctx_t)))
- HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, NULL, "can't allocate extensible array client callback context")
+ if (NULL == (ctx = H5FL_MALLOC(H5D_earray_ctx_t)))
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, NULL,
+ "can't allocate extensible array client callback context")
/* Initialize the context */
ctx->file_addr_len = H5F_SIZEOF_ADDR(udata->f);
@@ -253,7 +238,7 @@ H5D__earray_crt_context(void *_udata)
* for an extra byte, in case the filter makes the chunk larger.
*/
ctx->chunk_size_len = 1 + ((H5VM_log2_gen((uint64_t)udata->chunk_size) + 8) / 8);
- if(ctx->chunk_size_len > 8)
+ if (ctx->chunk_size_len > 8)
ctx->chunk_size_len = 8;
/* Set return value */
@@ -263,7 +248,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D__earray_crt_context() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_dst_context
*
@@ -280,7 +264,7 @@ done:
static herr_t
H5D__earray_dst_context(void *_ctx)
{
- H5D_earray_ctx_t *ctx = (H5D_earray_ctx_t *)_ctx; /* Extensible array callback context */
+ H5D_earray_ctx_t *ctx = (H5D_earray_ctx_t *)_ctx; /* Extensible array callback context */
FUNC_ENTER_STATIC_NOERR
@@ -293,7 +277,6 @@ H5D__earray_dst_context(void *_ctx)
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5D__earray_dst_context() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_fill
*
@@ -310,7 +293,7 @@ H5D__earray_dst_context(void *_ctx)
static herr_t
H5D__earray_fill(void *nat_blk, size_t nelmts)
{
- haddr_t fill_val = H5D_EARRAY_FILL; /* Value to fill elements with */
+ haddr_t fill_val = H5D_EARRAY_FILL; /* Value to fill elements with */
FUNC_ENTER_STATIC_NOERR
@@ -323,7 +306,6 @@ H5D__earray_fill(void *nat_blk, size_t nelmts)
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5D__earray_fill() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_encode
*
@@ -340,8 +322,8 @@ H5D__earray_fill(void *nat_blk, size_t nelmts)
static herr_t
H5D__earray_encode(void *raw, const void *_elmt, size_t nelmts, void *_ctx)
{
- H5D_earray_ctx_t *ctx = (H5D_earray_ctx_t *)_ctx; /* Extensible array callback context */
- const haddr_t *elmt = (const haddr_t *)_elmt; /* Convenience pointer to native elements */
+ H5D_earray_ctx_t *ctx = (H5D_earray_ctx_t *)_ctx; /* Extensible array callback context */
+ const haddr_t * elmt = (const haddr_t *)_elmt; /* Convenience pointer to native elements */
FUNC_ENTER_STATIC_NOERR
@@ -352,7 +334,7 @@ H5D__earray_encode(void *raw, const void *_elmt, size_t nelmts, void *_ctx)
HDassert(ctx);
/* Encode native elements into raw elements */
- while(nelmts) {
+ while (nelmts) {
/* Encode element */
/* (advances 'raw' pointer) */
H5F_addr_encode_len(ctx->file_addr_len, (uint8_t **)&raw, *elmt);
@@ -367,7 +349,6 @@ H5D__earray_encode(void *raw, const void *_elmt, size_t nelmts, void *_ctx)
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5D__earray_encode() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_decode
*
@@ -384,9 +365,9 @@ H5D__earray_encode(void *raw, const void *_elmt, size_t nelmts, void *_ctx)
static herr_t
H5D__earray_decode(const void *_raw, void *_elmt, size_t nelmts, void *_ctx)
{
- H5D_earray_ctx_t *ctx = (H5D_earray_ctx_t *)_ctx; /* Extensible array callback context */
- haddr_t *elmt = (haddr_t *)_elmt; /* Convenience pointer to native elements */
- const uint8_t *raw = (const uint8_t *)_raw; /* Convenience pointer to raw elements */
+ H5D_earray_ctx_t *ctx = (H5D_earray_ctx_t *)_ctx; /* Extensible array callback context */
+ haddr_t * elmt = (haddr_t *)_elmt; /* Convenience pointer to native elements */
+ const uint8_t * raw = (const uint8_t *)_raw; /* Convenience pointer to raw elements */
FUNC_ENTER_STATIC_NOERR
@@ -396,7 +377,7 @@ H5D__earray_decode(const void *_raw, void *_elmt, size_t nelmts, void *_ctx)
HDassert(nelmts);
/* Decode raw elements into native elements */
- while(nelmts) {
+ while (nelmts) {
/* Decode element */
/* (advances 'raw' pointer) */
H5F_addr_decode_len(ctx->file_addr_len, &raw, elmt);
@@ -411,7 +392,6 @@ H5D__earray_decode(const void *_raw, void *_elmt, size_t nelmts, void *_ctx)
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5D__earray_decode() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_debug
*
@@ -426,10 +406,9 @@ H5D__earray_decode(const void *_raw, void *_elmt, size_t nelmts, void *_ctx)
*-------------------------------------------------------------------------
*/
static herr_t
-H5D__earray_debug(FILE *stream, int indent, int fwidth, hsize_t idx,
- const void *elmt)
+H5D__earray_debug(FILE *stream, int indent, int fwidth, hsize_t idx, const void *elmt)
{
- char temp_str[128]; /* Temporary string, for formatting */
+ char temp_str[128]; /* Temporary string, for formatting */
FUNC_ENTER_STATIC_NOERR
@@ -439,13 +418,11 @@ H5D__earray_debug(FILE *stream, int indent, int fwidth, hsize_t idx,
/* Print element */
HDsprintf(temp_str, "Element #%llu:", (unsigned long long)idx);
- HDfprintf(stream, "%*s%-*s %a\n", indent, "", fwidth, temp_str,
- *(const haddr_t *)elmt);
+ HDfprintf(stream, "%*s%-*s %a\n", indent, "", fwidth, temp_str, *(const haddr_t *)elmt);
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5D__earray_debug() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_filt_fill
*
@@ -462,7 +439,7 @@ H5D__earray_debug(FILE *stream, int indent, int fwidth, hsize_t idx,
static herr_t
H5D__earray_filt_fill(void *nat_blk, size_t nelmts)
{
- H5D_earray_filt_elmt_t fill_val = H5D_EARRAY_FILT_FILL; /* Value to fill elements with */
+ H5D_earray_filt_elmt_t fill_val = H5D_EARRAY_FILT_FILL; /* Value to fill elements with */
FUNC_ENTER_STATIC_NOERR
@@ -476,7 +453,6 @@ H5D__earray_filt_fill(void *nat_blk, size_t nelmts)
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5D__earray_filt_fill() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_filt_encode
*
@@ -493,9 +469,10 @@ H5D__earray_filt_fill(void *nat_blk, size_t nelmts)
static herr_t
H5D__earray_filt_encode(void *_raw, const void *_elmt, size_t nelmts, void *_ctx)
{
- H5D_earray_ctx_t *ctx = (H5D_earray_ctx_t *)_ctx; /* Extensible array callback context */
- uint8_t *raw = (uint8_t *)_raw; /* Convenience pointer to raw elements */
- const H5D_earray_filt_elmt_t *elmt = (const H5D_earray_filt_elmt_t *)_elmt; /* Convenience pointer to native elements */
+ H5D_earray_ctx_t * ctx = (H5D_earray_ctx_t *)_ctx; /* Extensible array callback context */
+ uint8_t * raw = (uint8_t *)_raw; /* Convenience pointer to raw elements */
+ const H5D_earray_filt_elmt_t *elmt =
+ (const H5D_earray_filt_elmt_t *)_elmt; /* Convenience pointer to native elements */
FUNC_ENTER_STATIC_NOERR
@@ -506,7 +483,7 @@ H5D__earray_filt_encode(void *_raw, const void *_elmt, size_t nelmts, void *_ctx
HDassert(ctx);
/* Encode native elements into raw elements */
- while(nelmts) {
+ while (nelmts) {
/* Encode element */
/* (advances 'raw' pointer) */
H5F_addr_encode_len(ctx->file_addr_len, &raw, elmt->addr);
@@ -523,7 +500,6 @@ H5D__earray_filt_encode(void *_raw, const void *_elmt, size_t nelmts, void *_ctx
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5D__earray_filt_encode() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_filt_decode
*
@@ -540,8 +516,9 @@ H5D__earray_filt_encode(void *_raw, const void *_elmt, size_t nelmts, void *_ctx
static herr_t
H5D__earray_filt_decode(const void *_raw, void *_elmt, size_t nelmts, void *_ctx)
{
- H5D_earray_ctx_t *ctx = (H5D_earray_ctx_t *)_ctx; /* Extensible array callback context */
- H5D_earray_filt_elmt_t *elmt = (H5D_earray_filt_elmt_t *)_elmt; /* Convenience pointer to native elements */
+ H5D_earray_ctx_t * ctx = (H5D_earray_ctx_t *)_ctx; /* Extensible array callback context */
+ H5D_earray_filt_elmt_t *elmt =
+ (H5D_earray_filt_elmt_t *)_elmt; /* Convenience pointer to native elements */
const uint8_t *raw = (const uint8_t *)_raw; /* Convenience pointer to raw elements */
FUNC_ENTER_STATIC_NOERR
@@ -552,7 +529,7 @@ H5D__earray_filt_decode(const void *_raw, void *_elmt, size_t nelmts, void *_ctx
HDassert(nelmts);
/* Decode raw elements into native elements */
- while(nelmts) {
+ while (nelmts) {
/* Decode element */
/* (advances 'raw' pointer) */
H5F_addr_decode_len(ctx->file_addr_len, &raw, &elmt->addr);
@@ -569,7 +546,6 @@ H5D__earray_filt_decode(const void *_raw, void *_elmt, size_t nelmts, void *_ctx
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5D__earray_filt_decode() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_filt_debug
*
@@ -584,11 +560,11 @@ H5D__earray_filt_decode(const void *_raw, void *_elmt, size_t nelmts, void *_ctx
*-------------------------------------------------------------------------
*/
static herr_t
-H5D__earray_filt_debug(FILE *stream, int indent, int fwidth, hsize_t idx,
- const void *_elmt)
+H5D__earray_filt_debug(FILE *stream, int indent, int fwidth, hsize_t idx, const void *_elmt)
{
- const H5D_earray_filt_elmt_t *elmt = (const H5D_earray_filt_elmt_t *)_elmt; /* Convenience pointer to native elements */
- char temp_str[128]; /* Temporary string, for formatting */
+ const H5D_earray_filt_elmt_t *elmt =
+ (const H5D_earray_filt_elmt_t *)_elmt; /* Convenience pointer to native elements */
+ char temp_str[128]; /* Temporary string, for formatting */
FUNC_ENTER_STATIC_NOERR
@@ -598,13 +574,12 @@ H5D__earray_filt_debug(FILE *stream, int indent, int fwidth, hsize_t idx,
/* Print element */
HDsprintf(temp_str, "Element #%llu:", (unsigned long long)idx);
- HDfprintf(stream, "%*s%-*s {%a, %u, %0x}\n", indent, "", fwidth, temp_str,
- elmt->addr, elmt->nbytes, elmt->filter_mask);
+ HDfprintf(stream, "%*s%-*s {%a, %u, %0x}\n", indent, "", fwidth, temp_str, elmt->addr, elmt->nbytes,
+ elmt->filter_mask);
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5D__earray_filt_debug() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_crt_dbg_context
*
@@ -621,11 +596,11 @@ H5D__earray_filt_debug(FILE *stream, int indent, int fwidth, hsize_t idx,
static void *
H5D__earray_crt_dbg_context(H5F_t *f, haddr_t obj_addr)
{
- H5D_earray_ctx_ud_t *dbg_ctx = NULL; /* Context for fixed array callback */
- H5O_loc_t obj_loc; /* Pointer to an object's location */
- hbool_t obj_opened = FALSE; /* Flag to indicate that the object header was opened */
- H5O_layout_t layout; /* Layout message */
- void *ret_value = NULL; /* Return value */
+ H5D_earray_ctx_ud_t *dbg_ctx = NULL; /* Context for fixed array callback */
+ H5O_loc_t obj_loc; /* Pointer to an object's location */
+ hbool_t obj_opened = FALSE; /* Flag to indicate that the object header was opened */
+ H5O_layout_t layout; /* Layout message */
+ void * ret_value = NULL; /* Return value */
FUNC_ENTER_STATIC
@@ -634,8 +609,9 @@ H5D__earray_crt_dbg_context(H5F_t *f, haddr_t obj_addr)
HDassert(H5F_addr_defined(obj_addr));
/* Allocate context for debugging callback */
- if(NULL == (dbg_ctx = H5FL_MALLOC(H5D_earray_ctx_ud_t)))
- HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, NULL, "can't allocate extensible array client callback context")
+ if (NULL == (dbg_ctx = H5FL_MALLOC(H5D_earray_ctx_ud_t)))
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, NULL,
+ "can't allocate extensible array client callback context")
/* Set up the object header location info */
H5O_loc_reset(&obj_loc);
@@ -643,20 +619,20 @@ H5D__earray_crt_dbg_context(H5F_t *f, haddr_t obj_addr)
obj_loc.addr = obj_addr;
/* Open the object header where the layout message resides */
- if(H5O_open(&obj_loc) < 0)
+ if (H5O_open(&obj_loc) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTOPENOBJ, NULL, "can't open object header")
obj_opened = TRUE;
/* Read the layout message */
- if(NULL == H5O_msg_read(&obj_loc, H5O_LAYOUT_ID, &layout))
+ if (NULL == H5O_msg_read(&obj_loc, H5O_LAYOUT_ID, &layout))
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, NULL, "can't get layout info")
/* close the object header */
- if(H5O_close(&obj_loc, NULL) < 0)
+ if (H5O_close(&obj_loc, NULL) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTCLOSEOBJ, NULL, "can't close object header")
/* Create user data */
- dbg_ctx->f = f;
+ dbg_ctx->f = f;
dbg_ctx->chunk_size = layout.u.chunk.size;
/* Set return value */
@@ -664,21 +640,20 @@ H5D__earray_crt_dbg_context(H5F_t *f, haddr_t obj_addr)
done:
/* Cleanup on error */
- if(ret_value == NULL) {
+ if (ret_value == NULL) {
/* Release context structure */
- if(dbg_ctx)
+ if (dbg_ctx)
dbg_ctx = H5FL_FREE(H5D_earray_ctx_ud_t, dbg_ctx);
/* Close object header */
- if(obj_opened)
- if(H5O_close(&obj_loc, NULL) < 0)
+ if (obj_opened)
+ if (H5O_close(&obj_loc, NULL) < 0)
HDONE_ERROR(H5E_DATASET, H5E_CANTCLOSEOBJ, NULL, "can't close object header")
} /* end if */
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D__earray_crt_dbg_context() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_dst_dbg_context
*
@@ -695,7 +670,8 @@ done:
static herr_t
H5D__earray_dst_dbg_context(void *_dbg_ctx)
{
- H5D_earray_ctx_ud_t *dbg_ctx = (H5D_earray_ctx_ud_t *)_dbg_ctx; /* Context for extensible array callback */
+ H5D_earray_ctx_ud_t *dbg_ctx =
+ (H5D_earray_ctx_ud_t *)_dbg_ctx; /* Context for extensible array callback */
FUNC_ENTER_STATIC_NOERR
@@ -708,7 +684,6 @@ H5D__earray_dst_dbg_context(void *_dbg_ctx)
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5D__earray_dst_dbg_context() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_depend
*
@@ -726,10 +701,10 @@ H5D__earray_dst_dbg_context(void *_dbg_ctx)
static herr_t
H5D__earray_idx_depend(const H5D_chk_idx_info_t *idx_info)
{
- H5O_t *oh = NULL; /* Object header */
- H5O_loc_t oloc; /* Temporary object header location for dataset */
- H5AC_proxy_entry_t *oh_proxy; /* Dataset's object header proxy */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5O_t * oh = NULL; /* Object header */
+ H5O_loc_t oloc; /* Temporary object header location for dataset */
+ H5AC_proxy_entry_t *oh_proxy; /* Dataset's object header proxy */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -751,26 +726,26 @@ H5D__earray_idx_depend(const H5D_chk_idx_info_t *idx_info)
oloc.addr = idx_info->storage->u.earray.dset_ohdr_addr;
/* Get header */
- if(NULL == (oh = H5O_protect(&oloc, H5AC__READ_ONLY_FLAG, TRUE)))
+ if (NULL == (oh = H5O_protect(&oloc, H5AC__READ_ONLY_FLAG, TRUE)))
HGOTO_ERROR(H5E_DATASET, H5E_CANTPROTECT, FAIL, "unable to protect object header")
/* Retrieve the dataset's object header proxy */
- if(NULL == (oh_proxy = H5O_get_proxy(oh)))
+ if (NULL == (oh_proxy = H5O_get_proxy(oh)))
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "unable to get dataset object header proxy")
/* Make the extensible array a child flush dependency of the dataset's object header */
- if(H5EA_depend(idx_info->storage->u.earray.ea, oh_proxy) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTDEPEND, FAIL, "unable to create flush dependency on object header proxy")
+ if (H5EA_depend(idx_info->storage->u.earray.ea, oh_proxy) < 0)
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTDEPEND, FAIL,
+ "unable to create flush dependency on object header proxy")
done:
/* Release the object header from the cache */
- if(oh && H5O_unprotect(&oloc, oh, H5AC__NO_FLAGS_SET) < 0)
+ if (oh && H5O_unprotect(&oloc, oh, H5AC__NO_FLAGS_SET) < 0)
HDONE_ERROR(H5E_DATASET, H5E_CANTUNPROTECT, FAIL, "unable to release object header")
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D__earray_idx_depend() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_open
*
@@ -792,8 +767,8 @@ done:
static herr_t
H5D__earray_idx_open(const H5D_chk_idx_info_t *idx_info)
{
- H5D_earray_ctx_ud_t udata; /* User data for extensible array open call */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5D_earray_ctx_ud_t udata; /* User data for extensible array open call */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -809,23 +784,24 @@ H5D__earray_idx_open(const H5D_chk_idx_info_t *idx_info)
HDassert(NULL == idx_info->storage->u.earray.ea);
/* Set up the user data */
- udata.f = idx_info->f;
+ udata.f = idx_info->f;
udata.chunk_size = idx_info->layout->size;
/* Open the extensible array for the chunk index */
- if(NULL == (idx_info->storage->u.earray.ea = H5EA_open(idx_info->f, idx_info->storage->idx_addr, &udata)))
+ if (NULL ==
+ (idx_info->storage->u.earray.ea = H5EA_open(idx_info->f, idx_info->storage->idx_addr, &udata)))
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't open extensible array")
/* Check for SWMR writes to the file */
- if(H5F_INTENT(idx_info->f) & H5F_ACC_SWMR_WRITE)
- if(H5D__earray_idx_depend(idx_info) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTDEPEND, FAIL, "unable to create flush dependency on object header")
+ if (H5F_INTENT(idx_info->f) & H5F_ACC_SWMR_WRITE)
+ if (H5D__earray_idx_depend(idx_info) < 0)
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTDEPEND, FAIL,
+ "unable to create flush dependency on object header")
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D__earray_idx_open() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_init
*
@@ -839,15 +815,14 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5D__earray_idx_init(const H5D_chk_idx_info_t *idx_info, const H5S_t *space,
- haddr_t dset_ohdr_addr)
+H5D__earray_idx_init(const H5D_chk_idx_info_t *idx_info, const H5S_t *space, haddr_t dset_ohdr_addr)
{
- hsize_t max_dims[H5O_LAYOUT_NDIMS]; /* Max. size of dataset dimensions */
- int unlim_dim; /* Rank of the dataset's unlimited dimension */
- int sndims; /* Rank of dataspace */
- unsigned ndims; /* Rank of dataspace */
- unsigned u; /* Local index variable */
- herr_t ret_value = SUCCEED; /* Return value */
+ hsize_t max_dims[H5O_LAYOUT_NDIMS]; /* Max. size of dataset dimensions */
+ int unlim_dim; /* Rank of the dataset's unlimited dimension */
+ int sndims; /* Rank of dataspace */
+ unsigned ndims; /* Rank of dataspace */
+ unsigned u; /* Local index variable */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -861,26 +836,26 @@ H5D__earray_idx_init(const H5D_chk_idx_info_t *idx_info, const H5S_t *space,
HDassert(H5F_addr_defined(dset_ohdr_addr));
/* Get the dim info for dataset */
- if((sndims = H5S_get_simple_extent_dims(space, NULL, max_dims)) < 0)
+ if ((sndims = H5S_get_simple_extent_dims(space, NULL, max_dims)) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get dataspace dimensions")
H5_CHECKED_ASSIGN(ndims, unsigned, sndims, int);
/* Find the rank of the unlimited dimension */
unlim_dim = (-1);
- for(u = 0; u < ndims; u++) {
+ for (u = 0; u < ndims; u++) {
/* Check for unlimited dimension */
- if(H5S_UNLIMITED == max_dims[u]) {
+ if (H5S_UNLIMITED == max_dims[u]) {
/* Check if we've already found an unlimited dimension */
- if(unlim_dim >= 0)
+ if (unlim_dim >= 0)
HGOTO_ERROR(H5E_DATASET, H5E_ALREADYINIT, FAIL, "already found unlimited dimension")
/* Set the unlimited dimension */
unlim_dim = (int)u;
} /* end if */
- } /* end for */
+ } /* end for */
/* Check if we didn't find an unlimited dimension */
- if(unlim_dim < 0)
+ if (unlim_dim < 0)
HGOTO_ERROR(H5E_DATASET, H5E_UNINITIALIZED, FAIL, "didn't find unlimited dimension")
/* Set the unlimited dimension for the layout's future use */
@@ -893,7 +868,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D__earray_idx_init() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_create
*
@@ -915,9 +889,9 @@ done:
static herr_t
H5D__earray_idx_create(const H5D_chk_idx_info_t *idx_info)
{
- H5EA_create_t cparam; /* Extensible array creation parameters */
- H5D_earray_ctx_ud_t udata; /* User data for extensible array create call */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5EA_create_t cparam; /* Extensible array creation parameters */
+ H5D_earray_ctx_ud_t udata; /* User data for extensible array create call */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -931,21 +905,21 @@ H5D__earray_idx_create(const H5D_chk_idx_info_t *idx_info)
HDassert(NULL == idx_info->storage->u.earray.ea);
/* General parameters */
- if(idx_info->pline->nused > 0) {
- unsigned chunk_size_len; /* Size of encoded chunk size */
+ if (idx_info->pline->nused > 0) {
+ unsigned chunk_size_len; /* Size of encoded chunk size */
/* Compute the size required for encoding the size of a chunk, allowing
* for an extra byte, in case the filter makes the chunk larger.
*/
chunk_size_len = 1 + ((H5VM_log2_gen((uint64_t)idx_info->layout->size) + 8) / 8);
- if(chunk_size_len > 8)
+ if (chunk_size_len > 8)
chunk_size_len = 8;
- cparam.cls = H5EA_CLS_FILT_CHUNK;
+ cparam.cls = H5EA_CLS_FILT_CHUNK;
cparam.raw_elmt_size = (uint8_t)(H5F_SIZEOF_ADDR(idx_info->f) + chunk_size_len + 4);
} /* end if */
else {
- cparam.cls = H5EA_CLS_CHUNK;
+ cparam.cls = H5EA_CLS_CHUNK;
cparam.raw_elmt_size = (uint8_t)H5F_SIZEOF_ADDR(idx_info->f);
} /* end else */
cparam.max_nelmts_bits = idx_info->layout->u.earray.cparam.max_nelmts_bits;
@@ -960,27 +934,27 @@ H5D__earray_idx_create(const H5D_chk_idx_info_t *idx_info)
HDassert(cparam.max_dblk_page_nelmts_bits > 0);
/* Set up the user data */
- udata.f = idx_info->f;
+ udata.f = idx_info->f;
udata.chunk_size = idx_info->layout->size;
/* Create the extensible array for the chunk index */
- if(NULL == (idx_info->storage->u.earray.ea = H5EA_create(idx_info->f, &cparam, &udata)))
+ if (NULL == (idx_info->storage->u.earray.ea = H5EA_create(idx_info->f, &cparam, &udata)))
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->storage->u.earray.ea, &(idx_info->storage->idx_addr)) < 0)
+ if (H5EA_get_addr(idx_info->storage->u.earray.ea, &(idx_info->storage->idx_addr)) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't query extensible array address")
/* Check for SWMR writes to the file */
- if(H5F_INTENT(idx_info->f) & H5F_ACC_SWMR_WRITE)
- if(H5D__earray_idx_depend(idx_info) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTDEPEND, FAIL, "unable to create flush dependency on object header")
+ if (H5F_INTENT(idx_info->f) & H5F_ACC_SWMR_WRITE)
+ if (H5D__earray_idx_depend(idx_info) < 0)
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTDEPEND, FAIL,
+ "unable to create flush dependency on object header")
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D__earray_idx_create() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_is_space_alloc
*
@@ -1004,7 +978,6 @@ H5D__earray_idx_is_space_alloc(const H5O_storage_chunk_t *storage)
FUNC_LEAVE_NOAPI((hbool_t)H5F_addr_defined(storage->idx_addr))
} /* end H5D__earray_idx_is_space_alloc() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_insert
*
@@ -1018,10 +991,10 @@ H5D__earray_idx_is_space_alloc(const H5O_storage_chunk_t *storage)
*/
static herr_t
H5D__earray_idx_insert(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata,
- const H5D_t H5_ATTR_UNUSED *dset)
+ const H5D_t H5_ATTR_UNUSED *dset)
{
- H5EA_t *ea; /* Pointer to extensible array structure */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5EA_t *ea; /* Pointer to extensible array structure */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -1035,36 +1008,37 @@ H5D__earray_idx_insert(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata
HDassert(udata);
/* Check if the extensible array is open yet */
- if(NULL == idx_info->storage->u.earray.ea) {
+ if (NULL == idx_info->storage->u.earray.ea) {
/* Open the extensible array in file */
- if(H5D__earray_idx_open(idx_info) < 0)
+ if (H5D__earray_idx_open(idx_info) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTOPENOBJ, FAIL, "can't open extensible array")
- } else /* Patch the top level file pointer contained in ea if needed */
+ }
+ else /* Patch the top level file pointer contained in ea if needed */
H5EA_patch_file(idx_info->storage->u.earray.ea, idx_info->f);
/* Set convenience pointer to extensible array structure */
ea = idx_info->storage->u.earray.ea;
- if(!H5F_addr_defined(udata->chunk_block.offset))
+ if (!H5F_addr_defined(udata->chunk_block.offset))
HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "The chunk should have allocated already")
- if(udata->chunk_idx != (udata->chunk_idx & 0xffffffff)) /* negative value */
+ if (udata->chunk_idx != (udata->chunk_idx & 0xffffffff)) /* negative value */
HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "chunk index must be less than 2^32")
/* Check for filters on chunks */
- if(idx_info->pline->nused > 0) {
- H5D_earray_filt_elmt_t elmt; /* Extensible array element */
+ if (idx_info->pline->nused > 0) {
+ H5D_earray_filt_elmt_t elmt; /* Extensible array element */
elmt.addr = udata->chunk_block.offset;
H5_CHECKED_ASSIGN(elmt.nbytes, uint32_t, udata->chunk_block.length, hsize_t);
elmt.filter_mask = udata->filter_mask;
/* Set the info for the chunk */
- if(H5EA_set(ea, udata->chunk_idx, &elmt) < 0)
+ if (H5EA_set(ea, udata->chunk_idx, &elmt) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't set chunk info")
} /* end if */
else {
/* Set the address for the chunk */
- if(H5EA_set(ea, udata->chunk_idx, &udata->chunk_block.offset) < 0)
+ if (H5EA_set(ea, udata->chunk_idx, &udata->chunk_block.offset) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't set chunk address")
} /* end else */
@@ -1072,7 +1046,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* H5D__earray_idx_insert() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_get_addr
*
@@ -1090,9 +1063,9 @@ done:
static herr_t
H5D__earray_idx_get_addr(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata)
{
- H5EA_t *ea; /* Pointer to extensible array structure */
- hsize_t idx; /* Array index of chunk */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5EA_t *ea; /* Pointer to extensible array structure */
+ hsize_t idx; /* Array index of chunk */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -1106,69 +1079,71 @@ H5D__earray_idx_get_addr(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *uda
HDassert(udata);
/* Check if the extensible array is open yet */
- if(NULL == idx_info->storage->u.earray.ea) {
+ if (NULL == idx_info->storage->u.earray.ea) {
/* Open the extensible array in file */
- if(H5D__earray_idx_open(idx_info) < 0)
+ if (H5D__earray_idx_open(idx_info) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTOPENOBJ, FAIL, "can't open extensible array")
- } else /* Patch the top level file pointer contained in ea if needed */
+ }
+ else /* Patch the top level file pointer contained in ea if needed */
H5EA_patch_file(idx_info->storage->u.earray.ea, idx_info->f);
/* Set convenience pointer to extensible array structure */
ea = idx_info->storage->u.earray.ea;
/* Check for unlimited dim. not being the slowest-changing dim. */
- if(idx_info->layout->u.earray.unlim_dim > 0) {
- hsize_t swizzled_coords[H5O_LAYOUT_NDIMS]; /* swizzled chunk coordinates */
+ if (idx_info->layout->u.earray.unlim_dim > 0) {
+ hsize_t swizzled_coords[H5O_LAYOUT_NDIMS]; /* swizzled chunk coordinates */
unsigned ndims = (idx_info->layout->ndims - 1); /* Number of dimensions */
unsigned u;
/* Compute coordinate offset from scaled offset */
- for(u = 0; u < ndims; u++)
+ for (u = 0; u < ndims; u++)
swizzled_coords[u] = udata->common.scaled[u] * idx_info->layout->dim[u];
H5VM_swizzle_coords(hsize_t, swizzled_coords, idx_info->layout->u.earray.unlim_dim);
/* Calculate the index of this chunk */
- idx = H5VM_chunk_index(ndims, swizzled_coords, idx_info->layout->u.earray.swizzled_dim, idx_info->layout->u.earray.swizzled_max_down_chunks);
+ idx = H5VM_chunk_index(ndims, swizzled_coords, idx_info->layout->u.earray.swizzled_dim,
+ idx_info->layout->u.earray.swizzled_max_down_chunks);
} /* end if */
else {
/* Calculate the index of this chunk */
- idx = H5VM_array_offset_pre((idx_info->layout->ndims - 1), idx_info->layout->max_down_chunks, udata->common.scaled);
+ idx = H5VM_array_offset_pre((idx_info->layout->ndims - 1), idx_info->layout->max_down_chunks,
+ udata->common.scaled);
} /* end else */
udata->chunk_idx = idx;
/* Check for filters on chunks */
- if(idx_info->pline->nused > 0) {
- H5D_earray_filt_elmt_t elmt; /* Extensible array element */
+ if (idx_info->pline->nused > 0) {
+ H5D_earray_filt_elmt_t elmt; /* Extensible array element */
/* Get the information for the chunk */
- if(H5EA_get(ea, idx, &elmt) < 0)
+ if (H5EA_get(ea, idx, &elmt) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get chunk info")
/* Set the info for the chunk */
udata->chunk_block.offset = elmt.addr;
udata->chunk_block.length = elmt.nbytes;
- udata->filter_mask = elmt.filter_mask;
+ udata->filter_mask = elmt.filter_mask;
} /* end if */
else {
/* Get the address for the chunk */
- if(H5EA_get(ea, idx, &udata->chunk_block.offset) < 0)
+ if (H5EA_get(ea, idx, &udata->chunk_block.offset) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get chunk address")
/* Update the other (constant) information for the chunk */
udata->chunk_block.length = idx_info->layout->size;
- udata->filter_mask = 0;
+ 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;
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* H5D__earray_idx_get_addr() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_resize
*
@@ -1185,7 +1160,7 @@ done:
static herr_t
H5D__earray_idx_resize(H5O_layout_chunk_t *layout)
{
- herr_t ret_value = SUCCEED; /* Return value */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -1193,9 +1168,10 @@ H5D__earray_idx_resize(H5O_layout_chunk_t *layout)
HDassert(layout);
/* "Swizzle" constant dimensions for this dataset */
- if(layout->u.earray.unlim_dim > 0) {
- hsize_t swizzled_chunks[H5O_LAYOUT_NDIMS]; /* Swizzled form of # of chunks in each dimension */
- hsize_t swizzled_max_chunks[H5O_LAYOUT_NDIMS]; /* Swizzled form of max # of chunks in each dimension */
+ if (layout->u.earray.unlim_dim > 0) {
+ hsize_t swizzled_chunks[H5O_LAYOUT_NDIMS]; /* Swizzled form of # of chunks in each dimension */
+ hsize_t
+ swizzled_max_chunks[H5O_LAYOUT_NDIMS]; /* Swizzled form of max # of chunks in each dimension */
/* Get the swizzled chunk dimensions */
H5MM_memcpy(layout->u.earray.swizzled_dim, layout->dim, (layout->ndims - 1) * sizeof(layout->dim[0]));
@@ -1206,15 +1182,17 @@ H5D__earray_idx_resize(H5O_layout_chunk_t *layout)
H5VM_swizzle_coords(hsize_t, swizzled_chunks, layout->u.earray.unlim_dim);
/* Get the swizzled "down" sizes for each dimension */
- if(H5VM_array_down((layout->ndims - 1), swizzled_chunks, layout->u.earray.swizzled_down_chunks) < 0)
+ if (H5VM_array_down((layout->ndims - 1), swizzled_chunks, layout->u.earray.swizzled_down_chunks) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't compute swizzled 'down' chunk size value")
/* Get the swizzled max number of chunks in each dimension */
- H5MM_memcpy(swizzled_max_chunks, layout->max_chunks, (layout->ndims - 1) * sizeof(swizzled_max_chunks[0]));
+ H5MM_memcpy(swizzled_max_chunks, layout->max_chunks,
+ (layout->ndims - 1) * sizeof(swizzled_max_chunks[0]));
H5VM_swizzle_coords(hsize_t, swizzled_max_chunks, layout->u.earray.unlim_dim);
/* Get the swizzled max "down" sizes for each dimension */
- if(H5VM_array_down((layout->ndims - 1), swizzled_max_chunks, layout->u.earray.swizzled_max_down_chunks) < 0)
+ if (H5VM_array_down((layout->ndims - 1), swizzled_max_chunks,
+ layout->u.earray.swizzled_max_down_chunks) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't compute swizzled 'down' chunk size value")
} /* end if */
@@ -1222,7 +1200,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D__earray_idx_resize() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_iterate_cb
*
@@ -1237,39 +1214,39 @@ done:
static int
H5D__earray_idx_iterate_cb(hsize_t H5_ATTR_UNUSED idx, const void *_elmt, void *_udata)
{
- H5D_earray_it_ud_t *udata = (H5D_earray_it_ud_t *)_udata; /* User data */
- unsigned ndims; /* Rank of chunk */
- int curr_dim; /* Current dimension */
- int ret_value = H5_ITER_CONT; /* Return value */
+ H5D_earray_it_ud_t *udata = (H5D_earray_it_ud_t *)_udata; /* User data */
+ unsigned ndims; /* Rank of chunk */
+ int curr_dim; /* Current dimension */
+ int ret_value = H5_ITER_CONT; /* Return value */
FUNC_ENTER_STATIC_NOERR
/* Compose generic chunk record for callback */
- if(udata->filtered) {
+ if (udata->filtered) {
const H5D_earray_filt_elmt_t *filt_elmt = (const H5D_earray_filt_elmt_t *)_elmt;
- udata->chunk_rec.chunk_addr = filt_elmt->addr;
- udata->chunk_rec.nbytes = filt_elmt->nbytes;
+ udata->chunk_rec.chunk_addr = filt_elmt->addr;
+ udata->chunk_rec.nbytes = filt_elmt->nbytes;
udata->chunk_rec.filter_mask = filt_elmt->filter_mask;
} /* end if */
else
udata->chunk_rec.chunk_addr = *(const haddr_t *)_elmt;
/* Make "generic chunk" callback */
- if(H5F_addr_defined(udata->chunk_rec.chunk_addr))
- if((ret_value = (udata->cb)(&udata->chunk_rec, udata->udata)) < 0)
+ if (H5F_addr_defined(udata->chunk_rec.chunk_addr))
+ if ((ret_value = (udata->cb)(&udata->chunk_rec, udata->udata)) < 0)
HERROR(H5E_DATASET, H5E_CALLBACK, "failure in generic chunk iterator callback");
/* Update coordinates of chunk in dataset */
ndims = udata->common.layout->ndims - 1;
HDassert(ndims > 0);
curr_dim = (int)(ndims - 1);
- while(curr_dim >= 0) {
+ while (curr_dim >= 0) {
/* Increment coordinate in current dimension */
udata->chunk_rec.scaled[curr_dim]++;
/* Check if we went off the end of the current dimension */
- if(udata->chunk_rec.scaled[curr_dim] >= udata->common.layout->max_chunks[curr_dim]) {
+ if (udata->chunk_rec.scaled[curr_dim] >= udata->common.layout->max_chunks[curr_dim]) {
/* Reset coordinate & move to next faster dimension */
udata->chunk_rec.scaled[curr_dim] = 0;
curr_dim--;
@@ -1281,7 +1258,6 @@ H5D__earray_idx_iterate_cb(hsize_t H5_ATTR_UNUSED idx, const void *_elmt, void *
FUNC_LEAVE_NOAPI(ret_value)
} /* H5D__earray_idx_iterate_cb() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_iterate
*
@@ -1300,12 +1276,11 @@ H5D__earray_idx_iterate_cb(hsize_t H5_ATTR_UNUSED idx, const void *_elmt, void *
*-------------------------------------------------------------------------
*/
static int
-H5D__earray_idx_iterate(const H5D_chk_idx_info_t *idx_info,
- H5D_chunk_cb_func_t chunk_cb, void *chunk_udata)
+H5D__earray_idx_iterate(const H5D_chk_idx_info_t *idx_info, H5D_chunk_cb_func_t chunk_cb, void *chunk_udata)
{
- H5EA_t *ea; /* Pointer to extensible array structure */
- H5EA_stat_t ea_stat; /* Extensible array statistics */
- int ret_value = H5_ITER_CONT; /* Return value */
+ H5EA_t * ea; /* Pointer to extensible array structure */
+ H5EA_stat_t ea_stat; /* Extensible array statistics */
+ int ret_value = H5_ITER_CONT; /* Return value */
FUNC_ENTER_STATIC
@@ -1320,38 +1295,39 @@ H5D__earray_idx_iterate(const H5D_chk_idx_info_t *idx_info,
HDassert(chunk_udata);
/* Check if the extensible array is open yet */
- if(NULL == idx_info->storage->u.earray.ea) {
+ if (NULL == idx_info->storage->u.earray.ea) {
/* Open the extensible array in file */
- if(H5D__earray_idx_open(idx_info) < 0)
+ if (H5D__earray_idx_open(idx_info) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTOPENOBJ, FAIL, "can't open extensible array")
- } else /* Patch the top level file pointer contained in ea if needed */
+ }
+ else /* Patch the top level file pointer contained in ea if needed */
H5EA_patch_file(idx_info->storage->u.earray.ea, idx_info->f);
/* Set convenience pointer to extensible array structure */
ea = idx_info->storage->u.earray.ea;
/* Get the extensible array statistics */
- if(H5EA_get_stats(ea, &ea_stat) < 0)
+ if (H5EA_get_stats(ea, &ea_stat) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't query extensible array statistics")
- if(ea_stat.stored.max_idx_set > 0) {
- H5D_earray_it_ud_t udata; /* User data for iteration callback */
+ if (ea_stat.stored.max_idx_set > 0) {
+ H5D_earray_it_ud_t udata; /* User data for iteration callback */
/* Initialize userdata */
HDmemset(&udata, 0, sizeof udata);
- udata.common.layout = idx_info->layout;
+ udata.common.layout = idx_info->layout;
udata.common.storage = idx_info->storage;
HDmemset(&udata.chunk_rec, 0, sizeof(udata.chunk_rec));
udata.filtered = (idx_info->pline->nused > 0);
- if(!udata.filtered) {
- udata.chunk_rec.nbytes = idx_info->layout->size;
+ if (!udata.filtered) {
+ udata.chunk_rec.nbytes = idx_info->layout->size;
udata.chunk_rec.filter_mask = 0;
} /* end if */
- udata.cb = chunk_cb;
+ udata.cb = chunk_cb;
udata.udata = chunk_udata;
/* Iterate over the extensible array elements */
- if((ret_value = H5EA_iterate(ea, H5D__earray_idx_iterate_cb, &udata)) < 0)
+ if ((ret_value = H5EA_iterate(ea, H5D__earray_idx_iterate_cb, &udata)) < 0)
HERROR(H5E_DATASET, H5E_BADITER, "unable to iterate over fixed array chunk index");
} /* end if */
@@ -1359,7 +1335,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D__earray_idx_iterate() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_remove
*
@@ -1375,9 +1350,9 @@ done:
static herr_t
H5D__earray_idx_remove(const H5D_chk_idx_info_t *idx_info, H5D_chunk_common_ud_t *udata)
{
- H5EA_t *ea; /* Pointer to extensible array structure */
- hsize_t idx; /* Array index of chunk */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5EA_t *ea; /* Pointer to extensible array structure */
+ hsize_t idx; /* Array index of chunk */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -1391,78 +1366,81 @@ H5D__earray_idx_remove(const H5D_chk_idx_info_t *idx_info, H5D_chunk_common_ud_t
HDassert(udata);
/* Check if the extensible array is open yet */
- if(NULL == idx_info->storage->u.earray.ea) {
+ if (NULL == idx_info->storage->u.earray.ea) {
/* Open the extensible array in file */
- if(H5D__earray_idx_open(idx_info) < 0)
+ if (H5D__earray_idx_open(idx_info) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTOPENOBJ, FAIL, "can't open extensible array")
- } else /* Patch the top level file pointer contained in ea if needed */
- if(H5EA_patch_file(idx_info->storage->u.earray.ea, idx_info->f) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTOPENOBJ, FAIL, "can't patch earray file pointer")
+ }
+ else /* Patch the top level file pointer contained in ea if needed */
+ if (H5EA_patch_file(idx_info->storage->u.earray.ea, idx_info->f) < 0)
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTOPENOBJ, FAIL, "can't patch earray file pointer")
/* Set convenience pointer to extensible array structure */
ea = idx_info->storage->u.earray.ea;
/* Check for unlimited dim. not being the slowest-changing dim. */
- if(idx_info->layout->u.earray.unlim_dim > 0) {
- hsize_t swizzled_coords[H5O_LAYOUT_NDIMS]; /* swizzled chunk coordinates */
+ if (idx_info->layout->u.earray.unlim_dim > 0) {
+ hsize_t swizzled_coords[H5O_LAYOUT_NDIMS]; /* swizzled chunk coordinates */
unsigned ndims = (idx_info->layout->ndims - 1); /* Number of dimensions */
unsigned u;
/* Compute coordinate offset from scaled offset */
- for(u = 0; u < ndims; u++)
+ for (u = 0; u < ndims; u++)
swizzled_coords[u] = udata->scaled[u] * idx_info->layout->dim[u];
H5VM_swizzle_coords(hsize_t, swizzled_coords, idx_info->layout->u.earray.unlim_dim);
/* Calculate the index of this chunk */
- idx = H5VM_chunk_index(ndims, swizzled_coords, idx_info->layout->u.earray.swizzled_dim, idx_info->layout->u.earray.swizzled_max_down_chunks);
+ idx = H5VM_chunk_index(ndims, swizzled_coords, idx_info->layout->u.earray.swizzled_dim,
+ idx_info->layout->u.earray.swizzled_max_down_chunks);
} /* end if */
else {
/* Calculate the index of this chunk */
- idx = H5VM_array_offset_pre((idx_info->layout->ndims - 1), idx_info->layout->max_down_chunks, udata->scaled);
+ idx = H5VM_array_offset_pre((idx_info->layout->ndims - 1), idx_info->layout->max_down_chunks,
+ udata->scaled);
} /* end else */
/* Check for filters on chunks */
- if(idx_info->pline->nused > 0) {
- H5D_earray_filt_elmt_t elmt; /* Extensible array element */
+ if (idx_info->pline->nused > 0) {
+ H5D_earray_filt_elmt_t elmt; /* Extensible array element */
/* Get the info about the chunk for the index */
- if(H5EA_get(ea, idx, &elmt) < 0)
+ if (H5EA_get(ea, idx, &elmt) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get chunk info")
/* Remove raw data chunk from file if not doing SWMR writes */
HDassert(H5F_addr_defined(elmt.addr));
- if(!(H5F_INTENT(idx_info->f) & H5F_ACC_SWMR_WRITE)) {
- H5_CHECK_OVERFLOW(elmt.nbytes, /*From: */uint32_t, /*To: */hsize_t);
- if(H5MF_xfree(idx_info->f, H5FD_MEM_DRAW, elmt.addr, (hsize_t)elmt.nbytes) < 0)
+ if (!(H5F_INTENT(idx_info->f) & H5F_ACC_SWMR_WRITE)) {
+ H5_CHECK_OVERFLOW(elmt.nbytes, /*From: */ uint32_t, /*To: */ hsize_t);
+ if (H5MF_xfree(idx_info->f, H5FD_MEM_DRAW, elmt.addr, (hsize_t)elmt.nbytes) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "unable to free chunk")
} /* end if */
/* Reset the info about the chunk for the index */
- elmt.addr = HADDR_UNDEF;
- elmt.nbytes = 0;
+ elmt.addr = HADDR_UNDEF;
+ elmt.nbytes = 0;
elmt.filter_mask = 0;
- if(H5EA_set(ea, idx, &elmt) < 0)
+ if (H5EA_set(ea, idx, &elmt) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "unable to reset chunk info")
} /* end if */
else {
- haddr_t addr = HADDR_UNDEF; /* Chunk address */
+ haddr_t addr = HADDR_UNDEF; /* Chunk address */
/* Get the address of the chunk for the index */
- if(H5EA_get(ea, idx, &addr) < 0)
+ if (H5EA_get(ea, idx, &addr) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get chunk address")
/* Remove raw data chunk from file if not doing SWMR writes */
HDassert(H5F_addr_defined(addr));
- if(!(H5F_INTENT(idx_info->f) & H5F_ACC_SWMR_WRITE)) {
- H5_CHECK_OVERFLOW(idx_info->layout->size, /*From: */uint32_t, /*To: */hsize_t);
- if(H5MF_xfree(idx_info->f, H5FD_MEM_DRAW, addr, (hsize_t)idx_info->layout->size) < 0)
+ if (!(H5F_INTENT(idx_info->f) & H5F_ACC_SWMR_WRITE)) {
+ H5_CHECK_OVERFLOW(idx_info->layout->size, /*From: */ uint32_t, /*To: */ hsize_t);
+ if (H5MF_xfree(idx_info->f, H5FD_MEM_DRAW, addr, (hsize_t)idx_info->layout->size) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "unable to free chunk")
} /* end if */
/* Reset the address of the chunk for the index */
addr = HADDR_UNDEF;
- if(H5EA_set(ea, idx, &addr) < 0)
+ if (H5EA_set(ea, idx, &addr) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "unable to reset chunk address")
} /* end else */
@@ -1470,7 +1448,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* H5D__earray_idx_remove() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_delete_cb
*
@@ -1487,8 +1464,8 @@ done:
static int
H5D__earray_idx_delete_cb(const H5D_chunk_rec_t *chunk_rec, void *_udata)
{
- H5F_t *f = (H5F_t *)_udata; /* User data for callback */
- int ret_value = H5_ITER_CONT; /* Return value */
+ H5F_t *f = (H5F_t *)_udata; /* User data for callback */
+ int ret_value = H5_ITER_CONT; /* Return value */
FUNC_ENTER_STATIC
@@ -1499,15 +1476,14 @@ H5D__earray_idx_delete_cb(const H5D_chunk_rec_t *chunk_rec, void *_udata)
HDassert(f);
/* Remove raw data chunk from file */
- H5_CHECK_OVERFLOW(chunk_rec->nbytes, /*From: */uint32_t, /*To: */hsize_t);
- if(H5MF_xfree(f, H5FD_MEM_DRAW, chunk_rec->chunk_addr, (hsize_t)chunk_rec->nbytes) < 0)
+ H5_CHECK_OVERFLOW(chunk_rec->nbytes, /*From: */ uint32_t, /*To: */ hsize_t);
+ if (H5MF_xfree(f, H5FD_MEM_DRAW, chunk_rec->chunk_addr, (hsize_t)chunk_rec->nbytes) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTFREE, H5_ITER_ERROR, "unable to free chunk")
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D__earray_idx_delete_cb() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_delete
*
@@ -1529,7 +1505,7 @@ done:
static herr_t
H5D__earray_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
@@ -1541,24 +1517,24 @@ H5D__earray_idx_delete(const H5D_chk_idx_info_t *idx_info)
HDassert(idx_info->storage);
/* Check if the index data structure has been allocated */
- if(H5F_addr_defined(idx_info->storage->idx_addr)) {
+ if (H5F_addr_defined(idx_info->storage->idx_addr)) {
H5D_earray_ctx_ud_t ctx_udata; /* User data for extensible array open call */
/* Iterate over the chunk addresses in the extensible array, deleting each chunk */
- if(H5D__earray_idx_iterate(idx_info, H5D__earray_idx_delete_cb, idx_info->f) < 0)
+ if (H5D__earray_idx_iterate(idx_info, H5D__earray_idx_delete_cb, idx_info->f) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_BADITER, FAIL, "unable to iterate over chunk addresses")
/* Close extensible array */
- if(H5EA_close(idx_info->storage->u.earray.ea) < 0)
+ if (H5EA_close(idx_info->storage->u.earray.ea) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTCLOSEOBJ, FAIL, "unable to close extensible array")
idx_info->storage->u.earray.ea = NULL;
/* Set up the context user data */
- ctx_udata.f = idx_info->f;
+ ctx_udata.f = idx_info->f;
ctx_udata.chunk_size = idx_info->layout->size;
/* Delete extensible array */
- if(H5EA_delete(idx_info->f, idx_info->storage->idx_addr, &ctx_udata) < 0)
+ if (H5EA_delete(idx_info->f, idx_info->storage->idx_addr, &ctx_udata) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTDELETE, FAIL, "unable to delete chunk extensible array")
idx_info->storage->idx_addr = HADDR_UNDEF;
} /* end if */
@@ -1569,7 +1545,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D__earray_idx_delete() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_copy_setup
*
@@ -1583,10 +1558,9 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5D__earray_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src,
- const H5D_chk_idx_info_t *idx_info_dst)
+H5D__earray_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src, 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
@@ -1604,16 +1578,16 @@ H5D__earray_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src,
HDassert(!H5F_addr_defined(idx_info_dst->storage->idx_addr));
/* Check if the source extensible array is open yet */
- if(NULL == idx_info_src->storage->u.earray.ea)
+ if (NULL == idx_info_src->storage->u.earray.ea)
/* Open the extensible array in file */
- if(H5D__earray_idx_open(idx_info_src) < 0)
+ if (H5D__earray_idx_open(idx_info_src) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTOPENOBJ, FAIL, "can't open extensible array")
/* Set copied metadata tag */
H5_BEGIN_TAG(H5AC__COPIED_TAG);
/* Create the extensible array that describes chunked storage in the dest. file */
- if(H5D__earray_idx_create(idx_info_dst) < 0)
+ 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->storage->idx_addr));
@@ -1624,7 +1598,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D__earray_idx_copy_setup() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_copy_shutdown
*
@@ -1638,10 +1611,9 @@ done:
*-------------------------------------------------------------------------
*/
static herr_t
-H5D__earray_idx_copy_shutdown(H5O_storage_chunk_t *storage_src,
- H5O_storage_chunk_t *storage_dst)
+H5D__earray_idx_copy_shutdown(H5O_storage_chunk_t *storage_src, H5O_storage_chunk_t *storage_dst)
{
- herr_t ret_value = SUCCEED; /* Return value */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -1652,10 +1624,10 @@ H5D__earray_idx_copy_shutdown(H5O_storage_chunk_t *storage_src,
HDassert(storage_dst->u.earray.ea);
/* Close extensible arrays */
- if(H5EA_close(storage_src->u.earray.ea) < 0)
+ if (H5EA_close(storage_src->u.earray.ea) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTCLOSEOBJ, FAIL, "unable to close extensible array")
storage_src->u.earray.ea = NULL;
- if(H5EA_close(storage_dst->u.earray.ea) < 0)
+ if (H5EA_close(storage_dst->u.earray.ea) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTCLOSEOBJ, FAIL, "unable to close extensible array")
storage_dst->u.earray.ea = NULL;
@@ -1663,7 +1635,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D__earray_idx_copy_shutdown() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_size
*
@@ -1680,9 +1651,9 @@ done:
static herr_t
H5D__earray_idx_size(const H5D_chk_idx_info_t *idx_info, hsize_t *index_size)
{
- H5EA_t *ea; /* Pointer to extensible array structure */
- H5EA_stat_t ea_stat; /* Extensible array statistics */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5EA_t * ea; /* Pointer to extensible array structure */
+ H5EA_stat_t ea_stat; /* Extensible array statistics */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -1696,23 +1667,23 @@ H5D__earray_idx_size(const H5D_chk_idx_info_t *idx_info, hsize_t *index_size)
HDassert(index_size);
/* Open the extensible array in file */
- if(H5D__earray_idx_open(idx_info) < 0)
+ if (H5D__earray_idx_open(idx_info) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTOPENOBJ, FAIL, "can't open extensible array")
/* Set convenience pointer to extensible array structure */
ea = idx_info->storage->u.earray.ea;
/* Get the extensible array statistics */
- if(H5EA_get_stats(ea, &ea_stat) < 0)
+ if (H5EA_get_stats(ea, &ea_stat) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't query extensible array statistics")
/* Set the size of the extensible array */
- *index_size = ea_stat.computed.hdr_size + ea_stat.computed.index_blk_size
- + ea_stat.stored.super_blk_size + ea_stat.stored.data_blk_size;
+ *index_size = ea_stat.computed.hdr_size + ea_stat.computed.index_blk_size +
+ ea_stat.stored.super_blk_size + ea_stat.stored.data_blk_size;
done:
- if(idx_info->storage->u.earray.ea) {
- if(H5EA_close(idx_info->storage->u.earray.ea) < 0)
+ if (idx_info->storage->u.earray.ea) {
+ if (H5EA_close(idx_info->storage->u.earray.ea) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTCLOSEOBJ, FAIL, "unable to close extensible array")
idx_info->storage->u.earray.ea = NULL;
} /* end if */
@@ -1720,7 +1691,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D__earray_idx_size() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_reset
*
@@ -1742,8 +1712,8 @@ H5D__earray_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;
storage->u.earray.dset_ohdr_addr = HADDR_UNDEF;
} /* end if */
storage->u.earray.ea = NULL;
@@ -1751,7 +1721,6 @@ H5D__earray_idx_reset(H5O_storage_chunk_t *storage, hbool_t reset_addr)
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5D__earray_idx_reset() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_dump
*
@@ -1778,7 +1747,6 @@ H5D__earray_idx_dump(const H5O_storage_chunk_t *storage, FILE *stream)
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5D__earray_idx_dump() */
-
/*-------------------------------------------------------------------------
* Function: H5D__earray_idx_dest
*
@@ -1794,7 +1762,7 @@ H5D__earray_idx_dump(const H5O_storage_chunk_t *storage, FILE *stream)
static herr_t
H5D__earray_idx_dest(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
@@ -1804,14 +1772,14 @@ H5D__earray_idx_dest(const H5D_chk_idx_info_t *idx_info)
HDassert(idx_info->storage);
/* Check if the extensible array is open */
- if(idx_info->storage->u.earray.ea) {
+ if (idx_info->storage->u.earray.ea) {
/* Patch the top level file pointer contained in ea if needed */
- if(H5EA_patch_file(idx_info->storage->u.earray.ea, idx_info->f) < 0)
+ if (H5EA_patch_file(idx_info->storage->u.earray.ea, idx_info->f) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTOPENOBJ, FAIL, "can't patch earray file pointer")
/* Close extensible array */
- if(H5EA_close(idx_info->storage->u.earray.ea) < 0)
+ if (H5EA_close(idx_info->storage->u.earray.ea) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTCLOSEOBJ, FAIL, "unable to close extensible array")
idx_info->storage->u.earray.ea = NULL;
} /* end if */
@@ -1819,4 +1787,3 @@ H5D__earray_idx_dest(const H5D_chk_idx_info_t *idx_info)
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D__earray_idx_dest() */
-