diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2006-10-29 02:17:07 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2006-10-29 02:17:07 (GMT) |
commit | 02bba16ee0b5c9da300608896d1ea9bc97c9ab1a (patch) | |
tree | 63d98a79c1c5d01f786cfe078eec407719ff79fa /src/H5HFpkg.h | |
parent | c6c63ab6c64f4a29b3f379673e5236b2d614b422 (diff) | |
download | hdf5-02bba16ee0b5c9da300608896d1ea9bc97c9ab1a.zip hdf5-02bba16ee0b5c9da300608896d1ea9bc97c9ab1a.tar.gz hdf5-02bba16ee0b5c9da300608896d1ea9bc97c9ab1a.tar.bz2 |
[svn-r12823] Description:
Add support for compress heap blocks in "managed" heaps.
Also, fix bug when the first direct block moves between having a parent
and not having one (and vice versa), which occurs when the heap moves between
having a direct root block and having an indirect root block.
Tested on:
FreeBSD 4.11 (sleipnir) w/threadsafe
Linux/32 2.4 (heping) w/C++ & FORTRAN
Linux/64 2.4 (mir) w/build-all & 1.6 compat
Diffstat (limited to 'src/H5HFpkg.h')
-rw-r--r-- | src/H5HFpkg.h | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/H5HFpkg.h b/src/H5HFpkg.h index 638d996..e927e4d 100644 --- a/src/H5HFpkg.h +++ b/src/H5HFpkg.h @@ -251,11 +251,6 @@ typedef struct H5HF_free_section_t { struct { H5HF_indirect_t *parent; /* Indirect block parent for free section's direct block */ unsigned par_entry; /* Entry of free section's direct block in parent indirect block */ - /* (Needed to retrieve direct block) */ - - haddr_t dblock_addr; /* Address of direct block for free section */ - size_t dblock_size; /* Size of direct block */ - /* (Needed to retrieve root direct block) */ } single; struct { struct H5HF_free_section_t *under; /* Pointer to indirect block underlying row section */ @@ -270,7 +265,7 @@ typedef struct H5HF_free_section_t { /* Holds either a pointer to an indirect block (if its "live") or * the block offset of it's indirect block (if its "serialized") * (This allows the indirect block that the section is within to - * be compared with other sections, whether its serialized + * be compared with other sections, whether it's serialized * or not) */ union { @@ -322,14 +317,14 @@ typedef struct H5HF_hdr_t { haddr_t fs_addr; /* Address of free space header on disk */ /* "Huge" object support (stored in header) */ - uint32_t max_man_size; /* Max. size of object to manage in doubling table */ - hsize_t huge_next_id; /* Next ID to use for indirectly tracked 'huge' object */ - haddr_t huge_bt2_addr; /* Address of v2 B-tree for tracking "huge" object info */ + uint32_t max_man_size; /* Max. size of object to manage in doubling table */ + hsize_t huge_next_id; /* Next ID to use for indirectly tracked 'huge' object */ + haddr_t huge_bt2_addr; /* Address of v2 B-tree for tracking "huge" object info */ /* I/O filter support (stored in header, if any are used) */ H5O_pline_t pline; /* I/O filter pipeline for heap objects */ - size_t pline_root_direct_size; /* Size of filtered root direct block */ - unsigned pline_root_direct_filter_mask; /* I/O filter mask for filtered root direct block */ + size_t pline_root_direct_size; /* Size of filtered root direct block */ + unsigned pline_root_direct_filter_mask; /* I/O filter mask for filtered root direct block */ /* Statistics for heap (stored in header) */ hsize_t man_size; /* Total amount of 'managed' space in heap */ @@ -698,10 +693,11 @@ H5_DLL herr_t H5HF_space_sect_change_class(H5HF_hdr_t *hdr, hid_t dxpl_id, /* Free space section routines */ H5_DLL H5HF_free_section_t *H5HF_sect_single_new(hsize_t sect_off, - size_t sect_size, H5HF_indirect_t *parent, unsigned par_entry, - haddr_t dblock_addr, size_t dblock_size); + size_t sect_size, H5HF_indirect_t *parent, unsigned par_entry); H5_DLL herr_t H5HF_sect_single_revive(H5HF_hdr_t *hdr, hid_t dxpl_id, H5HF_free_section_t *sect); +H5_DLL herr_t H5HF_sect_single_dblock_info(H5HF_hdr_t *hdr, hid_t dxpl_id, + H5HF_free_section_t *sect, haddr_t *dblock_addr, size_t *dblock_size); H5_DLL herr_t H5HF_sect_single_reduce(H5HF_hdr_t *hdr, hid_t dxpl_id, H5HF_free_section_t *sect, size_t amt); H5_DLL herr_t H5HF_sect_row_revive(H5HF_hdr_t *hdr, hid_t dxpl_id, |