summaryrefslogtreecommitdiffstats
path: root/src/H5HFprivate.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2006-03-04 22:56:44 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2006-03-04 22:56:44 (GMT)
commitdfbf976509bea0b4d598716d0dd73be494efacdd (patch)
tree891886081cf2ed280788eb2a33c609c55dfe2391 /src/H5HFprivate.h
parent0e708b387c78f5a286ab82eda55214fddf6c2127 (diff)
downloadhdf5-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.h17
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;