HDF5
1.12.0
hdf5-1.12.0
src
H5Ipkg.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 H5I package. Source files outside the H5I package should
20
* include H5Iprivate.h instead.
21
*/
22
#if !(defined H5I_FRIEND || defined H5I_MODULE)
23
#error "Do not include this file outside the H5I package!"
24
#endif
25
26
#ifndef _H5Ipkg_H
27
#define _H5Ipkg_H
28
29
/* Get package's private header */
30
#include "
H5Iprivate.h
"
31
32
/* Other private headers needed by this file */
33
34
/**************************/
35
/* Package Private Macros */
36
/**************************/
37
38
/*
39
* Number of bits to use for ID Type in each atom. Increase if more types
40
* are needed (though this will decrease the number of available IDs per
41
* type). This is the only number that must be changed since all other bit
42
* field sizes and masks are calculated from TYPE_BITS.
43
*/
44
#define TYPE_BITS 7
45
#define TYPE_MASK (((hid_t)1 << TYPE_BITS) - 1)
46
47
#define H5I_MAX_NUM_TYPES TYPE_MASK
48
49
/*
50
* Number of bits to use for the Atom index in each atom (assumes 8-bit
51
* bytes). We don't use the sign bit.
52
*/
53
#define ID_BITS ((sizeof(hid_t) * 8) - (TYPE_BITS + 1))
54
#define ID_MASK (((hid_t)1 << ID_BITS) - 1)
55
56
/* Map an atom to an ID type number */
57
#define H5I_TYPE(a) ((H5I_type_t)(((hid_t)(a) >> ID_BITS) & TYPE_MASK))
58
59
60
/****************************/
61
/* Package Private Typedefs */
62
/****************************/
63
64
/******************************/
65
/* Package Private Prototypes */
66
/******************************/
67
68
/* Testing functions */
69
#ifdef H5I_TESTING
70
H5_DLL
ssize_t
H5I__get_name_test
(
hid_t
id
,
char
*name
/*out*/
,
size_t
size
,
71
hbool_t
*cached);
72
#endif
/* H5I_TESTING */
73
74
#endif
/*_H5Ipkg_H*/
ssize_t
int ssize_t
Definition:
H5public.h:167
size
iblock size
Definition:
H5EAcache.c:787
H5I__get_name_test
ssize_t H5I__get_name_test(hid_t id, char *name, size_t size, hbool_t *cached)
Definition:
H5Itest.c:79
hid_t
int64_t hid_t
Definition:
H5Ipublic.h:55
H5Iprivate.h
H5_DLL
#define H5_DLL
Definition:
H5api_adpt.h:234
hbool_t
bool hbool_t
Definition:
H5public.h:159
Generated by
1.8.18