HDF5  1.12.0
H5HLprivate.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  *
16  * Created: H5HLprivate.h
17  * Jul 16 1997
18  * Robb Matzke <matzke@llnl.gov>
19  *
20  * Purpose: Private declarations for the H5HL (local heap) package.
21  *
22  *-------------------------------------------------------------------------
23  */
24 #ifndef _H5HLprivate_H
25 #define _H5HLprivate_H
26 
27 /* Private headers needed by this file. */
28 #include "H5private.h" /* Generic Functions */
29 #include "H5ACprivate.h" /* Metadata cache */
30 #include "H5Fprivate.h" /* File access */
31 
32 /*
33  * Feature: Define H5HL_DEBUG on the compiler command line if you want to
34  * enable diagnostic messages from this layer.
35  */
36 #ifdef NDEBUG
37 # undef H5HL_DEBUG
38 #endif
39 
40 #define H5HL_ALIGN(X) ((((unsigned)X)+7)&(unsigned)(~0x07)) /* align on 8-byte boundary */
41 
42 #define H5HL_SIZEOF_FREE(F) \
43  H5HL_ALIGN(H5F_SIZEOF_SIZE (F) + /* ptr to next free block */ \
44  H5F_SIZEOF_SIZE (F)) /* size of this free block */
45 
46 /****************************/
47 /* Library Private Typedefs */
48 /****************************/
49 
50 /* Typedef for local heap in memory (defined in H5HLpkg.h) */
51 typedef struct H5HL_t H5HL_t;
52 
53 /*
54  * Library prototypes
55  */
56 H5_DLL herr_t H5HL_create(H5F_t *f, size_t size_hint, haddr_t *addr/*out*/);
60 H5_DLL size_t H5HL_insert(H5F_t *f, H5HL_t *heap, size_t size, const void *buf);
61 H5_DLL void *H5HL_offset_into(const H5HL_t *heap, size_t offset);
62 H5_DLL H5HL_t *H5HL_protect(H5F_t *f, haddr_t addr, unsigned flags);
63 H5_DLL herr_t H5HL_remove(H5F_t *f, H5HL_t *heap, size_t offset, size_t size);
65 
66 /* Debugging routines for dumping file structures */
67 H5_DLL herr_t H5HL_debug(H5F_t *f, haddr_t addr, FILE * stream, int indent,
68  int fwidth);
69 
70 #endif
71 
size
iblock size
Definition: H5EAcache.c:787
f
hdr f
Definition: H5EA.c:755
haddr_t
CATCH haddr_t
Definition: H5EAdblock.c:162
indent
*s *s indent
Definition: H5HLdbg.c:111
H5HL_debug
H5_DLL herr_t H5HL_debug(H5F_t *f, haddr_t addr, FILE *stream, int indent, int fwidth)
H5HL_t
Definition: H5HLpkg.h:88
H5HL_remove
H5_DLL herr_t H5HL_remove(H5F_t *f, H5HL_t *heap, size_t offset, size_t size)
H5HL_protect
H5_DLL H5HL_t * H5HL_protect(H5F_t *f, haddr_t addr, unsigned flags)
FILE
Invalid arguments to routine Resource unavailable Internal File accessibility Low level I O Function entry exit Object atom Object cache Links B Tree node Symbol table Heap Object header Datatype Dataspace Dataset Data storage Property lists Attribute Data filters External file list References Virtual File Layer Virtual Object Layer Ternary Search Trees Reference Counted Strings Error API Skip Lists Free Space Manager Shared Object Header Messages Extensible Array Fixed Array Plugin for dynamically loaded library Page Buffering API Context Map No error Argument errors Resource errors File accessibility errors FILE
Definition: H5err.txt:88
H5ACprivate.h
H5Fprivate.h
H5HL_delete
H5_DLL herr_t H5HL_delete(H5F_t *f, haddr_t addr)
H5HL_create
H5_DLL herr_t H5HL_create(H5F_t *f, size_t size_hint, haddr_t *addr)
H5HL_get_size
H5_DLL herr_t H5HL_get_size(H5F_t *f, haddr_t addr, size_t *size)
fwidth
*s *s fwidth
Definition: H5HLdbg.c:111
H5HL_heapsize
H5_DLL herr_t H5HL_heapsize(H5F_t *f, haddr_t addr, hsize_t *heap_size)
H5_DLL
#define H5_DLL
Definition: H5api_adpt.h:234
H5HL_unprotect
H5_DLL herr_t H5HL_unprotect(H5HL_t *heap)
H5HL_offset_into
H5_DLL void * H5HL_offset_into(const H5HL_t *heap, size_t offset)
heap
CATCH unable to release unprotect heap
Definition: H5HLdbg.c:119
H5F_t
Definition: H5Fpkg.h:374
herr_t
int herr_t
Definition: H5public.h:128
hsize_t
hsize_t
Definition: H5overflow.txt:44
H5HL_insert
H5_DLL size_t H5HL_insert(H5F_t *f, H5HL_t *heap, size_t size, const void *buf)
H5private.h