HDF5  1.12.0
H5SMprivate.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: James Laird <jlaird@ncsa.uiuc.edu>
16  * Thursday, March 2, 2006
17  *
18  * Purpose: This file contains private declarations for the H5SM
19  * shared object header messages module.
20  */
21 #ifndef _H5SMprivate_H
22 #define _H5SMprivate_H
23 
24 #include "H5Oprivate.h" /* Object headers */
25 #include "H5Pprivate.h" /* Property lists */
26 
27 /**************************/
28 /* Library Private Macros */
29 /**************************/
30 
31 /* Flags for the "defer_flags" argument to H5SM_try_share
32  */
33 #define H5SM_DEFER 0x01u /* Don't actually write shared message to index, heap; just update shared info */
34 #define H5SM_WAS_DEFERRED 0x02u /* Message was previously updated by a call to H5SM_try_share with H5SM_DEFER */
35 
36 
37 /****************************/
38 /* Library Private Typedefs */
39 /****************************/
40 
41 /* Forward references of package typedefs */
43 
44 
45 /******************************/
46 /* Library Private Prototypes */
47 /******************************/
48 
49 /* Generally useful shared message routines */
50 H5_DLL herr_t H5SM_init(H5F_t *f, H5P_genplist_t *fc_plist, const H5O_loc_t *ext_loc);
52  ssize_t *sohm_index_num, unsigned type_id, const void *mesg);
53 H5_DLL htri_t H5SM_try_share(H5F_t *f, H5O_t *open_oh, unsigned defer_flags,
54  unsigned type_id, void *mesg, unsigned *mesg_flags);
55 H5_DLL herr_t H5SM_delete(H5F_t *f, H5O_t *open_oh, H5O_shared_t *sh_mesg);
56 H5_DLL herr_t H5SM_get_info(const H5O_loc_t *ext_loc, H5P_genplist_t *fc_plist);
57 H5_DLL htri_t H5SM_type_shared(H5F_t *f, unsigned type_id);
58 H5_DLL herr_t H5SM_get_fheap_addr(H5F_t *f, unsigned type_id, haddr_t *fheap_addr);
60  unsigned msg_type_id, H5O_fheap_id_t heap_id);
61 H5_DLL herr_t H5SM_get_refcount(H5F_t *f, unsigned type_id,
62  const H5O_shared_t *sh_mesg, hsize_t *ref_count);
64 
65 
66 /* Debugging routines */
67 H5_DLL herr_t H5SM_table_debug(H5F_t *f, haddr_t table_addr, FILE *stream,
68  int indent, int fwidth, unsigned table_vers, unsigned num_indexes);
69 H5_DLL herr_t H5SM_list_debug(H5F_t *f, haddr_t list_addr, FILE *stream,
70  int indent, int fwidth, haddr_t table_addr);
71 
72 #endif /*_H5SMprivate_H*/
73 
H5O_loc_t
Definition: H5Oprivate.h:152
ssize_t
int ssize_t
Definition: H5public.h:167
H5SM_ih_size
H5_DLL herr_t H5SM_ih_size(H5F_t *f, hsize_t *hdr_size, H5_ih_info_t *ih_info)
Definition: H5SM.c:2739
f
hdr f
Definition: H5EA.c:755
H5SM_get_refcount
H5_DLL herr_t H5SM_get_refcount(H5F_t *f, unsigned type_id, const H5O_shared_t *sh_mesg, hsize_t *ref_count)
Definition: H5SM.c:2156
H5O_shared_t
Definition: H5Oprivate.h:268
H5Pprivate.h
haddr_t
CATCH haddr_t
Definition: H5EAdblock.c:162
H5SM_get_info
H5_DLL herr_t H5SM_get_info(const H5O_loc_t *ext_loc, H5P_genplist_t *fc_plist)
Definition: H5SM.c:1966
indent
*s *s indent
Definition: H5HLdbg.c:111
H5SM_try_share
H5_DLL htri_t H5SM_try_share(H5F_t *f, H5O_t *open_oh, unsigned defer_flags, unsigned type_id, void *mesg, unsigned *mesg_flags)
Definition: H5SM.c:1044
hdr_size
hdr stats computed hdr_size
Definition: H5EAhdr.c:227
H5SM_init
H5_DLL herr_t H5SM_init(H5F_t *f, H5P_genplist_t *fc_plist, const H5O_loc_t *ext_loc)
Definition: H5SM.c:121
H5P_genplist_t
Definition: H5Ppkg.h:107
htri_t
int htri_t
Definition: H5public.h:160
H5SM_delete
H5_DLL herr_t H5SM_delete(H5F_t *f, H5O_t *open_oh, H5O_shared_t *sh_mesg)
Definition: H5SM.c:1535
H5SM_get_fheap_addr
H5_DLL herr_t H5SM_get_fheap_addr(H5F_t *f, unsigned type_id, haddr_t *fheap_addr)
Definition: H5SM.c:410
H5O_t
Definition: H5Opkg.h:279
H5SM_type_shared
H5_DLL htri_t H5SM_type_shared(H5F_t *f, unsigned type_id)
Definition: H5SM.c:353
H5_ih_info_t
Definition: H5public.h:326
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
H5Oprivate.h
H5SM_list_debug
H5_DLL herr_t H5SM_list_debug(H5F_t *f, haddr_t list_addr, FILE *stream, int indent, int fwidth, haddr_t table_addr)
Definition: H5SM.c:2629
fwidth
*s *s fwidth
Definition: H5HLdbg.c:111
H5_DLL
#define H5_DLL
Definition: H5api_adpt.h:234
H5O_fheap_id_t
Definition: H5Oprivate.h:146
H5F_t
Definition: H5Fpkg.h:374
H5SM_table_debug
H5_DLL herr_t H5SM_table_debug(H5F_t *f, haddr_t table_addr, FILE *stream, int indent, int fwidth, unsigned table_vers, unsigned num_indexes)
Definition: H5SM.c:2541
H5SM_can_share
H5_DLL htri_t H5SM_can_share(H5F_t *f, H5SM_master_table_t *table, ssize_t *sohm_index_num, unsigned type_id, const void *mesg)
Definition: H5SM.c:925
herr_t
int herr_t
Definition: H5public.h:128
H5SM_master_table_t
Definition: H5SMpkg.h:190
hsize_t
hsize_t
Definition: H5overflow.txt:44
H5SM_reconstitute
H5_DLL herr_t H5SM_reconstitute(H5O_shared_t *sh_mesg, H5F_t *f, unsigned msg_type_id, H5O_fheap_id_t heap_id)
Definition: H5SM.c:2092
H5SM_master_table_t::num_indexes
unsigned num_indexes
Definition: H5SMpkg.h:195