diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2008-07-20 02:32:47 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2008-07-20 02:32:47 (GMT) |
commit | d08619bfe1a3cbc593bdaae5a5bd393e1d33f150 (patch) | |
tree | 57ec6ef4e2167462f2a10b5739b0f79f2299584d /src/H5C2private.h | |
parent | 90497050b818e914ab814e40811b1c0ff98384ea (diff) | |
download | hdf5-d08619bfe1a3cbc593bdaae5a5bd393e1d33f150.zip hdf5-d08619bfe1a3cbc593bdaae5a5bd393e1d33f150.tar.gz hdf5-d08619bfe1a3cbc593bdaae5a5bd393e1d33f150.tar.bz2 |
[svn-r15388] Description:
Convert object header cache client to use the new metadata journaling
cache, which included adding a new client for handling continuation chunks.
Added "real" protect calls around modifying chunks in object headers.
Switched a few more metadata cache library API routines to drop the
file pointer, when it is not needed (pinning/unpinning entries, etc.)
Fixed bug in journaling cache handling of 'image_len' callbacks and
also changed cache to retry deserializing entries when the entry's size is
larger than the speculative size initially tried.
Retrying for 'image_len' callbacks has problems with the 'multi' VFD,
so the h5dump and FORTRAN 'multi' tests are commented out, until the changes to
the 'multi' VFD from the file free space branch are brought back into the
trunk.
Currently, the 'h5recover' tool has a bug which requires it to be run
twice before replaying the journal "sticks". However, this is from an earlier
checkin, since the code in the branch already has this behavior... :-(
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.5.4 (amazon) in debug mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
Diffstat (limited to 'src/H5C2private.h')
-rw-r--r-- | src/H5C2private.h | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/H5C2private.h b/src/H5C2private.h index a1cc12f..276180d 100644 --- a/src/H5C2private.h +++ b/src/H5C2private.h @@ -441,10 +441,10 @@ typedef struct H5C2_t H5C2_t; typedef void *(*H5C2_deserialize_func_t)(haddr_t addr, size_t len, const void * image_ptr, - const void * udata_ptr, + void * udata_ptr, hbool_t * dirty_ptr); -typedef herr_t (*H5C2_image_len_func_t)(void *thing, +typedef herr_t (*H5C2_image_len_func_t)(const void *thing, size_t *image_len_ptr); #define H5C2__SERIALIZE_RESIZED_FLAG 0x1 @@ -1279,7 +1279,6 @@ typedef struct H5C2_auto_size_ctl_t * These flags apply to H5C2_protect() * * H5C2__READ_ONLY_FLAG - * H5C2__CHECK_SIZE_FLAG * * These flags apply to H5C2_unprotect(): * @@ -1318,7 +1317,6 @@ typedef struct H5C2_auto_size_ctl_t #define H5C2__FLUSH_MARKED_ENTRIES_FLAG 0x0100 #define H5C2__FLUSH_IGNORE_PROTECTED_FLAG 0x0200 #define H5C2__READ_ONLY_FLAG 0x0400 -#define H5C2__CHECK_SIZE_FLAG 0x0800 H5_DLL H5C2_t * H5C2_create(size_t max_cache_size, size_t min_clean_size, @@ -1397,34 +1395,30 @@ H5_DLL herr_t H5C2_mark_entries_as_clean(H5F_t * f, int32_t ce_array_len, haddr_t * ce_array_ptr); -H5_DLL herr_t H5C2_mark_pinned_entry_dirty(H5F_t * f, - void * thing, +H5_DLL herr_t H5C2_mark_pinned_entry_dirty(void * thing, hbool_t size_changed, size_t new_size); -H5_DLL herr_t H5C2_mark_pinned_or_protected_entry_dirty(H5F_t * f, - void * thing); +H5_DLL herr_t H5C2_mark_pinned_or_protected_entry_dirty(void * thing); H5_DLL herr_t H5C2_rename_entry(H5C2_t * cache_ptr, const H5C2_class_t * type, haddr_t old_addr, haddr_t new_addr); -H5_DLL herr_t H5C2_pin_protected_entry(H5F_t * f, - void * thing); +H5_DLL herr_t H5C2_pin_protected_entry(void * thing); H5_DLL void * H5C2_protect(H5F_t * f, hid_t dxpl_id, const H5C2_class_t * type, haddr_t addr, size_t len, - const void * udata, + void * udata, unsigned flags); H5_DLL herr_t H5C2_reset_cache_hit_rate_stats(H5C2_t * cache_ptr); -H5_DLL herr_t H5C2_resize_pinned_entry(H5F_t * f, - void * thing, +H5_DLL herr_t H5C2_resize_pinned_entry(void * thing, size_t new_size); H5_DLL herr_t H5C2_set_cache_auto_resize_config(const H5F_t * f, |