 |
HDF5
1.12.0
|
Go to the documentation of this file.
22 #if !(defined(H5EA_FRIEND) | defined(H5EA_MODULE))
23 #error "Do not include this file outside the H5EA package!"
42 #define H5EA_TEST_FILL ((uint64_t)ULLONG_MAX)
46 #define H5EA_SIZEOF_CHKSUM 4
49 #define H5EA_METADATA_PREFIX_SIZE(c) ( \
53 + ((c) ? H5EA_SIZEOF_CHKSUM : 0) \
57 #define H5EA_HEADER_SIZE(sizeof_addr, sizeof_size) ( \
59 H5EA_METADATA_PREFIX_SIZE(TRUE) \
82 #define H5EA_HEADER_SIZE_FILE(f) ( \
83 H5EA_HEADER_SIZE(H5F_SIZEOF_ADDR(f), H5F_SIZEOF_SIZE(f)) \
87 #define H5EA_HEADER_SIZE_HDR(h) ( \
88 H5EA_HEADER_SIZE((h)->sizeof_addr, (h)->sizeof_size) \
92 #define H5EA_IBLOCK_SIZE(i) ( \
94 H5EA_METADATA_PREFIX_SIZE(TRUE) \
97 + (i)->hdr->sizeof_addr \
100 + ((size_t)(i)->hdr->cparam.idx_blk_elmts * (size_t)(i)->hdr->cparam.raw_elmt_size) \
101 + ((i)->ndblk_addrs * (i)->hdr->sizeof_addr) \
102 + ((i)->nsblk_addrs * (i)->hdr->sizeof_addr) \
106 #define H5EA_SBLOCK_SIZE(s) ( \
108 H5EA_METADATA_PREFIX_SIZE(TRUE) \
111 + (s)->hdr->sizeof_addr \
112 + (s)->hdr->arr_off_size \
115 + ((s)->ndblks * (s)->dblk_page_init_size) \
116 + ((s)->ndblks * (s)->hdr->sizeof_addr) \
120 #define H5EA_DBLOCK_PREFIX_SIZE(d) ( \
122 H5EA_METADATA_PREFIX_SIZE(TRUE) \
125 + (d)->hdr->sizeof_addr \
126 + (d)->hdr->arr_off_size \
130 #define H5EA_DBLOCK_SIZE(d) ( \
132 H5EA_DBLOCK_PREFIX_SIZE(d) \
135 + ((d)->nelmts * (size_t)(d)->hdr->cparam.raw_elmt_size) \
136 + ((d)->npages * H5EA_SIZEOF_CHKSUM) \
140 #define H5EA_DBLK_PAGE_SIZE(h) ( \
141 + ((h)->dblk_page_nelmts * (size_t)(h)->cparam.raw_elmt_size) \
142 + H5EA_SIZEOF_CHKSUM \
146 #define H5EA_SIZEOF_OFFSET_BITS(b) (((b) + 7) / 8)
149 #define H5EA_SBLK_FIRST_IDX(m) (2 * H5VM_log2_of2((uint32_t)m))
369 typedef struct H5EA__ctx_cb_t {
370 herr_t (*encode)(
const void *elmt,
size_t nelmts,
void *udata);
409 void *ctx_udata,
unsigned flags);
441 haddr_t dblk_addr,
size_t dblk_nelmts,
unsigned flags);
444 haddr_t dblk_addr,
size_t dblk_nelmts);
Definition: H5EApkg.h:167
H5_DLL herr_t H5EA__dblock_dest(H5EA_dblock_t *dblock)
H5_DLL herr_t H5EA__iblock_dest(H5EA_iblock_t *iblock)
H5_DLL herr_t H5EA__hdr_modified(H5EA_hdr_t *hdr)
size_t nalloc
Definition: H5EApkg.h:183
struct H5EA_dbk_page_t H5EA_dblk_page_t
H5_DLL herr_t H5EA__dblk_page_create(H5EA_hdr_t *hdr, H5EA_sblock_t *parent, haddr_t addr)
struct H5EA_hdr_cache_ud_t H5EA_hdr_cache_ud_t
H5_DLLVAR const H5EA_class_t *const H5EA_client_class_g[H5EA_NUM_CLS_ID]
Definition: H5EApkg.h:383
size_t dblk_nelmts
Definition: H5EApkg.h:158
hbool_t pending_delete
Definition: H5EApkg.h:193
uint8_t * page_init
Definition: H5EApkg.h:263
H5_DLL H5EA_hdr_t * H5EA__hdr_protect(H5F_t *f, haddr_t ea_addr, void *ctx_udata, unsigned flags)
H5_DLL herr_t H5EA__dblock_debug(H5F_t *f, haddr_t addr, FILE *stream, int indent, int fwidth, const H5EA_class_t *cls, haddr_t hdr_addr, size_t dblk_nelmts, haddr_t obj_addr)
haddr_t addr
Definition: H5EApkg.h:318
size_t npages
Definition: H5EApkg.h:305
size_t size
Definition: H5EApkg.h:268
H5EA_stat_t stats
Definition: H5EApkg.h:179
hdr f
Definition: H5EA.c:755
size_t nsblks
Definition: H5EApkg.h:199
H5EA_hdr_t * hdr
Definition: H5EApkg.h:355
haddr_t dblk_page_addr
Definition: H5EApkg.h:365
H5F_t * f
Definition: H5EApkg.h:191
H5_DLL unsigned H5EA__dblock_sblk_idx(const H5EA_hdr_t *hdr, hsize_t idx)
H5AC_info_t cache_info
Definition: H5EApkg.h:258
H5_DLL H5EA_dblk_page_t * H5EA__dblk_page_alloc(H5EA_hdr_t *hdr, H5EA_sblock_t *parent)
size_t nelmts
Definition: H5EApkg.h:304
H5AC_info_t cache_info
Definition: H5EApkg.h:311
H5_DLL herr_t H5EA__dblk_page_dest(H5EA_dblk_page_t *dblk_page)
H5EA_sblock_t * parent
Definition: H5EApkg.h:364
size_t dblk_npages
Definition: H5EApkg.h:279
haddr_t addr
Definition: H5EApkg.h:243
hsize_t block_off
Definition: H5EApkg.h:290
size_t sizeof_addr
Definition: H5EApkg.h:194
H5_DLLVAR const H5EA_class_t H5EA_CLS_TEST[1]
Definition: H5EApkg.h:380
void * elmts
Definition: H5EApkg.h:314
H5_DLL herr_t H5EA__destroy_flush_depend(H5AC_info_t *parent_entry, H5AC_info_t *child_entry)
H5_DLL H5EA_sblock_t * H5EA__sblock_protect(H5EA_hdr_t *hdr, H5EA_iblock_t *parent, haddr_t sblk_addr, unsigned sblk_idx, unsigned flags)
hbool_t swmr_write
Definition: H5EApkg.h:209
size_t sizeof_size
Definition: H5EApkg.h:195
iblock
Definition: H5EAiblock.c:509
Definition: H5EApkg.h:156
H5EA_hdr_t * hdr
Definition: H5EApkg.h:317
haddr_t dblk_addr
Definition: H5EApkg.h:358
struct H5EA_hdr_t H5EA_hdr_t
H5_DLL herr_t H5EA__hdr_incr(H5EA_hdr_t *hdr)
CATCH haddr_t
Definition: H5EAdblock.c:162
H5_DLL herr_t H5EA__sblock_dest(H5EA_sblock_t *sblock)
H5_DLL size_t H5EA__hdr_fuse_decr(H5EA_hdr_t *hdr)
*s *s indent
Definition: H5HLdbg.c:111
hbool_t has_hdr_depend
Definition: H5EApkg.h:271
void * elmts
Definition: H5EApkg.h:237
H5EA_hdr_t * hdr
Definition: H5EApkg.h:347
H5_DLL haddr_t H5EA__dblock_create(H5EA_hdr_t *hdr, void *parent, hbool_t *stats_changed, hsize_t dblk_off, size_t nelmts)
H5_DLL haddr_t H5EA__hdr_create(H5F_t *f, const H5EA_create_t *cparam, void *ctx_udata)
dblk_page
Definition: H5EAdblkpage.c:334
H5_DLL herr_t H5EA__hdr_delete(H5EA_hdr_t *hdr)
H5_DLL H5EA_dblock_t * H5EA__dblock_protect(H5EA_hdr_t *hdr, void *parent, haddr_t dblk_addr, size_t dblk_nelmts, unsigned flags)
hsize_t start_idx
Definition: H5EApkg.h:159
#define H5_DLLVAR
Definition: H5api_adpt.h:235
H5AC_proxy_entry_t * top_proxy
Definition: H5EApkg.h:247
H5_DLL H5EA_iblock_t * H5EA__iblock_protect(H5EA_hdr_t *hdr, unsigned flags)
Definition: H5EApkg.h:354
H5EA_hdr_t * hdr
Definition: H5EApkg.h:363
haddr_t idx_blk_addr
Definition: H5EApkg.h:175
struct H5EA_sblk_info_t H5EA_sblk_info_t
size_t size
Definition: H5EApkg.h:190
unsigned char uint8_t
Definition: H5private.h:429
H5_DLL haddr_t H5EA__iblock_create(H5EA_hdr_t *hdr, hbool_t *stats_changed)
H5EA_hdr_t * hdr
Definition: H5EApkg.h:294
H5EA_create_t cparam
Definition: H5EApkg.h:172
* stats_changed
Definition: H5EAdblock.c:217
H5_DLL H5EA_dblock_t * H5EA__dblock_alloc(H5EA_hdr_t *hdr, void *parent, size_t nelmts)
hdr
Definition: H5EAhdr.c:821
Definition: H5ACprivate.h:203
hsize_t start_dblk
Definition: H5EApkg.h:160
struct H5EA_dblk_page_cache_ud_t H5EA_dblk_page_cache_ud_t
Definition: H5FLprivate.h:354
size_t file_rc
Definition: H5EApkg.h:192
size_t dblk_nelmts
Definition: H5EApkg.h:278
Definition: H5EApkg.h:285
unsigned sblk_idx
Definition: H5EApkg.h:349
Definition: H5EApkg.h:232
H5AC_info_t cache_info
Definition: H5EApkg.h:234
H5_DLL herr_t H5EA__dblk_page_unprotect(H5EA_dblk_page_t *dblk_page, unsigned cache_flags)
H5_DLL herr_t H5EA__sblock_delete(H5EA_hdr_t *hdr, H5EA_iblock_t *parent, haddr_t sblk_addr, unsigned sblk_idx)
H5_DLL herr_t H5EA__dblock_unprotect(H5EA_dblock_t *dblock, unsigned cache_flags)
H5EA_hdr_t * hdr
Definition: H5EApkg.h:242
haddr_t * dblk_addrs
Definition: H5EApkg.h:262
void * parent
Definition: H5EApkg.h:211
H5F_t * f
Definition: H5EApkg.h:340
Definition: H5EApkg.h:256
size_t size
Definition: H5EApkg.h:319
H5_DLL haddr_t H5EA__sblock_create(H5EA_hdr_t *hdr, H5EA_iblock_t *parent, hbool_t *stats_changed, unsigned sblk_idx)
struct H5EA_sblock_t H5EA_sblock_t
Definition: H5EApkg.h:309
size_t ndblks
Definition: H5EApkg.h:157
hbool_t has_hdr_depend
Definition: H5EApkg.h:299
H5_DLL herr_t H5EA__hdr_decr(H5EA_hdr_t *hdr)
struct H5EA_dblock_cache_ud_t H5EA_dblock_cache_ud_t
@ H5EA_NUM_CLS_ID
Definition: H5EAprivate.h:56
haddr_t addr
Definition: H5EApkg.h:189
H5_DLL herr_t H5EA__hdr_fuse_incr(H5EA_hdr_t *hdr)
hsize_t block_off
Definition: H5EApkg.h:261
struct H5EA_dblock_t H5EA_dblock_t
Invalid arguments to routine Resource unavailable Internal File accessibility Low level I O Function entry exit Object atom Object cache Links B Tree node Symbol table Heap Object header Datatype Dataspace Dataset Data storage Property lists Attribute Data filters External file list References Virtual File Layer Virtual Object Layer Ternary Search Trees Reference Counted Strings Error API Skip Lists Free Space Manager Shared Object Header Messages Extensible Array Fixed Array Plugin for dynamically loaded library Page Buffering API Context Map No error Argument errors Resource errors File accessibility errors FILE
Definition: H5err.txt:88
haddr_t sblk_addr
Definition: H5EApkg.h:350
haddr_t addr
Definition: H5EApkg.h:341
size_t ndblk_addrs
Definition: H5EApkg.h:251
H5_DLL herr_t H5EA__sblock_unprotect(H5EA_sblock_t *sblock, unsigned cache_flags)
H5_DLL herr_t H5EA__iblock_delete(H5EA_hdr_t *hdr)
H5FL_fac_head_t ** fac
Definition: H5EApkg.h:184
H5_DLL herr_t H5EA__dblock_delete(H5EA_hdr_t *hdr, void *parent, haddr_t dblk_addr, size_t dblk_nelmts)
H5_DLL herr_t H5EA__hdr_dest(H5EA_hdr_t *hdr)
void * cb_ctx
Definition: H5EApkg.h:206
unsigned idx
Definition: H5EApkg.h:276
size_t nsblks
Definition: H5EApkg.h:250
H5_DLL herr_t H5EA__iblock_unprotect(H5EA_iblock_t *iblock, unsigned cache_flags)
H5EA_iblock_t * parent
Definition: H5EApkg.h:273
size_t size
Definition: H5EApkg.h:296
H5EA_sblk_info_t * sblk_info
Definition: H5EApkg.h:200
H5_DLL herr_t H5EA__hdr_init(H5EA_hdr_t *hdr, void *ctx_udata)
*s *s fwidth
Definition: H5HLdbg.c:111
H5_DLL herr_t H5EA__create_flush_depend(H5AC_info_t *parent_entry, H5AC_info_t *child_entry)
Definition: H5EAprivate.h:63
Definition: H5EAprivate.h:80
H5_DLL H5EA_hdr_t * H5EA__hdr_alloc(H5F_t *f)
dblock
Definition: H5EAdblock.c:480
void * parent
Definition: H5EApkg.h:301
H5_DLL void * H5EA__hdr_alloc_elmts(H5EA_hdr_t *hdr, size_t nelmts)
Definition: H5EApkg.h:339
size_t dblk_page_init_size
Definition: H5EApkg.h:280
#define H5_DLL
Definition: H5api_adpt.h:234
void * elmts
Definition: H5EApkg.h:291
Definition: H5EApkg.h:346
haddr_t addr
Definition: H5EApkg.h:267
H5_DLL herr_t H5EA__sblock_debug(H5F_t *f, haddr_t addr, FILE *stream, int indent, int fwidth, const H5EA_class_t *cls, haddr_t hdr_addr, unsigned sblk_idx, haddr_t obj_addr)
void * parent
Definition: H5EApkg.h:356
H5AC_info_t cache_info
Definition: H5EApkg.h:287
H5EA_sblock_t * parent
Definition: H5EApkg.h:324
H5_DLL H5EA_iblock_t * H5EA__iblock_alloc(H5EA_hdr_t *hdr)
unsigned char arr_off_size
Definition: H5EApkg.h:196
H5AC_proxy_entry_t * top_proxy
Definition: H5EApkg.h:300
H5AC_proxy_entry_t * top_proxy
Definition: H5EApkg.h:323
Definition: H5EApkg.h:331
H5_DLL herr_t H5EA__iblock_debug(H5F_t *f, haddr_t addr, FILE *stream, int indent, int fwidth, const H5EA_class_t *cls, haddr_t hdr_addr, haddr_t obj_addr)
H5EA_hdr_t * hdr
Definition: H5EApkg.h:266
H5AC_info_t cache_info
Definition: H5EApkg.h:169
size_t nsblk_addrs
Definition: H5EApkg.h:252
haddr_t * dblk_addrs
Definition: H5EApkg.h:238
size_t size
Definition: H5EApkg.h:244
cache_flags
Definition: H5EAhdr.c:749
hdr stats stored nelmts
Definition: H5EAdblock.c:214
H5EA_iblock_t * parent
Definition: H5EApkg.h:348
H5_DLL herr_t H5EA__hdr_unprotect(H5EA_hdr_t *hdr, unsigned cache_flags)
H5AC_proxy_entry_t * top_proxy
Definition: H5EApkg.h:210
H5EA_hdr_t * hdr
Definition: H5EApkg.h:332
void * ctx_udata
Definition: H5EApkg.h:342
sblk_idx
Definition: H5EA.c:425
H5_DLL herr_t H5EA__hdr_debug(H5F_t *f, haddr_t addr, FILE *stream, int indent, int fwidth, const H5EA_class_t *cls, haddr_t obj_addr)
H5_DLL herr_t H5EA__hdr_free_elmts(H5EA_hdr_t *hdr, size_t nelmts, void *elmts)
struct H5EA_hdr_t::@4 elmt_fac
size_t ndblks
Definition: H5EApkg.h:277
int herr_t
Definition: H5public.h:128
struct H5EA_iblock_t H5EA_iblock_t
hbool_t has_hdr_depend
Definition: H5EApkg.h:322
bool hbool_t
Definition: H5public.h:159
haddr_t * sblk_addrs
Definition: H5EApkg.h:239
Definition: H5Cprivate.h:1597
struct H5EA_sblock_cache_ud_t H5EA_sblock_cache_ud_t
size_t nelmts
Definition: H5EApkg.h:357
haddr_t addr
Definition: H5EApkg.h:295
hsize_t
Definition: H5overflow.txt:44
H5_DLL H5EA_sblock_t * H5EA__sblock_alloc(H5EA_hdr_t *hdr, H5EA_iblock_t *parent, unsigned sblk_idx)
size_t dblk_page_size
Definition: H5EApkg.h:281
H5F_t * f
Definition: H5EApkg.h:333
Definition: H5EApkg.h:362
haddr_t dblk_page_addr
Definition: H5FA.c:382
sblock
Definition: H5EAsblock.c:446
Definition: H5EAprivate.h:94
size_t rc
Definition: H5EApkg.h:188
H5_DLL H5EA_dblk_page_t * H5EA__dblk_page_protect(H5EA_hdr_t *hdr, H5EA_sblock_t *parent, haddr_t dblk_page_addr, unsigned flags)
H5AC_proxy_entry_t * top_proxy
Definition: H5EApkg.h:272
size_t dblk_page_nelmts
Definition: H5EApkg.h:203