MISR Toolkit  1.5.1
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
H5B2pkg.h File Reference
#include "H5B2private.h"
#include "H5ACprivate.h"
#include "H5FLprivate.h"

Go to the source code of this file.

Data Structures

struct  H5B2_node_ptr_t
 
struct  H5B2_node_info_t
 
struct  H5B2_hdr_t
 
struct  H5B2_leaf_t
 
struct  H5B2_internal_t
 
struct  H5B2_t
 
struct  H5B2_hdr_cache_ud_t
 
struct  H5B2_internal_cache_ud_t
 
struct  H5B2_leaf_cache_ud_t
 

Macros

#define H5B2_SIZEOF_RECORDS_PER_NODE   (unsigned)2
 
#define H5B2_TREE_POINTER_SIZE(h)
 
#define H5B2_INT_POINTER_SIZE(h, d)
 
#define H5B2_SIZEOF_CHKSUM   4
 
#define H5B2_METADATA_PREFIX_SIZE
 
#define H5B2_HEADER_SIZE(h)
 
#define H5B2_INT_PREFIX_SIZE
 
#define H5B2_LEAF_PREFIX_SIZE
 
#define H5B2_NAT_NREC(b, hdr, idx)   ((b) + (hdr)->nat_off[(idx)])
 
#define H5B2_INT_NREC(i, hdr, idx)   H5B2_NAT_NREC((i)->int_native, (hdr), (idx))
 
#define H5B2_LEAF_NREC(l, hdr, idx)   H5B2_NAT_NREC((l)->leaf_native, (hdr), (idx))
 
#define H5B2_NUM_INT_REC(h, d)   (((h)->node_size - (H5B2_INT_PREFIX_SIZE + H5B2_INT_POINTER_SIZE(h, d))) / ((h)->rrec_size + H5B2_INT_POINTER_SIZE(h, d)))
 

Typedefs

typedef struct H5B2_hdr_t H5B2_hdr_t
 
typedef struct H5B2_leaf_t H5B2_leaf_t
 
typedef struct H5B2_internal_t H5B2_internal_t
 
typedef enum H5B2_nodepos_t H5B2_nodepos_t
 
typedef struct H5B2_hdr_cache_ud_t H5B2_hdr_cache_ud_t
 
typedef struct H5B2_internal_cache_ud_t H5B2_internal_cache_ud_t
 
typedef struct H5B2_leaf_cache_ud_t H5B2_leaf_cache_ud_t
 

Enumerations

enum  H5B2_nodepos_t {
  H5B2_POS_ROOT,
  H5B2_POS_RIGHT,
  H5B2_POS_LEFT,
  H5B2_POS_MIDDLE
}
 

Functions

 H5FL_EXTERN (H5B2_internal_t)
 
 H5FL_EXTERN (H5B2_leaf_t)
 
H5_DLL H5B2_hdr_tH5B2_hdr_alloc (H5F_t *f)
 
H5_DLL haddr_t H5B2_hdr_create (H5F_t *f, hid_t dxpl_id, const H5B2_create_t *cparam, void *ctx_udata)
 
H5_DLL herr_t H5B2_hdr_init (H5B2_hdr_t *hdr, const H5B2_create_t *cparam, void *ctx_udata, uint16_t depth)
 
H5_DLL herr_t H5B2_hdr_incr (H5B2_hdr_t *hdr)
 
H5_DLL herr_t H5B2_hdr_decr (H5B2_hdr_t *hdr)
 
H5_DLL herr_t H5B2_hdr_fuse_incr (H5B2_hdr_t *hdr)
 
H5_DLL size_t H5B2_hdr_fuse_decr (H5B2_hdr_t *hdr)
 
H5_DLL herr_t H5B2_hdr_dirty (H5B2_hdr_t *hdr)
 
H5_DLL herr_t H5B2_hdr_delete (H5B2_hdr_t *hdr, hid_t dxpl_id)
 
H5B2_leaf_tH5B2_protect_leaf (H5B2_hdr_t *hdr, hid_t dxpl_id, haddr_t addr, unsigned nrec, H5AC_protect_t rw)
 
H5_DLL H5B2_internal_tH5B2_protect_internal (H5B2_hdr_t *hdr, hid_t dxpl_id, haddr_t addr, unsigned nrec, unsigned depth, H5AC_protect_t rw)
 
H5_DLL herr_t H5B2_split_root (H5B2_hdr_t *hdr, hid_t dxpl_id)
 
H5_DLL herr_t H5B2_create_leaf (H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *node_ptr)
 
H5_DLL herr_t H5B2_hdr_free (H5B2_hdr_t *hdr)
 
H5_DLL herr_t H5B2_leaf_free (H5B2_leaf_t *l)
 
H5_DLL herr_t H5B2_internal_free (H5B2_internal_t *i)
 
H5_DLL herr_t H5B2_insert_internal (H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, unsigned *parent_cache_info_flags_ptr, H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, void *udata)
 
H5_DLL herr_t H5B2_insert_leaf (H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, void *udata)
 
H5_DLL herr_t H5B2_iterate_node (H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, const H5B2_node_ptr_t *curr_node, H5B2_operator_t op, void *op_data)
 
H5_DLL herr_t H5B2_node_size (H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, const H5B2_node_ptr_t *curr_node, hsize_t *op_data)
 
H5_DLL int H5B2_locate_record (const H5B2_class_t *type, unsigned nrec, size_t *rec_off, const uint8_t *native, const void *udata, unsigned *idx, int *result)
 
H5_DLL herr_t H5B2_neighbor_internal (H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, H5B2_node_ptr_t *curr_node_ptr, void *neighbor_loc, H5B2_compare_t comp, void *udata, H5B2_found_t op, void *op_data)
 
H5_DLL herr_t H5B2_neighbor_leaf (H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr, void *neighbor_loc, H5B2_compare_t comp, void *udata, H5B2_found_t op, void *op_data)
 
H5_DLL herr_t H5B2_remove_internal (H5B2_hdr_t *hdr, hid_t dxpl_id, hbool_t *depth_decreased, void *swap_loc, unsigned depth, H5AC_info_t *parent_cache_info, unsigned *parent_cache_info_flags_ptr, H5B2_nodepos_t curr_pos, H5B2_node_ptr_t *curr_node_ptr, void *udata, H5B2_remove_t op, void *op_data)
 
H5_DLL herr_t H5B2_remove_leaf (H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, void *udata, H5B2_remove_t op, void *op_data)
 
H5_DLL herr_t H5B2_remove_internal_by_idx (H5B2_hdr_t *hdr, hid_t dxpl_id, hbool_t *depth_decreased, void *swap_loc, unsigned depth, H5AC_info_t *parent_cache_info, unsigned *parent_cache_info_flags_ptr, H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, hsize_t n, H5B2_remove_t op, void *op_data)
 
H5_DLL herr_t H5B2_remove_leaf_by_idx (H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, unsigned idx, H5B2_remove_t op, void *op_data)
 
H5_DLL herr_t H5B2_delete_node (H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, const H5B2_node_ptr_t *curr_node, H5B2_remove_t op, void *op_data)
 
H5_DLL herr_t H5B2_hdr_debug (H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE *stream, int indent, int fwidth, const H5B2_class_t *type, haddr_t obj_addr)
 
H5_DLL herr_t H5B2_int_debug (H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE *stream, int indent, int fwidth, const H5B2_class_t *type, haddr_t hdr_addr, unsigned nrec, unsigned depth, haddr_t obj_addr)
 
H5_DLL herr_t H5B2_leaf_debug (H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE *stream, int indent, int fwidth, const H5B2_class_t *type, haddr_t hdr_addr, unsigned nrec, haddr_t obj_addr)
 

Variables

H5_DLLVAR const H5AC_class_t H5AC_BT2_HDR [1]
 
H5_DLLVAR const H5AC_class_t H5AC_BT2_INT [1]
 
H5_DLLVAR const H5AC_class_t H5AC_BT2_LEAF [1]
 
const H5B2_class_t *const H5B2_client_class_g [H5B2_NUM_BTREE_ID]
 

Macro Definition Documentation

◆ H5B2_HEADER_SIZE

#define H5B2_HEADER_SIZE (   h)
Value:
( \
/* General metadata fields */ \
H5B2_METADATA_PREFIX_SIZE \
\
/* Header specific fields */ \
+ (unsigned)4 /* Node size, in bytes */ \
+ (unsigned)2 /* Record size, in bytes */ \
+ (unsigned)2 /* Depth of tree */ \
+ (unsigned)1 /* Split % of full (as integer, ie. "98" means 98%) */ \
+ (unsigned)1 /* Merge % of full (as integer, ie. "98" means 98%) */ \
+ H5B2_TREE_POINTER_SIZE(h) /* Node pointer to root node in tree */ \
)
#define H5B2_TREE_POINTER_SIZE(h)
Definition: H5B2pkg.h:46

