HDF5  1.12.0
Data Structures | Macros | Functions | Variables
H5PB.c File Reference
#include "H5PBmodule.h"
#include "H5private.h"
#include "H5Eprivate.h"
#include "H5Fpkg.h"
#include "H5FDprivate.h"
#include "H5Iprivate.h"
#include "H5MMprivate.h"
#include "H5PBpkg.h"
#include "H5SLprivate.h"

Data Structures

struct  H5PB_ud1_t
 

Macros

#define H5F_FRIEND   /*suppress error about including H5Fpkg */
 
#define H5PB__PREPEND(page_ptr, head_ptr, tail_ptr, len)
 
#define H5PB__REMOVE(page_ptr, head_ptr, tail_ptr, len)
 
#define H5PB__INSERT_LRU(page_buf, page_ptr)
 
#define H5PB__REMOVE_LRU(page_buf, page_ptr)
 
#define H5PB__MOVE_TO_TOP_LRU(page_buf, page_ptr)
 

Functions

 H5FL_DEFINE_STATIC (H5PB_t)
 
 H5FL_DEFINE_STATIC (H5PB_entry_t)
 
herr_t H5PB_reset_stats (H5PB_t *page_buf)
 
herr_t H5PB_get_stats (const H5PB_t *page_buf, unsigned accesses[2], unsigned hits[2], unsigned misses[2], unsigned evictions[2], unsigned bypasses[2])
 
herr_t H5PB_print_stats (const H5PB_t *page_buf)
 
herr_t H5PB_create (H5F_shared_t *f_sh, size_t size, unsigned page_buf_min_meta_perc, unsigned page_buf_min_raw_perc)
 
herr_t H5PB_flush (H5F_shared_t *f_sh)
 
herr_t H5PB_dest (H5F_shared_t *f_sh)
 
herr_t H5PB_add_new_page (H5F_shared_t *f_sh, H5FD_mem_t type, haddr_t page_addr)
 
herr_t H5PB_update_entry (H5PB_t *page_buf, haddr_t addr, size_t size, const void *buf)
 
herr_t H5PB_remove_entry (const H5F_shared_t *f_sh, haddr_t addr)
 
herr_t H5PB_read (H5F_shared_t *f_sh, H5FD_mem_t type, haddr_t addr, size_t size, void *buf)
 
herr_t H5PB_write (H5F_shared_t *f_sh, H5FD_mem_t type, haddr_t addr, size_t size, const void *buf)
 

Variables

hbool_t H5_PKG_INIT_VAR = FALSE
 

Macro Definition Documentation

◆ H5F_FRIEND

#define H5F_FRIEND   /*suppress error about including H5Fpkg */

◆ H5PB__INSERT_LRU

#define H5PB__INSERT_LRU (   page_buf,
  page_ptr 
)
Value:
{ \
HDassert(page_buf); \
HDassert(page_ptr); \
/* insert the entry at the head of the list. */ \
H5PB__PREPEND((page_ptr), (page_buf)->LRU_head_ptr, \
(page_buf)->LRU_tail_ptr, (page_buf)->LRU_list_len) \
}

◆ H5PB__MOVE_TO_TOP_LRU

#define H5PB__MOVE_TO_TOP_LRU (   page_buf,
  page_ptr 
)
Value:
{ \
HDassert(page_buf); \
HDassert(page_ptr); \
/* Remove entry and insert at the head of the list. */ \
H5PB__REMOVE((page_ptr), (page_buf)->LRU_head_ptr, \
(page_buf)->LRU_tail_ptr, (page_buf)->LRU_list_len) \
H5PB__PREPEND((page_ptr), (page_buf)->LRU_head_ptr, \
(page_buf)->LRU_tail_ptr, (page_buf)->LRU_list_len) \
}

◆ H5PB__PREPEND

