summaryrefslogtreecommitdiffstats
path: root/src/H5C2pkg.h
diff options
context:
space:
mode:
authorJohn Mainzer <mainzer@hdfgroup.org>2008-03-20 21:35:41 (GMT)
committerJohn Mainzer <mainzer@hdfgroup.org>2008-03-20 21:35:41 (GMT)
commit437208be66bcaffa01ab5630a91d9f340d95941a (patch)
tree39901a6bdee42b0521a618a68fa648e97fe88307 /src/H5C2pkg.h
parentcbdca772735710a372dcf57915d3bc5bff58ef07 (diff)
downloadhdf5-437208be66bcaffa01ab5630a91d9f340d95941a.zip
hdf5-437208be66bcaffa01ab5630a91d9f340d95941a.tar.gz
hdf5-437208be66bcaffa01ab5630a91d9f340d95941a.tar.bz2
[svn-r14761] Several odds and sods:
1) Code to read and write the metadata journaling configuration block and associated test code. (Quincey: Just recalled that I have not converted the memory type of the metadata journaling configuration block to H5FD_MEM_SUPER per our email conversation. It will be in the next checkin.) 2) Dummy begin/end transaction calls on the off chance that Quincey gets to working on this before I check in the real ones. 3) Updates to cache2 in test to reduce the size of the test according to the value of the HDF5TestExpress environment variable. Run times on Phoenix using the core file driver are as follows: HDF5TestExpress = 0 20:20 HDF5TestExpress = 1 4:56 HDF5TestExpress = 2 3:18 HDF5TestExpress = 3 0:25 With HDF5TestExpress = 3, I skip the smoke checks entirely. With HDF5TestExpress = 2, I set the number of itterations as low as it can go without a major re-write. (Albert: I hope running with HDF5TestExpress = 2 will work for you. If it doesn't, we will just have to run with HDF5TestExpress = 3 on RedStorm, and skip the smoke checks for now. Tested serial on Phonenix and parallel on kagiso.
Diffstat (limited to 'src/H5C2pkg.h')
-rw-r--r--src/H5C2pkg.h24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/H5C2pkg.h b/src/H5C2pkg.h
index 6c3a0de..7d12053 100644
--- a/src/H5C2pkg.h
+++ b/src/H5C2pkg.h
@@ -743,6 +743,13 @@ struct H5C2_jbrb_t
* external file, so this field must be defined if
* journaling is enabled.
*
+ * To avoid allocating extra memory, mdj_file_name_ptr
+ * points into the approprite location in the in core
+ * image of the metadata journaling configuration block.
+ *
+ * mdj_conf_block_addr: Address of the metadata journaling configuration
+ * block on disk, or HADDR_UNDEF if that block is undefined.
+ *
* mdj_conf_block_len: Length (in bytes) of the metadata journaling
* configuration block, or 0 if that block is undefined.
*
@@ -999,10 +1006,20 @@ struct H5C2_jbrb_t
*
****************************************************************************/
-#define H5C2__H5C2_T_MAGIC 0x005CAC0F
-#define H5C2__MAX_NUM_TYPE_IDS 16
+#define H5C2__H5C2_T_MAGIC 0x005CAC0F
+#define H5C2__MAX_NUM_TYPE_IDS 16
#define H5C2__PREFIX_LEN 32
+#define H5C2__JOURNAL_MAGIC_LEN (size_t)4
+#define H5C2__JOURNAL_CONF_MAGIC "MDJC"
+#define H5C2__JOURNAL_CONF_VERSION ((uint8_t)1)
+#define H5C2__JOURNAL_BLOCK_LEN(pathLen, f) \
+ ( H5C2__JOURNAL_MAGIC_LEN + \
+ 1 + /* version */ \
+ H5F_SIZEOF_SIZE(f) + \
+ ((pathLen) + 1) + \
+ 4 /* checksum */ )
+
struct H5C2_t
{
uint32_t magic;
@@ -1088,7 +1105,8 @@ struct H5C2_t
hbool_t mdj_enabled;
char * mdj_file_name_ptr;
- size_t mdj_conf_block_len;
+ haddr_t mdj_conf_block_addr;
+ hsize_t mdj_conf_block_len;
void * mdj_conf_block_ptr;
struct H5C2_jbrb_t mdj_jbrb;