summaryrefslogtreecommitdiffstats
path: root/src/H5Oprivate.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2007-07-26 13:56:09 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2007-07-26 13:56:09 (GMT)
commitbf842f1d52ea679301c8516a16e06622b9f988fb (patch)
treec0b91c681c696a5978e1a407440a808b60c9e314 /src/H5Oprivate.h
parent265833164dda0f2a6948922b95e32b5c7d9a9604 (diff)
downloadhdf5-bf842f1d52ea679301c8516a16e06622b9f988fb.zip
hdf5-bf842f1d52ea679301c8516a16e06622b9f988fb.tar.gz
hdf5-bf842f1d52ea679301c8516a16e06622b9f988fb.tar.bz2
[svn-r14017] Description:
Fix problem with fill value messages where the version of the format for a fill value message could depend on the "use the latest format" flag from the file after it was initially created. Tested on: Mac OS X/32 10.4.10 (amazon) FreeBSD/32 6.2 (duty) FreeBSD/64 6.2 (liberty)
Diffstat (limited to 'src/H5Oprivate.h')
-rw-r--r--src/H5Oprivate.h22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h
index 737237b..06c5ebf 100644
--- a/src/H5Oprivate.h
+++ b/src/H5Oprivate.h
@@ -232,18 +232,31 @@ typedef struct H5O_linfo_t {
haddr_t name_bt2_addr; /* Address of v2 B-tree for indexing names of links */
} H5O_linfo_t;
+/* Initial version of the "old" fill value information */
+/* (It doesn't look like this value was ever used in the file -QAK) */
+#define H5O_FILL_VERSION_1 1
+/* Revised version of the "new" fill value information */
+#define H5O_FILL_VERSION_2 2
+/* Version of the "new" fill value information with smaller default format */
+#define H5O_FILL_VERSION_3 3
+
+/* The latest version of the format. Look through the 'encode', 'decode'
+ * and 'size' callback for places to change when updating this. */
+#define H5O_FILL_VERSION_LATEST H5O_FILL_VERSION_3
+
/*
- * New Fill Value Message.
+ * Fill Value Message.
* (Data structure in memory for both "old" and "new" fill value messages)
*
- * The new fill value message is fill value plus
- * space allocation time, fill value writing time, whether fill
- * value is defined, and the location of the message if it's shared
+ * The fill value message is fill value plus space allocation time, fill value
+ * writing time, whether fill value is defined, and the location of the
+ * message if it's shared.
*/
typedef struct H5O_fill_t {
H5O_shared_t sh_loc; /* Shared message info (must be first) */
+ unsigned version; /* Encoding version number */
H5T_t *type; /*type. Null implies same as dataset */
ssize_t size; /*number of bytes in the fill value */
void *buf; /*the fill value */
@@ -609,6 +622,7 @@ H5_DLL hsize_t H5O_efl_total_size(H5O_efl_t *efl);
/* Fill value operators */
H5_DLL herr_t H5O_fill_reset_dyn(H5O_fill_t *fill);
H5_DLL herr_t H5O_fill_convert(H5O_fill_t *fill, H5T_t *type, hbool_t *fill_changed, hid_t dxpl_id);
+H5_DLL herr_t H5O_fill_set_latest_version(H5O_fill_t *fill);
/* Link operators */
H5_DLL herr_t H5O_link_delete(H5F_t *f, hid_t dxpl_id, H5O_t *open_oh,