summaryrefslogtreecommitdiffstats
path: root/src/H5Dpkg.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2015-04-17 20:49:27 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2015-04-17 20:49:27 (GMT)
commit7bf3a426e8634c851d9c550fd980f07d3e29fc1b (patch)
tree4102bab36bd666a2caf3421e05a6e3b1b350220c /src/H5Dpkg.h
parentc6717e8134be832103cf777d3685d61d225b61c3 (diff)
downloadhdf5-7bf3a426e8634c851d9c550fd980f07d3e29fc1b.zip
hdf5-7bf3a426e8634c851d9c550fd980f07d3e29fc1b.tar.gz
hdf5-7bf3a426e8634c851d9c550fd980f07d3e29fc1b.tar.bz2
[svn-r26837] Description:
Separate allocating chunk on disk from inserting the chunk record into the index. This allows a "SWMR-safe" insert/update of chunks (the chunk is always allocated -> written -> inserted/updated in the index). Tested on: Mac OSX/64 10.10.2 (amazon) w/parallel & serial Linux/32 2.6.18 (jam) w/serial & parallel
Diffstat (limited to 'src/H5Dpkg.h')
-rw-r--r--src/H5Dpkg.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h
index 06cc2c0..a3a3985 100644
--- a/src/H5Dpkg.h
+++ b/src/H5Dpkg.h
@@ -33,6 +33,7 @@
/* Other private headers needed by this file */
#include "H5ACprivate.h" /* Metadata cache */
+#include "H5Fprivate.h" /* File access */
#include "H5Gprivate.h" /* Groups */
#include "H5SLprivate.h" /* Skip lists */
#include "H5Tprivate.h" /* Datatypes */
@@ -238,8 +239,8 @@ typedef struct H5D_chk_idx_info_t {
* The chunk's file address, filter mask and size on disk are not key values.
*/
typedef struct H5D_chunk_rec_t {
- uint32_t nbytes; /* Size of stored data */
hsize_t offset[H5O_LAYOUT_NDIMS]; /* Logical offset to start */
+ uint32_t nbytes; /* Size of stored data */
unsigned filter_mask; /* Excluded filters */
haddr_t chunk_addr; /* Address of chunk in file */
} H5D_chunk_rec_t;
@@ -265,8 +266,7 @@ typedef struct H5D_chunk_ud_t {
/* Upward */
unsigned idx_hint; /*index of chunk in cache, if present */
- haddr_t addr; /*file address of chunk */
- uint32_t nbytes; /*size of stored data */
+ H5F_block_t chunk_block; /*offset/length of chunk in file */
unsigned filter_mask; /*excluded filters */
} H5D_chunk_ud_t;
@@ -496,7 +496,7 @@ typedef struct H5D_rdcc_ent_t {
hsize_t offset[H5O_LAYOUT_NDIMS]; /*chunk name */
uint32_t rd_count; /*bytes remaining to be read */
uint32_t wr_count; /*bytes remaining to be written */
- haddr_t chunk_addr; /*address of chunk in file */
+ H5F_block_t chunk_block; /*offset/length of chunk in file */
uint8_t *chunk; /*the unfiltered chunk data */
unsigned idx; /*index in hash table */
struct H5D_rdcc_ent_t *next;/*next item in doubly-linked list */