Definition at line 71 of file H5B2pkg.h.

◆ H5B2_INT_NREC

#define H5B2_INT_NREC (   i,
  hdr,
  idx 
)    H5B2_NAT_NREC((i)->int_native, (hdr), (idx))

Definition at line 106 of file H5B2pkg.h.

◆ H5B2_INT_POINTER_SIZE

#define H5B2_INT_POINTER_SIZE (   h,
 
)
Value:
( \
(unsigned)(h)->sizeof_addr /* Address of child node */ \
+ (h)->max_nrec_size /* # of records in child node */ \
+ (h)->node_info[(d) - 1].cum_max_nrec_size /* Total # of records in child & below */ \
)

Definition at line 53 of file H5B2pkg.h.

◆ H5B2_INT_PREFIX_SIZE

#define H5B2_INT_PREFIX_SIZE
Value:
( \
/* General metadata fields */ \
H5B2_METADATA_PREFIX_SIZE \
\
/* Header specific fields */ \
/* <none> */ \
)

Definition at line 85 of file H5B2pkg.h.

◆ H5B2_LEAF_NREC

#define H5B2_LEAF_NREC (   l,
  hdr,
  idx 
)    H5B2_NAT_NREC((l)->leaf_native, (hdr), (idx))

Definition at line 109 of file H5B2pkg.h.

◆ H5B2_LEAF_PREFIX_SIZE

#define H5B2_LEAF_PREFIX_SIZE
Value:
( \
/* General metadata fields */ \
H5B2_METADATA_PREFIX_SIZE \
\
/* Header specific fields */ \
/* <none> */ \
)

Definition at line 94 of file H5B2pkg.h.

◆ H5B2_METADATA_PREFIX_SIZE

#define H5B2_METADATA_PREFIX_SIZE
Value:
( \
(unsigned)H5_SIZEOF_MAGIC /* Signature */ \
+ (unsigned)1 /* Version */ \
+ (unsigned)1 /* Tree type */ \
+ (unsigned)H5B2_SIZEOF_CHKSUM /* Metadata checksum */ \
)
#define H5B2_SIZEOF_CHKSUM
Definition: H5B2pkg.h:60

Definition at line 63 of file H5B2pkg.h.

◆ H5B2_NAT_NREC

#define H5B2_NAT_NREC (   b,
  hdr,
  idx 
)    ((b) + (hdr)->nat_off[(idx)])

Definition at line 103 of file H5B2pkg.h.

◆ H5B2_NUM_INT_REC

#define H5B2_NUM_INT_REC (   h,
 
)    (((h)->node_size - (H5B2_INT_PREFIX_SIZE + H5B2_INT_POINTER_SIZE(h, d))) / ((h)->rrec_size + H5B2_INT_POINTER_SIZE(h, d)))

Definition at line 113 of file H5B2pkg.h.

◆ H5B2_SIZEOF_CHKSUM

#define H5B2_SIZEOF_CHKSUM   4

Definition at line 60 of file H5B2pkg.h.

◆ H5B2_SIZEOF_RECORDS_PER_NODE

#define H5B2_SIZEOF_RECORDS_PER_NODE   (unsigned)2

Definition at line 42 of file H5B2pkg.h.

◆ H5B2_TREE_POINTER_SIZE

#define H5B2_TREE_POINTER_SIZE (   h)
Value:
( \
(h)->sizeof_addr + \
(h)->sizeof_size \
)
#define H5B2_SIZEOF_RECORDS_PER_NODE
Definition: H5B2pkg.h:42

Definition at line 46 of file H5B2pkg.h.

Typedef Documentation

◆ H5B2_hdr_cache_ud_t

◆ H5B2_hdr_t

typedef struct H5B2_hdr_t H5B2_hdr_t

◆ H5B2_internal_cache_ud_t

◆ H5B2_internal_t

◆ H5B2_leaf_cache_ud_t

◆ H5B2_leaf_t

typedef struct H5B2_leaf_t H5B2_leaf_t

◆ H5B2_nodepos_t

Enumeration Type Documentation

◆ H5B2_nodepos_t

Enumerator
H5B2_POS_ROOT 
H5B2_POS_RIGHT 
H5B2_POS_LEFT 
H5B2_POS_MIDDLE 

Definition at line 212 of file H5B2pkg.h.

Function Documentation

◆ H5B2_create_leaf()

H5_DLL herr_t H5B2_create_leaf ( H5B2_hdr_t hdr,
hid_t  dxpl_id,
H5B2_node_ptr_t node_ptr 
)

