diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2006-03-28 14:03:46 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2006-03-28 14:03:46 (GMT) |
commit | 935d75c50d35816e08af71be79ef8ace04f97d04 (patch) | |
tree | 2aff56744b8fe1211f0b3a43b9fb11a0f7923eaa /src/H5HFpkg.h | |
parent | 87050be33e3a5931ef88b4faee557c3bfdb809b4 (diff) | |
download | hdf5-935d75c50d35816e08af71be79ef8ace04f97d04.zip hdf5-935d75c50d35816e08af71be79ef8ace04f97d04.tar.gz hdf5-935d75c50d35816e08af71be79ef8ace04f97d04.tar.bz2 |
[svn-r12162] Purpose:
Code checkpoint
Description:
Check in fractal heap code to add basic support for skipping direct blocks
when an object is too large to fit in one.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Linux 2.4 (chicago)
Diffstat (limited to 'src/H5HFpkg.h')
-rw-r--r-- | src/H5HFpkg.h | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/H5HFpkg.h b/src/H5HFpkg.h index cede8c9..ab69207 100644 --- a/src/H5HFpkg.h +++ b/src/H5HFpkg.h @@ -65,7 +65,6 @@ + 2 /* Starting # of rows in root indirect block */ \ + (h)->sizeof_addr /* File address of table managed */ \ + 2 /* Current # of rows in root indirect block */ \ - + (h)->sizeof_size /* Next direct block's heap offset */ \ ) /* Size of the fractal heap header on disk */ @@ -89,12 +88,7 @@ #define H5HF_MAN_ABS_DIRECT_FREE_NODE_SIZE(d) (2 * (d)->blk_off_size) /* Size of header for each object in an absolute managed direct block */ -#define H5HF_MAN_ABS_DIRECT_OBJ_PREFIX_LEN_SIZE(h, o) ( \ - H5HF_SIZEOF_OFFSET_LEN(o) /* Length of object in block */ \ - + 1 /* Free space fragment length */ \ - ) -#define H5HF_MAN_ABS_DIRECT_OBJ_PREFIX_LEN_DBLOCK(h, d) ( \ - (d)->blk_off_size /* Length of object in block */ \ +#define H5HF_MAN_ABS_DIRECT_OBJ_PREFIX_LEN(h) ( \ + 1 /* Free space fragment length */ \ ) @@ -162,16 +156,15 @@ typedef struct H5HF_dtable_t { * to direct block (of START_BLOCK_SIZE) instead * of indirect root block. */ -/* XXX: get rid of this global setting */ - hsize_t next_dir_block; /* Offset of next direct managed block */ /* Computed information (not stored) */ unsigned max_root_rows; /* Maximum # of rows in root indirect block */ unsigned max_direct_rows; /* Maximum # of direct rows in any indirect block */ unsigned max_dir_blk_off_size; /* Max. size of offsets in direct blocks */ - unsigned first_row_bits; /* # of bits in address of first row */ + unsigned first_row_bits; /* # of bits in address of first row */ hsize_t num_id_first_row; /* Number of IDs in first row of table */ hsize_t *row_block_size; /* Block size per row of indirect block */ + hsize_t *row_block_off; /* Cumulative offset per row of indirect block */ } H5HF_dtable_t; /* Fractal heap free list info (forward decl - defined in H5HFflist.c) */ @@ -208,6 +201,7 @@ typedef struct H5HF_t { size_t sizeof_size; /* Size of file sizes */ size_t sizeof_addr; /* Size of file addresses */ H5HF_freelist_t *flist; /* Free list for objects in heap */ + size_t id_len; /* Size of heap IDs */ /* Doubling table information */ /* (Partially set by user, partially derived/updated internally) */ @@ -374,7 +368,7 @@ H5_DLL herr_t H5HF_man_insert(H5HF_t *fh, hid_t dxpl_id, H5HF_section_free_node_t *sec_node, size_t obj_size, const void *obj, void *id); H5_DLL herr_t H5HF_man_read(H5HF_t *fh, hid_t dxpl_id, hsize_t obj_off, - void *obj); + size_t obj_len, void *obj); /* Metadata cache callbacks */ H5_DLL herr_t H5HF_cache_hdr_dest(H5F_t *f, H5HF_t *fh); |