HDF5  1.12.0
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
H5MFpkg.h File Reference
#include "H5MFprivate.h"
#include "H5FSprivate.h"

Go to the source code of this file.

Data Structures

struct  H5MF_free_section_t
 
struct  H5MF_sect_ud_t
 
struct  H5MF_fs_t
 

Macros

#define H5MF_FSPACE_SECT_SIMPLE   0 /* For non-paged aggregation: section is a range of actual bytes in file */
 
#define H5MF_FSPACE_SECT_SMALL   1 /* For paged aggregation: "small" meta/raw data section which is < fsp_size) */
 
#define H5MF_FSPACE_SECT_LARGE   2 /* For paged aggregation: "large" Section which is >= fsp_size) */
 
#define H5MF_SECT_CLASS_TYPE(F, S)
 
#define H5MF_SECT_CLS_TYPE(F, S)
 
#define H5MF_EOA_MISALIGN(F, E, A, FR)
 

Typedefs

typedef struct H5MF_free_section_t H5MF_free_section_t
 
typedef struct H5MF_sect_ud_t H5MF_sect_ud_t
 
typedef struct H5MF_fs_t H5MF_fs_t
 

Enumerations

enum  H5MF_shrink_type_t { H5MF_SHRINK_EOA, H5MF_SHRINK_AGGR_ABSORB_SECT, H5MF_SHRINK_SECT_ABSORB_AGGR }
 

Functions

H5_DLL herr_t H5MF__open_fstype (H5F_t *f, H5F_mem_page_t type)
 
H5_DLL herr_t H5MF__start_fstype (H5F_t *f, H5F_mem_page_t type)
 
H5_DLL htri_t H5MF__find_sect (H5F_t *f, H5FD_mem_t alloc_type, hsize_t size, H5FS_t *fspace, haddr_t *addr)
 
H5_DLL herr_t H5MF__add_sect (H5F_t *f, H5FD_mem_t alloc_type, H5FS_t *fspace, H5MF_free_section_t *node)
 
H5_DLL void H5MF__alloc_to_fs_type (H5F_shared_t *f_sh, H5FD_mem_t alloc_type, hsize_t size, H5F_mem_page_t *fs_type)
 
H5_DLL H5MF_free_section_tH5MF__sect_new (unsigned ctype, haddr_t sect_off, hsize_t sect_size)
 
H5_DLL herr_t H5MF__sect_free (H5FS_section_info_t *sect)
 
H5_DLL htri_t H5MF__aggr_try_extend (H5F_t *f, H5F_blk_aggr_t *aggr, H5FD_mem_t type, haddr_t abs_blk_end, hsize_t extra_requested)
 
H5_DLL htri_t H5MF__aggr_can_absorb (const H5F_t *f, const H5F_blk_aggr_t *aggr, const H5MF_free_section_t *sect, H5MF_shrink_type_t *shrink)
 
H5_DLL herr_t H5MF__aggr_absorb (const H5F_t *f, H5F_blk_aggr_t *aggr, H5MF_free_section_t *sect, hbool_t allow_sect_absorb)
 
H5_DLL herr_t H5MF__aggr_query (const H5F_t *f, const H5F_blk_aggr_t *aggr, haddr_t *addr, hsize_t *size)
 

Variables

H5_DLLVAR H5FS_section_class_t H5MF_FSPACE_SECT_CLS_SIMPLE [1]
 
H5_DLLVAR H5FS_section_class_t H5MF_FSPACE_SECT_CLS_SMALL [1]
 
H5_DLLVAR H5FS_section_class_t H5MF_FSPACE_SECT_CLS_LARGE [1]
 

Macro Definition Documentation

◆ H5MF_EOA_MISALIGN

#define H5MF_EOA_MISALIGN (   F,
  E,
  A,
  FR 
)
Value:
{ \
hsize_t m; \
if(H5F_addr_gt((E), 0) && ((m) = ((E) + H5F_BASE_ADDR(F)) % (A))) \
(FR) = (A) - m; \
else \
(FR) = 0; \
}

◆ H5MF_FSPACE_SECT_LARGE

#define H5MF_FSPACE_SECT_LARGE   2 /* For paged aggregation: "large" Section which is >= fsp_size) */

◆ H5MF_FSPACE_SECT_SIMPLE

#define H5MF_FSPACE_SECT_SIMPLE   0 /* For non-paged aggregation: section is a range of actual bytes in file */

◆ H5MF_FSPACE_SECT_SMALL

#define H5MF_FSPACE_SECT_SMALL   1 /* For paged aggregation: "small" meta/raw data section which is < fsp_size) */

◆ H5MF_SECT_CLASS_TYPE

#define H5MF_SECT_CLASS_TYPE (   F,
 
)
Value:
((H5F_PAGED_AGGR(F)) ? \
((S >= (F)->shared->fs_page_size) ? H5MF_FSPACE_SECT_LARGE : H5MF_FSPACE_SECT_SMALL) : H5MF_FSPACE_SECT_SIMPLE)