◆ H5B2_delete_node()

H5_DLL herr_t H5B2_delete_node ( H5B2_hdr_t hdr,
hid_t  dxpl_id,
unsigned  depth,
const H5B2_node_ptr_t curr_node,
H5B2_remove_t  op,
void *  op_data 
)

◆ H5B2_hdr_alloc()

H5_DLL H5B2_hdr_t* H5B2_hdr_alloc ( H5F_t f)

◆ H5B2_hdr_create()

H5_DLL haddr_t H5B2_hdr_create ( H5F_t f,
hid_t  dxpl_id,
const H5B2_create_t *  cparam,
void *  ctx_udata 
)

◆ H5B2_hdr_debug()

H5_DLL herr_t H5B2_hdr_debug ( H5F_t f,
hid_t  dxpl_id,
haddr_t  addr,
FILE *  stream,
int  indent,
int  fwidth,
const H5B2_class_t *  type,
haddr_t  obj_addr 
)

◆ H5B2_hdr_decr()

H5_DLL herr_t H5B2_hdr_decr ( H5B2_hdr_t hdr)

◆ H5B2_hdr_delete()

H5_DLL herr_t H5B2_hdr_delete ( H5B2_hdr_t hdr,
hid_t  dxpl_id 
)

◆ H5B2_hdr_dirty()

H5_DLL herr_t H5B2_hdr_dirty ( H5B2_hdr_t hdr)

◆ H5B2_hdr_free()

H5_DLL herr_t H5B2_hdr_free ( H5B2_hdr_t hdr)

◆ H5B2_hdr_fuse_decr()

H5_DLL size_t H5B2_hdr_fuse_decr ( H5B2_hdr_t hdr)

◆ H5B2_hdr_fuse_incr()

H5_DLL herr_t H5B2_hdr_fuse_incr ( H5B2_hdr_t hdr)

◆ H5B2_hdr_incr()

H5_DLL herr_t H5B2_hdr_incr ( H5B2_hdr_t hdr)

◆ H5B2_hdr_init()

H5_DLL herr_t H5B2_hdr_init ( H5B2_hdr_t hdr,
const H5B2_create_t *  cparam,
void *  ctx_udata,
uint16_t  depth 
)

◆ H5B2_insert_internal()

H5_DLL herr_t H5B2_insert_internal ( H5B2_hdr_t hdr,
hid_t  dxpl_id,
unsigned  depth,
unsigned *  parent_cache_info_flags_ptr,
H5B2_node_ptr_t curr_node_ptr,
H5B2_nodepos_t  curr_pos,
void *  udata 
)

◆ H5B2_insert_leaf()

H5_DLL herr_t H5B2_insert_leaf ( H5B2_hdr_t hdr,
hid_t  dxpl_id,
H5B2_node_ptr_t curr_node_ptr,
H5B2_nodepos_t  curr_pos,
void *  udata 
)

◆ H5B2_int_debug()

H5_DLL herr_t H5B2_int_debug ( H5F_t f,
hid_t  dxpl_id,
haddr_t  addr,
FILE *  stream,
int  indent,
int  fwidth,
const H5B2_class_t *  type,
haddr_t  hdr_addr,
unsigned  nrec,
unsigned  depth,
haddr_t  obj_addr 
)

◆ H5B2_internal_free()

H5_DLL herr_t H5B2_internal_free ( H5B2_internal_t i)

◆ H5B2_iterate_node()

H5_DLL herr_t H5B2_iterate_node ( H5B2_hdr_t hdr,
hid_t  dxpl_id,
unsigned  depth,
const H5B2_node_ptr_t curr_node,
H5B2_operator_t  op,
void *  op_data 
)

◆ H5B2_leaf_debug()

H5_DLL herr_t H5B2_leaf_debug ( H5F_t f,
hid_t  dxpl_id,
haddr_t  addr,
FILE *  stream,
int  indent,
int  fwidth,
const H5B2_class_t *  type,
haddr_t  hdr_addr,
unsigned  nrec,
haddr_t  obj_addr 
)

◆ H5B2_leaf_free()

H5_DLL herr_t H5B2_leaf_free ( H5B2_leaf_t l)

◆ H5B2_locate_record()

H5_DLL int H5B2_locate_record ( const H5B2_class_t *  type,
unsigned  nrec,
size_t *  rec_off,
const uint8_t *  native,
const void *  udata,
unsigned *  idx,
int *  result 
)

◆ H5B2_neighbor_internal()

