diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2006-03-04 22:56:44 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2006-03-04 22:56:44 (GMT) |
commit | dfbf976509bea0b4d598716d0dd73be494efacdd (patch) | |
tree | 891886081cf2ed280788eb2a33c609c55dfe2391 /src/H5HFprivate.h | |
parent | 0e708b387c78f5a286ab82eda55214fddf6c2127 (diff) | |
download | hdf5-dfbf976509bea0b4d598716d0dd73be494efacdd.zip hdf5-dfbf976509bea0b4d598716d0dd73be494efacdd.tar.gz hdf5-dfbf976509bea0b4d598716d0dd73be494efacdd.tar.bz2 |
[svn-r12004] Purpose:
New feature & code cleanup
Description:
Update fractal heap to be able to insert objects into a direct block
hanging off the header.
Extract "octal dump" code into separate routine so that both the local
heaps & fractal heaps can use it.
Other code cleanups & support to get this far.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Linux 2.4
Diffstat (limited to 'src/H5HFprivate.h')
-rw-r--r-- | src/H5HFprivate.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/H5HFprivate.h b/src/H5HFprivate.h index 62334fa..984d717 100644 --- a/src/H5HFprivate.h +++ b/src/H5HFprivate.h @@ -47,13 +47,28 @@ typedef enum { H5HF_MAPPED /* The heap maps internal addresses to allow compaction */ } H5HF_addrmap_t; +/* Creation parameters for doubling-tables */ +typedef struct H5HF_dtable_cparam_t { + unsigned width; /* Number of columns in the table (must be power of 2) */ + size_t start_block_size; /* Starting block size for table (must be power of 2) */ + size_t max_direct_size; /* Maximum size of a direct block (must be power of 2) */ + unsigned max_index; /* Maximum ID/offset for table (integer log2 of actual value, ie. the # of bits required) */ + unsigned start_root_rows; /* Starting number of rows for root indirect block */ + /* 0 indicates to create the full indirect block for the root, + * right from the start. Doesn't have to be power of 2 + */ +} H5HF_dtable_cparam_t; + /* Fractal heap creation parameters */ typedef struct H5HF_create_t { + H5HF_dtable_cparam_t managed;/* Mapped object doubling-table creation parameters */ H5HF_addrmap_t addrmap; /* Type of address mapping for objects in heap */ uint32_t standalone_size; /* Size of object to store standalone */ /* (i.e. max. size of object to manage) */ - uint32_t fixed_len_size; /* Size of objects (0 means variable-sized objects) */ + uint32_t fixed_len_size; /* Size of objects, in bytes (0 means variable-sized objects) */ /* (only for heaps w/fixed-length objects) */ + unsigned char ref_count_size; /* Size of ref. count field for objects, in bytes (0 means no ref. counts for objects) */ + /* (only for heaps w/ref. counted objects) */ } H5HF_create_t; |