summaryrefslogtreecommitdiffstats
path: root/src/H5B2pkg.h
diff options
context:
space:
mode:
authorDana Robinson <derobins@hdfgroup.org>2015-06-11 19:18:52 (GMT)
committerDana Robinson <derobins@hdfgroup.org>2015-06-11 19:18:52 (GMT)
commitaa4e3e3985e1e2715819c326d332e1569ac73c7b (patch)
tree77a9a9305e54d10f2937f142e4568395ee0f9208 /src/H5B2pkg.h
parentbf8942c7e9213355515344f21c8df7fd2987f09d (diff)
parentb9f2a18b5ae9adf23cac4c0336291373a25f0721 (diff)
downloadhdf5-aa4e3e3985e1e2715819c326d332e1569ac73c7b.zip
hdf5-aa4e3e3985e1e2715819c326d332e1569ac73c7b.tar.gz
hdf5-aa4e3e3985e1e2715819c326d332e1569ac73c7b.tar.bz2
[svn-r27191] Merged r26781 to r27185 from trunk
Tested on: 64-bit Ubuntu Linux VM w/ gcc 4.8.2 (C++ and Fortran 2003 also tested)
Diffstat (limited to 'src/H5B2pkg.h')
-rw-r--r--src/H5B2pkg.h20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/H5B2pkg.h b/src/H5B2pkg.h
index 72476eb..a2d32e6 100644
--- a/src/H5B2pkg.h
+++ b/src/H5B2pkg.h
@@ -45,10 +45,10 @@
/* Size of a "tree pointer" (on disk) */
/* (essentially, the largest internal pointer allowed) */
-#define H5B2_TREE_POINTER_SIZE(h) ( \
- (h)->sizeof_addr + \
+#define H5B2_TREE_POINTER_SIZE(sizeof_addr, sizeof_size) ( \
+ (sizeof_addr) + \
H5B2_SIZEOF_RECORDS_PER_NODE + \
- (h)->sizeof_size \
+ (sizeof_size) \
)
/* Size of a internal node pointer (on disk) */
@@ -70,7 +70,7 @@
)
/* Size of the v2 B-tree header on disk */
-#define H5B2_HEADER_SIZE(h) ( \
+#define H5B2_HEADER_SIZE(sizeof_addr, sizeof_size) ( \
/* General metadata fields */ \
H5B2_METADATA_PREFIX_SIZE \
\
@@ -80,7 +80,17 @@
+ (unsigned)2 /* Depth of tree */ \
+ (unsigned)1 /* Split % of full (as integer, ie. "98" means 98%) */ \
+ (unsigned)1 /* Merge % of full (as integer, ie. "98" means 98%) */ \
- + H5B2_TREE_POINTER_SIZE(h) /* Node pointer to root node in tree */ \
+ + H5B2_TREE_POINTER_SIZE(sizeof_addr, sizeof_size) /* Node pointer to root node in tree */ \
+ )
+
+/* Size of the v2 B-tree header on disk (via file pointer) */
+#define H5B2_HEADER_SIZE_FILE(f) ( \
+ H5B2_HEADER_SIZE(H5F_SIZEOF_ADDR(f), H5F_SIZEOF_SIZE(f)) \
+ )
+
+/* Size of the v2 B-tree header on disk (via v2 B-tree header) */
+#define H5B2_HEADER_SIZE_HDR(h) ( \
+ H5B2_HEADER_SIZE((h)->sizeof_addr, (h)->sizeof_size) \
)
/* Size of the v2 B-tree internal node prefix */