/**************************************************************************** * 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. * * * ****************************************************************************/ /* $Id$ */ /* * This file contains function prototypes for each exported function in * the H5A module. */ #ifndef _H5Apublic_H #define _H5Apublic_H /* Public headers needed by this file */ #include /* Group values allowed */ typedef enum { BADGROUP = (-1), /* Invalid Group */ H5_ERR = 0, /* Group ID for Error stack objects */ H5_FILE, /* 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) */ } group_t; /* Type of atoms to return to users */ typedef int32 hid_t; /* Type of the function to compare objects & keys */ typedef intn (*H5Asearch_func_t) (const VOIDP obj, const VOIDP key); /* # 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 ATOM_BITS ((sizeof(hid_t)*8)-GROUP_BITS) #define ATOM_MASK 0x0FFFFFFF /* Combine a Group number and an atom index into an atom */ #define MAKE_ATOM(g,i) ((((hid_t)(g)&GROUP_MASK)<