MISR Toolkit  1.5.1
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 #ifndef H5I_PACKAGE
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*/
unsigned int hbool_t
Definition: H5public.h:142
long long ssize_t
Definition: H5public.h:156
#define H5_DLL
Definition: H5api_adpt.h:256
HDFFCLIBAPI _fcd name
HDFFCLIBAPI intf * size
int hid_t
Definition: H5Ipublic.h:54

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