summaryrefslogtreecommitdiffstats
path: root/src/H5Sprivate.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5Sprivate.h')
-rw-r--r--src/H5Sprivate.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/H5Sprivate.h b/src/H5Sprivate.h
index 8744872..bd27f09 100644
--- a/src/H5Sprivate.h
+++ b/src/H5Sprivate.h
@@ -115,6 +115,31 @@ typedef struct H5S_sel_iter_t {
} u;
} H5S_sel_iter_t;
+#ifdef H5S_DEBUG
+typedef struct H5S_iostats_t {
+ H5S_sel_type ftype;
+ H5S_sel_type mtype;
+
+ struct {
+ H5_timer_t scat_timer; /*time spent scattering */
+ hsize_t scat_nbytes; /*scatter throughput */
+ hsize_t scat_ncalls; /*number of calls */
+ H5_timer_t gath_timer; /*time spent gathering */
+ hsize_t gath_nbytes; /*gather throughput */
+ hsize_t gath_ncalls; /*number of calls */
+ H5_timer_t bkg_timer; /*time for background */
+ hsize_t bkg_nbytes; /*background throughput */
+ hsize_t bkg_ncalls; /*number of calls */
+ H5_timer_t read_timer; /*time for read calls */
+ hsize_t read_nbytes; /*total bytes read */
+ hsize_t read_ncalls; /*number of calls */
+ H5_timer_t write_timer; /*time for write calls */
+ hsize_t write_nbytes; /*total bytes written */
+ hsize_t write_ncalls; /*number of calls */
+ } stats[2]; /* 0=output, 1=input */
+} H5S_iostats_t;
+#endif
+
/* If the module using this macro is allowed access to the private variables, access them directly */
#ifdef H5S_PACKAGE
#define H5S_GET_EXTENT_TYPE(S) ((S)->extent.type)
@@ -173,6 +198,9 @@ typedef struct H5S_sel_iter_t {
/* Operations on dataspaces */
H5_DLL H5S_t *H5S_copy(const H5S_t *src, hbool_t share_selection, hbool_t copy_max);
H5_DLL herr_t H5S_close(H5S_t *ds);
+#ifdef H5S_DEBUG
+H5_DLL H5S_iostats_t *H5S_find(const H5S_t *mem_space, const H5S_t *file_space);
+#endif /* H5S_DEBUG */
H5_DLL H5S_class_t H5S_get_simple_extent_type(const H5S_t *ds);
H5_DLL hssize_t H5S_get_simple_extent_npoints(const H5S_t *ds);
H5_DLL hsize_t H5S_get_npoints_max(const H5S_t *ds);