◆ H5MF_SECT_CLS_TYPE

#define H5MF_SECT_CLS_TYPE (   F,
 
)
Value:
((H5F_PAGED_AGGR(F)) ? \
((S >= (F)->shared->fs_page_size) ? \

Typedef Documentation

◆ H5MF_free_section_t

◆ H5MF_fs_t

typedef struct H5MF_fs_t H5MF_fs_t

◆ H5MF_sect_ud_t

Enumeration Type Documentation

◆ H5MF_shrink_type_t

Enumerator
H5MF_SHRINK_EOA 
H5MF_SHRINK_AGGR_ABSORB_SECT 
H5MF_SHRINK_SECT_ABSORB_AGGR 

Function Documentation

◆ H5MF__add_sect()

H5_DLL herr_t H5MF__add_sect ( H5F_t f,
H5FD_mem_t  alloc_type,
H5FS_t fspace,
H5MF_free_section_t node 
)

◆ H5MF__aggr_absorb()

H5_DLL herr_t H5MF__aggr_absorb ( const H5F_t f,
H5F_blk_aggr_t aggr,
H5MF_free_section_t sect,
hbool_t  allow_sect_absorb 
)

◆ H5MF__aggr_can_absorb()

H5_DLL htri_t H5MF__aggr_can_absorb ( const H5F_t f,
const H5F_blk_aggr_t aggr,
const H5MF_free_section_t sect,
H5MF_shrink_type_t shrink 
)

◆ H5MF__aggr_query()

H5_DLL herr_t H5MF__aggr_query ( const H5F_t f,
const H5F_blk_aggr_t aggr,
haddr_t addr,
hsize_t size 
)

◆ H5MF__aggr_try_extend()

H5_DLL htri_t H5MF__aggr_try_extend ( H5F_t f,
H5F_blk_aggr_t aggr,
H5FD_mem_t  type,
haddr_t  abs_blk_end,
hsize_t  extra_requested 
)

◆ H5MF__alloc_to_fs_type()

H5_DLL void H5MF__alloc_to_fs_type ( H5F_shared_t f_sh,
H5FD_mem_t  alloc_type,
hsize_t  size,
H5F_mem_page_t fs_type 
)

◆ H5MF__find_sect()

H5_DLL htri_t H5MF__find_sect ( H5F_t f,
H5FD_mem_t  alloc_type,
hsize_t  size,
H5FS_t fspace,
haddr_t addr 
)

◆ H5MF__open_fstype()

H5_DLL herr_t H5MF__open_fstype ( H5F_t f,
H5F_mem_page_t  type 
)

◆ H5MF__sect_free()

H5_DLL herr_t H5MF__sect_free ( H5FS_section_info_t sect)

◆ H5MF__sect_new()

H5_DLL H5MF_free_section_t* H5MF__sect_new ( unsigned  ctype,
haddr_t  sect_off,
hsize_t  sect_size 
)

◆ H5MF__start_fstype()

H5_DLL herr_t H5MF__start_fstype ( H5F_t f,
H5F_mem_page_t  type 
)

Variable Documentation

◆ H5MF_FSPACE_SECT_CLS_LARGE

H5_DLLVAR H5FS_section_class_t H5MF_FSPACE_SECT_CLS_LARGE[1]

◆ H5MF_FSPACE_SECT_CLS_SIMPLE

H5_DLLVAR H5FS_section_class_t H5MF_FSPACE_SECT_CLS_SIMPLE[1]

◆ H5MF_FSPACE_SECT_CLS_SMALL

H5_DLLVAR H5FS_section_class_t H5MF_FSPACE_SECT_CLS_SMALL[1]
H5F_addr_gt
#define H5F_addr_gt(X, Y)
Definition: H5Fprivate.h:266
H5MF_FSPACE_SECT_SMALL
#define H5MF_FSPACE_SECT_SMALL
Definition: H5MFpkg.h:55
H5MF_FSPACE_SECT_CLS_SMALL
H5_DLLVAR H5FS_section_class_t H5MF_FSPACE_SECT_CLS_SMALL[1]
Definition: H5MFpkg.h:169
H5F_BASE_ADDR
#define H5F_BASE_ADDR(F)
Definition: H5Fprivate.h:362
H5MF_FSPACE_SECT_SIMPLE
#define H5MF_FSPACE_SECT_SIMPLE
Definition: H5MFpkg.h:54
H5F_PAGED_AGGR
#define H5F_PAGED_AGGR(F)
Definition: H5Fprivate.h:587
H5MF_FSPACE_SECT_CLS_SIMPLE
H5_DLLVAR H5FS_section_class_t H5MF_FSPACE_SECT_CLS_SIMPLE[1]
Definition: H5MFpkg.h:168
H5MF_FSPACE_SECT_LARGE
#define H5MF_FSPACE_SECT_LARGE
Definition: H5MFpkg.h:56
if
if(NULL==(iblock=H5EA__iblock_protect(hdr, thing_acc)))
Definition: H5EA.c:408