summaryrefslogtreecommitdiffstats
path: root/src/H5Dprivate.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5Dprivate.h')
-rw-r--r--src/H5Dprivate.h92
1 files changed, 72 insertions, 20 deletions
diff --git a/src/H5Dprivate.h b/src/H5Dprivate.h
index 3254dde..ef942f7 100644
--- a/src/H5Dprivate.h
+++ b/src/H5Dprivate.h
@@ -51,32 +51,82 @@ typedef struct H5D_create_t {
H5O_pline_t pline; /*data filter pipeline */
} H5D_create_t;
-/* Data transfer property list */
-typedef struct H5D_xfer_t {
- size_t buf_size; /*max temp buffer size */
- void *tconv_buf; /*type conversion buffer or null */
- void *bkg_buf; /*background buffer or null */
- H5T_bkg_t need_bkg; /*type of background buffer needed */
- double split_ratios[3];/*B-tree node splitting ratios */
- uintn cache_hyper; /*cache hyperslab blocks during I/O? */
- uintn block_limit; /*largest hyperslab block to cache */
- size_t vector_size; /*Max. # of I/O vectors for hyperslabs */
- H5MM_allocate_t vlen_alloc; /*VL datatype allocation function */
- void *alloc_info; /*VL datatype allocation information */
- H5MM_free_t vlen_free; /*VL datatype free function */
- void *free_info; /*VL datatype free information */
- hid_t driver_id; /*File driver ID */
- void *driver_info; /*File driver specific information */
-#ifdef COALESCE_READS
- uintn gather_reads; /*coalesce single reads into a read transaction */
+/* Data transfer properties */
+/* Definitions for maximum temp buffer size property */
+#define H5D_XFER_MAX_TEMP_BUF_NAME "max_temp_buf"
+#define H5D_XFER_MAX_TEMP_BUF_SIZE sizeof(hsize_t)
+#define H5D_XFER_MAX_TEMP_BUF_DEF (1024*1024)
+/* Definitions for type conversion buffer property */
+#define H5D_XFER_TCONV_BUF_NAME "tconv_buf"
+#define H5D_XFER_TCONV_BUF_SIZE sizeof(void *)
+#define H5D_XFER_TCONV_BUF_DEF NULL
+/* Definitions for background buffer property */
+#define H5D_XFER_BKGR_BUF_NAME "bkgr_buf"
+#define H5D_XFER_BKGR_BUF_SIZE sizeof(void *)
+#define H5D_XFER_BKGR_BUF_DEF NULL
+/* Definitions for background buffer type property */
+#define H5D_XFER_BKGR_BUF_TYPE_NAME "bkgr_buf_type"
+#define H5D_XFER_BKGR_BUF_TYPE_SIZE sizeof(H5T_bkg_t)
+#define H5D_XFER_BKGR_BUF_TYPE_DEF H5T_BKG_NO
+/* Definitions for B-tree node splitting ratio property */
+#define H5D_XFER_BTREE_SPLIT_RATIO_NAME "btree_split_ratio"
+#define H5D_XFER_BTREE_SPLIT_RATIO_SIZE sizeof(double[3])
+#define H5D_XFER_BTREE_SPLIT_RATIO_DEF {0.1, 0.5, 0.9}
+/* Definitions for hyperslab caching property */
+#define H5D_XFER_HYPER_CACHE_NAME "hyper_cache"
+#define H5D_XFER_HYPER_CACHE_SIZE sizeof(uintn)
+#ifndef H5_HAVE_PARALLEL
+#define H5D_XFER_HYPER_CACHE_DEF 1
+#else
+#define H5D_XFER_HYPER_CACHE_DEF 0
#endif
-} H5D_xfer_t;
+/* Definitions for hyperslab cache limit property */
+#define H5D_XFER_HYPER_CACHE_LIM_NAME "hyper_cache_limit"
+#define H5D_XFER_HYPER_CACHE_LIM_SIZE sizeof(uintn)
+#define H5D_XFER_HYPER_CACHE_LIM_DEF 0
+/* Definitions for hyperslab cache limit property */
+#define H5D_XFER_HYPER_CACHE_LIM_NAME "hyper_cache_limit"
+#define H5D_XFER_HYPER_CACHE_LIM_SIZE sizeof(uintn)
+#define H5D_XFER_HYPER_CACHE_LIM_DEF 0
+/* Definitions for vlen allocation function property */
+#define H5D_XFER_VLEN_ALLOC_NAME "vlen_alloc"
+#define H5D_XFER_VLEN_ALLOC_SIZE sizeof(H5MM_allocate_t)
+#define H5D_XFER_VLEN_ALLOC_DEF NULL
+/* Definitions for vlen allocation info property */
+#define H5D_XFER_VLEN_ALLOC_INFO_NAME "vlen_alloc_info"
+#define H5D_XFER_VLEN_ALLOC_INFO_SIZE sizeof(void *)
+#define H5D_XFER_VLEN_ALLOC_INFO_DEF NULL
+/* Definitions for vlen free function property */
+#define H5D_XFER_VLEN_FREE_NAME "vlen_free"
+#define H5D_XFER_VLEN_FREE_SIZE sizeof(H5MM_free_t)
+#define H5D_XFER_VLEN_FREE_DEF NULL
+/* Definitions for vlen free info property */
+#define H5D_XFER_VLEN_FREE_INFO_NAME "vlen_free_info"
+#define H5D_XFER_VLEN_FREE_INFO_SIZE sizeof(void *)
+#define H5D_XFER_VLEN_FREE_INFO_DEF NULL
+/* Definitions for file driver ID property */
+#define H5D_XFER_VFL_ID_NAME "vfl_id"
+#define H5D_XFER_VFL_ID_SIZE sizeof(hid_t)
+#define H5D_XFER_VFL_ID_DEF H5FD_VFD_DEFAULT
+/* Definitions for file driver info property */
+#define H5D_XFER_VFL_INFO_NAME "vfl_info"
+#define H5D_XFER_VFL_INFO_SIZE sizeof(void *)
+#define H5D_XFER_VFL_INFO_DEF NULL
+#ifdef COALESCE_READS
+/* Definitions for 'gather reads' property */
+#define H5D_XFER_GATHER_READS_NAME "gather_reads"
+#define H5D_XFER_GATHER_READS_SIZE sizeof(uintn)
+#define H5D_XFER_GATHER_READS_DEF 0
+#endif /* COALESCE_READS */
+/* Definitions for hyperslab vector size property */
+#define H5D_XFER_HYPER_VECTOR_SIZE_NAME "vec_size"
+#define H5D_XFER_HYPER_VECTOR_SIZE_SIZE sizeof(size_t)
+#define H5D_XFER_HYPER_VECTOR_SIZE_DEF 1024
typedef struct H5D_t H5D_t;
/* library variables */
__DLLVAR__ const H5D_create_t H5D_create_dflt;
-__DLLVAR__ H5D_xfer_t H5D_xfer_dflt;
/* Functions defined in H5D.c */
__DLL__ herr_t H5D_init(void);
@@ -101,5 +151,7 @@ __DLL__ H5F_t * H5D_get_file(const H5D_t *dset);
__DLL__ hsize_t H5D_get_storage_size(H5D_t *dset);
__DLL__ void *H5D_vlen_get_buf_size_alloc(size_t size, void *info);
__DLL__ herr_t H5D_vlen_get_buf_size(void *elem, hid_t type_id, hsize_t ndim, hssize_t *point, void *op_data);
+__DLL__ herr_t H5D_xfer_create(hid_t dxpl_id, void *create_data);
+__DLL__ herr_t H5D_xfer_close(hid_t dxpl_id, void *close_data);
#endif