#define H5PB__PREPEND (   page_ptr,
  head_ptr,
  tail_ptr,
  len 
)
Value:
{ \
if((head_ptr) == NULL) { \
(head_ptr) = (page_ptr); \
(tail_ptr) = (page_ptr); \
} /* end if */ \
else { \
(head_ptr)->prev = (page_ptr); \
(page_ptr)->next = (head_ptr); \
(head_ptr) = (page_ptr); \
} /* end else */ \
(len)++; \
} /* H5PB__PREPEND() */

◆ H5PB__REMOVE

#define H5PB__REMOVE (   page_ptr,
  head_ptr,
  tail_ptr,
  len 
)
Value:
{ \
if((head_ptr) == (page_ptr)) { \
(head_ptr) = (page_ptr)->next; \
if((head_ptr) != NULL) \
(head_ptr)->prev = NULL; \
} /* end if */ \
else \
(page_ptr)->prev->next = (page_ptr)->next; \
if((tail_ptr) == (page_ptr)) { \
(tail_ptr) = (page_ptr)->prev; \
if((tail_ptr) != NULL) \
(tail_ptr)->next = NULL; \
} /* end if */ \
else \
(page_ptr)->next->prev = (page_ptr)->prev; \
page_ptr->next = NULL; \
page_ptr->prev = NULL; \
(len)--; \
}

◆ H5PB__REMOVE_LRU

#define H5PB__REMOVE_LRU (   page_buf,
  page_ptr 
)
Value:
{ \
HDassert(page_buf); \
HDassert(page_ptr); \
/* remove the entry from the list. */ \
H5PB__REMOVE((page_ptr), (page_buf)->LRU_head_ptr, \
(page_buf)->LRU_tail_ptr, (page_buf)->LRU_list_len) \
}

Function Documentation

◆ H5FL_DEFINE_STATIC() [1/2]

H5FL_DEFINE_STATIC ( H5PB_entry_t  )

◆ H5FL_DEFINE_STATIC() [2/2]

H5FL_DEFINE_STATIC ( H5PB_t  )

◆ H5PB_add_new_page()

herr_t H5PB_add_new_page ( H5F_shared_t f_sh,
H5FD_mem_t  type,
haddr_t  page_addr 
)

◆ H5PB_create()

herr_t H5PB_create ( H5F_shared_t f_sh,
size_t  size,
unsigned  page_buf_min_meta_perc,
unsigned  page_buf_min_raw_perc 
)

◆ H5PB_dest()

herr_t H5PB_dest ( H5F_shared_t f_sh)

◆ H5PB_flush()

herr_t H5PB_flush ( H5F_shared_t f_sh)

◆ H5PB_get_stats()

herr_t H5PB_get_stats ( const H5PB_t page_buf,
unsigned  accesses[2],
unsigned  hits[2],
unsigned  misses[2],
unsigned  evictions[2],
unsigned  bypasses[2] 
)

◆ H5PB_print_stats()

herr_t H5PB_print_stats ( const H5PB_t page_buf)

◆ H5PB_read()

herr_t H5PB_read ( H5F_shared_t f_sh,
H5FD_mem_t  type,
haddr_t  addr,
size_t  size,
void *  buf 
)

◆ H5PB_remove_entry()

herr_t H5PB_remove_entry ( const H5F_shared_t f_sh,
haddr_t  addr 
)

◆ H5PB_reset_stats()

herr_t H5PB_reset_stats ( H5PB_t page_buf)

◆ H5PB_update_entry()

herr_t H5PB_update_entry ( H5PB_t page_buf,
haddr_t  addr,
size_t  size,
const void *  buf 
)

◆ H5PB_write()

herr_t H5PB_write ( H5F_shared_t f_sh,
H5FD_mem_t  type,
haddr_t  addr,
size_t  size,
const void *  buf 
)

Variable Documentation

◆ H5_PKG_INIT_VAR

hbool_t H5_PKG_INIT_VAR = FALSE