summaryrefslogtreecommitdiffstats
path: root/src/H5Dprivate.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2001-08-10 20:47:05 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2001-08-10 20:47:05 (GMT)
commit95862451f78960cab031031011e5c6a131e0d026 (patch)
tree391101ca102fbecbfe9cee1f608b90bb87d49b1a /src/H5Dprivate.h
parent4049965d1337bc54a21a4d3af71aa793e4baf029 (diff)
downloadhdf5-95862451f78960cab031031011e5c6a131e0d026.zip
hdf5-95862451f78960cab031031011e5c6a131e0d026.tar.gz
hdf5-95862451f78960cab031031011e5c6a131e0d026.tar.bz2
[svn-r4324] Purpose:
New Features! Description: Start migrating the internal use of property lists in the library from the older implementation to the new generic property lists. Currently, only the dataset transfer property lists are migrated to the new architecture, all the rest of the property list types are still using the older architecture. Also, the backward compatibility features are not implemented yet, so applications which use dataset transfer properties may need to make the following changes: H5Pcreate(H5P_DATASET_XFER) -> H5Pcreate_list(H5P_DATASET_XFER_NEW) and H5Pclose(<a dataset transfer property list>) -> H5Pclose_list(id) This still may have some bugs in it, especially with Fortran, but I should be wrapping up those later today. Platforms tested: FreeBSD 4.4 (hawkwind)
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