summaryrefslogtreecommitdiffstats
path: root/src/H5Ipublic.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5Ipublic.h')
-rw-r--r--src/H5Ipublic.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/H5Ipublic.h b/src/H5Ipublic.h
new file mode 100644
index 0000000..bb1dfc4
--- /dev/null
+++ b/src/H5Ipublic.h
@@ -0,0 +1,69 @@
+/****************************************************************************
+ * NCSA HDF *
+ * Software Development Group *
+ * National Center for Supercomputing Applications *
+ * University of Illinois at Urbana-Champaign *
+ * 605 E. Springfield, Champaign IL 61820 *
+ * *
+ * For conditions of distribution and use, see the accompanying *
+ * hdf/COPYING file. *
+ * *
+ ****************************************************************************/
+
+/*
+ * This file contains function prototypes for each exported function in
+ * the H5I module.
+ */
+#ifndef _H5Ipublic_H
+#define _H5Ipublic_H
+
+/* Public headers needed by this file */
+#include <H5public.h>
+
+/* Group values allowed */
+typedef enum {
+ BADGROUP = (-1),/*invalid Group */
+ H5_FILE = 0, /*group ID for File objects */
+ H5_TEMPLATE_0, /*group ID for Template objects */
+ H5_TEMPLATE_1, /*group ID for Template objects */
+ H5_TEMPLATE_2, /*group ID for Template objects */
+ H5_TEMPLATE_3, /*group ID for Template objects */
+ H5_TEMPLATE_4, /*group ID for Template objects */
+ H5_TEMPLATE_5, /*group ID for Template objects */
+ H5_TEMPLATE_6, /*group ID for Template objects */
+ H5_TEMPLATE_7, /*group ID for Template objects */
+#ifndef NDEBUG
+ H5_TEMPLATE_MAX, /*not really a group ID */
+#endif
+ H5_GROUP, /*group ID for Group objects */
+ H5_DATATYPE, /*group ID for Datatype objects */
+ H5_DATASPACE, /*group ID for Dataspace objects */
+ H5_DATASET, /*group ID for Dataset objects */
+ H5_DIRECTORY, /*group ID for Directory objects */
+ MAXGROUP /*highest group in group_t (Invalid as true group)*/
+} H5I_group_t;
+
+/* Type of atoms to return to users */
+typedef int hid_t;
+
+/* # of bits to use for Group ID in each atom (change if MAXGROUP>16) */
+#define GROUP_BITS 8
+#define GROUP_MASK 0xFF
+
+/* # of bits to use for the Atom index in each atom (assumes 8-bit bytes) */
+#define ID_BITS ((sizeof(hid_t)*8)-GROUP_BITS)
+#define ID_MASK 0x0FFFFFFF
+
+/* Combine a Group number and an atom index into an atom */
+#define MAKE_ID(g,i) ((((hid_t)(g)&GROUP_MASK)<<ID_BITS)| \
+ ((hid_t)(i)&ID_MASK))
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif