diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2020-10-01 16:47:45 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2020-10-01 16:47:45 (GMT) |
commit | 1ba1f2f3222cbe8df0bf601929a4bffd478d7e02 (patch) | |
tree | ae51dfc33cf40432dad25a5088767115a98f195e /src/H5B2test.c | |
parent | 8eef7d295cc3dd134aef0a826f1de4287629996d (diff) | |
download | hdf5-1ba1f2f3222cbe8df0bf601929a4bffd478d7e02.zip hdf5-1ba1f2f3222cbe8df0bf601929a4bffd478d7e02.tar.gz hdf5-1ba1f2f3222cbe8df0bf601929a4bffd478d7e02.tar.bz2 |
Source formatted
Diffstat (limited to 'src/H5B2test.c')
-rw-r--r-- | src/H5B2test.c | 159 |
1 files changed, 69 insertions, 90 deletions
diff --git a/src/H5B2test.c b/src/H5B2test.c index b7fab99..14b01e6 100644 --- a/src/H5B2test.c +++ b/src/H5B2test.c @@ -18,92 +18,82 @@ * */ - /****************/ /* Module Setup */ /****************/ -#define H5B2_PACKAGE /*suppress error about including H5B2pkg */ -#define H5B2_TESTING /*suppress warning about H5B2 testing funcs*/ - +#define H5B2_PACKAGE /*suppress error about including H5B2pkg */ +#define H5B2_TESTING /*suppress warning about H5B2 testing funcs*/ /***********/ /* Headers */ /***********/ -#include "H5private.h" /* Generic Functions */ -#include "H5B2pkg.h" /* v2 B-trees */ -#include "H5Eprivate.h" /* Error handling */ - +#include "H5private.h" /* Generic Functions */ +#include "H5B2pkg.h" /* v2 B-trees */ +#include "H5Eprivate.h" /* Error handling */ /****************/ /* Local Macros */ /****************/ - /******************/ /* Local Typedefs */ /******************/ /* v2 B-tree client callback context */ typedef struct H5B2_test_ctx_t { - uint8_t sizeof_size; /* Size of file sizes */ + uint8_t sizeof_size; /* Size of file sizes */ } H5B2_test_ctx_t; - /********************/ /* Package Typedefs */ /********************/ - /********************/ /* Local Prototypes */ /********************/ -static void *H5B2_test_crt_context(void *udata); +static void * H5B2_test_crt_context(void *udata); static herr_t H5B2_test_dst_context(void *ctx); static herr_t H5B2_test_store(void *nrecord, const void *udata); static herr_t H5B2_test_compare(const void *rec1, const void *rec2, int *result); static herr_t H5B2_test_encode(uint8_t *raw, const void *nrecord, void *ctx); static herr_t H5B2_test_decode(const uint8_t *raw, void *nrecord, void *ctx); -static herr_t H5B2_test_debug(FILE *stream, const H5F_t *f, hid_t dxpl_id, - int indent, int fwidth, const void *record, const void *_udata); -static void *H5B2_test_crt_dbg_context(H5F_t *f, hid_t dxpl_id, haddr_t addr); - +static herr_t H5B2_test_debug(FILE *stream, const H5F_t *f, hid_t dxpl_id, int indent, int fwidth, + const void *record, const void *_udata); +static void * H5B2_test_crt_dbg_context(H5F_t *f, hid_t dxpl_id, haddr_t addr); /*********************/ /* Package Variables */ /*********************/ -const H5B2_class_t H5B2_TEST[1]={{ /* B-tree class information */ - H5B2_TEST_ID, /* Type of B-tree */ - "H5B2_TEST_ID", /* Name of B-tree class */ - sizeof(hsize_t), /* Size of native record */ - H5B2_test_crt_context, /* Create client callback context */ - H5B2_test_dst_context, /* Destroy client callback context */ - H5B2_test_store, /* Record storage callback */ - H5B2_test_compare, /* Record comparison callback */ - H5B2_test_encode, /* Record encoding callback */ - H5B2_test_decode, /* Record decoding callback */ - H5B2_test_debug, /* Record debugging callback */ - H5B2_test_crt_dbg_context, /* Create debugging context */ - H5B2_test_dst_context /* Destroy debugging context */ +const H5B2_class_t H5B2_TEST[1] = {{ + /* B-tree class information */ + H5B2_TEST_ID, /* Type of B-tree */ + "H5B2_TEST_ID", /* Name of B-tree class */ + sizeof(hsize_t), /* Size of native record */ + H5B2_test_crt_context, /* Create client callback context */ + H5B2_test_dst_context, /* Destroy client callback context */ + H5B2_test_store, /* Record storage callback */ + H5B2_test_compare, /* Record comparison callback */ + H5B2_test_encode, /* Record encoding callback */ + H5B2_test_decode, /* Record decoding callback */ + H5B2_test_debug, /* Record debugging callback */ + H5B2_test_crt_dbg_context, /* Create debugging context */ + H5B2_test_dst_context /* Destroy debugging context */ }}; - /*****************************/ /* Library Private Variables */ /*****************************/ - /*******************/ /* Local Variables */ /*******************/ - /* Declare a free list to manage the H5B2_test_ctx_t struct */ H5FL_DEFINE_STATIC(H5B2_test_ctx_t); - /*------------------------------------------------------------------------- * Function: H5B2_test_crt_context * @@ -120,9 +110,9 @@ H5FL_DEFINE_STATIC(H5B2_test_ctx_t); static void * H5B2_test_crt_context(void *_f) { - H5F_t *f = (H5F_t *)_f; /* User data for building callback context */ - H5B2_test_ctx_t *ctx; /* Callback context structure */ - void *ret_value; /* Return value */ + H5F_t * f = (H5F_t *)_f; /* User data for building callback context */ + H5B2_test_ctx_t *ctx; /* Callback context structure */ + void * ret_value; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -130,7 +120,7 @@ H5B2_test_crt_context(void *_f) HDassert(f); /* Allocate callback context */ - if(NULL == (ctx = H5FL_MALLOC(H5B2_test_ctx_t))) + if (NULL == (ctx = H5FL_MALLOC(H5B2_test_ctx_t))) HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, NULL, "can't allocate callback context") /* Determine the size of lengths in the file */ @@ -143,7 +133,6 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* H5B2_test_crt_context() */ - /*------------------------------------------------------------------------- * Function: H5B2_test_dst_context * @@ -160,7 +149,7 @@ done: static herr_t H5B2_test_dst_context(void *_ctx) { - H5B2_test_ctx_t *ctx = (H5B2_test_ctx_t *)_ctx; /* Callback context structure */ + H5B2_test_ctx_t *ctx = (H5B2_test_ctx_t *)_ctx; /* Callback context structure */ FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -173,7 +162,6 @@ H5B2_test_dst_context(void *_ctx) FUNC_LEAVE_NOAPI(SUCCEED) } /* H5B2_test_dst_context() */ - /*------------------------------------------------------------------------- * Function: H5B2_test_store * @@ -197,7 +185,6 @@ H5B2_test_store(void *nrecord, const void *udata) FUNC_LEAVE_NOAPI(SUCCEED) } /* H5B2_test_store() */ - /*------------------------------------------------------------------------- * Function: H5B2_test_compare * @@ -222,7 +209,6 @@ H5B2_test_compare(const void *rec1, const void *rec2, int *result) FUNC_LEAVE_NOAPI(SUCCEED) } /* H5B2_test_compare() */ - /*------------------------------------------------------------------------- * Function: H5B2_test_encode * @@ -239,7 +225,7 @@ H5B2_test_compare(const void *rec1, const void *rec2, int *result) static herr_t H5B2_test_encode(uint8_t *raw, const void *nrecord, void *_ctx) { - H5B2_test_ctx_t *ctx = (H5B2_test_ctx_t *)_ctx; /* Callback context structure */ + H5B2_test_ctx_t *ctx = (H5B2_test_ctx_t *)_ctx; /* Callback context structure */ FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -251,7 +237,6 @@ H5B2_test_encode(uint8_t *raw, const void *nrecord, void *_ctx) FUNC_LEAVE_NOAPI(SUCCEED) } /* H5B2_test_encode() */ - /*------------------------------------------------------------------------- * Function: H5B2_test_decode * @@ -268,7 +253,7 @@ H5B2_test_encode(uint8_t *raw, const void *nrecord, void *_ctx) static herr_t H5B2_test_decode(const uint8_t *raw, void *nrecord, void *_ctx) { - H5B2_test_ctx_t *ctx = (H5B2_test_ctx_t *)_ctx; /* Callback context structure */ + H5B2_test_ctx_t *ctx = (H5B2_test_ctx_t *)_ctx; /* Callback context structure */ FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -280,7 +265,6 @@ H5B2_test_decode(const uint8_t *raw, void *nrecord, void *_ctx) FUNC_LEAVE_NOAPI(SUCCEED) } /* H5B2_test_decode() */ - /*------------------------------------------------------------------------- * Function: H5B2_test_debug * @@ -295,21 +279,18 @@ H5B2_test_decode(const uint8_t *raw, void *nrecord, void *_ctx) *------------------------------------------------------------------------- */ static herr_t -H5B2_test_debug(FILE *stream, const H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, - int indent, int fwidth, const void *record, - const void H5_ATTR_UNUSED *_udata) +H5B2_test_debug(FILE *stream, const H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, int indent, + int fwidth, const void *record, const void H5_ATTR_UNUSED *_udata) { FUNC_ENTER_NOAPI_NOINIT_NOERR - HDassert (record); + HDassert(record); - HDfprintf(stream, "%*s%-*s %Hu\n", indent, "", fwidth, "Record:", - *(const hsize_t *)record); + HDfprintf(stream, "%*s%-*s %Hu\n", indent, "", fwidth, "Record:", *(const hsize_t *)record); FUNC_LEAVE_NOAPI(SUCCEED) } /* H5B2_test_debug() */ - /*------------------------------------------------------------------------- * Function: H5B2_test_crt_dbg_context * @@ -327,7 +308,7 @@ static void * H5B2_test_crt_dbg_context(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, haddr_t H5_ATTR_UNUSED addr) { H5B2_test_ctx_t *ctx; /* Callback context structure */ - void *ret_value; /* Return value */ + void * ret_value; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -335,7 +316,7 @@ H5B2_test_crt_dbg_context(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, haddr_t H5_ATT HDassert(f); /* Allocate callback context */ - if(NULL == (ctx = H5FL_MALLOC(H5B2_test_ctx_t))) + if (NULL == (ctx = H5FL_MALLOC(H5B2_test_ctx_t))) HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, NULL, "can't allocate callback context") /* Determine the size of addresses & lengths in the file */ @@ -348,7 +329,6 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* H5B2_test_crt_dbg_context() */ - /*------------------------------------------------------------------------- * Function: H5B2_get_root_addr_test * @@ -377,7 +357,6 @@ H5B2_get_root_addr_test(H5B2_t *bt2, haddr_t *root_addr) FUNC_LEAVE_NOAPI(SUCCEED) } /* H5B2_get_root_addr_test() */ - /*------------------------------------------------------------------------- * Function: H5B2_get_node_info_test * @@ -392,15 +371,14 @@ H5B2_get_root_addr_test(H5B2_t *bt2, haddr_t *root_addr) *------------------------------------------------------------------------- */ herr_t -H5B2_get_node_info_test(H5B2_t *bt2, hid_t dxpl_id, void *udata, - H5B2_node_info_test_t *ninfo) +H5B2_get_node_info_test(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_node_info_test_t *ninfo) { - H5B2_hdr_t *hdr; /* Pointer to the B-tree header */ - H5B2_node_ptr_t curr_node_ptr; /* Node pointer info for current node */ - unsigned depth; /* Current depth of the tree */ - int cmp; /* Comparison value of records */ - unsigned idx; /* Location of record which matches key */ - herr_t ret_value = SUCCEED; /* Return value */ + H5B2_hdr_t * hdr; /* Pointer to the B-tree header */ + H5B2_node_ptr_t curr_node_ptr; /* Node pointer info for current node */ + unsigned depth; /* Current depth of the tree */ + int cmp; /* Comparison value of records */ + unsigned idx; /* Location of record which matches key */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(FAIL) @@ -420,33 +398,35 @@ H5B2_get_node_info_test(H5B2_t *bt2, hid_t dxpl_id, void *udata, depth = hdr->depth; /* Check for empty tree */ - if(0 == curr_node_ptr.node_nrec) + if (0 == curr_node_ptr.node_nrec) HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "B-tree has no records") /* Walk down B-tree to find record or leaf node where record is located */ cmp = -1; - while(depth > 0 && cmp != 0) { - H5B2_internal_t *internal; /* Pointer to internal node in B-tree */ - H5B2_node_ptr_t next_node_ptr; /* Node pointer info for next node */ + while (depth > 0 && cmp != 0) { + H5B2_internal_t *internal; /* Pointer to internal node in B-tree */ + H5B2_node_ptr_t next_node_ptr; /* Node pointer info for next node */ /* Lock B-tree current node */ - if(NULL == (internal = H5B2_protect_internal(hdr, dxpl_id, curr_node_ptr.addr, curr_node_ptr.node_nrec, depth, H5AC_READ))) + if (NULL == (internal = H5B2_protect_internal(hdr, dxpl_id, curr_node_ptr.addr, + curr_node_ptr.node_nrec, depth, H5AC_READ))) HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to load B-tree internal node") /* Locate node pointer for child */ - if(H5B2_locate_record(hdr->cls, internal->nrec, hdr->nat_off, internal->int_native, - udata, &idx, &cmp) < 0) + if (H5B2_locate_record(hdr->cls, internal->nrec, hdr->nat_off, internal->int_native, udata, &idx, + &cmp) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTCOMPARE, FAIL, "can't compare btree2 records") - if(cmp > 0) + if (cmp > 0) idx++; - if(cmp != 0) { + if (cmp != 0) { /* Get node pointer for next node to search */ next_node_ptr = internal->node_ptrs[idx]; /* Unlock current node */ - if(H5AC_unprotect(hdr->f, dxpl_id, H5AC_BT2_INT, curr_node_ptr.addr, internal, H5AC__NO_FLAGS_SET) < 0) + if (H5AC_unprotect(hdr->f, dxpl_id, H5AC_BT2_INT, curr_node_ptr.addr, internal, + H5AC__NO_FLAGS_SET) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree node") /* Set pointer to next node to load */ @@ -454,12 +434,13 @@ H5B2_get_node_info_test(H5B2_t *bt2, hid_t dxpl_id, void *udata, } /* end if */ else { /* Unlock current node */ - if(H5AC_unprotect(hdr->f, dxpl_id, H5AC_BT2_INT, curr_node_ptr.addr, internal, H5AC__NO_FLAGS_SET) < 0) + if (H5AC_unprotect(hdr->f, dxpl_id, H5AC_BT2_INT, curr_node_ptr.addr, internal, + H5AC__NO_FLAGS_SET) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree node") /* Fill in information about the node */ ninfo->depth = depth; - ninfo->nrec = curr_node_ptr.node_nrec; + ninfo->nrec = curr_node_ptr.node_nrec; /* Indicate success */ HGOTO_DONE(SUCCEED) @@ -470,35 +451,34 @@ H5B2_get_node_info_test(H5B2_t *bt2, hid_t dxpl_id, void *udata, } /* end while */ { - H5B2_leaf_t *leaf; /* Pointer to leaf node in B-tree */ + H5B2_leaf_t *leaf; /* Pointer to leaf node in B-tree */ /* Lock B-tree leaf node */ - if(NULL == (leaf = H5B2_protect_leaf(hdr, dxpl_id, curr_node_ptr.addr, curr_node_ptr.node_nrec, H5AC_READ))) + if (NULL == + (leaf = H5B2_protect_leaf(hdr, dxpl_id, curr_node_ptr.addr, curr_node_ptr.node_nrec, H5AC_READ))) HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to protect B-tree leaf node") /* Locate record */ - if(H5B2_locate_record(hdr->cls, leaf->nrec, hdr->nat_off, leaf->leaf_native, - udata, &idx, &cmp) < 0) + if (H5B2_locate_record(hdr->cls, leaf->nrec, hdr->nat_off, leaf->leaf_native, udata, &idx, &cmp) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTCOMPARE, FAIL, "can't compare btree2 records") /* Unlock current node */ - if(H5AC_unprotect(hdr->f, dxpl_id, H5AC_BT2_LEAF, curr_node_ptr.addr, leaf, H5AC__NO_FLAGS_SET) < 0) + if (H5AC_unprotect(hdr->f, dxpl_id, H5AC_BT2_LEAF, curr_node_ptr.addr, leaf, H5AC__NO_FLAGS_SET) < 0) HGOTO_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree node") /* Indicate the depth that the record was found */ - if(cmp != 0) + if (cmp != 0) HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "record not in B-tree") } /* end block */ /* Fill in information about the leaf node */ ninfo->depth = depth; - ninfo->nrec = curr_node_ptr.node_nrec; + ninfo->nrec = curr_node_ptr.node_nrec; done: FUNC_LEAVE_NOAPI(ret_value) } /* H5B2_get_node_info_test() */ - /*------------------------------------------------------------------------- * Function: H5B2_get_node_depth_test * @@ -518,8 +498,8 @@ done: int H5B2_get_node_depth_test(H5B2_t *bt2, hid_t dxpl_id, void *udata) { - H5B2_node_info_test_t ninfo; /* Node information */ - int ret_value; /* Return information */ + H5B2_node_info_test_t ninfo; /* Node information */ + int ret_value; /* Return information */ FUNC_ENTER_NOAPI(FAIL) @@ -527,7 +507,7 @@ H5B2_get_node_depth_test(H5B2_t *bt2, hid_t dxpl_id, void *udata) HDassert(bt2); /* Get information abou the node */ - if(H5B2_get_node_info_test(bt2, dxpl_id, udata, &ninfo) < 0) + if (H5B2_get_node_info_test(bt2, dxpl_id, udata, &ninfo) < 0) HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "error looking up node info") /* Set return value */ @@ -536,4 +516,3 @@ H5B2_get_node_depth_test(H5B2_t *bt2, hid_t dxpl_id, void *udata) done: FUNC_LEAVE_NOAPI(ret_value) } /* H5B2_get_node_depth_test() */ - |