HDF5  1.12.0
Data Structures | Macros | Typedefs | Functions | Variables
H5EApkg.h File Reference
#include "H5EAprivate.h"
#include "H5FLprivate.h"

Go to the source code of this file.

Data Structures

struct  H5EA_sblk_info_t
 
struct  H5EA_hdr_t
 
struct  H5EA_iblock_t
 
struct  H5EA_sblock_t
 
struct  H5EA_dblock_t
 
struct  H5EA_dbk_page_t
 
struct  H5EA_t
 
struct  H5EA_hdr_cache_ud_t
 
struct  H5EA_sblock_cache_ud_t
 
struct  H5EA_dblock_cache_ud_t
 
struct  H5EA_dblk_page_cache_ud_t
 

Macros

#define H5EA_SIZEOF_CHKSUM   4
 
#define H5EA_METADATA_PREFIX_SIZE(c)
 
#define H5EA_HEADER_SIZE(sizeof_addr, sizeof_size)
 
#define H5EA_HEADER_SIZE_FILE(f)
 
#define H5EA_HEADER_SIZE_HDR(h)
 
#define H5EA_IBLOCK_SIZE(i)
 
#define H5EA_SBLOCK_SIZE(s)
 
#define H5EA_DBLOCK_PREFIX_SIZE(d)
 
#define H5EA_DBLOCK_SIZE(d)
 
#define H5EA_DBLK_PAGE_SIZE(h)
 
#define H5EA_SIZEOF_OFFSET_BITS(b)   (((b) + 7) / 8)
 
#define H5EA_SBLK_FIRST_IDX(m)   (2 * H5VM_log2_of2((uint32_t)m))
 

Typedefs

typedef struct H5EA_sblk_info_t H5EA_sblk_info_t
 
typedef struct H5EA_hdr_t H5EA_hdr_t
 
typedef struct H5EA_iblock_t H5EA_iblock_t
 
typedef struct H5EA_sblock_t H5EA_sblock_t
 
typedef struct H5EA_dblock_t H5EA_dblock_t
 
typedef struct H5EA_dbk_page_t H5EA_dblk_page_t
 
typedef struct H5EA_hdr_cache_ud_t H5EA_hdr_cache_ud_t
 
typedef struct H5EA_sblock_cache_ud_t H5EA_sblock_cache_ud_t
 
typedef struct H5EA_dblock_cache_ud_t H5EA_dblock_cache_ud_t
 
typedef struct H5EA_dblk_page_cache_ud_t H5EA_dblk_page_cache_ud_t
 

Functions

H5_DLL herr_t H5EA__create_flush_depend (H5AC_info_t *parent_entry, H5AC_info_t *child_entry)
 
H5_DLL herr_t H5EA__destroy_flush_depend (H5AC_info_t *parent_entry, H5AC_info_t *child_entry)
 
H5_DLL H5EA_hdr_tH5EA__hdr_alloc (H5F_t *f)
 
H5_DLL herr_t H5EA__hdr_init (H5EA_hdr_t *hdr, void *ctx_udata)
 
H5_DLL haddr_t H5EA__hdr_create (H5F_t *f, const H5EA_create_t *cparam, void *ctx_udata)
 
H5_DLL void * H5EA__hdr_alloc_elmts (H5EA_hdr_t *hdr, size_t nelmts)
 
H5_DLL herr_t H5EA__hdr_free_elmts (H5EA_hdr_t *hdr, size_t nelmts, void *elmts)
 
H5_DLL herr_t H5EA__hdr_incr (H5EA_hdr_t *hdr)
 
H5_DLL herr_t H5EA__hdr_decr (H5EA_hdr_t *hdr)
 
H5_DLL herr_t H5EA__hdr_fuse_incr (H5EA_hdr_t *hdr)
 
H5_DLL size_t H5EA__hdr_fuse_decr (H5EA_hdr_t *hdr)
 
H5_DLL herr_t H5EA__hdr_modified (H5EA_hdr_t *hdr)
 
H5_DLL H5EA_hdr_tH5EA__hdr_protect (H5F_t *f, haddr_t ea_addr, void *ctx_udata, unsigned flags)
 
H5_DLL herr_t H5EA__hdr_unprotect (H5EA_hdr_t *hdr, unsigned cache_flags)
 
H5_DLL herr_t H5EA__hdr_delete (H5EA_hdr_t *hdr)
 
