summaryrefslogtreecommitdiffstats
path: root/src/H5C2private.h
diff options
context:
space:
mode:
authorJohn Mainzer <mainzer@hdfgroup.org>2008-10-03 06:50:54 (GMT)
committerJohn Mainzer <mainzer@hdfgroup.org>2008-10-03 06:50:54 (GMT)
commit648d6ac066ed4f75e168f7a4946fb62d0da6d400 (patch)
treedfe57c4556e6ced61264cdb00f731ac2edcbbb77 /src/H5C2private.h
parentd3f252466cddf196075b31c442fe1aed611b6ca8 (diff)
downloadhdf5-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/H5C2private.h')
-rw-r--r--src/H5C2private.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/H5C2private.h b/src/H5C2private.h
index 3f7502f..ba6d751 100644
--- a/src/H5C2private.h
+++ b/src/H5C2private.h
@@ -230,7 +230,9 @@ typedef struct H5C2_t H5C2_t;
*
* The typedef for the serialize callback is as follows:
*
- * typedef herr_t (*H5C_serialize_func_t)(haddr_t addr,
+ * typedef herr_t (*H5C_serialize_func_t)(const H5F_t *f,
+ * hid_t dxpl_id,
+ * haddr_t addr,
* size_t len,
* void * image_ptr,
* void * thing,
@@ -241,6 +243,15 @@ typedef struct H5C2_t H5C2_t;
*
* The parameters of the serialize callback are as follows:
*
+ * f: File pointer -- needed if other metadata cache entries
+ * must be modified in the process of serializing the
+ * target entry.
+ *
+ * dxpl_id: dxpl_id passed with the file pointer to the cache, and
+ * passed on to the callback. Necessary as some callbacks
+ * revise the size and location of the target entry, or
+ * possibly other entries on serialize.
+ *
* addr: Base address in file of the entry to be serialized.
*
* This parameter is supplied mainly for sanity checking.
@@ -451,6 +462,7 @@ typedef herr_t (*H5C2_image_len_func_t)(const void *thing,
#define H5C2__SERIALIZE_RENAMED_FLAG 0x2
typedef herr_t (*H5C2_serialize_func_t)(const H5F_t *f,
+ hid_t dxpl_id,
haddr_t addr,
size_t len,
void * image_ptr,
@@ -1549,6 +1561,7 @@ H5_DLL herr_t H5C2_end_journaling(H5F_t * f,
H5C2_t * cache_ptr);
H5_DLL herr_t H5C2_end_transaction(H5F_t * f,
+ hid_t dxpl_id,
H5C2_t * cache_ptr,
uint64_t trans_num,
const char * api_call_name);
@@ -1562,6 +1575,7 @@ H5_DLL herr_t H5C2_journal_post_flush(H5C2_t * cache_ptr,
H5_DLL herr_t H5C2_journal_pre_flush(H5C2_t * cache_ptr);
H5_DLL herr_t H5C2_journal_transaction(H5F_t * f,
+ hid_t dxpl_id,
H5C2_t * cache_ptr);
H5_DLL herr_t H5C2_update_for_new_last_trans_on_disk(H5C2_t * cache_ptr,