H5_DLL herr_t H5B2_neighbor_internal ( H5B2_hdr_t hdr,
hid_t  dxpl_id,
unsigned  depth,
H5B2_node_ptr_t curr_node_ptr,
void *  neighbor_loc,
H5B2_compare_t  comp,
void *  udata,
H5B2_found_t  op,
void *  op_data 
)

◆ H5B2_neighbor_leaf()

H5_DLL herr_t H5B2_neighbor_leaf ( H5B2_hdr_t hdr,
hid_t  dxpl_id,
H5B2_node_ptr_t curr_node_ptr,
void *  neighbor_loc,
H5B2_compare_t  comp,
void *  udata,
H5B2_found_t  op,
void *  op_data 
)

◆ H5B2_node_size()

H5_DLL herr_t H5B2_node_size ( H5B2_hdr_t hdr,
hid_t  dxpl_id,
unsigned  depth,
const H5B2_node_ptr_t curr_node,
hsize_t op_data 
)

◆ H5B2_protect_internal()

H5_DLL H5B2_internal_t* H5B2_protect_internal ( H5B2_hdr_t hdr,
hid_t  dxpl_id,
haddr_t  addr,
unsigned  nrec,
unsigned  depth,
H5AC_protect_t  rw 
)

◆ H5B2_protect_leaf()

H5B2_leaf_t* H5B2_protect_leaf ( H5B2_hdr_t hdr,
hid_t  dxpl_id,
haddr_t  addr,
unsigned  nrec,
H5AC_protect_t  rw 
)

◆ H5B2_remove_internal()

H5_DLL herr_t H5B2_remove_internal ( H5B2_hdr_t hdr,
hid_t  dxpl_id,
hbool_t depth_decreased,
void *  swap_loc,
unsigned  depth,
H5AC_info_t *  parent_cache_info,
unsigned *  parent_cache_info_flags_ptr,
H5B2_nodepos_t  curr_pos,
H5B2_node_ptr_t curr_node_ptr,
void *  udata,
H5B2_remove_t  op,
void *  op_data 
)

◆ H5B2_remove_internal_by_idx()

H5_DLL herr_t H5B2_remove_internal_by_idx ( H5B2_hdr_t hdr,
hid_t  dxpl_id,
hbool_t depth_decreased,
void *  swap_loc,
unsigned  depth,
H5AC_info_t *  parent_cache_info,
unsigned *  parent_cache_info_flags_ptr,
H5B2_node_ptr_t curr_node_ptr,
H5B2_nodepos_t  curr_pos,
hsize_t  n,
H5B2_remove_t  op,
void *  op_data 
)

◆ H5B2_remove_leaf()

H5_DLL herr_t H5B2_remove_leaf ( H5B2_hdr_t hdr,
hid_t  dxpl_id,
H5B2_node_ptr_t curr_node_ptr,
H5B2_nodepos_t  curr_pos,
void *  udata,
H5B2_remove_t  op,
void *  op_data 
)

◆ H5B2_remove_leaf_by_idx()

H5_DLL herr_t H5B2_remove_leaf_by_idx ( H5B2_hdr_t hdr,
hid_t  dxpl_id,
H5B2_node_ptr_t curr_node_ptr,
H5B2_nodepos_t  curr_pos,
unsigned  idx,
H5B2_remove_t  op,
void *  op_data 
)

◆ H5B2_split_root()

H5_DLL herr_t H5B2_split_root ( H5B2_hdr_t hdr,
hid_t  dxpl_id 
)

◆ H5FL_EXTERN() [1/2]

H5FL_EXTERN ( H5B2_internal_t  )

◆ H5FL_EXTERN() [2/2]

H5FL_EXTERN ( H5B2_leaf_t  )

Variable Documentation

◆ H5AC_BT2_HDR

H5_DLLVAR const H5AC_class_t H5AC_BT2_HDR[1]

Definition at line 254 of file H5B2pkg.h.

◆ H5AC_BT2_INT

H5_DLLVAR const H5AC_class_t H5AC_BT2_INT[1]

Definition at line 257 of file H5B2pkg.h.

◆ H5AC_BT2_LEAF

H5_DLLVAR const H5AC_class_t H5AC_BT2_LEAF[1]

Definition at line 260 of file H5B2pkg.h.

◆ H5B2_client_class_g

const H5B2_class_t* const H5B2_client_class_g[H5B2_NUM_BTREE_ID]

MISR Toolkit - Copyright © 2005 - 2020 Jet Propulsion Laboratory
Generated on Fri Jun 19 2020 22:49:53