H5_DLL herr_t H5EA__hdr_dest (H5EA_hdr_t *hdr)
 
H5_DLL H5EA_iblock_tH5EA__iblock_alloc (H5EA_hdr_t *hdr)
 
H5_DLL haddr_t H5EA__iblock_create (H5EA_hdr_t *hdr, hbool_t *stats_changed)
 
H5_DLL H5EA_iblock_tH5EA__iblock_protect (H5EA_hdr_t *hdr, unsigned flags)
 
H5_DLL herr_t H5EA__iblock_unprotect (H5EA_iblock_t *iblock, unsigned cache_flags)
 
H5_DLL herr_t H5EA__iblock_delete (H5EA_hdr_t *hdr)
 
H5_DLL herr_t H5EA__iblock_dest (H5EA_iblock_t *iblock)
 
H5_DLL H5EA_sblock_tH5EA__sblock_alloc (H5EA_hdr_t *hdr, H5EA_iblock_t *parent, unsigned sblk_idx)
 
H5_DLL haddr_t H5EA__sblock_create (H5EA_hdr_t *hdr, H5EA_iblock_t *parent, hbool_t *stats_changed, unsigned sblk_idx)
 
H5_DLL H5EA_sblock_tH5EA__sblock_protect (H5EA_hdr_t *hdr, H5EA_iblock_t *parent, haddr_t sblk_addr, unsigned sblk_idx, unsigned flags)
 
H5_DLL herr_t H5EA__sblock_unprotect (H5EA_sblock_t *sblock, 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__sblock_dest (H5EA_sblock_t *sblock)
 
H5_DLL H5EA_dblock_tH5EA__dblock_alloc (H5EA_hdr_t *hdr, void *parent, size_t nelmts)
 
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 unsigned H5EA__dblock_sblk_idx (const H5EA_hdr_t *hdr, hsize_t idx)
 
H5_DLL H5EA_dblock_tH5EA__dblock_protect (H5EA_hdr_t *hdr, void *parent, haddr_t dblk_addr, size_t dblk_nelmts, unsigned flags)
 
H5_DLL herr_t H5EA__dblock_unprotect (H5EA_dblock_t *dblock, unsigned cache_flags)
 
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__dblock_dest (H5EA_dblock_t *dblock)
 
H5_DLL H5EA_dblk_page_tH5EA__dblk_page_alloc (H5EA_hdr_t *hdr, H5EA_sblock_t *parent)
 
H5_DLL herr_t H5EA__dblk_page_create (H5EA_hdr_t *hdr, H5EA_sblock_t *parent, haddr_t addr)
 
H5_DLL H5EA_dblk_page_tH5EA__dblk_page_protect (H5EA_hdr_t *hdr, H5EA_sblock_t *parent, haddr_t dblk_page_addr, unsigned flags)
 
H5_DLL herr_t H5EA__dblk_page_unprotect (H5EA_dblk_page_t *dblk_page, unsigned cache_flags)
 
H5_DLL herr_t H5EA__dblk_page_dest (H5EA_dblk_page_t *dblk_page)
 
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__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)
 
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)
 
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)
 

Variables

H5_DLLVAR const H5EA_class_t H5EA_CLS_TEST [1]
 
H5_DLLVAR const H5EA_class_t *const H5EA_client_class_g [H5EA_NUM_CLS_ID]
 

Macro Definition Documentation

◆ H5EA_DBLK_PAGE_SIZE

#define H5EA_DBLK_PAGE_SIZE (   h)
Value:
( \
+ ((h)->dblk_page_nelmts * (size_t)(h)->cparam.raw_elmt_size) /* Elements in data block page */ \
+ H5EA_SIZEOF_CHKSUM /* Checksum for each page */ \
)

◆ H5EA_DBLOCK_PREFIX_SIZE

#define H5EA_DBLOCK_PREFIX_SIZE (   d)
Value:
( \
/* General metadata fields */ \
H5EA_METADATA_PREFIX_SIZE(TRUE) \
\
/* Sanity-checking fields */ \
+ (d)->hdr->sizeof_addr /* File address of array owning the block */ \
+ (d)->hdr->arr_off_size /* Offset of the block in the array */ \
)

◆ H5EA_DBLOCK_SIZE

#define H5EA_DBLOCK_SIZE (   d)
Value:
( \
/* Data block prefix size */ \
H5EA_DBLOCK_PREFIX_SIZE(d) \
\
/* Extensible Array Data Block specific fields */ \
+ ((d)->nelmts * (size_t)(d)->hdr->cparam.raw_elmt_size) /* Elements in data block */ \
+ ((d)->npages * H5EA_SIZEOF_CHKSUM) /* Checksum for each page */ \
)

