summaryrefslogtreecommitdiffstats
path: root/src/H5Fprivate.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2006-11-02 04:54:19 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2006-11-02 04:54:19 (GMT)
commit19c9657f7c4029df52a804c7ed8b4d3b30cc6196 (patch)
tree6601816880f90040ae67df5bd27558c0f0670e86 /src/H5Fprivate.h
parent0f84d2fb15813c10fca48f95772626c34039619d (diff)
downloadhdf5-19c9657f7c4029df52a804c7ed8b4d3b30cc6196.zip
hdf5-19c9657f7c4029df52a804c7ed8b4d3b30cc6196.tar.gz
hdf5-19c9657f7c4029df52a804c7ed8b4d3b30cc6196.tar.bz2
[svn-r12842] Description:
Refactor generic property list initialization code to put property list specific routines in property list modules, instead of scattered to the four winds. Also, introduce property list class initialization objects, to make adding new property list classes in the library easier. Fix daily test failure by using H5Pget_elink_prefix() API routine instead of looking at the "raw" generic property list information. Tested on: Mac OS X/32 10.4.8 (amazon) FreeBSD/32 4.11 (sleipnir) w/threadsafe Linux/32 2.4 (heping) w/C++ & FORTRAN Linux/64 2.4 (mir) w/build-all & 1.6 compat
Diffstat (limited to 'src/H5Fprivate.h')
-rw-r--r--src/H5Fprivate.h181
1 files changed, 39 insertions, 142 deletions
diff --git a/src/H5Fprivate.h b/src/H5Fprivate.h
index 168a156..ce18ef5 100644
--- a/src/H5Fprivate.h
+++ b/src/H5Fprivate.h
@@ -323,149 +323,48 @@ typedef struct H5F_t H5F_t;
# define H5F_OVERFLOW_HSIZET2OFFT(X) 0
#endif
-/* ========= File Creation properties ============ */
-/* Definitions for the size of the file user block in bytes */
-#define H5F_CRT_USER_BLOCK_NAME "block_size"
-#define H5F_CRT_USER_BLOCK_SIZE sizeof(hsize_t)
-#define H5F_CRT_USER_BLOCK_DEF 0
-/* Definitions for the 1/2 rank for symbol table leaf nodes */
-#define H5F_CRT_SYM_LEAF_NAME "symbol_leaf"
-#define H5F_CRT_SYM_LEAF_SIZE sizeof(unsigned)
-#define H5F_CRT_SYM_LEAF_DEF 4
-/* Definitions for the 1/2 rank for btree internal nodes */
-#define H5F_CRT_BTREE_RANK_NAME "btree_rank"
-#define H5F_CRT_BTREE_RANK_SIZE sizeof(unsigned[H5B_NUM_BTREE_ID])
-#define H5F_CRT_BTREE_RANK_DEF {HDF5_BTREE_SNODE_IK_DEF,HDF5_BTREE_ISTORE_IK_DEF}
-/* Definitions for byte number in an address */
-#define H5F_CRT_ADDR_BYTE_NUM_NAME "addr_byte_num"
-#define H5F_CRT_ADDR_BYTE_NUM_SIZE sizeof(size_t)
-#define H5F_CRT_ADDR_BYTE_NUM_DEF sizeof(haddr_t)
-/* Definitions for byte number for object size */
-#define H5F_CRT_OBJ_BYTE_NUM_NAME "obj_byte_num"
-#define H5F_CRT_OBJ_BYTE_NUM_SIZE sizeof(size_t)
-#define H5F_CRT_OBJ_BYTE_NUM_DEF sizeof(hsize_t)
-/* Definitions for version number of the superblock */
-#define H5F_CRT_SUPER_VERS_NAME "super_version"
-#define H5F_CRT_SUPER_VERS_SIZE sizeof(unsigned)
-#define H5F_CRT_SUPER_VERS_DEF HDF5_SUPERBLOCK_VERSION_DEF
-/* Definitions for free-space version number */
-#define H5F_CRT_FREESPACE_VERS_NAME "free_space_version"
-#define H5F_CRT_FREESPACE_VERS_SIZE sizeof(unsigned)
-#define H5F_CRT_FREESPACE_VERS_DEF HDF5_FREESPACE_VERSION
-/* Definitions for object directory version number */
-#define H5F_CRT_OBJ_DIR_VERS_NAME "obj_dir_version"
-#define H5F_CRT_OBJ_DIR_VERS_SIZE sizeof(unsigned)
-#define H5F_CRT_OBJ_DIR_VERS_DEF HDF5_OBJECTDIR_VERSION
-/* Definitions for shared-header format version */
-#define H5F_CRT_SHARE_HEAD_VERS_NAME "share_head_version"
-#define H5F_CRT_SHARE_HEAD_VERS_SIZE sizeof(unsigned)
-#define H5F_CRT_SHARE_HEAD_VERS_DEF HDF5_SHAREDHEADER_VERSION
+/* Sizes of object addresses & sizes in the file (in bytes) */
+#define H5F_OBJ_ADDR_SIZE sizeof(haddr_t)
+#define H5F_OBJ_SIZE_SIZE sizeof(hsize_t)
/* File-wide default character encoding can not yet be set via the file
* creation property list and is always ASCII. */
-#define H5F_CRT_DEFAULT_CSET H5T_CSET_ASCII
+#define H5F_DEFAULT_CSET H5T_CSET_ASCII
+
+/* ========= File Creation properties ============ */
+#define H5F_CRT_USER_BLOCK_NAME "block_size" /* Size of the file user block in bytes */
+#define H5F_CRT_SYM_LEAF_NAME "symbol_leaf" /* 1/2 rank for symbol table leaf nodes */
+#define H5F_CRT_BTREE_RANK_NAME "btree_rank" /* 1/2 rank for btree internal nodes */
+#define H5F_CRT_ADDR_BYTE_NUM_NAME "addr_byte_num" /* Byte number in an address */
+#define H5F_CRT_OBJ_BYTE_NUM_NAME "obj_byte_num" /* Byte number for object size */
+#define H5F_CRT_SUPER_VERS_NAME "super_version" /* Version number of the superblock */
+#define H5F_CRT_FREESPACE_VERS_NAME "free_space_version" /* Free-space version number */
+#define H5F_CRT_OBJ_DIR_VERS_NAME "obj_dir_version" /* Object directory version number */
+#define H5F_CRT_SHARE_HEAD_VERS_NAME "share_head_version" /* Shared-header format version */
/* ========= File Access properties ============ */
-/* Definitions for the initial metadata cache resize configuration */
-#define H5F_ACS_META_CACHE_INIT_CONFIG_NAME "mdc_initCacheCfg"
-#define H5F_ACS_META_CACHE_INIT_CONFIG_SIZE sizeof(H5AC_cache_config_t)
-#define H5F_ACS_META_CACHE_INIT_CONFIG_DEF H5AC__DEFAULT_CACHE_CONFIG
-
-/* Definitions for size of raw data chunk cache(elements) */
-#define H5F_ACS_DATA_CACHE_ELMT_SIZE_NAME "rdcc_nelmts"
-#define H5F_ACS_DATA_CACHE_ELMT_SIZE_SIZE sizeof(size_t)
-#define H5F_ACS_DATA_CACHE_ELMT_SIZE_DEF 521
-
-/* Definition for size of raw data chunk cache(bytes) */
-#define H5F_ACS_DATA_CACHE_BYTE_SIZE_NAME "rdcc_nbytes"
-#define H5F_ACS_DATA_CACHE_BYTE_SIZE_SIZE sizeof(size_t)
-#define H5F_ACS_DATA_CACHE_BYTE_SIZE_DEF (1024*1024)
-
-/* Definition for preemption read chunks first */
-#define H5F_ACS_PREEMPT_READ_CHUNKS_NAME "rdcc_w0"
-#define H5F_ACS_PREEMPT_READ_CHUNKS_SIZE sizeof(double)
-#define H5F_ACS_PREEMPT_READ_CHUNKS_DEF 0.75
-
-/* Definition for threshold for alignment */
-#define H5F_ACS_ALIGN_THRHD_NAME "threshold"
-#define H5F_ACS_ALIGN_THRHD_SIZE sizeof(hsize_t)
-#define H5F_ACS_ALIGN_THRHD_DEF 1
-
-/* Definition for alignment */
-#define H5F_ACS_ALIGN_NAME "align"
-#define H5F_ACS_ALIGN_SIZE sizeof(hsize_t)
-#define H5F_ACS_ALIGN_DEF 1
-
-/* Definition for minimum metadata allocation block size (when
- aggregating metadata allocations. */
-#define H5F_ACS_META_BLOCK_SIZE_NAME "meta_block_size"
-#define H5F_ACS_META_BLOCK_SIZE_SIZE sizeof(hsize_t)
-#define H5F_ACS_META_BLOCK_SIZE_DEF 2048
-
-/* Definition for maximum sieve buffer size (when data sieving
- is allowed by file driver */
-#define H5F_ACS_SIEVE_BUF_SIZE_NAME "sieve_buf_size"
-#define H5F_ACS_SIEVE_BUF_SIZE_SIZE sizeof(size_t)
-#define H5F_ACS_SIEVE_BUF_SIZE_DEF (64*1024)
-
-/* Definition for minimum "small data" allocation block size (when
- aggregating "small" raw data allocations. */
-#define H5F_ACS_SDATA_BLOCK_SIZE_NAME "sdata_block_size"
-#define H5F_ACS_SDATA_BLOCK_SIZE_SIZE sizeof(hsize_t)
-#define H5F_ACS_SDATA_BLOCK_SIZE_DEF 2048
-
-/* Definition for garbage-collect references */
-#define H5F_ACS_GARBG_COLCT_REF_NAME "gc_ref"
-#define H5F_ACS_GARBG_COLCT_REF_SIZE sizeof(unsigned)
-#define H5F_ACS_GARBG_COLCT_REF_DEF 0
-
-/* Definition for file driver ID */
-#define H5F_ACS_FILE_DRV_ID_NAME "driver_id"
-#define H5F_ACS_FILE_DRV_ID_SIZE sizeof(hid_t)
-#define H5F_ACS_FILE_DRV_ID_DEF H5FD_SEC2
-
-/* Definition for file driver info */
-#define H5F_ACS_FILE_DRV_INFO_NAME "driver_info"
-#define H5F_ACS_FILE_DRV_INFO_SIZE sizeof(void*)
-#define H5F_ACS_FILE_DRV_INFO_DEF NULL
-
-/* Definition for file close degree */
-#define H5F_CLOSE_DEGREE_NAME "close_degree"
-#define H5F_CLOSE_DEGREE_SIZE sizeof(H5F_close_degree_t)
-#define H5F_CLOSE_DEGREE_DEF H5F_CLOSE_DEFAULT
-
-/* Definition for offset position in file for family file driver */
-#define H5F_ACS_FAMILY_OFFSET_NAME "family_offset"
-#define H5F_ACS_FAMILY_OFFSET_SIZE sizeof(hsize_t)
-#define H5F_ACS_FAMILY_OFFSET_DEF 0
-
-/* Definition for new member size of family driver. It's private
- * property only used by h5repart */
-#define H5F_ACS_FAMILY_NEWSIZE_NAME "family_newsize"
-#define H5F_ACS_FAMILY_NEWSIZE_SIZE sizeof(hsize_t)
-#define H5F_ACS_FAMILY_NEWSIZE_DEF 0
-
-/* Definition for whether to convert family to sec2 driver. It's private
- * property only used by h5repart */
-#define H5F_ACS_FAMILY_TO_SEC2_NAME "family_to_sec2"
-#define H5F_ACS_FAMILY_TO_SEC2_SIZE sizeof(hbool_t)
-#define H5F_ACS_FAMILY_TO_SEC2_DEF FALSE
-
-/* Definition for data type in multi file driver */
-#define H5F_ACS_MULTI_TYPE_NAME "multi_type"
-#define H5F_ACS_MULTI_TYPE_SIZE sizeof(H5FD_mem_t)
-#define H5F_ACS_MULTI_TYPE_DEF H5FD_MEM_DEFAULT
-
-/* Definition for 'use latest format version' flag */
-#define H5F_ACS_LATEST_FORMAT_NAME "latest_format"
-#define H5F_ACS_LATEST_FORMAT_SIZE sizeof(hbool_t)
-#define H5F_ACS_LATEST_FORMAT_DEF FALSE
+#define H5F_ACS_META_CACHE_INIT_CONFIG_NAME "mdc_initCacheCfg" /* Initial metadata cache resize configuration */
+#define H5F_ACS_DATA_CACHE_ELMT_SIZE_NAME "rdcc_nelmts" /* Size of raw data chunk cache(elements) */
+#define H5F_ACS_DATA_CACHE_BYTE_SIZE_NAME "rdcc_nbytes" /* Size of raw data chunk cache(bytes) */
+#define H5F_ACS_PREEMPT_READ_CHUNKS_NAME "rdcc_w0" /* Preemption read chunks first */
+#define H5F_ACS_ALIGN_THRHD_NAME "threshold" /* Threshold for alignment */
+#define H5F_ACS_ALIGN_NAME "align" /* Alignment */
+#define H5F_ACS_META_BLOCK_SIZE_NAME "meta_block_size" /* Minimum metadata allocation block size (when aggregating metadata allocations) */
+#define H5F_ACS_SIEVE_BUF_SIZE_NAME "sieve_buf_size" /* Maximum sieve buffer size (when data sieving is allowed by file driver) */
+#define H5F_ACS_SDATA_BLOCK_SIZE_NAME "sdata_block_size" /* Minimum "small data" allocation block size (when aggregating "small" raw data allocations) */
+#define H5F_ACS_GARBG_COLCT_REF_NAME "gc_ref" /* Garbage-collect references */
+#define H5F_ACS_FILE_DRV_ID_NAME "driver_id" /* File driver ID */
+#define H5F_ACS_FILE_DRV_INFO_NAME "driver_info" /* File driver info */
+#define H5F_ACS_CLOSE_DEGREE_NAME "close_degree" /* File close degree */
+#define H5F_ACS_FAMILY_OFFSET_NAME "family_offset" /* Offset position in file for family file driver */
+#define H5F_ACS_FAMILY_NEWSIZE_NAME "family_newsize" /* New member size of family driver. (private property only used by h5repart) */
+#define H5F_ACS_FAMILY_TO_SEC2_NAME "family_to_sec2" /* Whether to convert family to sec2 driver. (private property only used by h5repart) */
+#define H5F_ACS_MULTI_TYPE_NAME "multi_type" /* Data type in multi file driver */
+#define H5F_ACS_LATEST_FORMAT_NAME "latest_format" /* 'Use latest format version' flag */
/* ======================== File Mount properties ====================*/
-/* Definition for whether absolute symlinks local to file. */
-#define H5F_MNT_SYM_LOCAL_NAME "local"
-#define H5F_MNT_SYM_LOCAL_SIZE sizeof(hbool_t)
-#define H5F_MNT_SYM_LOCAL_DEF FALSE
+#define H5F_MNT_SYM_LOCAL_NAME "local" /* Whether absolute symlinks local to file. */
+
#ifdef H5_HAVE_PARALLEL
/* Which process writes metadata */
@@ -530,11 +429,8 @@ H5_DLL void H5F_addr_encode(const H5F_t *, uint8_t** /*in,out*/, haddr_t);
H5_DLL void H5F_addr_decode(const H5F_t *, const uint8_t** /*in,out*/,
haddr_t* /*out*/);
-/* Callback functions for file access class */
-H5_DLL herr_t H5F_acs_create(hid_t fapl_id, void *close_data);
-H5_DLL herr_t H5F_acs_close(hid_t fapl_id, void *close_data);
-H5_DLL herr_t H5F_acs_copy(hid_t new_fapl_id, hid_t old_fapl_id,
- void *close_data);
+/* File access property list callbacks */
+H5_DLL herr_t H5P_facc_close(hid_t dxpl_id, void *close_data);
/* Shared file list related routines */
H5_DLL herr_t H5F_sfile_assert_num(unsigned n);
@@ -546,4 +442,5 @@ H5_DLL herr_t H5F_fake_free(H5F_t *f);
/* Debugging functions */
H5_DLL herr_t H5F_debug(H5F_t *f, hid_t dxpl_id, FILE * stream, int indent, int fwidth);
-#endif
+#endif /* _H5Fprivate_H */
+