diff options
Diffstat (limited to 'src/H5Dprivate.h')
-rw-r--r-- | src/H5Dprivate.h | 92 |
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 |