diff options
author | Robb Matzke <matzke@llnl.gov> | 1997-08-09 16:45:59 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1997-08-09 16:45:59 (GMT) |
commit | a260c7849c1ca59bd32cde9d12380e89afd70770 (patch) | |
tree | a4d791e5df2d17b3fd6988ca84e363560b1c87cf /src/H5AC.c | |
parent | 0d050fcd579bf1db6db2d8a1d3fec617114bfd1f (diff) | |
download | hdf5-a260c7849c1ca59bd32cde9d12380e89afd70770.zip hdf5-a260c7849c1ca59bd32cde9d12380e89afd70770.tar.gz hdf5-a260c7849c1ca59bd32cde9d12380e89afd70770.tar.bz2 |
[svn-r17] ./src/H5AC.c
Renamed H5AC_find() to H5AC_find_f() which is invoked from the
H5AC_find() macro.
Changed HASH() to H5AC_HASH().
./src/H5ACprivate.h
Increased the number of cache slots from 1033 to 10330 to see
how it affects performance. This should probably be
changeable on a per-file basis.
./src/H5B.c
Fixed some bugs now that symbol tables are actually using the
stuff.
Improved debugging a little.
Fixed uninitialized memory appearing in the file.
./src/H5D.c
Changed a FUNC_ENTER() argument from H5Dset_info to H5Dwrite.
./src/H5F.c
Plugged a memory leak in H5F_dest().
./src/H5G.c
./src/H5Gprivate.h
Many of these functions take a symbol table entry which
describes the symbol table rather than just the symbol table
address.
Moved some functions to make room for the ones that understand
directory names:
H5G_new() -> H5G_stab_new()
H5G_find() -> H5G_stab_find()
H5G_modify() -> H5G_stab_modify()
H5G_insert() -> H5G_stab_insert()
H5G_list() -> H5G_stab_list()
./src/H5Gnode.c
Added more assertions.
Zero new memory so junk doesn't appear in the data file. This
is a problem when one tries to declassify a classified data
file.
H5G_node_debug() can take an extra argument which is the
address of the heap for the symbol table. If supplied, the
symbol names are printed along with the heap offsets.
./src/H5H.c
./src/H5Hprivate.h
Fixed a bug with the free blocks by forcing things to align on
even boundaries. It's still possible to lose heap memory if
the hole is smaller than the free list header. The
alternative is to align heap objects on 12 or 20 byte
boundaries, but this tends to waste to much space.
Zero new memory like with H5Gnode.c.
Fixed a "mispeling" of NDEBUG.
./src/H5Ocont.c
./src/H5Onull.c
Added the pablo mask defn.
./src/H5Ostab.c
Added the pablo mask defn.
Fixed a read from uninitialized memory.
./src/H5Oprivate.h
Tuned some parameters to see how they affect performance.
./src/debug.c
An optional third argument can be supplied which is the
address of a heap to use to display names in a symbol table.
./src/hdf5pabl.h
Changed `int' to `intn'.
Diffstat (limited to 'src/H5AC.c')
-rw-r--r-- | src/H5AC.c | 21 |
1 files changed, 12 insertions, 9 deletions
@@ -28,7 +28,6 @@ #include "H5MMprivate.h" #define PABLO_MASK H5AC_mask -#define HASH(addr) ((unsigned)(addr) % H5AC_NSLOTS) static int interface_initialize_g = FALSE; /*initialized?*/ @@ -99,7 +98,7 @@ H5AC_dest (hdf5_file_t *f) /*------------------------------------------------------------------------- - * Function: H5AC_find + * Function: H5AC_find_f * * Purpose: Given an object type and the address at which that object * is located in the file, return a pointer to the object. @@ -127,10 +126,10 @@ H5AC_dest (hdf5_file_t *f) *------------------------------------------------------------------------- */ void * -H5AC_find (hdf5_file_t *f, const H5AC_class_t *type, haddr_t addr, - const void *udata) +H5AC_find_f (hdf5_file_t *f, const H5AC_class_t *type, haddr_t addr, + const void *udata) { - unsigned idx = HASH(addr); + unsigned idx = H5AC_HASH(addr); herr_t status; void *thing = NULL; herr_t (*flush)(hdf5_file_t*,hbool_t,haddr_t,void*)=NULL; @@ -159,6 +158,10 @@ H5AC_find (hdf5_file_t *f, const H5AC_class_t *type, haddr_t addr, HRETURN_ERROR (H5E_CACHE, H5E_BADTYPE, NULL); } +#ifdef DO_NOT_CACHE + H5AC_flush (f, NULL, 0, TRUE); +#endif + /* * Load a new thing. If it can't be loaded, then return an error * without preempting anything. @@ -220,7 +223,7 @@ herr_t H5AC_flush (hdf5_file_t *f, const H5AC_class_t *type, haddr_t addr, hbool_t destroy) { - uintn i = HASH(addr); + uintn i = H5AC_HASH(addr); herr_t status; herr_t (*flush)(hdf5_file_t*,hbool_t,haddr_t,void*)=NULL; @@ -287,7 +290,7 @@ herr_t H5AC_set (hdf5_file_t *f, const H5AC_class_t *type, haddr_t addr, void *thing) { herr_t status; - uintn idx = HASH (addr); + uintn idx = H5AC_HASH (addr); herr_t (*flush)(hdf5_file_t*,hbool_t,haddr_t,void*)=NULL; FUNC_ENTER (H5AC_set, NULL, FAIL); @@ -337,8 +340,8 @@ herr_t H5AC_rename (hdf5_file_t *f, const H5AC_class_t *type, haddr_t old_addr, haddr_t new_addr) { - uintn old_idx = HASH (old_addr); - uintn new_idx = HASH (new_addr); + uintn old_idx = H5AC_HASH (old_addr); + uintn new_idx = H5AC_HASH (new_addr); herr_t (*flush)(hdf5_file_t*, hbool_t, haddr_t, void*); herr_t status; |