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 #define H5D_CRT_DATA_PIPELINE_NAME "pline"              
00051 
00052 
00053 #define H5D_ACS_DATA_CACHE_NUM_SLOTS_NAME   "rdcc_nslots"   
00054 #define H5D_ACS_DATA_CACHE_BYTE_SIZE_NAME   "rdcc_nbytes"   
00055 #define H5D_ACS_PREEMPT_READ_CHUNKS_NAME    "rdcc_w0"       
00056 
00057 
00058 #define H5D_XFER_MAX_TEMP_BUF_NAME      "max_temp_buf"  
00059 #define H5D_XFER_TCONV_BUF_NAME         "tconv_buf"     
00060 #define H5D_XFER_BKGR_BUF_NAME          "bkgr_buf"      
00061 #define H5D_XFER_BKGR_BUF_TYPE_NAME     "bkgr_buf_type" 
00062 #define H5D_XFER_BTREE_SPLIT_RATIO_NAME "btree_split_ratio" 
00063 #define H5D_XFER_VLEN_ALLOC_NAME        "vlen_alloc"    
00064 #define H5D_XFER_VLEN_ALLOC_INFO_NAME   "vlen_alloc_info" 
00065 #define H5D_XFER_VLEN_FREE_NAME         "vlen_free"     
00066 #define H5D_XFER_VLEN_FREE_INFO_NAME    "vlen_free_info" 
00067 #define H5D_XFER_VFL_ID_NAME            "vfl_id"        
00068 #define H5D_XFER_VFL_INFO_NAME          "vfl_info"      
00069 #define H5D_XFER_HYPER_VECTOR_SIZE_NAME "vec_size"      
00070 #ifdef H5_HAVE_PARALLEL
00071 #define H5D_XFER_IO_XFER_MODE_NAME      "io_xfer_mode"  
00072 #define H5D_XFER_MPIO_COLLECTIVE_OPT_NAME "mpio_collective_opt" 
00073 #define H5D_XFER_MPIO_CHUNK_OPT_HARD_NAME "mpio_chunk_opt_hard"
00074 #define H5D_XFER_MPIO_CHUNK_OPT_NUM_NAME "mpio_chunk_opt_num"
00075 #define H5D_XFER_MPIO_CHUNK_OPT_RATIO_NAME "mpio_chunk_opt_ratio"
00076 #endif 
00077 #define H5D_XFER_EDC_NAME               "err_detect"    
00078 #define H5D_XFER_FILTER_CB_NAME         "filter_cb"     
00079 #define H5D_XFER_CONV_CB_NAME           "type_conv_cb"  
00080 #define H5D_XFER_XFORM_NAME             "data_transform" 
00081 #ifdef H5_HAVE_INSTRUMENTED_LIBRARY
00082 
00083 #define H5D_XFER_COLL_CHUNK_LINK_HARD_NAME "coll_chunk_link_hard"
00084 #define H5D_XFER_COLL_CHUNK_MULTI_HARD_NAME "coll_chunk_multi_hard"
00085 #define H5D_XFER_COLL_CHUNK_LINK_NUM_TRUE_NAME "coll_chunk_link_true"
00086 #define H5D_XFER_COLL_CHUNK_LINK_NUM_FALSE_NAME "coll_chunk_link_false"
00087 #define H5D_XFER_COLL_CHUNK_MULTI_RATIO_COLL_NAME "coll_chunk_multi_coll"
00088 #define H5D_XFER_COLL_CHUNK_MULTI_RATIO_IND_NAME "coll_chunk_multi_ind"
00089 #define H5D_XFER_COLL_CHUNK_LINK_TO_MULTI "coll_chunk_link_mul"
00090 #define H5D_XFER_COLL_CHUNK_LINK_TO_MULTI_OPT "coll_chunk_link_mul_opt"
00091 
00092 
00093 #define H5D_XFER_COLL_CHUNK_SIZE        sizeof(unsigned)
00094 #define H5D_XFER_COLL_CHUNK_DEF         1
00095 #define H5D_XFER_COLL_CHUNK_FIX         0
00096 #endif 
00097 
00098 
00099 #define H5D_TEMP_BUF_SIZE       (1024 * 1024)
00100 
00101 
00102 #define H5D_IO_VECTOR_SIZE      1024
00103 
00104 
00105 #define H5D_VLEN_ALLOC          NULL
00106 #define H5D_VLEN_ALLOC_INFO     NULL
00107 #define H5D_VLEN_FREE           NULL
00108 #define H5D_VLEN_FREE_INFO      NULL
00109 
00110 
00111 
00112 
00113 
00114 
00115 
00116 typedef struct H5D_t H5D_t;
00117 
00118 
00119 typedef struct H5D_dxpl_cache_t {
00120     size_t max_temp_buf;        
00121     void *tconv_buf;            
00122     void *bkgr_buf;             
00123     H5T_bkg_t bkgr_buf_type;    
00124     H5Z_EDC_t err_detect;       
00125     double btree_split_ratio[3];
00126     size_t vec_size;            
00127 #ifdef H5_HAVE_PARALLEL
00128     H5FD_mpio_xfer_t xfer_mode; 
00129     H5FD_mpio_collective_opt_t coll_opt_mode; 
00130 #endif 
00131     H5Z_cb_t filter_cb;         
00132     H5Z_data_xform_t *data_xform_prop; 
00133 } H5D_dxpl_cache_t;
00134 
00135 
00136 typedef struct H5D_dcpl_cache_t {
00137     H5O_fill_t fill;            
00138     H5O_pline_t pline;          
00139     H5O_efl_t efl;              
00140 } H5D_dcpl_cache_t;
00141 
00142 
00143 
00144 
00145 
00146 
00147 
00148 
00149 
00150 
00151 
00152 H5_DLL herr_t H5D_init(void);
00153 H5_DLL H5D_t *H5D_open(const H5G_loc_t *loc, hid_t dapl_id, hid_t dxpl_id);
00154 H5_DLL herr_t H5D_close(H5D_t *dataset);
00155 H5_DLL H5O_loc_t *H5D_oloc(H5D_t *dataset);
00156 H5_DLL H5G_name_t *H5D_nameof(H5D_t *dataset);
00157 H5_DLL H5T_t *H5D_typeof(const H5D_t *dset);
00158 H5_DLL herr_t H5D_flush(const H5F_t *f, hid_t dxpl_id, unsigned flags);
00159 
00160 
00161 H5_DLL herr_t H5D_vlen_reclaim(hid_t type_id, H5S_t *space, hid_t plist_id,
00162     void *buf);
00163 
00164 
00165 H5_DLL herr_t H5D_contig_delete(H5F_t *f, hid_t dxpl_id,
00166     const H5O_layout_t *layout);
00167 
00168 
00169 H5_DLL herr_t H5D_chunk_idx_reset(H5O_layout_t *layout);
00170 H5_DLL herr_t H5D_chunk_delete(H5F_t *f, hid_t dxpl_id, H5O_layout_t *layout);
00171 
00172 
00173 H5_DLL herr_t H5D_btree_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE * stream,
00174                                 int indent, int fwidth, unsigned ndims);
00175 
00176 #endif 
00177