MISR Toolkit  1.5.1
H5Bpkg.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2  * Copyright by The HDF Group. *
3  * Copyright by the Board of Trustees of the University of Illinois. *
4  * All rights reserved. *
5  * *
6  * This file is part of HDF5. The full HDF5 copyright notice, including *
7  * terms governing use, modification, and redistribution, is contained in *
8  * the COPYING file, which can be found at the root of the source code *
9  * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
10  * If you do not have access to either file, you may request a copy from *
11  * help@hdfgroup.org. *
12  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
13 
14 /*
15  * Programmer: Quincey Koziol <koziol@ncsa.uiuc.edu>
16  * Thursday, May 15, 2003
17  *
18  * Purpose: This file contains declarations which are visible only within
19  * the H5B package. Source files outside the H5B package should
20  * include H5Bprivate.h instead.
21  */
22 #ifndef H5B_PACKAGE
23 #error "Do not include this file outside the H5B package!"
24 #endif
25 
26 #ifndef _H5Bpkg_H
27 #define _H5Bpkg_H
28 
29 /* Get package's private header */
30 #include "H5Bprivate.h"
31 
32 /* Other private headers needed by this file */
33 #include "H5ACprivate.h" /* Metadata cache */
34 #include "H5FLprivate.h" /* Free Lists */
35 
36 
37 /**************************/
38 /* Package Private Macros */
39 /**************************/
40 
41 /* Get the native key at a given index */
42 #define H5B_NKEY(b, shared, idx) ((b)->native + (shared)->nkey[(idx)])
43 
44 
45 /****************************/
46 /* Package Private Typedefs */
47 /****************************/
48 
49 /* The B-tree node as stored in memory... */
50 typedef struct H5B_t {
51  H5AC_info_t cache_info; /* Information for H5AC cache functions */
52  /* _must_ be first field in structure */
53  H5RC_t *rc_shared; /*ref-counted shared info */
54  unsigned level; /*node level */
55  unsigned nchildren; /*number of child pointers */
56  haddr_t left; /*address of left sibling */
57  haddr_t right; /*address of right sibling */
58  uint8_t *native; /*array of keys in native format */
59  haddr_t *child; /*2k child pointers */
60 } H5B_t;
61 
62 /* Callback info for loading a B-tree node into the cache */
63 typedef struct H5B_cache_ud_t {
64  H5F_t *f; /* File that B-tree node is within */
65  const struct H5B_class_t *type; /* Type of tree */
66  H5RC_t *rc_shared; /* Ref-counted shared info */
68 
69 /*****************************/
70 /* Package Private Variables */
71 /*****************************/
72 
73 /* H5B header inherits cache-like properties from H5AC */
74 H5_DLLVAR const H5AC_class_t H5AC_BT[1];
75 
76 /* Declare a free list to manage the haddr_t sequence information */
78 
79 /* Declare a PQ free list to manage the native block information */
80 H5FL_BLK_EXTERN(native_block);
81 
82 /* Declare a free list to manage the H5B_t struct */
84 
85 
86 /******************************/
87 /* Package Private Prototypes */
88 /******************************/
90 #ifdef H5B_DEBUG
91 herr_t H5B_assert(H5F_t *f, hid_t dxpl_id, haddr_t addr, const H5B_class_t *type,
92  void *udata);
93 #endif
94 
95 #endif /*_H5Bpkg_H*/
96 
haddr_t right
Definition: H5Bpkg.h:57
H5FL_BLK_EXTERN(native_block)
haddr_t * child
Definition: H5Bpkg.h:59
unsigned nchildren
Definition: H5Bpkg.h:55
#define H5_DLL
Definition: H5api_adpt.h:256
int herr_t
Definition: H5public.h:124
H5RC_t * rc_shared
Definition: H5Bpkg.h:66
H5FL_SEQ_EXTERN(haddr_t)
struct H5B_cache_ud_t H5B_cache_ud_t
H5FL_EXTERN(H5B_t)
uint64_t haddr_t
Definition: H5public.h:182
H5_DLL herr_t H5B_node_dest(H5B_t *bt)
unsigned level
Definition: H5Bpkg.h:54
H5AC_info_t cache_info
Definition: H5Bpkg.h:51
int hid_t
Definition: H5Ipublic.h:54
struct H5B_t H5B_t
haddr_t left
Definition: H5Bpkg.h:56
uint8_t * native
Definition: H5Bpkg.h:58
HDFFCLIBAPI intf intf intf * type
H5_DLLVAR const H5AC_class_t H5AC_BT[1]
Definition: H5Bpkg.h:74
#define H5_DLLVAR
Definition: H5api_adpt.h:257
H5RC_t * rc_shared
Definition: H5Bpkg.h:53
Definition: H5Bpkg.h:50
H5F_t * f
Definition: H5Bpkg.h:64
const struct H5B_class_t * type
Definition: H5Bpkg.h:65
Definition: H5Fpkg.h:255

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