diff options
Diffstat (limited to 'src/H5SMmessage.c')
-rw-r--r-- | src/H5SMmessage.c | 111 |
1 files changed, 49 insertions, 62 deletions
diff --git a/src/H5SMmessage.c b/src/H5SMmessage.c index 1787fbe..d735ad4 100644 --- a/src/H5SMmessage.c +++ b/src/H5SMmessage.c @@ -15,25 +15,22 @@ /* Module Setup */ /****************/ -#define H5O_FRIEND /*suppress error about including H5Opkg */ -#include "H5SMmodule.h" /* This source code file is part of the H5SM module */ - +#define H5O_FRIEND /*suppress error about including H5Opkg */ +#include "H5SMmodule.h" /* This source code file is part of the H5SM module */ /***********/ /* Headers */ /***********/ -#include "H5private.h" /* Generic Functions */ -#include "H5Eprivate.h" /* Error handling */ -#include "H5MMprivate.h" /* Memory management */ -#include "H5Opkg.h" /* Object Headers */ -#include "H5SMpkg.h" /* Shared object header messages */ - +#include "H5private.h" /* Generic Functions */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5MMprivate.h" /* Memory management */ +#include "H5Opkg.h" /* Object Headers */ +#include "H5SMpkg.h" /* Shared object header messages */ /****************/ /* Local Macros */ /****************/ - /******************/ /* Local Typedefs */ /******************/ @@ -41,35 +38,29 @@ /* Udata struct for calls to H5SM__compare_cb and H5SM__compare_iter_op*/ typedef struct H5SM_compare_udata_t { const H5SM_mesg_key_t *key; /* Key; compare this against stored message */ - H5O_msg_crt_idx_t idx; /* Index of the message in the OH, if applicable */ - herr_t ret; /* Return value; set this to result of memcmp */ + H5O_msg_crt_idx_t idx; /* Index of the message in the OH, if applicable */ + herr_t ret; /* Return value; set this to result of memcmp */ } H5SM_compare_udata_t; - /********************/ /* Local Prototypes */ /********************/ static herr_t H5SM__compare_cb(const void *obj, size_t obj_len, void *udata); -static herr_t H5SM__compare_iter_op(H5O_t *oh, H5O_mesg_t *mesg, unsigned sequence, - unsigned *oh_modified, void *udata); - +static herr_t H5SM__compare_iter_op(H5O_t *oh, H5O_mesg_t *mesg, unsigned sequence, unsigned *oh_modified, + void *udata); /*********************/ /* Package Variables */ /*********************/ - /*****************************/ /* Library Private Variables */ /*****************************/ - /*******************/ /* Local Variables */ /*******************/ - - /*------------------------------------------------------------------------- * Function: H5SM__compare_cb * @@ -94,9 +85,9 @@ H5SM__compare_cb(const void *obj, size_t obj_len, void *_udata) FUNC_ENTER_STATIC_NOERR /* If the encoding sizes are different, it's not the same object */ - if(udata->key->encoding_size > obj_len) + if (udata->key->encoding_size > obj_len) udata->ret = 1; - else if(udata->key->encoding_size < obj_len) + else if (udata->key->encoding_size < obj_len) udata->ret = -1; else /* Sizes are the same. Return result of memcmp */ @@ -105,7 +96,6 @@ H5SM__compare_cb(const void *obj, size_t obj_len, void *_udata) FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5SM__compare_cb() */ - /*------------------------------------------------------------------------- * Function: H5SM__compare_iter_op * @@ -123,11 +113,11 @@ H5SM__compare_cb(const void *obj, size_t obj_len, void *_udata) *------------------------------------------------------------------------- */ static herr_t -H5SM__compare_iter_op(H5O_t *oh, H5O_mesg_t *mesg/*in,out*/, unsigned sequence, - unsigned H5_ATTR_UNUSED *oh_modified, void *_udata/*in,out*/) +H5SM__compare_iter_op(H5O_t *oh, H5O_mesg_t *mesg /*in,out*/, unsigned sequence, + unsigned H5_ATTR_UNUSED *oh_modified, void *_udata /*in,out*/) { - H5SM_compare_udata_t *udata = (H5SM_compare_udata_t *) _udata; - herr_t ret_value = H5_ITER_CONT; + H5SM_compare_udata_t *udata = (H5SM_compare_udata_t *)_udata; + herr_t ret_value = H5_ITER_CONT; FUNC_ENTER_STATIC @@ -139,21 +129,22 @@ H5SM__compare_iter_op(H5O_t *oh, H5O_mesg_t *mesg/*in,out*/, unsigned sequence, HDassert(udata && udata->key); /* Check the creation index for this message */ - if(sequence == udata->idx) { + if (sequence == udata->idx) { size_t aligned_encoded_size = H5O_ALIGN_OH(oh, udata->key->encoding_size); /* Sanity check the message's length */ HDassert(mesg->raw_size > 0); - if(aligned_encoded_size > mesg->raw_size) + if (aligned_encoded_size > mesg->raw_size) udata->ret = 1; - else if(aligned_encoded_size < mesg->raw_size) + else if (aligned_encoded_size < mesg->raw_size) udata->ret = -1; else { /* Check if the message is dirty & flush it to the object header if so */ - if(mesg->dirty) - if(H5O_msg_flush(udata->key->file, oh, mesg) < 0) - HGOTO_ERROR(H5E_SOHM, H5E_CANTENCODE, H5_ITER_ERROR, "unable to encode object header message") + if (mesg->dirty) + if (H5O_msg_flush(udata->key->file, oh, mesg) < 0) + HGOTO_ERROR(H5E_SOHM, H5E_CANTENCODE, H5_ITER_ERROR, + "unable to encode object header message") HDassert(udata->key->encoding_size <= mesg->raw_size); udata->ret = HDmemcmp(udata->key->encoding, mesg->raw, udata->key->encoding_size); @@ -167,7 +158,6 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5SM__compare_iter_op() */ - /*------------------------------------------------------------------------- * Function: H5SM__message_compare * @@ -187,9 +177,9 @@ done: herr_t H5SM__message_compare(const void *rec1, const void *rec2, int *result) { - const H5SM_mesg_key_t *key = (const H5SM_mesg_key_t *) rec1; - const H5SM_sohm_t *mesg = (const H5SM_sohm_t *) rec2; - herr_t ret_value = SUCCEED; + const H5SM_mesg_key_t *key = (const H5SM_mesg_key_t *)rec1; + const H5SM_sohm_t * mesg = (const H5SM_sohm_t *)rec2; + herr_t ret_value = SUCCEED; FUNC_ENTER_PACKAGE @@ -199,25 +189,25 @@ H5SM__message_compare(const void *rec1, const void *rec2, int *result) * Likewise, if the message has an OH location that is matched by the * message in the index, we've found the message. */ - if(mesg->location == H5SM_IN_HEAP && key->message.location == H5SM_IN_HEAP) { - if(key->message.u.heap_loc.fheap_id.val == mesg->u.heap_loc.fheap_id.val) { + if (mesg->location == H5SM_IN_HEAP && key->message.location == H5SM_IN_HEAP) { + if (key->message.u.heap_loc.fheap_id.val == mesg->u.heap_loc.fheap_id.val) { *result = 0; HGOTO_DONE(SUCCEED); } } /* end if */ - else if(mesg->location == H5SM_IN_OH && key->message.location == H5SM_IN_OH) { - if(key->message.u.mesg_loc.oh_addr == mesg->u.mesg_loc.oh_addr && - key->message.u.mesg_loc.index == mesg->u.mesg_loc.index && - key->message.msg_type_id == mesg->msg_type_id) { + else if (mesg->location == H5SM_IN_OH && key->message.location == H5SM_IN_OH) { + if (key->message.u.mesg_loc.oh_addr == mesg->u.mesg_loc.oh_addr && + key->message.u.mesg_loc.index == mesg->u.mesg_loc.index && + key->message.msg_type_id == mesg->msg_type_id) { *result = 0; HGOTO_DONE(SUCCEED); } } /* end if */ /* Compare hash values */ - if(key->message.hash > mesg->hash) + if (key->message.hash > mesg->hash) *result = 1; - else if(key->message.hash < mesg->hash) + else if (key->message.hash < mesg->hash) *result = -1; /* If the hash values match, make sure the messages are really the same */ else { @@ -235,21 +225,21 @@ H5SM__message_compare(const void *rec1, const void *rec2, int *result) /* Compare the encoded message with either the message in the heap or * the message in an object header. */ - if(mesg->location == H5SM_IN_HEAP) { + if (mesg->location == H5SM_IN_HEAP) { /* Call heap op routine with comparison callback */ - if(H5HF_op(key->fheap, &(mesg->u.heap_loc.fheap_id), H5SM__compare_cb, &udata) < 0) + if (H5HF_op(key->fheap, &(mesg->u.heap_loc.fheap_id), H5SM__compare_cb, &udata) < 0) HGOTO_ERROR(H5E_HEAP, H5E_CANTCOMPARE, FAIL, "can't compare btree2 records") } /* end if */ else { - H5O_loc_t oloc; /* Object owning the message */ - H5O_mesg_operator_t op; /* Message operator */ + H5O_loc_t oloc; /* Object owning the message */ + H5O_mesg_operator_t op; /* Message operator */ /* Sanity checks */ HDassert(key->file); HDassert(mesg->location == H5SM_IN_OH); /* Reset the object location */ - if(H5O_loc_reset(&oloc) < 0) + if (H5O_loc_reset(&oloc) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTRESET, FAIL, "unable to initialize target location") /* Set up object location */ @@ -260,9 +250,9 @@ H5SM__message_compare(const void *rec1, const void *rec2, int *result) udata.idx = mesg->u.mesg_loc.index; /* Locate the right message and compare with it */ - op.op_type = H5O_MESG_OP_LIB; + op.op_type = H5O_MESG_OP_LIB; op.u.lib_op = H5SM__compare_iter_op; - if(H5O_msg_iterate(&oloc, mesg->msg_type_id, &op, &udata) < 0) + if (H5O_msg_iterate(&oloc, mesg->msg_type_id, &op, &udata) < 0) HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "error iterating over links") } /* end else */ @@ -273,7 +263,6 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5SM__message_compare */ - /*------------------------------------------------------------------------- * Function: H5SM__message_encode * @@ -290,7 +279,7 @@ done: herr_t H5SM__message_encode(uint8_t *raw, const void *_nrecord, void *_ctx) { - H5SM_bt2_ctx_t *ctx = (H5SM_bt2_ctx_t *)_ctx; /* Callback context structure */ + H5SM_bt2_ctx_t * ctx = (H5SM_bt2_ctx_t *)_ctx; /* Callback context structure */ const H5SM_sohm_t *message = (const H5SM_sohm_t *)_nrecord; FUNC_ENTER_PACKAGE_NOERR @@ -301,14 +290,14 @@ H5SM__message_encode(uint8_t *raw, const void *_nrecord, void *_ctx) *raw++ = (uint8_t)message->location; UINT32ENCODE(raw, message->hash); - if(message->location == H5SM_IN_HEAP) { + if (message->location == H5SM_IN_HEAP) { UINT32ENCODE(raw, message->u.heap_loc.ref_count); H5MM_memcpy(raw, message->u.heap_loc.fheap_id.id, (size_t)H5O_FHEAP_ID_LEN); } /* end if */ else { HDassert(message->location == H5SM_IN_OH); - *raw++ = 0; /* reserved (possible flags byte) */ + *raw++ = 0; /* reserved (possible flags byte) */ *raw++ = (uint8_t)message->msg_type_id; UINT16ENCODE(raw, message->u.mesg_loc.index); H5F_addr_encode_len((size_t)ctx->sizeof_addr, &raw, message->u.mesg_loc.oh_addr); @@ -317,7 +306,6 @@ H5SM__message_encode(uint8_t *raw, const void *_nrecord, void *_ctx) FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5SM__message_encode */ - /*------------------------------------------------------------------------- * Function: H5SM__message_decode * @@ -334,22 +322,22 @@ H5SM__message_encode(uint8_t *raw, const void *_nrecord, void *_ctx) herr_t H5SM__message_decode(const uint8_t *raw, void *_nrecord, void *_ctx) { - H5SM_bt2_ctx_t *ctx = (H5SM_bt2_ctx_t *)_ctx; /* Callback context structure */ - H5SM_sohm_t *message = (H5SM_sohm_t *)_nrecord; + H5SM_bt2_ctx_t *ctx = (H5SM_bt2_ctx_t *)_ctx; /* Callback context structure */ + H5SM_sohm_t * message = (H5SM_sohm_t *)_nrecord; FUNC_ENTER_PACKAGE_NOERR message->location = (H5SM_storage_loc_t)*raw++; UINT32DECODE(raw, message->hash); - if(message->location == H5SM_IN_HEAP) { + if (message->location == H5SM_IN_HEAP) { UINT32DECODE(raw, message->u.heap_loc.ref_count); H5MM_memcpy(message->u.heap_loc.fheap_id.id, raw, (size_t)H5O_FHEAP_ID_LEN); } /* end if */ else { HDassert(message->location == H5SM_IN_OH); - raw++; /* reserved */ + raw++; /* reserved */ message->msg_type_id = *raw++; UINT16DECODE(raw, message->u.mesg_loc.index); H5F_addr_decode_len((size_t)ctx->sizeof_addr, &raw, &message->u.mesg_loc.oh_addr); @@ -357,4 +345,3 @@ H5SM__message_decode(const uint8_t *raw, void *_nrecord, void *_ctx) FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5SM__message_decode */ - |