◆ H5EA_HEADER_SIZE

#define H5EA_HEADER_SIZE (   sizeof_addr,
  sizeof_size 
)
Value:
( \
/* General metadata fields */ \
H5EA_METADATA_PREFIX_SIZE(TRUE) \
\
/* General array information */ \
+ 1 /* Element Size */ \
+ 1 /* Max. # of elements bits */ \
+ 1 /* # of elements to store in index block */ \
+ 1 /* Min. # elements per data block */ \
+ 1 /* Min. # of data block pointers for a super block */ \
+ 1 /* Log2(Max. # of elements in data block page) - i.e. # of bits needed to store max. # of elements in data block page */ \
\
/* Extensible Array statistics fields */ \
+ (sizeof_size) /* Number of super blocks created */ \
+ (sizeof_size) /* Size of super blocks created */ \
+ (sizeof_size) /* Number of data blocks created */ \
+ (sizeof_size) /* Size of data blocks created */ \
+ (sizeof_size) /* Max. index set */ \
+ (sizeof_size) /* Number of elements 'realized' */ \
\
/* Extensible Array Header specific fields */ \
+ (sizeof_addr) /* File address of index block */ \
)

◆ H5EA_HEADER_SIZE_FILE

#define H5EA_HEADER_SIZE_FILE (   f)
Value:
( \
H5EA_HEADER_SIZE(H5F_SIZEOF_ADDR(f), H5F_SIZEOF_SIZE(f)) \
)

◆ H5EA_HEADER_SIZE_HDR

#define H5EA_HEADER_SIZE_HDR (   h)
Value:
( \
H5EA_HEADER_SIZE((h)->sizeof_addr, (h)->sizeof_size) \
)

◆ H5EA_IBLOCK_SIZE

#define H5EA_IBLOCK_SIZE (   i)
Value:
( \
/* General metadata fields */ \
H5EA_METADATA_PREFIX_SIZE(TRUE) \
\
/* Sanity-checking fields */ \
+ (i)->hdr->sizeof_addr /* File address of array owning the block */ \
\
/* Extensible Array Index Block specific fields */ \
+ ((size_t)(i)->hdr->cparam.idx_blk_elmts * (size_t)(i)->hdr->cparam.raw_elmt_size) /* Elements in index block */ \
+ ((i)->ndblk_addrs * (i)->hdr->sizeof_addr) /* Data block addresses in index block */ \
+ ((i)->nsblk_addrs * (i)->hdr->sizeof_addr) /* Super block addresses in index block */ \
)

◆ H5EA_METADATA_PREFIX_SIZE

#define H5EA_METADATA_PREFIX_SIZE (   c)
Value:
( \
H5_SIZEOF_MAGIC /* Signature */ \
+ 1 /* Version */ \
+ 1 /* Array type */ \
+ ((c) ? H5EA_SIZEOF_CHKSUM : 0) /* Metadata checksum */ \
)

◆ H5EA_SBLK_FIRST_IDX

#define H5EA_SBLK_FIRST_IDX (   m)    (2 * H5VM_log2_of2((uint32_t)m))

◆ H5EA_SBLOCK_SIZE

#define H5EA_SBLOCK_SIZE (   s)
Value:
( \
/* General metadata fields */ \
H5EA_METADATA_PREFIX_SIZE(TRUE) \
\
/* Sanity-checking fields */ \
+ (s)->hdr->sizeof_addr /* File address of array owning the block */ \
+ (s)->hdr->arr_off_size /* Offset of the block in the array */ \
\
/* Extensible Array Super Block specific fields */ \
+ ((s)->ndblks * (s)->dblk_page_init_size) /* Data block 'page init' bitmasks in super block (can be 0 if no pages) */ \
+ ((s)->ndblks * (s)->hdr->sizeof_addr) /* Data block addresses in super block */ \
)

◆ H5EA_SIZEOF_CHKSUM

#define H5EA_SIZEOF_CHKSUM   4

◆ H5EA_SIZEOF_OFFSET_BITS

#define H5EA_SIZEOF_OFFSET_BITS (   b)    (((b) + 7) / 8)

Typedef Documentation

◆ H5EA_dblk_page_cache_ud_t

◆ H5EA_dblk_page_t

