summaryrefslogtreecommitdiffstats
path: root/src/H5Cprivate.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2017-01-06 19:37:17 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2017-01-06 19:37:17 (GMT)
commit8d4c84eae2954a77c725f42298b20d694a6150c8 (patch)
tree138e63bc39ef9c0c818ec0558d1f5d92e02665a7 /src/H5Cprivate.h
parent7568dcaf151bfaa7d529ec69c57a814682bf69c1 (diff)
downloadhdf5-8d4c84eae2954a77c725f42298b20d694a6150c8.zip
hdf5-8d4c84eae2954a77c725f42298b20d694a6150c8.tar.gz
hdf5-8d4c84eae2954a77c725f42298b20d694a6150c8.tar.bz2
Bring changes to metadata cache "get entry status" call and new
"child serialized / unserialized" messages and support from the cache image branch.
Diffstat (limited to 'src/H5Cprivate.h')
-rw-r--r--src/H5Cprivate.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/H5Cprivate.h b/src/H5Cprivate.h
index 9d8f0d4..654ce35 100644
--- a/src/H5Cprivate.h
+++ b/src/H5Cprivate.h
@@ -867,7 +867,9 @@ typedef enum H5C_notify_action_t {
H5C_NOTIFY_ACTION_ENTRY_DIRTIED, /* Entry has been marked dirty. */
H5C_NOTIFY_ACTION_ENTRY_CLEANED, /* Entry has been marked clean. */
H5C_NOTIFY_ACTION_CHILD_DIRTIED, /* Dependent child has been marked dirty. */
- H5C_NOTIFY_ACTION_CHILD_CLEANED /* Dependent child has been marked clean. */
+ H5C_NOTIFY_ACTION_CHILD_CLEANED, /* Dependent child has been marked clean. */
+ H5C_NOTIFY_ACTION_CHILD_UNSERIALIZED, /* Dependent child has been marked unserialized. */
+ H5C_NOTIFY_ACTION_CHILD_SERIALIZED /* Dependent child has been marked serialized. */
} H5C_notify_action_t;
/* Cache client callback function pointers */
@@ -1214,6 +1216,19 @@ typedef int H5C_ring_t;
* either dirty or have a nonzero flush_dep_ndirty_children. If
* this field is nonzero, then this entry cannot be flushed.
*
+ * flush_dep_nunser_children: Number of flush dependency children
+ * that are either unserialized, or have a non-zero number of
+ * positive number of unserialized children.
+ *
+ * Note that since there is no requirement that a clean entry
+ * be serialized, it is possible that flush_dep_nunser_children
+ * to be greater than flush_dep_ndirty_children.
+ *
+ * This field exist to facilitate correct ordering of entry
+ * serializations when it is necessary to serialize all the
+ * entries in the metadata cache. Thus in the cache
+ * serialization, no entry can be serialized unless this
+ * field contains 0.
*
* Fields supporting the hash table:
*
@@ -1398,6 +1413,7 @@ typedef struct H5C_cache_entry_t {
unsigned flush_dep_parent_nalloc;
unsigned flush_dep_nchildren;
unsigned flush_dep_ndirty_children;
+ unsigned flush_dep_nunser_children;
hbool_t pinned_from_client;
hbool_t pinned_from_cache;
@@ -1771,6 +1787,8 @@ H5_DLL herr_t H5C_insert_entry(H5F_t *f, hid_t dxpl_id, const H5C_class_t *type,
haddr_t addr, void *thing, unsigned int flags);
H5_DLL herr_t H5C_mark_entry_dirty(void *thing);
H5_DLL herr_t H5C_mark_entry_clean(void *thing);
+H5_DLL herr_t H5C_mark_entry_unserialized(void *thing);
+H5_DLL herr_t H5C_mark_entry_serialized(void *thing);
H5_DLL herr_t H5C_move_entry(H5C_t *cache_ptr, const H5C_class_t *type,
haddr_t old_addr, haddr_t new_addr);
H5_DLL herr_t H5C_pin_protected_entry(void *thing);