00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _H5Dprivate_H
00020 #define _H5Dprivate_H
00021
00022
00023 #include "H5Dpublic.h"
00024
00025
00026 #include "H5FDprivate.h"
00027 #include "H5Oprivate.h"
00028 #include "H5Sprivate.h"
00029 #include "H5Zprivate.h"
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041 #ifdef NDEBUG
00042 # undef H5D_DEBUG
00043 #endif
00044
00045
00046 #define H5D_CRT_LAYOUT_NAME "layout"
00047 #define H5D_CRT_FILL_VALUE_NAME "fill_value"
00048 #define H5D_CRT_ALLOC_TIME_STATE_NAME "alloc_time_state"
00049 #define H5D_CRT_EXT_FILE_LIST_NAME "efl"
00050
00051
00052 #define H5D_ACS_DATA_CACHE_NUM_SLOTS_NAME "rdcc_nslots"
00053 #define H5D_ACS_DATA_CACHE_BYTE_SIZE_NAME "rdcc_nbytes"
00054 #define H5D_ACS_PREEMPT_READ_CHUNKS_NAME "rdcc_w0"
00055
00056
00057 #define H5D_XFER_MAX_TEMP_BUF_NAME "max_temp_buf"
00058 #define H5D_XFER_TCONV_BUF_NAME "tconv_buf"
00059 #define H5D_XFER_BKGR_BUF_NAME "bkgr_buf"
00060 #define H5D_XFER_BKGR_BUF_TYPE_NAME "bkgr_buf_type"
00061 #define H5D_XFER_BTREE_SPLIT_RATIO_NAME "btree_split_ratio"
00062 #define H5D_XFER_VLEN_ALLOC_NAME "vlen_alloc"
00063 #define H5D_XFER_VLEN_ALLOC_INFO_NAME "vlen_alloc_info"
00064 #define H5D_XFER_VLEN_FREE_NAME "vlen_free"
00065 #define H5D_XFER_VLEN_FREE_INFO_NAME "vlen_free_info"
00066 #define H5D_XFER_VFL_ID_NAME "vfl_id"
00067 #define H5D_XFER_VFL_INFO_NAME "vfl_info"
00068 #define H5D_XFER_HYPER_VECTOR_SIZE_NAME "vec_size"
00069 #ifdef H5_HAVE_PARALLEL
00070 #define H5D_XFER_IO_XFER_MODE_NAME "io_xfer_mode"
00071 #define H5D_XFER_MPIO_COLLECTIVE_OPT_NAME "mpio_collective_opt"
00072 #define H5D_XFER_MPIO_CHUNK_OPT_HARD_NAME "mpio_chunk_opt_hard"
00073 #define H5D_XFER_MPIO_CHUNK_OPT_NUM_NAME "mpio_chunk_opt_num"
00074 #define H5D_XFER_MPIO_CHUNK_OPT_RATIO_NAME "mpio_chunk_opt_ratio"
00075 #endif
00076 #define H5D_XFER_EDC_NAME "err_detect"
00077 #define H5D_XFER_FILTER_CB_NAME "filter_cb"
00078 #define H5D_XFER_CONV_CB_NAME "type_conv_cb"
00079 #define H5D_XFER_XFORM_NAME "data_transform"
00080 #ifdef H5_HAVE_INSTRUMENTED_LIBRARY
00081
00082 #define H5D_XFER_COLL_CHUNK_LINK_HARD_NAME "coll_chunk_link_hard"
00083 #define H5D_XFER_COLL_CHUNK_MULTI_HARD_NAME "coll_chunk_multi_hard"
00084 #define H5D_XFER_COLL_CHUNK_LINK_NUM_TRUE_NAME "coll_chunk_link_true"
00085 #define H5D_XFER_COLL_CHUNK_LINK_NUM_FALSE_NAME "coll_chunk_link_false"
00086 #define H5D_XFER_COLL_CHUNK_MULTI_RATIO_COLL_NAME "coll_chunk_multi_coll"
00087 #define H5D_XFER_COLL_CHUNK_MULTI_RATIO_IND_NAME "coll_chunk_multi_ind"
00088 #define H5D_XFER_COLL_CHUNK_LINK_TO_MULTI "coll_chunk_link_mul"
00089 #define H5D_XFER_COLL_CHUNK_LINK_TO_MULTI_OPT "coll_chunk_link_mul_opt"
00090
00091
00092 #define H5D_XFER_COLL_CHUNK_SIZE sizeof(unsigned)
00093 #define H5D_XFER_COLL_CHUNK_DEF 1
00094 #define H5D_XFER_COLL_CHUNK_FIX 0
00095 #endif
00096
00097
00098 #define H5D_TEMP_BUF_SIZE (1024 * 1024)
00099
00100
00101 #define H5D_IO_VECTOR_SIZE 1024
00102
00103
00104 #define H5D_VLEN_ALLOC NULL
00105 #define H5D_VLEN_ALLOC_INFO NULL
00106 #define H5D_VLEN_FREE NULL
00107 #define H5D_VLEN_FREE_INFO NULL
00108
00109
00110
00111
00112
00113
00114
00115 typedef struct H5D_t H5D_t;
00116
00117
00118 typedef struct H5D_dxpl_cache_t {
00119 size_t max_temp_buf;
00120 void *tconv_buf;
00121 void *bkgr_buf;
00122 H5T_bkg_t bkgr_buf_type;
00123 H5Z_EDC_t err_detect;
00124 double btree_split_ratio[3];
00125 size_t vec_size;
00126 #ifdef H5_HAVE_PARALLEL
00127 H5FD_mpio_xfer_t xfer_mode;
00128 H5FD_mpio_collective_opt_t coll_opt_mode;
00129 #endif
00130 H5Z_cb_t filter_cb;
00131 H5Z_data_xform_t *data_xform_prop;
00132 } H5D_dxpl_cache_t;
00133
00134
00135 typedef struct H5D_dcpl_cache_t {
00136 H5O_fill_t fill;
00137 H5O_pline_t pline;
00138 H5O_efl_t efl;
00139 } H5D_dcpl_cache_t;
00140
00141
00142 typedef struct H5D_copy_file_ud_t {
00143 H5O_copy_file_ud_common_t common;
00144 struct H5S_extent_t *src_space_extent;
00145 H5T_t *src_dtype;
00146 } H5D_copy_file_ud_t;
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158 H5_DLL herr_t H5D_init(void);
00159 H5_DLL H5D_t *H5D_open(const H5G_loc_t *loc, hid_t dapl_id, hid_t dxpl_id);
00160 H5_DLL herr_t H5D_close(H5D_t *dataset);
00161 H5_DLL H5O_loc_t *H5D_oloc(H5D_t *dataset);
00162 H5_DLL H5G_name_t *H5D_nameof(H5D_t *dataset);
00163 H5_DLL H5T_t *H5D_typeof(const H5D_t *dset);
00164 H5_DLL herr_t H5D_flush(const H5F_t *f, hid_t dxpl_id);
00165
00166
00167 H5_DLL herr_t H5D_vlen_reclaim(hid_t type_id, H5S_t *space, hid_t plist_id,
00168 void *buf);
00169
00170
00171 H5_DLL herr_t H5D_contig_delete(H5F_t *f, hid_t dxpl_id,
00172 const H5O_storage_t *store);
00173
00174
00175 H5_DLL herr_t H5D_chunk_idx_reset(H5O_storage_chunk_t *storage, hbool_t reset_addr);
00176 H5_DLL herr_t H5D_chunk_delete(H5F_t *f, hid_t dxpl_id, H5O_t *oh,
00177 H5O_storage_t *store);
00178
00179
00180 H5_DLL herr_t H5D_btree_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE * stream,
00181 int indent, int fwidth, unsigned ndims);
00182
00183 #endif
00184