◆ H5EA_dblock_cache_ud_t

◆ H5EA_dblock_t

typedef struct H5EA_dblock_t H5EA_dblock_t

◆ H5EA_hdr_cache_ud_t

◆ H5EA_hdr_t

typedef struct H5EA_hdr_t H5EA_hdr_t

◆ H5EA_iblock_t

typedef struct H5EA_iblock_t H5EA_iblock_t

◆ H5EA_sblk_info_t

◆ H5EA_sblock_cache_ud_t

◆ H5EA_sblock_t

typedef struct H5EA_sblock_t H5EA_sblock_t

Function Documentation

◆ H5EA__create_flush_depend()

H5_DLL herr_t H5EA__create_flush_depend ( H5AC_info_t parent_entry,
H5AC_info_t child_entry 
)

◆ H5EA__dblk_page_alloc()

H5_DLL H5EA_dblk_page_t* H5EA__dblk_page_alloc ( H5EA_hdr_t hdr,
H5EA_sblock_t parent 
)

◆ H5EA__dblk_page_create()

H5_DLL herr_t H5EA__dblk_page_create ( H5EA_hdr_t hdr,
H5EA_sblock_t parent,
haddr_t  addr 
)

◆ H5EA__dblk_page_dest()

H5_DLL herr_t H5EA__dblk_page_dest ( H5EA_dblk_page_t dblk_page)

◆ H5EA__dblk_page_protect()

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 
)

◆ H5EA__dblk_page_unprotect()

H5_DLL herr_t H5EA__dblk_page_unprotect ( H5EA_dblk_page_t dblk_page,
unsigned  cache_flags 
)

◆ H5EA__dblock_alloc()

H5_DLL H5EA_dblock_t* H5EA__dblock_alloc ( H5EA_hdr_t hdr,
void *  parent,
size_t  nelmts 
)

◆ H5EA__dblock_create()

H5_DLL haddr_t H5EA__dblock_create ( H5EA_hdr_t hdr,
void *  parent,
hbool_t stats_changed,
hsize_t  dblk_off,
size_t  nelmts 
)

◆ H5EA__dblock_debug()

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 
)

◆ H5EA__dblock_delete()

H5_DLL herr_t H5EA__dblock_delete ( H5EA_hdr_t hdr,
void *  parent,
haddr_t  dblk_addr,
size_t  dblk_nelmts 
)

◆ H5EA__dblock_dest()

H5_DLL herr_t H5EA__dblock_dest ( H5EA_dblock_t dblock)

◆ H5EA__dblock_protect()

H5_DLL H5EA_dblock_t* H5EA__dblock_protect ( H5EA_hdr_t hdr,
void *  parent,
haddr_t  dblk_addr,
size_t  dblk_nelmts,
unsigned  flags 
)

◆ H5EA__dblock_sblk_idx()

H5_DLL unsigned H5EA__dblock_sblk_idx ( const H5EA_hdr_t hdr,
hsize_t  idx 
)

◆ H5EA__dblock_unprotect()

H5_DLL herr_t H5EA__dblock_unprotect ( H5EA_dblock_t dblock,
unsigned  cache_flags 
)

◆ H5EA__destroy_flush_depend()

H5_DLL herr_t H5EA__destroy_flush_depend ( H5AC_info_t parent_entry,
H5AC_info_t child_entry 
)

◆ H5EA__hdr_alloc()

H5_DLL H5EA_hdr_t* H5EA__hdr_alloc ( H5F_t f)

◆ H5EA__hdr_alloc_elmts()

H5_DLL void* H5EA__hdr_alloc_elmts ( H5EA_hdr_t hdr,
size_t  nelmts 
)

◆ H5EA__hdr_create()

H5_DLL haddr_t H5EA__hdr_create ( H5F_t f,
const H5EA_create_t cparam,
void *  ctx_udata 
)

◆ H5EA__hdr_debug()

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 
)

◆ H5EA__hdr_decr()

H5_DLL herr_t H5EA__hdr_decr ( H5EA_hdr_t hdr)

◆ H5EA__hdr_delete()

H5_DLL herr_t H5EA__hdr_delete ( H5EA_hdr_t hdr)

◆ H5EA__hdr_dest()

H5_DLL herr_t H5EA__hdr_dest ( H5EA_hdr_t hdr)

◆ H5EA__hdr_free_elmts()

