23 #error "Do not include this file outside the H5D package!" 30 #include "H5Dprivate.h" 33 #include "H5ACprivate.h" 34 #include "H5Gprivate.h" 35 #include "H5SLprivate.h" 36 #include "H5Tprivate.h" 43 #define H5D_MINHDR_SIZE 256 46 #define H5D_BUILD_IO_INFO_WRT(io_info, ds, dxpl_c, dxpl_i, str, buf) \ 47 (io_info)->dset = ds; \ 48 (io_info)->dxpl_cache = dxpl_c; \ 49 (io_info)->dxpl_id = dxpl_i; \ 50 (io_info)->store = str; \ 51 (io_info)->op_type = H5D_IO_OP_WRITE; \ 52 (io_info)->u.wbuf = buf 53 #define H5D_BUILD_IO_INFO_RD(io_info, ds, dxpl_c, dxpl_i, str, buf) \ 54 (io_info)->dset = ds; \ 55 (io_info)->dxpl_cache = dxpl_c; \ 56 (io_info)->dxpl_id = dxpl_i; \ 57 (io_info)->store = str; \ 58 (io_info)->op_type = H5D_IO_OP_READ; \ 59 (io_info)->u.rbuf = buf 61 #define H5D_CHUNK_HASH(D, ADDR) H5F_addr_hash(ADDR, (D)->cache.chunk.nslots) 64 #define H5D_MARK_SPACE 0x01 65 #define H5D_MARK_LAYOUT 0x02 116 size_t dset_max_nseq,
size_t *dset_curr_seq,
size_t dset_len_arr[],
hsize_t dset_offset_arr[],
117 size_t mem_max_nseq,
size_t *mem_curr_seq,
size_t mem_len_arr[],
hsize_t mem_offset_arr[]);
119 size_t dset_max_nseq,
size_t *dset_curr_seq,
size_t dset_len_arr[],
hsize_t dset_offset_arr[],
120 size_t mem_max_nseq,
size_t *mem_curr_seq,
size_t mem_len_arr[],
hsize_t mem_offset_arr[]);
132 #ifdef H5_HAVE_PARALLEL 189 #ifndef H5_HAVE_PARALLEL 194 #ifdef H5_HAVE_PARALLEL 293 H5O_storage_chunk_t *storage_dst,
hid_t dxpl_id);
357 #ifdef H5_HAVE_PARALLEL 543 const hsize_t *point,
void *op_data);
553 const H5S_t *mem_space,
const H5S_t *file_space,
hid_t dset_xfer_plist,
566 const H5S_t *space, H5S_sel_iter_t *iter,
size_t nelmts,
567 const H5D_dxpl_cache_t *dxpl_cache,
void *_buf);
584 unsigned update_flags);
588 H5O_storage_contig_t *storage);
598 H5F_t *f_dst, H5O_storage_contig_t *storage_dst,
H5T_t *src_dtype,
599 H5O_copy_t *cpy_info,
hid_t dxpl_id);
601 const H5O_storage_t *store);
624 #ifdef H5_HAVE_PARALLEL 629 H5O_layout_chunk_t *layout_src,
H5F_t *f_dst, H5O_storage_chunk_t *storage_dst,
631 const H5O_pline_t *pline_src, H5O_copy_t *cpy_info,
hid_t dxpl_id);
633 const H5O_pline_t *pline,
hsize_t *btree_size);
637 H5O_storage_t *store);
641 uint32_t *filters,
void *
buf);
642 #ifdef H5D_CHUNK_DEBUG 649 H5F_t *f_dst, H5O_storage_compact_t *storage_dst,
H5T_t *src_dtype,
650 H5O_copy_t *cpy_info,
hid_t dxpl_id);
664 size_t nelmts,
size_t min_buf_size,
hid_t dxpl_id);
669 #ifdef H5_HAVE_PARALLEL 672 #ifndef H5Dmpio_DEBUG 673 #define H5Dmpio_DEBUG 705 const H5S_t *file_space,
const H5S_t *mem_space,
716 H5_DLL herr_t H5D__current_cache_size_test(
hid_t did,
size_t *nbytes_used,
int *nused);
H5_DLL herr_t H5D__layout_set_io_ops(const H5D_t *dataset)
int(* H5D_chunk_iterate_func_t)(const H5D_chk_idx_info_t *idx_info, H5D_chunk_cb_func_t chunk_cb, void *chunk_udata)
H5D_layout_read_func_t ser_read
H5_DLL H5D_t * H5D__create(H5F_t *file, hid_t type_id, const H5S_t *space, hid_t dcpl_id, hid_t dapl_id, hid_t dxpl_id)
H5D_dcpl_cache_t dcpl_cache
H5_DLL herr_t H5D__read(H5D_t *dataset, hid_t mem_type_id, const H5S_t *mem_space, const H5S_t *file_space, hid_t dset_xfer_plist, void *buf)
H5_DLL herr_t H5D__chunk_dump_index(H5D_t *dset, hid_t dxpl_id, FILE *stream)
H5_DLL herr_t H5D__fill_init(H5D_fill_buf_info_t *fb_info, void *caller_fill_buf, H5MM_allocate_t alloc_func, void *alloc_info, H5MM_free_t free_func, void *free_info, const H5O_fill_t *fill, const H5T_t *dset_type, hid_t dset_type_id, size_t nelmts, size_t min_buf_size, hid_t dxpl_id)
H5_DLL herr_t H5D__chunk_bh_info(H5F_t *f, hid_t dxpl_id, H5O_layout_t *layout, const H5O_pline_t *pline, hsize_t *btree_size)
herr_t(* H5D_chunk_delete_func_t)(const H5D_chk_idx_info_t *idx_info)
struct H5D_rdcc_ent_t H5D_rdcc_ent_t
H5_DLL herr_t H5D__contig_fill(const H5D_t *dset, hid_t dxpl_id)
herr_t(* H5D_layout_write_func_t)(struct H5D_io_info_t *io_info, const H5D_type_info_t *type_info, hsize_t nelmts, const H5S_t *file_space, const H5S_t *mem_space, struct H5D_chunk_map_t *fm)
H5D_compact_storage_t compact
void *(* H5MM_allocate_t)(size_t size, void *alloc_info)
herr_t(* H5D_chunk_size_func_t)(const H5D_chk_idx_info_t *idx_info, hsize_t *idx_size)
H5D_chunk_info_t * last_chunk_info
H5_DLL herr_t H5D__chunk_copy(H5F_t *f_src, H5O_storage_chunk_t *storage_src, H5O_layout_chunk_t *layout_src, H5F_t *f_dst, H5O_storage_chunk_t *storage_dst, const H5S_extent_t *ds_extent_src, const H5T_t *dt_src, const H5O_pline_t *pline_src, H5O_copy_t *cpy_info, hid_t dxpl_id)
H5D_chunk_dest_func_t dest
H5D_chunk_storage_t chunk
struct H5D_rdcc_t H5D_rdcc_t
hbool_t bkg_buf_allocated
H5_DLL herr_t H5D__get_space_status(H5D_t *dset, H5D_space_status_t *allocation, hid_t dxpl_id)
H5D_layout_writevv_func_t writevv
H5_DLL herr_t H5D__scatgath_read(const H5D_io_info_t *io_info, const H5D_type_info_t *type_info, hsize_t nelmts, const H5S_t *file_space, const H5S_t *mem_space)
H5_DLL herr_t H5D__chunk_allocated(H5D_t *dset, hid_t dxpl_id, hsize_t *nbytes)
H5D_chunk_create_func_t create
H5_DLL size_t H5D__layout_meta_size(const H5F_t *f, const H5O_layout_t *layout, hbool_t include_compact_data)
H5D_chunk_insert_func_t insert
herr_t(* H5D_chunk_get_addr_func_t)(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata)
H5_DLL herr_t H5D__chunk_delete(H5F_t *f, hid_t dxpl_id, H5O_t *oh, H5O_storage_t *store)
H5_DLL herr_t H5D__flush_sieve_buf(H5D_t *dataset, hid_t dxpl_id)
H5_DLL herr_t H5D__fill_refill_vl(H5D_fill_buf_info_t *fb_info, size_t nelmts, hid_t dxpl_id)
struct H5D_chunk_rec_t H5D_chunk_rec_t
hbool_t(* H5D_layout_is_space_alloc_func_t)(const H5O_storage_t *storage)
herr_t(* H5D_layout_construct_func_t)(H5F_t *f, H5D_t *dset)
const H5O_pline_t * pline
H5D_layout_io_init_func_t io_init
H5_DLL herr_t H5D__layout_oh_read(H5D_t *dset, hid_t dxpl_id, hid_t dapl_id, H5P_genplist_t *plist)
herr_t(* H5D_chunk_insert_func_t)(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata)
herr_t(* H5D_chunk_init_func_t)(const H5D_chk_idx_info_t *idx_info, const H5S_t *space, haddr_t dset_ohdr_addr)
hbool_t use_caller_fill_buf
H5D_layout_init_func_t init
H5_DLL herr_t H5D__contig_delete(H5F_t *f, hid_t dxpl_id, const H5O_storage_t *store)
herr_t(* H5D_io_single_write_func_t)(const struct H5D_io_info_t *io_info, const H5D_type_info_t *type_info, hsize_t nelmts, const H5S_t *file_space, const H5S_t *mem_space)
H5D_layout_read_func_t multi_read
H5D_layout_io_term_func_t io_term
H5_DLLVAR const H5D_layout_ops_t H5D_LOPS_CHUNK[1]
H5_DLL herr_t H5D__contig_copy(H5F_t *f_src, const H5O_storage_contig_t *storage_src, H5F_t *f_dst, H5O_storage_contig_t *storage_dst, H5T_t *src_dtype, H5O_copy_t *cpy_info, hid_t dxpl_id)
herr_t(* H5D_layout_io_init_func_t)(const struct H5D_io_info_t *io_info, const H5D_type_info_t *type_info, hsize_t nelmts, const H5S_t *file_space, const H5S_t *mem_space, struct H5D_chunk_map_t *cm)
unsigned long long hsize_t
herr_t(* H5D_chunk_dest_func_t)(const H5D_chk_idx_info_t *idx_info)
H5_DLL herr_t H5D__chunk_create(const H5D_t *dset, hid_t dxpl_id)
const struct H5D_rdcc_t * rdcc
H5D_rdcc_ent_t * H5D_rdcc_ent_ptr_t
herr_t(* H5D_layout_io_term_func_t)(const struct H5D_chunk_map_t *cm)
H5_DLL herr_t H5D__get_chunk_storage_size(H5D_t *dset, hid_t dxpl_id, const hsize_t *offset, hsize_t *storage_size)
H5_DLL htri_t H5D__chunk_cacheable(const H5D_io_info_t *io_info, haddr_t caddr, hbool_t write_op)
H5_DLL herr_t H5D__get_storage_size(H5D_t *dset, hid_t dxpl_id, hsize_t *storage_size)
H5_DLLVAR const H5D_layout_ops_t H5D_LOPS_CONTIG[1]
H5_DLL herr_t H5D__chunk_unlock(const H5D_io_info_t *io_info, const H5D_chunk_ud_t *udata, hbool_t dirty, void *chunk, uint32_t naccessed)
H5_DLLVAR const H5D_chunk_ops_t H5D_COPS_BTREE[1]
struct H5D_rdcc_ent_t * next
H5O_layout_chunk_t * layout
herr_t(* H5D_chunk_remove_func_t)(const H5D_chk_idx_info_t *idx_info, H5D_chunk_common_ud_t *udata)
H5_DLL herr_t H5D__vlen_get_buf_size(void *elem, hid_t type_id, unsigned ndim, const hsize_t *point, void *op_data)
void(* H5MM_free_t)(void *mem, void *free_info)
hbool_t(* H5D_chunk_is_space_alloc_func_t)(const H5O_storage_chunk_t *storage)
H5_DLL herr_t H5D__alloc_storage(const H5D_t *dset, hid_t dxpl_id, H5D_time_alloc_t time_alloc, hbool_t full_overwrite, hsize_t old_dim[])
H5D_io_single_write_func_t single_write
struct H5D_rdcc_ent_t * tail
H5D_layout_construct_func_t construct
H5_DLL herr_t H5D__contig_read(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, hsize_t nelmts, const H5S_t *file_space, const H5S_t *mem_space, H5D_chunk_map_t *fm)
H5_DLL herr_t H5D__contig_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, hsize_t nelmts, const H5S_t *file_space, const H5S_t *mem_space, H5D_chunk_map_t *fm)
H5_DLL herr_t H5D__scatgath_write(const H5D_io_info_t *io_info, const H5D_type_info_t *type_info, hsize_t nelmts, const H5S_t *file_space, const H5S_t *mem_space)
H5_DLL herr_t H5D__get_dxpl_cache(hid_t dxpl_id, H5D_dxpl_cache_t **cache)
herr_t(* H5D_layout_read_func_t)(struct H5D_io_info_t *io_info, const H5D_type_info_t *type_info, hsize_t nelmts, const H5S_t *file_space, const H5S_t *mem_space, struct H5D_chunk_map_t *fm)
struct H5D_io_info_t H5D_io_info_t
H5_DLL hbool_t H5D__contig_is_space_alloc(const H5O_storage_t *storage)
hbool_t tconv_buf_allocated
H5D_dxpl_cache_t H5D_def_dxpl_cache
struct H5D_chunk_cached_t H5D_chunk_cached_t
H5D_chunk_iterate_func_t iterate
H5D_chunk_init_func_t init
struct H5D_rdcc_ent_t * head
H5_DLL void * H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata, hbool_t relax)
const H5O_storage_chunk_t * storage
herr_t(* H5D_chunk_reset_func_t)(H5O_storage_chunk_t *storage, hbool_t reset_addr)
H5MM_allocate_t fill_alloc_func
H5_DLLVAR const H5D_layout_ops_t H5D_LOPS_COMPACT[1]
H5_DLL herr_t H5D__chunk_lookup(const H5D_t *dset, hid_t dxpl_id, const hsize_t *chunk_offset, hsize_t chunk_idx, H5D_chunk_ud_t *udata)
H5_DLL herr_t H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsize_t *offset, uint32_t data_size, const void *buf)
H5_DLL herr_t H5D__scatter_mem(const void *_tscat_buf, const H5S_t *space, H5S_sel_iter_t *iter, size_t nelmts, const H5D_dxpl_cache_t *dxpl_cache, void *_buf)
struct H5D_chunk_ud_t H5D_chunk_ud_t
herr_t(* H5D_chunk_create_func_t)(const H5D_chk_idx_info_t *idx_info)
H5_DLL herr_t H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim)
struct H5D_chk_idx_info_t H5D_chk_idx_info_t
H5_DLL herr_t H5D__efl_bh_info(H5F_t *f, hid_t dxpl_id, H5O_efl_t *efl, hsize_t *heap_size)
struct H5D_io_ops_t H5D_io_ops_t
ssize_t(* H5D_layout_writevv_func_t)(const struct H5D_io_info_t *io_info, size_t dset_max_nseq, size_t *dset_curr_seq, size_t dset_len_arr[], hsize_t dset_offset_arr[], size_t mem_max_nseq, size_t *mem_curr_seq, size_t mem_len_arr[], hsize_t mem_offset_arr[])
H5_DLL herr_t H5D__chunk_dest(H5F_t *f, hid_t dxpl_id, H5D_t *dset)
H5_DLL herr_t H5D__chunk_set_info(const H5D_t *dset)
struct H5D_rdcc_ent_t * prev
struct H5D_chunk_info_t H5D_chunk_info_t
H5_DLL void * H5D__vlen_get_buf_size_alloc(size_t size, void *info)
struct H5D_shared_t H5D_shared_t
struct H5D_rdcc_ent_t ** slot
ssize_t(* H5D_layout_readvv_func_t)(const struct H5D_io_info_t *io_info, size_t dset_max_nseq, size_t *dset_curr_seq, size_t dset_len_arr[], hsize_t dset_offset_arr[], size_t mem_max_nseq, size_t *mem_curr_seq, size_t mem_len_arr[], hsize_t mem_offset_arr[])
H5D_layout_write_func_t multi_write
H5D_chunk_delete_func_t idx_delete
H5_DLL herr_t H5D__compact_fill(const H5D_t *dset, hid_t dxpl_id)
H5D_chunk_resize_func_t resize
H5_DLL herr_t H5D__chunk_init(H5F_t *f, hid_t dxpl_id, const H5D_t *dset, hid_t dapl_id)
int(* H5D_chunk_cb_func_t)(const H5D_chunk_rec_t *chunk_rec, void *udata)
H5T_path_t * fill_to_mem_tpath
H5T_path_t * mem_to_dset_tpath
H5_DLL herr_t H5D__select_read(const H5D_io_info_t *io_info, const H5D_type_info_t *type_info, hsize_t nelmts, const H5S_t *file_space, const H5S_t *mem_space)
herr_t(* H5D_chunk_dump_func_t)(const H5O_storage_chunk_t *storage, FILE *stream)
H5D_chunk_dump_func_t dump
H5D_chunk_is_space_alloc_func_t is_space_alloc
H5D_chunk_copy_shutdown_func_t copy_shutdown
H5D_layout_ops_t layout_ops
H5D_io_single_read_func_t single_read
H5D_layout_flush_func_t flush
struct H5D_rdcdc_t H5D_rdcdc_t
H5_DLL herr_t H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite, hsize_t old_dim[])
H5_DLL herr_t H5D__contig_alloc(H5F_t *f, hid_t dxpl_id, H5O_storage_contig_t *storage)
hbool_t has_vlen_fill_type
H5_DLL herr_t H5D__flush_real(H5D_t *dataset, hid_t dxpl_id)
H5_DLL herr_t H5D__fill(const void *fill, const H5T_t *fill_type, void *buf, const H5T_t *buf_type, const H5S_t *space, hid_t dxpl_id)
herr_t(* H5D_io_single_read_func_t)(const struct H5D_io_info_t *io_info, const H5D_type_info_t *type_info, hsize_t nelmts, const H5S_t *file_space, const H5S_t *mem_space)
H5D_layout_is_space_alloc_func_t is_space_alloc
H5D_chunk_get_addr_func_t get_addr
herr_t(* H5D_chunk_copy_shutdown_func_t)(H5O_storage_chunk_t *storage_src, H5O_storage_chunk_t *storage_dst, hid_t dxpl_id)
H5_DLL herr_t H5D__chunk_direct_read(const H5D_t *dset, hid_t dxpl_id, hsize_t *offset, uint32_t *filters, void *buf)
H5MM_free_t fill_free_func
H5_DLL herr_t H5D__mark(const H5D_t *dataset, hid_t dxpl_id, unsigned flags)
HDFFCLIBAPI intf intf * flags
union H5D_storage_t H5D_storage_t
H5FD_mpio_collective_opt_t
struct H5D_fill_buf_info_t H5D_fill_buf_info_t
H5D_chunk_size_func_t size
struct H5D_chunk_common_ud_t H5D_chunk_common_ud_t
H5D_layout_readvv_func_t readvv
struct H5D_chunk_ops_t H5D_chunk_ops_t
H5_DLL herr_t H5D__layout_oh_create(H5F_t *file, hid_t dxpl_id, H5O_t *oh, H5D_t *dset, hid_t dapl_id)
H5D_layout_write_func_t ser_write
H5_DLL herr_t H5D__term_pub_interface(void)
struct H5D_type_info_t H5D_type_info_t
H5_DLL H5D_t * H5D__create_named(const H5G_loc_t *loc, const char *name, hid_t type_id, const H5S_t *space, hid_t lcpl_id, hid_t dcpl_id, hid_t dapl_id, hid_t dxpl_id)
herr_t(* H5D_layout_init_func_t)(H5F_t *f, hid_t dxpl_id, const H5D_t *dset, hid_t dapl_id)
herr_t(* H5D_layout_flush_func_t)(H5D_t *dataset, hid_t dxpl_id)
const H5D_dxpl_cache_t * dxpl_cache
struct H5D_chunk_map_t H5D_chunk_map_t
H5_DLL herr_t H5D__fill_term(H5D_fill_buf_info_t *fb_info)
H5_DLL hbool_t H5D__chunk_is_space_alloc(const H5O_storage_t *storage)
H5O_storage_chunk_t * storage
H5D_chunk_reset_func_t reset
HDFFCLIBAPI intf * offset
H5D_chunk_common_ud_t common
H5_DLL haddr_t H5D__get_offset(const H5D_t *dset)
H5_DLL herr_t H5D__select_write(const H5D_io_info_t *io_info, const H5D_type_info_t *type_info, hsize_t nelmts, const H5S_t *file_space, const H5S_t *mem_space)
H5_DLL hbool_t H5D__efl_is_space_alloc(const H5O_storage_t *storage)
herr_t(* H5D_chunk_resize_func_t)(H5O_layout_chunk_t *layout)
struct H5D_layout_ops_t H5D_layout_ops_t
H5_DLL herr_t H5D__layout_oh_write(H5D_t *dataset, hid_t dxpl_id, H5O_t *oh, unsigned update_flags)
H5_DLL herr_t H5D__chunk_update_cache(H5D_t *dset, hid_t dxpl_id)
unsigned char * sieve_buf
H5_DLLVAR const H5D_layout_ops_t H5D_LOPS_EFL[1]
herr_t(* H5D_chunk_copy_setup_func_t)(const H5D_chk_idx_info_t *idx_info_src, const H5D_chk_idx_info_t *idx_info_dst)
const H5T_subset_info_t * cmpd_subset
H5D_chunk_info_t * single_chunk_info
H5_DLL herr_t H5D__check_filters(H5D_t *dataset)
H5_DLL herr_t H5D__set_extent(H5D_t *dataset, const hsize_t *size, hid_t dxpl_id)
const H5O_layout_chunk_t * layout
H5D_chunk_copy_setup_func_t copy_setup
H5_DLL herr_t H5D__compact_copy(H5F_t *f_src, H5O_storage_compact_t *storage_src, H5F_t *f_dst, H5O_storage_compact_t *storage_dst, H5T_t *src_dtype, H5O_copy_t *cpy_info, hid_t dxpl_id)
H5D_contig_storage_t contig
H5D_chunk_info_t * single_chunk_info
H5_DLL herr_t H5D__term_deprec_interface(void)