diff options
author | John Mainzer <mainzer@hdfgroup.org> | 2008-10-03 06:50:54 (GMT) |
---|---|---|
committer | John Mainzer <mainzer@hdfgroup.org> | 2008-10-03 06:50:54 (GMT) |
commit | 648d6ac066ed4f75e168f7a4946fb62d0da6d400 (patch) | |
tree | dfe57c4556e6ced61264cdb00f731ac2edcbbb77 /src/H5Ocache.c | |
parent | d3f252466cddf196075b31c442fe1aed611b6ca8 (diff) | |
download | hdf5-648d6ac066ed4f75e168f7a4946fb62d0da6d400.zip hdf5-648d6ac066ed4f75e168f7a4946fb62d0da6d400.tar.gz hdf5-648d6ac066ed4f75e168f7a4946fb62d0da6d400.tar.bz2 |
[svn-r15763] Converted the fractal heap direct block cache client to use the
revised cache.
Note that this conversion is not as efficient as it should be. Specifically,
it does it more memcpy's between the metadata cache's on disk image of the
direct block and the fractal heap's on disk image of the direct block than
is absolutely essential. Eventually, we will want to fix this -- probably
by allowing the metadata cache and the fractal heap direct block to share
a common on disk image of the direct block. However, this will require
extensions to the client / metadata cache interface, and some reworking of
the fractal heap as well.
This checkin also includes Mike M's fix to the Linew specific bug mentioned
in my checkin of 22 Aug 2008.
Tested on Phoenix (serial debug and production),
Kagiso (parallel), and
Linew (serial)
Diffstat (limited to 'src/H5Ocache.c')
-rw-r--r-- | src/H5Ocache.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/H5Ocache.c b/src/H5Ocache.c index 4df43d8..8370394 100644 --- a/src/H5Ocache.c +++ b/src/H5Ocache.c @@ -63,16 +63,16 @@ static void *H5O_cache_deserialize(haddr_t addr, size_t len, const void *image, void *udata, hbool_t *dirty); static herr_t H5O_cache_image_len(const void *thing, size_t *image_len_ptr); -static herr_t H5O_cache_serialize(const H5F_t *f, haddr_t addr, size_t len, - void *image, void *thing, unsigned *flags, haddr_t *new_addr, +static herr_t H5O_cache_serialize(const H5F_t *f, hid_t dxpl_id, haddr_t addr, + size_t len, void *image, void *thing, unsigned *flags, haddr_t *new_addr, size_t *new_len, void **new_image); static herr_t H5O_cache_free_icr(haddr_t addr, size_t len, void *thing); static void *H5O_cache_chk_deserialize(haddr_t addr, size_t len, const void *image, void *udata, hbool_t *dirty); -static herr_t H5O_cache_chk_serialize(const H5F_t *f, haddr_t addr, size_t len, - void *image, void *thing, unsigned *flags, haddr_t *new_addr, - size_t *new_len, void **new_image); +static herr_t H5O_cache_chk_serialize(const H5F_t *f, hid_t dxpl_id, + haddr_t addr, size_t len, void *image, void *thing, unsigned *flags, + haddr_t *new_addr, size_t *new_len, void **new_image); static herr_t H5O_cache_chk_free_icr(haddr_t addr, size_t len, void *thing); /* Chunk proxy routines */ @@ -81,7 +81,7 @@ static herr_t H5O_chunk_proxy_dest(H5O_chunk_proxy_t *chunk_proxy); /* Chunk routines */ static herr_t H5O_chunk_deserialize(H5O_t *oh, haddr_t addr, size_t len, const uint8_t *image, H5O_common_cache_ud_t *udata, hbool_t *dirty); -static herr_t H5O_chunk_serialize(const H5F_t *f, H5O_t *oh, unsigned chunkno, +static herr_t H5O_chunk_serialize(const H5F_t *f, H5O_t *oh, unsigned chunkno, uint8_t *image); /* Misc. routines */ @@ -362,9 +362,9 @@ H5O_cache_image_len(const void *thing, size_t *image_len_ptr) *------------------------------------------------------------------------- */ static herr_t -H5O_cache_serialize(const H5F_t *f, haddr_t UNUSED addr, size_t UNUSED len, - void *image, void *_thing, unsigned *flags, haddr_t UNUSED *new_addr, - size_t UNUSED *new_len, void UNUSED **new_image) +H5O_cache_serialize(const H5F_t *f, hid_t dxpl_id, haddr_t UNUSED addr, + size_t UNUSED len, void *image, void *_thing, unsigned *flags, + haddr_t UNUSED *new_addr, size_t UNUSED *new_len, void UNUSED **new_image) { H5O_t *oh = (H5O_t *)_thing; /* Pointer to the object header */ uint8_t *p; /* Pointer into raw data buffer */ @@ -604,9 +604,10 @@ done: *------------------------------------------------------------------------- */ static herr_t -H5O_cache_chk_serialize(const H5F_t *f, haddr_t UNUSED addr, size_t UNUSED len, - void *image, void *_thing, unsigned *flags, haddr_t UNUSED *new_addr, - size_t UNUSED *new_len, void UNUSED **new_image) +H5O_cache_chk_serialize(const H5F_t *f, hid_t UNUSED dxpl_id, + haddr_t UNUSED addr, size_t UNUSED len, void *image, void *_thing, + unsigned *flags, haddr_t UNUSED *new_addr, size_t UNUSED *new_len, + void UNUSED **new_image) { H5O_chunk_proxy_t *chk_proxy = (H5O_chunk_proxy_t *)_thing; /* Pointer to the object header chunk proxy */ herr_t ret_value = SUCCEED; /* Return value */ |