summaryrefslogtreecommitdiffstats
path: root/src/H5Oprivate.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2009-07-29 22:14:42 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2009-07-29 22:14:42 (GMT)
commit2a07e56c0522aa3ff86005ad923b9bd96c05689e (patch)
tree054ade86c41c7f763fee67c2ae9b7551e9dbad67 /src/H5Oprivate.h
parenta7372ec352b6485a466157e70929cc5f0973fba8 (diff)
downloadhdf5-2a07e56c0522aa3ff86005ad923b9bd96c05689e.zip
hdf5-2a07e56c0522aa3ff86005ad923b9bd96c05689e.tar.gz
hdf5-2a07e56c0522aa3ff86005ad923b9bd96c05689e.tar.bz2
[svn-r17263] Description:
Bring r17244:17262 from trunk to revise_chunks branch Tested on: Mac OS X/32 10.5.7 (amazon) w/debug & production FreeBSD/32 6.3 (duty) w/debug h5committest not needed on this branch
Diffstat (limited to 'src/H5Oprivate.h')
-rw-r--r--src/H5Oprivate.h83
1 files changed, 57 insertions, 26 deletions
diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h
index 119abb3..49f0b9b 100644
--- a/src/H5Oprivate.h
+++ b/src/H5Oprivate.h
@@ -321,6 +321,7 @@ typedef struct H5O_efl_t {
H5O_efl_entry_t *slot; /*array of external file entries */
} H5O_efl_t;
+
/*
* Data Layout Message.
* (Data structure in file)
@@ -357,17 +358,69 @@ typedef struct H5O_efl_t {
struct H5D_layout_ops_t; /* Defined in H5Dpkg.h */
struct H5D_chunk_ops_t; /* Defined in H5Dpkg.h */
-typedef struct H5O_layout_contig_t {
+typedef struct H5O_storage_contig_t {
haddr_t addr; /* File address of data */
+} H5O_storage_contig_t;
+
+typedef struct H5O_storage_chunk_btree_t {
+ haddr_t addr; /* File address of B-tree */
+} H5O_storage_chunk_btree_t;
+
+typedef struct H5O_storage_chunk_farray_t {
+ haddr_t addr; /* File address of fixed array */
+} H5O_storage_chunk_farray_t;
+
+typedef struct H5O_storage_chunk_earray_t {
+ haddr_t addr; /* File address of extensible array */
+} H5O_storage_chunk_earray_t;
+
+typedef struct H5O_storage_chunk_t {
+ H5D_chunk_index_t idx_type; /* Type of chunk index */
+ union {
+ H5O_storage_chunk_btree_t btree; /* Information for v1 B-tree index */
+ H5O_storage_chunk_farray_t farray; /* Information for fixed array index */
+ H5O_storage_chunk_earray_t earray; /* Information for extensible array index */
+ } u;
+} H5O_storage_chunk_t;
+
+typedef struct H5O_storage_compact_t {
+ hbool_t dirty; /* Dirty flag for compact dataset */
+ size_t size; /* Size of buffer in bytes */
+ void *buf; /* Buffer for compact dataset */
+} H5O_storage_compact_t;
+
+typedef struct H5O_storage_t {
+ H5D_layout_t type; /* Type of layout */
+ union {
+ H5O_storage_contig_t contig; /* Information for contiguous storage */
+ H5O_storage_chunk_t chunk; /* Information for chunked storage */
+ H5O_storage_compact_t compact; /* Information for compact storage */
+ } u;
+} H5O_storage_t;
+
+typedef struct H5O_layout_contig_t {
hsize_t size; /* Size of data in bytes */
} H5O_layout_contig_t;
typedef struct H5O_layout_chunk_btree_t {
- haddr_t addr; /* File address of B-tree */
H5RC_t *shared; /* Ref-counted shared info for B-tree nodes */
} H5O_layout_chunk_btree_t;
/* Forward declaration of structs used below */
+struct H5FA_t; /* Defined in H5FAprivate.h */
+
+typedef struct H5O_layout_chunk_farray_t {
+ /* Creation parameters for fixed array data structure */
+ struct {
+ uint8_t max_dblk_page_nelmts_bits; /* Log2(Max. # of elements in a data block page) -
+ i.e. # of bits needed to store max. # of elements
+ in a data block page */
+ } cparam;
+
+ struct H5FA_t *fa; /* Pointer to fixed index array struct */
+} H5O_layout_chunk_farray_t;
+
+/* Forward declaration of structs used below */
struct H5EA_t; /* Defined in H5EAprivate.h */
typedef struct H5O_layout_chunk_earray_t {
@@ -380,28 +433,12 @@ typedef struct H5O_layout_chunk_earray_t {
uint8_t max_dblk_page_nelmts_bits; /* Log2(Max. # of elements in data block page) - i.e. # of bits needed to store max. # of elements in data block page */
} cparam;
- haddr_t addr; /* File address of extensible array */
haddr_t dset_ohdr_addr; /* File address dataset's object header */
unsigned unlim_dim; /* Rank of unlimited dimension for dataset */
hsize_t swizzled_down_chunks[H5O_LAYOUT_NDIMS]; /* swizzled "down" size of number of chunks in each dimension */
struct H5EA_t *ea; /* Pointer to extensible array struct */
} H5O_layout_chunk_earray_t;
-/* Forward declaration of structs used below */
-struct H5FA_t; /* Defined in H5FAprivate.h */
-
-typedef struct H5O_layout_chunk_farray_t {
- /* Creation parameters for fixed array data structure */
- struct {
- uint8_t max_dblk_page_nelmts_bits; /* Log2(Max. # of elements in a data block page) -
- i.e. # of bits needed to store max. # of elements
- in a data block page */
- } cparam;
-
- haddr_t addr; /* File address of fixed index array */
- struct H5FA_t *fa; /* Pointer to fixed index array struct */
-} H5O_layout_chunk_farray_t;
-
typedef struct H5O_layout_chunk_t {
H5D_chunk_index_t idx_type; /* Type of chunk index */
unsigned ndims; /* Num dimensions in chunk */
@@ -414,17 +451,11 @@ typedef struct H5O_layout_chunk_t {
const struct H5D_chunk_ops_t *ops; /* Pointer to chunked layout operations */
union {
H5O_layout_chunk_btree_t btree; /* Information for v1 B-tree index */
- H5O_layout_chunk_earray_t earray; /* Information for extensible array index */
H5O_layout_chunk_farray_t farray; /* Information for fixed array index */
+ H5O_layout_chunk_earray_t earray; /* Information for extensible array index */
} u;
} H5O_layout_chunk_t;
-typedef struct H5O_layout_compact_t {
- hbool_t dirty; /* Dirty flag for compact dataset */
- size_t size; /* Size of buffer in bytes */
- void *buf; /* Buffer for compact dataset */
-} H5O_layout_compact_t;
-
typedef struct H5O_layout_t {
H5D_layout_t type; /* Type of layout */
unsigned version; /* Version of message */
@@ -432,8 +463,8 @@ typedef struct H5O_layout_t {
union {
H5O_layout_contig_t contig; /* Information for contiguous layout */
H5O_layout_chunk_t chunk; /* Information for chunked layout */
- H5O_layout_compact_t compact; /* Information for compact layout */
} u;
+ H5O_storage_t store; /* Information for storing dataset elements */
} H5O_layout_t;
/* Enable reading/writing "bogus" messages */