H5_DLL herr_t H5EA__hdr_free_elmts ( H5EA_hdr_t hdr,
size_t  nelmts,
void *  elmts 
)

◆ H5EA__hdr_fuse_decr()

H5_DLL size_t H5EA__hdr_fuse_decr ( H5EA_hdr_t hdr)

◆ H5EA__hdr_fuse_incr()

H5_DLL herr_t H5EA__hdr_fuse_incr ( H5EA_hdr_t hdr)

◆ H5EA__hdr_incr()

H5_DLL herr_t H5EA__hdr_incr ( H5EA_hdr_t hdr)

◆ H5EA__hdr_init()

H5_DLL herr_t H5EA__hdr_init ( H5EA_hdr_t hdr,
void *  ctx_udata 
)

◆ H5EA__hdr_modified()

H5_DLL herr_t H5EA__hdr_modified ( H5EA_hdr_t hdr)

◆ H5EA__hdr_protect()

H5_DLL H5EA_hdr_t* H5EA__hdr_protect ( H5F_t f,
haddr_t  ea_addr,
void *  ctx_udata,
unsigned  flags 
)

◆ H5EA__hdr_unprotect()

H5_DLL herr_t H5EA__hdr_unprotect ( H5EA_hdr_t hdr,
unsigned  cache_flags 
)

◆ H5EA__iblock_alloc()

H5_DLL H5EA_iblock_t* H5EA__iblock_alloc ( H5EA_hdr_t hdr)

◆ H5EA__iblock_create()

H5_DLL haddr_t H5EA__iblock_create ( H5EA_hdr_t hdr,
hbool_t stats_changed 
)

◆ H5EA__iblock_debug()

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__iblock_delete()

H5_DLL herr_t H5EA__iblock_delete ( H5EA_hdr_t hdr)

◆ H5EA__iblock_dest()

H5_DLL herr_t H5EA__iblock_dest ( H5EA_iblock_t iblock)

◆ H5EA__iblock_protect()

H5_DLL H5EA_iblock_t* H5EA__iblock_protect ( H5EA_hdr_t hdr,
unsigned  flags 
)

◆ H5EA__iblock_unprotect()

H5_DLL herr_t H5EA__iblock_unprotect ( H5EA_iblock_t iblock,
unsigned  cache_flags 
)

◆ H5EA__sblock_alloc()

H5_DLL H5EA_sblock_t* H5EA__sblock_alloc ( H5EA_hdr_t hdr,
H5EA_iblock_t parent,
unsigned  sblk_idx 
)

◆ H5EA__sblock_create()

H5_DLL haddr_t H5EA__sblock_create ( H5EA_hdr_t hdr,
H5EA_iblock_t parent,
hbool_t stats_changed,
unsigned  sblk_idx 
)

◆ H5EA__sblock_debug()

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 
)

◆ H5EA__sblock_delete()

H5_DLL herr_t H5EA__sblock_delete ( H5EA_hdr_t hdr,
H5EA_iblock_t parent,
haddr_t  sblk_addr,
unsigned  sblk_idx 
)

◆ H5EA__sblock_dest()

H5_DLL herr_t H5EA__sblock_dest ( H5EA_sblock_t sblock)

◆ H5EA__sblock_protect()

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 
)

◆ H5EA__sblock_unprotect()

H5_DLL herr_t H5EA__sblock_unprotect ( H5EA_sblock_t sblock,
unsigned  cache_flags 
)

Variable Documentation

◆ H5EA_client_class_g

H5_DLLVAR const H5EA_class_t* const H5EA_client_class_g[H5EA_NUM_CLS_ID]

◆ H5EA_CLS_TEST

H5_DLLVAR const H5EA_class_t H5EA_CLS_TEST[1]
H5F_SIZEOF_SIZE
#define H5F_SIZEOF_SIZE(F)
Definition: H5Fprivate.h:367
f
hdr f
Definition: H5EA.c:755
hdr
hdr
Definition: H5EAhdr.c:821
dblk_page_nelmts
size_t dblk_page_nelmts
Definition: H5FA.c:380
H5F_SIZEOF_ADDR
#define H5F_SIZEOF_ADDR(F)
Definition: H5Fprivate.h:366
TRUE
#define TRUE
Definition: H5FDmulti.c:36
nelmts
hdr stats stored nelmts
Definition: H5EAdblock.c:214
H5EA_SIZEOF_CHKSUM
#define H5EA_SIZEOF_CHKSUM
Definition: H5EApkg.h:46