summaryrefslogtreecommitdiffstats
path: root/src/H5Dpkg.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2007-11-20 22:12:52 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2007-11-20 22:12:52 (GMT)
commit3aa3af4fb6a4c4fe9c5b69306a31ee1fc1ed1bf6 (patch)
treedde58a467b14f9a5f9a67d669d47ba42d1bdafaa /src/H5Dpkg.h
parent3d7bb85a3d267704507ffc708395bda17ac98166 (diff)
downloadhdf5-3aa3af4fb6a4c4fe9c5b69306a31ee1fc1ed1bf6.zip
hdf5-3aa3af4fb6a4c4fe9c5b69306a31ee1fc1ed1bf6.tar.gz
hdf5-3aa3af4fb6a4c4fe9c5b69306a31ee1fc1ed1bf6.tar.bz2
[svn-r14278] Description:
- Remember # of elements in file selection, instead of querying more than once - Handle building chunk map for single element as special case Tested on: FreeBSD/32 6.2 (duty) in debug mode FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Mac OS X/32 10.4.10 (amazon) in debug mode Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
Diffstat (limited to 'src/H5Dpkg.h')
-rw-r--r--src/H5Dpkg.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h
index 9ac7f05..4fbec67 100644
--- a/src/H5Dpkg.h
+++ b/src/H5Dpkg.h
@@ -200,21 +200,26 @@ typedef struct H5D_chunk_info_t {
/* Main structure holding the mapping between file chunks and memory */
typedef struct H5D_chunk_map_t {
- H5SL_t *fsel; /* Skip list containing file dataspaces for all chunks */
- hsize_t last_index; /* Index of last chunk operated on */
- H5D_chunk_info_t *last_chunk_info; /* Pointer to last chunk's info */
+ H5O_layout_t *layout; /* Dataset layout information*/
+ hsize_t nelmts; /* Number of elements selected in file & memory dataspaces */
+
const H5S_t *file_space; /* Pointer to the file dataspace */
- const H5S_t *mem_space; /* Pointer to the memory dataspace */
+ unsigned f_ndims; /* Number of dimensions for file dataspace */
hsize_t f_dims[H5O_LAYOUT_NDIMS]; /* File dataspace dimensions */
+
+ const H5S_t *mem_space; /* Pointer to the memory dataspace */
H5S_t *mchunk_tmpl; /* Dataspace template for new memory chunks */
- unsigned f_ndims; /* Number of dimensions for file dataspace */
H5S_sel_iter_t mem_iter; /* Iterator for elements in memory selection */
unsigned m_ndims; /* Number of dimensions for memory dataspace */
+ H5S_sel_type msel_type; /* Selection type in memory */
+
+ H5SL_t *fsel; /* Skip list containing file dataspaces for all chunks */
+ hsize_t last_index; /* Index of last chunk operated on */
+ H5D_chunk_info_t *last_chunk_info; /* Pointer to last chunk's info */
hsize_t chunks[H5O_LAYOUT_NDIMS]; /* Number of chunks in each dimension */
hsize_t chunk_dim[H5O_LAYOUT_NDIMS]; /* Size of chunk in each dimension */
hsize_t down_chunks[H5O_LAYOUT_NDIMS]; /* "down" size of number of chunks in each dimension */
- H5O_layout_t *layout; /* Dataset layout information*/
- H5S_sel_type msel_type; /* Selection type in memory */
+
#ifdef H5_HAVE_PARALLEL
hsize_t total_chunks; /* Number of total chunks */
hbool_t *select_chunk; /* store the information about whether this chunk is selected or not */