summaryrefslogtreecommitdiffstats
path: root/src/H5C.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5C.c')
-rw-r--r--src/H5C.c1142
1 files changed, 561 insertions, 581 deletions
diff --git a/src/H5C.c b/src/H5C.c
index 22349d4..20c3351 100644
--- a/src/H5C.c
+++ b/src/H5C.c
@@ -11,7 +11,7 @@
****************************************************************************/
#ifdef RCSID
-static char RcsId[] = "@(#)$Revision$";
+static char RcsId[] = "@(#)$Revision$";
#endif
/* $Id$ */
@@ -19,23 +19,23 @@ static char RcsId[] = "@(#)$Revision$";
#include <stdarg.h>
/* Private header files */
-#include <H5private.h> /* Generic Functions */
-#include <H5Aprivate.h> /* Atoms */
-#include <H5Bprivate.h> /* B-tree subclass names */
-#include <H5Cprivate.h> /* Template information */
-#include <H5Dprivate.h> /* Datasets */
-#include <H5Eprivate.h> /* Error handling */
-#include <H5MMprivate.h> /* Memory management */
+#include <H5private.h> /* Generic Functions */
+#include <H5Aprivate.h> /* Atoms */
+#include <H5Bprivate.h> /* B-tree subclass names */
+#include <H5Cprivate.h> /* Template information */
+#include <H5Dprivate.h> /* Datasets */
+#include <H5Eprivate.h> /* Error handling */
+#include <H5MMprivate.h> /* Memory management */
-#define PABLO_MASK H5C_mask
+#define PABLO_MASK H5C_mask
/* Is the interface initialized? */
-static hbool_t interface_initialize_g = FALSE;
+static hbool_t interface_initialize_g = FALSE;
#define INTERFACE_INIT H5C_init_interface
-static herr_t H5C_init_interface(void);
+static herr_t H5C_init_interface(void);
/* PRIVATE PROTOTYPES */
-static void H5C_term_interface (void);
+static void H5C_term_interface(void);
/*--------------------------------------------------------------------------
NAME
@@ -50,39 +50,38 @@ DESCRIPTION
--------------------------------------------------------------------------*/
static herr_t
-H5C_init_interface (void)
+H5C_init_interface(void)
{
- herr_t ret_value = SUCCEED;
- intn i;
- herr_t status;
-
- FUNC_ENTER (H5C_init_interface, FAIL);
-
- assert (H5C_NCLASSES <= H5_TEMPLATE_MAX-H5_TEMPLATE_0);
-
- /*
- * Initialize the mappings between template classes and atom groups. We
- * keep the two separate because template classes are publicly visible but
- * atom groups aren't.
- */
- for (i=0; i<H5C_NCLASSES; i++) {
- status = H5Ainit_group (H5_TEMPLATE_0+i, H5A_TEMPID_HASHSIZE, 0, NULL);
- if (status<0) ret_value = FAIL;
- }
- if (ret_value<0) {
- HRETURN_ERROR (H5E_ATOM, H5E_CANTINIT, FAIL,
- "unable to initialize atom group");
- }
-
- /*
- * Register cleanup function.
- */
- if (H5_add_exit (H5C_term_interface)<0) {
- HRETURN_ERROR (H5E_INTERNAL, H5E_CANTINIT, FAIL,
- "unable to install atexit function");
- }
-
- FUNC_LEAVE(ret_value);
+ herr_t ret_value = SUCCEED;
+ intn i;
+ herr_t status;
+
+ FUNC_ENTER(H5C_init_interface, FAIL);
+
+ assert(H5C_NCLASSES <= H5_TEMPLATE_MAX - H5_TEMPLATE_0);
+
+ /*
+ * Initialize the mappings between template classes and atom groups. We
+ * keep the two separate because template classes are publicly visible but
+ * atom groups aren't.
+ */
+ for (i = 0; i < H5C_NCLASSES; i++) {
+ status = H5Ainit_group(H5_TEMPLATE_0 + i, H5A_TEMPID_HASHSIZE, 0, NULL);
+ if (status < 0)
+ ret_value = FAIL;
+ }
+ if (ret_value < 0) {
+ HRETURN_ERROR(H5E_ATOM, H5E_CANTINIT, FAIL,
+ "unable to initialize atom group");
+ }
+ /*
+ * Register cleanup function.
+ */
+ if (H5_add_exit(H5C_term_interface) < 0) {
+ HRETURN_ERROR(H5E_INTERNAL, H5E_CANTINIT, FAIL,
+ "unable to install atexit function");
+ }
+ FUNC_LEAVE(ret_value);
}
/*--------------------------------------------------------------------------
@@ -103,13 +102,13 @@ H5C_init_interface (void)
REVISION LOG
--------------------------------------------------------------------------*/
static void
-H5C_term_interface (void)
+H5C_term_interface(void)
{
- intn i;
+ intn i;
- for (i=0; i<H5C_NCLASSES; i++) {
- H5Adestroy_group (H5_TEMPLATE_0+i);
- }
+ for (i = 0; i < H5C_NCLASSES; i++) {
+ H5Adestroy_group(H5_TEMPLATE_0 + i);
+ }
}
/*--------------------------------------------------------------------------
@@ -119,7 +118,7 @@ H5C_term_interface (void)
Returns a copy of the default template for some class of templates.
USAGE
herr_t H5Ccreate (type)
- H5C_class_t type; IN: Template class whose default is desired.
+ H5C_class_t type; IN: Template class whose default is desired.
RETURNS
Template ID or FAIL
@@ -132,61 +131,59 @@ H5C_term_interface (void)
Returns a copy of the default template for some class of templates.
--------------------------------------------------------------------------*/
hid_t
-H5Ccreate (H5C_class_t type)
+H5Ccreate(H5C_class_t type)
{
- hid_t ret_value = FAIL;
- void *tmpl = NULL;
-
- FUNC_ENTER (H5Ccreate, FAIL);
-
- /* Allocate a new template and initialize it with default values */
- switch (type) {
- case H5C_FILE_CREATE:
- tmpl = H5MM_xmalloc (sizeof(H5F_create_t));
- memcpy (tmpl, &H5F_create_dflt, sizeof(H5F_create_t));
- break;
-
- case H5C_FILE_ACCESS:
- HRETURN_ERROR (H5E_INTERNAL, H5E_UNSUPPORTED, FAIL,
- "not implemented yet");
-
- case H5C_DATASET_CREATE:
- tmpl = H5MM_xmalloc (sizeof(H5D_create_t));
- memcpy (tmpl, &H5D_create_dflt, sizeof(H5D_create_t));
- break;
-
- case H5C_DATASET_XFER:
- tmpl = H5MM_xmalloc (sizeof(H5D_xfer_t));
- memcpy (tmpl, &H5D_xfer_dflt, sizeof(H5D_xfer_t));
- break;
-
- default:
- HRETURN_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL,
- "unknown template class");
- }
-
- /* Atomize the new template */
- if ((ret_value = H5C_create (type, tmpl))<0) {
- HRETURN_ERROR (H5E_ATOM, H5E_CANTINIT, FAIL,
- "can't register template");
- }
-
- FUNC_LEAVE (ret_value);
+ hid_t ret_value = FAIL;
+ void *tmpl = NULL;
+
+ FUNC_ENTER(H5Ccreate, FAIL);
+
+ /* Allocate a new template and initialize it with default values */
+ switch (type) {
+ case H5C_FILE_CREATE:
+ tmpl = H5MM_xmalloc(sizeof(H5F_create_t));
+ memcpy(tmpl, &H5F_create_dflt, sizeof(H5F_create_t));
+ break;
+
+ case H5C_FILE_ACCESS:
+ HRETURN_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL,
+ "not implemented yet");
+
+ case H5C_DATASET_CREATE:
+ tmpl = H5MM_xmalloc(sizeof(H5D_create_t));
+ memcpy(tmpl, &H5D_create_dflt, sizeof(H5D_create_t));
+ break;
+
+ case H5C_DATASET_XFER:
+ tmpl = H5MM_xmalloc(sizeof(H5D_xfer_t));
+ memcpy(tmpl, &H5D_xfer_dflt, sizeof(H5D_xfer_t));
+ break;
+
+ default:
+ HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL,
+ "unknown template class");
+ }
+
+ /* Atomize the new template */
+ if ((ret_value = H5C_create(type, tmpl)) < 0) {
+ HRETURN_ERROR(H5E_ATOM, H5E_CANTINIT, FAIL,
+ "can't register template");
+ }
+ FUNC_LEAVE(ret_value);
}
-
/*-------------------------------------------------------------------------
- * Function: H5C_create
+ * Function: H5C_create
*
- * Purpose: Given a pointer to some template struct, atomize the template
- * and return its ID. The template memory is not copied, so the
- * caller should not free it; it will be freed by H5C_release().
+ * Purpose: Given a pointer to some template struct, atomize the template
+ * and return its ID. The template memory is not copied, so the
+ * caller should not free it; it will be freed by H5C_release().
*
- * Return: Success: A new template ID.
+ * Return: Success: A new template ID.
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
+ * Programmer: Robb Matzke
* Wednesday, December 3, 1997
*
* Modifications:
@@ -194,25 +191,24 @@ H5Ccreate (H5C_class_t type)
*-------------------------------------------------------------------------
*/
hid_t
-H5C_create (H5C_class_t type, void *tmpl)
+H5C_create(H5C_class_t type, void *tmpl)
{
- hid_t ret_value = FAIL;
-
- FUNC_ENTER (H5C_create, FAIL);
+ hid_t ret_value = FAIL;
- /* check args */
- assert (type>=0 && type<H5C_NCLASSES);
- assert (tmpl);
+ FUNC_ENTER(H5C_create, FAIL);
- /* Atomize the new template */
- if ((ret_value = H5Aregister_atom (H5_TEMPLATE_0+type, tmpl))<0) {
- HRETURN_ERROR (H5E_ATOM, H5E_CANTINIT, FAIL,
- "can't register template");
- }
+ /* check args */
+ assert(type >= 0 && type < H5C_NCLASSES);
+ assert(tmpl);
- FUNC_LEAVE (ret_value);
+ /* Atomize the new template */
+ if ((ret_value = H5Aregister_atom(H5_TEMPLATE_0 + type, tmpl)) < 0) {
+ HRETURN_ERROR(H5E_ATOM, H5E_CANTINIT, FAIL,
+ "can't register template");
+ }
+ FUNC_LEAVE(ret_value);
}
-
+
/*--------------------------------------------------------------------------
NAME
H5Cclose
@@ -227,32 +223,31 @@ H5C_create (H5C_class_t type, void *tmpl)
This function releases access to a template object
--------------------------------------------------------------------------*/
herr_t
-H5Cclose (hid_t template)
+H5Cclose(hid_t template)
{
- void *tmpl=NULL;
+ void *tmpl = NULL;
- FUNC_ENTER (H5Cclose, FAIL);
+ FUNC_ENTER(H5Cclose, FAIL);
- /* Chuck the object! :-) */
- if (NULL==(tmpl=H5Aremove_atom (template))) {
- HRETURN_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "unable to remove atom");
- }
- H5MM_xfree (tmpl);
+ /* Chuck the object! :-) */
+ if (NULL == (tmpl = H5Aremove_atom(template))) {
+ HRETURN_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "unable to remove atom");
+ }
+ H5MM_xfree(tmpl);
- FUNC_LEAVE (SUCCEED);
+ FUNC_LEAVE(SUCCEED);
}
-
/*-------------------------------------------------------------------------
- * Function: H5Cget_class
+ * Function: H5Cget_class
*
- * Purpose: Returns the class identifier for a template.
+ * Purpose: Returns the class identifier for a template.
*
- * Return: Success: A template class
+ * Return: Success: A template class
*
- * Failure: H5C_NO_CLASS (-1)
+ * Failure: H5C_NO_CLASS (-1)
*
- * Programmer: Robb Matzke
+ * Programmer: Robb Matzke
* Wednesday, December 3, 1997
*
* Modifications:
@@ -260,46 +255,44 @@ H5Cclose (hid_t template)
*-------------------------------------------------------------------------
*/
H5C_class_t
-H5Cget_class (hid_t template)
+H5Cget_class(hid_t template)
{
- group_t group;
- H5C_class_t ret_value = H5C_NO_CLASS;
-
- FUNC_ENTER (H5Cget_class, H5C_NO_CLASS);
-
- if ((group = H5Aatom_group (template))<0 ||
+ group_t group;
+ H5C_class_t ret_value = H5C_NO_CLASS;
+
+ FUNC_ENTER(H5Cget_class, H5C_NO_CLASS);
+
+ if ((group = H5Aatom_group(template)) < 0 ||
#ifndef NDEBUG
- group>=H5_TEMPLATE_MAX ||
+ group >= H5_TEMPLATE_MAX ||
#endif
- group<H5_TEMPLATE_0) {
- HRETURN_ERROR (H5E_ATOM, H5E_BADATOM, H5C_NO_CLASS, "not a template");
- }
-
- ret_value = group - H5_TEMPLATE_0;
- FUNC_LEAVE (ret_value);
+ group < H5_TEMPLATE_0) {
+ HRETURN_ERROR(H5E_ATOM, H5E_BADATOM, H5C_NO_CLASS, "not a template");
+ }
+ ret_value = group - H5_TEMPLATE_0;
+ FUNC_LEAVE(ret_value);
}
-
/*-------------------------------------------------------------------------
- * Function: H5Cget_version
+ * Function: H5Cget_version
*
- * Purpose: Retrieves version information for various parts of a file.
+ * Purpose: Retrieves version information for various parts of a file.
*
- * BOOT: The file boot block.
- * HEAP: The global heap.
- * FREELIST: The global free list.
- * STAB: The root symbol table entry.
- * SHHDR: Shared object headers.
+ * BOOT: The file boot block.
+ * HEAP: The global heap.
+ * FREELIST: The global free list.
+ * STAB: The root symbol table entry.
+ * SHHDR: Shared object headers.
*
- * Any (or even all) of the output arguments can be null
- * pointers.
+ * Any (or even all) of the output arguments can be null
+ * pointers.
*
- * Return: Success: SUCCEED, version information is returned
- * through the arguments.
+ * Return: Success: SUCCEED, version information is returned
+ * through the arguments.
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
+ * Programmer: Robb Matzke
* Wednesday, January 7, 1998
*
* Modifications:
@@ -307,41 +300,44 @@ H5Cget_class (hid_t template)
*-------------------------------------------------------------------------
*/
herr_t
-H5Cget_version (hid_t template, int *boot/*out*/, int *heap/*out*/,
- int *freelist/*out*/, int *stab/*out*/, int *shhdr/*out*/)
+H5Cget_version(hid_t template, int *boot /*out */ , int *heap /*out */ ,
+ int *freelist /*out */ , int *stab /*out */ , int *shhdr /*out */ )
{
- H5F_create_t *tmpl = NULL;
-
- FUNC_ENTER (H5Cget_version, FAIL);
-
- /* Check arguments */
- if (H5C_FILE_CREATE!=H5Cget_class (template) ||
- NULL==(tmpl=H5Aatom_object (template))) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADTYPE, FAIL,
- "not a file creation template");
- }
-
- /* Get values */
- if (boot) *boot = tmpl->bootblock_ver;
- if (heap) *heap = tmpl->smallobject_ver;
- if (freelist) *freelist = tmpl->freespace_ver;
- if (stab) *stab = tmpl->objectdir_ver;
- if (shhdr) *shhdr = tmpl->sharedheader_ver;
-
- FUNC_LEAVE (SUCCEED);
+ H5F_create_t *tmpl = NULL;
+
+ FUNC_ENTER(H5Cget_version, FAIL);
+
+ /* Check arguments */
+ if (H5C_FILE_CREATE != H5Cget_class(template) ||
+ NULL == (tmpl = H5Aatom_object(template))) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL,
+ "not a file creation template");
+ }
+ /* Get values */
+ if (boot)
+ *boot = tmpl->bootblock_ver;
+ if (heap)
+ *heap = tmpl->smallobject_ver;
+ if (freelist)
+ *freelist = tmpl->freespace_ver;
+ if (stab)
+ *stab = tmpl->objectdir_ver;
+ if (shhdr)
+ *shhdr = tmpl->sharedheader_ver;
+
+ FUNC_LEAVE(SUCCEED);
}
-
/*-------------------------------------------------------------------------
- * Function: H5Cset_userblock
+ * Function: H5Cset_userblock
*
- * Purpose: Sets the userblock size field of a file creation template.
+ * Purpose: Sets the userblock size field of a file creation template.
*
- * Return: Success: SUCCEED
+ * Return: Success: SUCCEED
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
+ * Programmer: Robb Matzke
* Tuesday, January 6, 1998
*
* Modifications:
@@ -349,45 +345,44 @@ H5Cget_version (hid_t template, int *boot/*out*/, int *heap/*out*/,
*-------------------------------------------------------------------------
*/
herr_t
-H5Cset_userblock (hid_t template, size_t size)
+H5Cset_userblock(hid_t template, size_t size)
{
- intn i;
- H5F_create_t *tmpl = NULL;
-
- FUNC_ENTER (H5Cset_userblock, FAIL);
-
- /* Check arguments */
- if (H5C_FILE_CREATE!=H5Cget_class (template) ||
- NULL==(tmpl=H5Aatom_object (template))) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADTYPE, FAIL,
- "not a file creation template");
- }
- for (i=8; i<8*sizeof(int); i++) {
- uintn p2 = 8==i ? 0 :1<<i;
- if (size==p2) break;
- }
- if (i>=8*sizeof(int)) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL,
- "userblock size is not valid");
- }
-
- /* Set value */
- tmpl->userblock_size = size;
-
- FUNC_LEAVE (SUCCEED);
+ intn i;
+ H5F_create_t *tmpl = NULL;
+
+ FUNC_ENTER(H5Cset_userblock, FAIL);
+
+ /* Check arguments */
+ if (H5C_FILE_CREATE != H5Cget_class(template) ||
+ NULL == (tmpl = H5Aatom_object(template))) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL,
+ "not a file creation template");
+ }
+ for (i = 8; i < 8 * sizeof(int); i++) {
+ uintn p2 = 8 == i ? 0 : 1 << i;
+ if (size == p2)
+ break;
+ }
+ if (i >= 8 * sizeof(int)) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL,
+ "userblock size is not valid");
+ }
+ /* Set value */
+ tmpl->userblock_size = size;
+
+ FUNC_LEAVE(SUCCEED);
}
-
/*-------------------------------------------------------------------------
- * Function: H5Cget_userblock
+ * Function: H5Cget_userblock
*
- * Purpose: Queries the size of a user block in a file creation template.
+ * Purpose: Queries the size of a user block in a file creation template.
*
- * Return: Success: SUCCEED, size returned through SIZE argument.
+ * Return: Success: SUCCEED, size returned through SIZE argument.
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
+ * Programmer: Robb Matzke
* Wednesday, January 7, 1998
*
* Modifications:
@@ -395,38 +390,37 @@ H5Cset_userblock (hid_t template, size_t size)
*-------------------------------------------------------------------------
*/
herr_t
-H5Cget_userblock (hid_t template, size_t *size)
+H5Cget_userblock(hid_t template, size_t *size)
{
- H5F_create_t *tmpl = NULL;
-
- FUNC_ENTER (H5Cget_userblock, FAIL);
+ H5F_create_t *tmpl = NULL;
- /* Check args */
- if (H5C_FILE_CREATE!=H5Cget_class (template) ||
- NULL==(tmpl=H5Aatom_object (template))) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADTYPE, FAIL,
- "not a file creation template");
- }
+ FUNC_ENTER(H5Cget_userblock, FAIL);
- /* Get value */
- if (size) *size = tmpl->userblock_size;
+ /* Check args */
+ if (H5C_FILE_CREATE != H5Cget_class(template) ||
+ NULL == (tmpl = H5Aatom_object(template))) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL,
+ "not a file creation template");
+ }
+ /* Get value */
+ if (size)
+ *size = tmpl->userblock_size;
- FUNC_LEAVE (SUCCEED);
+ FUNC_LEAVE(SUCCEED);
}
-
/*-------------------------------------------------------------------------
- * Function: H5Cset_sizes
+ * Function: H5Cset_sizes
*
- * Purpose: Sets file size-of addresses and sizes. TEMPLATE
- * should be a file creation template. A value of zero causes
- * the property to not change.
+ * Purpose: Sets file size-of addresses and sizes. TEMPLATE
+ * should be a file creation template. A value of zero causes
+ * the property to not change.
*
- * Return: Success: SUCCEED
+ * Return: Success: SUCCEED
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
+ * Programmer: Robb Matzke
* Tuesday, January 6, 1998
*
* Modifications:
@@ -434,53 +428,53 @@ H5Cget_userblock (hid_t template, size_t *size)
*-------------------------------------------------------------------------
*/
herr_t
-H5Cset_sizes (hid_t template, size_t sizeof_addr, size_t sizeof_size)
+H5Cset_sizes(hid_t template, size_t sizeof_addr, size_t sizeof_size)
{
- H5F_create_t *tmpl = NULL;
-
- FUNC_ENTER (H5Cset_sizeof_addr, FAIL);
-
- /* Check arguments */
- if (H5C_FILE_CREATE!=H5Cget_class (template) ||
- NULL==(tmpl=H5Aatom_object (template))) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADTYPE, FAIL,
- "not a file creation template");
- }
- if (sizeof_addr) {
- if (sizeof_addr!=2 && sizeof_addr!=4 &&
- sizeof_addr!=8 && sizeof_addr!=16) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL,
- "file haddr_t size is not valid");
- }
- }
- if (sizeof_size) {
- if (sizeof_size!=2 && sizeof_size!=4 &&
- sizeof_size!=8 && sizeof_size!=16) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL,
- "file size_t size is not valid");
- }
- }
-
- /* Set value */
- if (sizeof_addr) tmpl->sizeof_addr = sizeof_addr;
- if (sizeof_size) tmpl->sizeof_size = sizeof_size;
-
- FUNC_LEAVE (SUCCEED);
+ H5F_create_t *tmpl = NULL;
+
+ FUNC_ENTER(H5Cset_sizeof_addr, FAIL);
+
+ /* Check arguments */
+ if (H5C_FILE_CREATE != H5Cget_class(template) ||
+ NULL == (tmpl = H5Aatom_object(template))) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL,
+ "not a file creation template");
+ }
+ if (sizeof_addr) {
+ if (sizeof_addr != 2 && sizeof_addr != 4 &&
+ sizeof_addr != 8 && sizeof_addr != 16) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL,
+ "file haddr_t size is not valid");
+ }
+ }
+ if (sizeof_size) {
+ if (sizeof_size != 2 && sizeof_size != 4 &&
+ sizeof_size != 8 && sizeof_size != 16) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL,
+ "file size_t size is not valid");
+ }
+ }
+ /* Set value */
+ if (sizeof_addr)
+ tmpl->sizeof_addr = sizeof_addr;
+ if (sizeof_size)
+ tmpl->sizeof_size = sizeof_size;
+
+ FUNC_LEAVE(SUCCEED);
}
-
/*-------------------------------------------------------------------------
- * Function: H5Cget_sizes
+ * Function: H5Cget_sizes
*
- * Purpose: Returns the size of address and size quantities stored in a
- * file according to a file creation template. Either (or even
- * both) SIZEOF_ADDR and SIZEOF_SIZE may be null pointers.
+ * Purpose: Returns the size of address and size quantities stored in a
+ * file according to a file creation template. Either (or even
+ * both) SIZEOF_ADDR and SIZEOF_SIZE may be null pointers.
*
- * Return: Success: SUCCEED, sizes returned through arguments.
+ * Return: Success: SUCCEED, sizes returned through arguments.
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
+ * Programmer: Robb Matzke
* Wednesday, January 7, 1998
*
* Modifications:
@@ -488,51 +482,51 @@ H5Cset_sizes (hid_t template, size_t sizeof_addr, size_t sizeof_size)
*-------------------------------------------------------------------------
*/
herr_t
-H5Cget_sizes (hid_t template,
- size_t *sizeof_addr/*out*/, size_t *sizeof_size/*out*/)
+H5Cget_sizes(hid_t template,
+ size_t *sizeof_addr /*out */ , size_t *sizeof_size /*out */ )
{
- H5F_create_t *tmpl = NULL;
-
- FUNC_ENTER (H5Cget_sizes, FAIL);
-
- /* Check args */
- if (H5C_FILE_CREATE!=H5Cget_class (template) ||
- NULL==(tmpl=H5Aatom_object (template))) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADTYPE, FAIL,
- "not a file creation template");
- }
-
- /* Get values */
- if (sizeof_addr) *sizeof_addr = tmpl->sizeof_addr;
- if (sizeof_size) *sizeof_size = tmpl->sizeof_size;
-
- FUNC_LEAVE (SUCCEED);
+ H5F_create_t *tmpl = NULL;
+
+ FUNC_ENTER(H5Cget_sizes, FAIL);
+
+ /* Check args */
+ if (H5C_FILE_CREATE != H5Cget_class(template) ||
+ NULL == (tmpl = H5Aatom_object(template))) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL,
+ "not a file creation template");
+ }
+ /* Get values */
+ if (sizeof_addr)
+ *sizeof_addr = tmpl->sizeof_addr;
+ if (sizeof_size)
+ *sizeof_size = tmpl->sizeof_size;
+
+ FUNC_LEAVE(SUCCEED);
}
-
/*-------------------------------------------------------------------------
- * Function: H5Cset_sym_k
+ * Function: H5Cset_sym_k
*
- * Purpose: IK is one half the rank of a tree that stores a symbol
- * table for a group. Internal nodes of the symbol table are on
- * average 75% full. That is, the average rank of the tree is
- * 1.5 times the value of IK.
+ * Purpose: IK is one half the rank of a tree that stores a symbol
+ * table for a group. Internal nodes of the symbol table are on
+ * average 75% full. That is, the average rank of the tree is
+ * 1.5 times the value of IK.
*
- * LK is one half of the number of symbols that can be stored in
- * a symbol table node. A symbol table node is the leaf of a
- * symbol table tree which is used to store a group. When
- * symbols are inserted randomly into a group, the group's
- * symbol table nodes are 75% full on average. That is, they
- * contain 1.5 times the number of symbols specified by LK.
+ * LK is one half of the number of symbols that can be stored in
+ * a symbol table node. A symbol table node is the leaf of a
+ * symbol table tree which is used to store a group. When
+ * symbols are inserted randomly into a group, the group's
+ * symbol table nodes are 75% full on average. That is, they
+ * contain 1.5 times the number of symbols specified by LK.
*
- * Either (or even both) of IK and LK can be zero in which case
- * that value is left unchanged.
+ * Either (or even both) of IK and LK can be zero in which case
+ * that value is left unchanged.
*
- * Return: Success: SUCCEED
+ * Return: Success: SUCCEED
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
+ * Programmer: Robb Matzke
* Tuesday, January 6, 1998
*
* Modifications:
@@ -540,45 +534,41 @@ H5Cget_sizes (hid_t template,
*-------------------------------------------------------------------------
*/
herr_t
-H5Cset_sym_k (hid_t template, int ik, int lk)
+H5Cset_sym_k(hid_t template, int ik, int lk)
{
- H5F_create_t *tmpl = NULL;
-
- FUNC_ENTER (H5Cset_sym_k, FAIL);
-
- /* Check arguments */
- if (H5C_FILE_CREATE!=H5Cget_class (template) ||
- NULL==(tmpl=H5Aatom_object (template))) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADTYPE, FAIL,
- "not a file creation template");
- }
-
- /* Set values */
- if (ik>0) {
- tmpl->btree_k[H5B_SNODE_ID] = ik;
- }
- if (lk>0) {
- tmpl->sym_leaf_k = lk;
- }
-
-
- FUNC_LEAVE (SUCCEED);
+ H5F_create_t *tmpl = NULL;
+
+ FUNC_ENTER(H5Cset_sym_k, FAIL);
+
+ /* Check arguments */
+ if (H5C_FILE_CREATE != H5Cget_class(template) ||
+ NULL == (tmpl = H5Aatom_object(template))) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL,
+ "not a file creation template");
+ }
+ /* Set values */
+ if (ik > 0) {
+ tmpl->btree_k[H5B_SNODE_ID] = ik;
+ }
+ if (lk > 0) {
+ tmpl->sym_leaf_k = lk;
+ }
+ FUNC_LEAVE(SUCCEED);
}
-
/*-------------------------------------------------------------------------
- * Function: H5Cget_sym_k
+ * Function: H5Cget_sym_k
*
- * Purpose: Retrieves the symbol table B-tree 1/2 rank (IK) and the
- * symbol table leaf node 1/2 size (LK). See H5Cset_sym_k() for
- * details. Either (or even both) IK and LK may be null
- * pointers.
+ * Purpose: Retrieves the symbol table B-tree 1/2 rank (IK) and the
+ * symbol table leaf node 1/2 size (LK). See H5Cset_sym_k() for
+ * details. Either (or even both) IK and LK may be null
+ * pointers.
*
- * Return: Success: SUCCEED
+ * Return: Success: SUCCEED
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
+ * Programmer: Robb Matzke
* Wednesday, January 7, 1998
*
* Modifications:
@@ -586,39 +576,39 @@ H5Cset_sym_k (hid_t template, int ik, int lk)
*-------------------------------------------------------------------------
*/
herr_t
-H5Cget_sym_k (hid_t template, int *ik/*out*/, int *lk/*out*/)
+H5Cget_sym_k(hid_t template, int *ik /*out */ , int *lk /*out */ )
{
- H5F_create_t *tmpl = NULL;
-
- FUNC_ENTER (H5Cget_sym_k, FAIL);
-
- /* Check arguments */
- if (H5C_FILE_CREATE!=H5Cget_class (template) ||
- NULL==(tmpl=H5Aatom_object (template))) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADTYPE, FAIL,
- "not a file creation template");
- }
-
- /* Get values */
- if (ik) *ik = tmpl->btree_k[H5B_SNODE_ID];
- if (lk) *lk = tmpl->sym_leaf_k;
-
- FUNC_LEAVE (SUCCEED);
+ H5F_create_t *tmpl = NULL;
+
+ FUNC_ENTER(H5Cget_sym_k, FAIL);
+
+ /* Check arguments */
+ if (H5C_FILE_CREATE != H5Cget_class(template) ||
+ NULL == (tmpl = H5Aatom_object(template))) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL,
+ "not a file creation template");
+ }
+ /* Get values */
+ if (ik)
+ *ik = tmpl->btree_k[H5B_SNODE_ID];
+ if (lk)
+ *lk = tmpl->sym_leaf_k;
+
+ FUNC_LEAVE(SUCCEED);
}
-
/*-------------------------------------------------------------------------
- * Function: H5Cset_istore_k
+ * Function: H5Cset_istore_k
*
- * Purpose: IK is one half the rank of a tree that stores chunked raw
- * data. On average, such a tree will be 75% full, or have an
- * average rank of 1.5 times the value of IK.
+ * Purpose: IK is one half the rank of a tree that stores chunked raw
+ * data. On average, such a tree will be 75% full, or have an
+ * average rank of 1.5 times the value of IK.
*
- * Return: Success: SUCCEED
+ * Return: Success: SUCCEED
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
+ * Programmer: Robb Matzke
* Tuesday, January 6, 1998
*
* Modifications:
@@ -626,42 +616,40 @@ H5Cget_sym_k (hid_t template, int *ik/*out*/, int *lk/*out*/)
*-------------------------------------------------------------------------
*/
herr_t
-H5Cset_istore_k (hid_t template, int ik)
+H5Cset_istore_k(hid_t template, int ik)
{
- H5F_create_t *tmpl = NULL;
-
- FUNC_ENTER (H5Cset_istore_k, FAIL);
-
- /* Check arguments */
- if (H5C_FILE_CREATE!=H5Cget_class (template) ||
- NULL==(tmpl=H5Aatom_object (template))) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADTYPE, FAIL,
- "not a file creation template");
- }
- if (ik<=0) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL,
- "istore IK value must be positive");
- }
-
- /* Set value */
- tmpl->btree_k[H5B_ISTORE_ID] = ik;
-
- FUNC_LEAVE (SUCCEED);
+ H5F_create_t *tmpl = NULL;
+
+ FUNC_ENTER(H5Cset_istore_k, FAIL);
+
+ /* Check arguments */
+ if (H5C_FILE_CREATE != H5Cget_class(template) ||
+ NULL == (tmpl = H5Aatom_object(template))) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL,
+ "not a file creation template");
+ }
+ if (ik <= 0) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL,
+ "istore IK value must be positive");
+ }
+ /* Set value */
+ tmpl->btree_k[H5B_ISTORE_ID] = ik;
+
+ FUNC_LEAVE(SUCCEED);
}
-
/*-------------------------------------------------------------------------
- * Function: H5Cget_istore_k
+ * Function: H5Cget_istore_k
*
- * Purpose: Queries the 1/2 rank of an indexed storage B-tree. See
- * H5Cset_istore_k() for details. The argument IK may be the
- * null pointer.
+ * Purpose: Queries the 1/2 rank of an indexed storage B-tree. See
+ * H5Cset_istore_k() for details. The argument IK may be the
+ * null pointer.
*
- * Return: Success: SUCCEED, size returned through IK
+ * Return: Success: SUCCEED, size returned through IK
*
- * Failure:
+ * Failure:
*
- * Programmer: Robb Matzke
+ * Programmer: Robb Matzke
* Wednesday, January 7, 1998
*
* Modifications:
@@ -669,36 +657,35 @@ H5Cset_istore_k (hid_t template, int ik)
*-------------------------------------------------------------------------
*/
herr_t
-H5Cget_istore_k (hid_t template, int *ik/*out*/)
+H5Cget_istore_k(hid_t template, int *ik /*out */ )
{
- H5F_create_t *tmpl = NULL;
-
- FUNC_ENTER (H5Cget_istore_k, FAIL);
-
- /* Check arguments */
- if (H5C_FILE_CREATE!=H5Cget_class (template) ||
- NULL==(tmpl=H5Aatom_object (template))) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADTYPE, FAIL,
- "not a file creation template");
- }
+ H5F_create_t *tmpl = NULL;
- /* Get value */
- if (ik) *ik = tmpl->btree_k[H5B_ISTORE_ID];
+ FUNC_ENTER(H5Cget_istore_k, FAIL);
- FUNC_LEAVE (SUCCEED);
-}
+ /* Check arguments */
+ if (H5C_FILE_CREATE != H5Cget_class(template) ||
+ NULL == (tmpl = H5Aatom_object(template))) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL,
+ "not a file creation template");
+ }
+ /* Get value */
+ if (ik)
+ *ik = tmpl->btree_k[H5B_ISTORE_ID];
+ FUNC_LEAVE(SUCCEED);
+}
/*-------------------------------------------------------------------------
- * Function: H5Cset_layout
+ * Function: H5Cset_layout
*
- * Purpose: Sets the layout of raw data in the file.
+ * Purpose: Sets the layout of raw data in the file.
*
- * Return: Success: SUCCEED
+ * Return: Success: SUCCEED
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
+ * Programmer: Robb Matzke
* Tuesday, January 6, 1998
*
* Modifications:
@@ -706,40 +693,38 @@ H5Cget_istore_k (hid_t template, int *ik/*out*/)
*-------------------------------------------------------------------------
*/
herr_t
-H5Cset_layout (hid_t template, H5D_layout_t layout)
+H5Cset_layout(hid_t template, H5D_layout_t layout)
{
- H5D_create_t *tmpl = NULL;
-
- FUNC_ENTER (H5Cset_layout, FAIL);
-
- /* Check arguments */
- if (H5C_DATASET_CREATE!=H5Cget_class (template) ||
- NULL==(tmpl=H5Aatom_object (template))) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADTYPE, FAIL,
- "not a dataset creation template");
- }
- if (layout<0 || layout>=H5D_NLAYOUTS) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADRANGE, FAIL,
- "raw data layout method is not valid");
- }
-
- /* Set value */
- tmpl->layout = layout;
-
- FUNC_LEAVE (SUCCEED);
+ H5D_create_t *tmpl = NULL;
+
+ FUNC_ENTER(H5Cset_layout, FAIL);
+
+ /* Check arguments */
+ if (H5C_DATASET_CREATE != H5Cget_class(template) ||
+ NULL == (tmpl = H5Aatom_object(template))) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL,
+ "not a dataset creation template");
+ }
+ if (layout < 0 || layout >= H5D_NLAYOUTS) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL,
+ "raw data layout method is not valid");
+ }
+ /* Set value */
+ tmpl->layout = layout;
+
+ FUNC_LEAVE(SUCCEED);
}
-
/*-------------------------------------------------------------------------
- * Function: H5Cget_layout
+ * Function: H5Cget_layout
*
- * Purpose: Retrieves layout type of a dataset creation template.
+ * Purpose: Retrieves layout type of a dataset creation template.
*
- * Return: Success: The layout type
+ * Return: Success: The layout type
*
- * Failure: H5D_LAYOUT_ERROR (-1, same as FAIL)
+ * Failure: H5D_LAYOUT_ERROR (-1, same as FAIL)
*
- * Programmer: Robb Matzke
+ * Programmer: Robb Matzke
* Wednesday, January 7, 1998
*
* Modifications:
@@ -747,38 +732,36 @@ H5Cset_layout (hid_t template, H5D_layout_t layout)
*-------------------------------------------------------------------------
*/
H5D_layout_t
-H5Cget_layout (hid_t template)
+H5Cget_layout(hid_t template)
{
- H5D_create_t *tmpl = NULL;
-
- FUNC_ENTER (H5Cget_layout, H5D_LAYOUT_ERROR);
-
- /* Check arguments */
- if (H5C_DATASET_CREATE!=H5Cget_class (template) ||
- NULL==(tmpl=H5Aatom_object (template))) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADTYPE, H5D_LAYOUT_ERROR,
- "not a dataset creation template");
- }
-
- FUNC_LEAVE (tmpl->layout);
-}
+ H5D_create_t *tmpl = NULL;
+
+ FUNC_ENTER(H5Cget_layout, H5D_LAYOUT_ERROR);
+ /* Check arguments */
+ if (H5C_DATASET_CREATE != H5Cget_class(template) ||
+ NULL == (tmpl = H5Aatom_object(template))) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, H5D_LAYOUT_ERROR,
+ "not a dataset creation template");
+ }
+ FUNC_LEAVE(tmpl->layout);
+}
/*-------------------------------------------------------------------------
- * Function: H5Cset_chunk
+ * Function: H5Cset_chunk
*
- * Purpose: Sets the number of dimensions and the size of each chunk to
- * the values specified. The dimensionality of the chunk should
- * match the dimensionality of the data space.
+ * Purpose: Sets the number of dimensions and the size of each chunk to
+ * the values specified. The dimensionality of the chunk should
+ * match the dimensionality of the data space.
*
- * As a side effect, the layout method is changed to
- * H5D_CHUNKED.
+ * As a side effect, the layout method is changed to
+ * H5D_CHUNKED.
*
- * Return: Success: SUCCEED
+ * Return: Success: SUCCEED
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
+ * Programmer: Robb Matzke
* Tuesday, January 6, 1998
*
* Modifications:
@@ -786,60 +769,60 @@ H5Cget_layout (hid_t template)
*-------------------------------------------------------------------------
*/
herr_t
-H5Cset_chunk (hid_t template, int ndims, size_t dim[])
+H5Cset_chunk(hid_t template, int ndims, size_t dim[])
{
- int i;
- H5D_create_t *tmpl = NULL;
-
- FUNC_ENTER (H5Cset_chunk, FAIL);
-
- /* Check arguments */
- if (H5C_DATASET_CREATE!=H5Cget_class (template) ||
- NULL==(tmpl=H5Aatom_object (template))) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADTYPE, FAIL,
- "not a dataset creation template");
- }
- if (ndims<=0) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADRANGE, FAIL,
- "chunk dimensionality must be positive");
- }
- if (ndims>NELMTS (tmpl->chunk_size)) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADRANGE, FAIL,
- "chunk dimensionality is too large");
- }
- if (!dim) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL,
- "no chunk dimensions specified");
- }
- for (i=0; i<ndims; i++) {
- if (dim[i]<=0) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADRANGE, FAIL,
- "all chunk dimensions must be positive");
- }
- }
-
- /* Set value */
- tmpl->layout = H5D_CHUNKED;
- tmpl->chunk_ndims = ndims;
- for (i=0; i<ndims; i++) tmpl->chunk_size[i] = dim[i];
-
- FUNC_LEAVE (SUCCEED);
+ int i;
+ H5D_create_t *tmpl = NULL;
+
+ FUNC_ENTER(H5Cset_chunk, FAIL);
+
+ /* Check arguments */
+ if (H5C_DATASET_CREATE != H5Cget_class(template) ||
+ NULL == (tmpl = H5Aatom_object(template))) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL,
+ "not a dataset creation template");
+ }
+ if (ndims <= 0) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL,
+ "chunk dimensionality must be positive");
+ }
+ if (ndims > NELMTS(tmpl->chunk_size)) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL,
+ "chunk dimensionality is too large");
+ }
+ if (!dim) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL,
+ "no chunk dimensions specified");
+ }
+ for (i = 0; i < ndims; i++) {
+ if (dim[i] <= 0) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL,
+ "all chunk dimensions must be positive");
+ }
+ }
+
+ /* Set value */
+ tmpl->layout = H5D_CHUNKED;
+ tmpl->chunk_ndims = ndims;
+ for (i = 0; i < ndims; i++)
+ tmpl->chunk_size[i] = dim[i];
+
+ FUNC_LEAVE(SUCCEED);
}
-
/*-------------------------------------------------------------------------
- * Function: H5Cget_chunk
+ * Function: H5Cget_chunk
*
- * Purpose: Retrieves the chunk size of chunked layout. The chunk
- * dimensionality is returned and the chunk size in each
- * dimension is returned through the DIM argument. At most
- * MAX_NDIMS elements of DIM will be initialized.
+ * Purpose: Retrieves the chunk size of chunked layout. The chunk
+ * dimensionality is returned and the chunk size in each
+ * dimension is returned through the DIM argument. At most
+ * MAX_NDIMS elements of DIM will be initialized.
*
- * Return: Success: Positive Chunk dimensionality.
+ * Return: Success: Positive Chunk dimensionality.
*
- * Failure: FAIL
+ * Failure: FAIL
*
- * Programmer: Robb Matzke
+ * Programmer: Robb Matzke
* Wednesday, January 7, 1998
*
* Modifications:
@@ -847,29 +830,28 @@ H5Cset_chunk (hid_t template, int ndims, size_t dim[])
*-------------------------------------------------------------------------
*/
int
-H5Cget_chunk (hid_t template, int max_ndims, size_t dim[]/*out*/)
+H5Cget_chunk(hid_t template, int max_ndims, size_t dim[] /*out */ )
{
- int i;
- H5D_create_t *tmpl = NULL;
-
- FUNC_ENTER (H5Cget_chunk, FAIL);
-
- /* Check arguments */
- if (H5C_DATASET_CREATE!=H5Cget_class (template) ||
- NULL==(tmpl=H5Aatom_object (template))) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADTYPE, FAIL,
- "not a dataset creation template");
- }
- if (H5D_CHUNKED!=tmpl->layout) {
- HRETURN_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL,
- "not a chunked storage layout");
- }
-
- for (i=0; i<tmpl->chunk_ndims && i<max_ndims && dim; i++) {
- dim[i] = tmpl->chunk_size[i];
- }
-
- FUNC_LEAVE (tmpl->chunk_ndims);
+ int i;
+ H5D_create_t *tmpl = NULL;
+
+ FUNC_ENTER(H5Cget_chunk, FAIL);
+
+ /* Check arguments */
+ if (H5C_DATASET_CREATE != H5Cget_class(template) ||
+ NULL == (tmpl = H5Aatom_object(template))) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL,
+ "not a dataset creation template");
+ }
+ if (H5D_CHUNKED != tmpl->layout) {
+ HRETURN_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL,
+ "not a chunked storage layout");
+ }
+ for (i = 0; i < tmpl->chunk_ndims && i < max_ndims && dim; i++) {
+ dim[i] = tmpl->chunk_size[i];
+ }
+
+ FUNC_LEAVE(tmpl->chunk_ndims);
}
/*--------------------------------------------------------------------------
@@ -896,58 +878,56 @@ H5Cget_chunk (hid_t template, int max_ndims, size_t dim[]/*out*/)
settings.
--------------------------------------------------------------------------*/
hid_t
-H5Ccopy (hid_t template)
+H5Ccopy(hid_t template)
{
- const void *tmpl = NULL;
- void *new_tmpl = NULL;
- H5C_class_t type;
- size_t size;
- hid_t ret_value = FAIL;
- group_t group;
-
- FUNC_ENTER (H5Ccopy, FAIL);
- H5ECLEAR;
-
- /* check args */
- if (NULL==(tmpl=H5Aatom_object (template)) ||
- (type=H5Cget_class (template))<0 ||
- (group=H5Aatom_group (template))<0) {
- HRETURN_ERROR (H5E_ATOM, H5E_BADATOM, FAIL,
- "can't unatomize template");
- }
-
- /* How big is the template */
- switch (type) {
- case H5C_FILE_CREATE:
- size = sizeof(H5F_create_t);
- break;
-
- case H5C_FILE_ACCESS:
- HRETURN_ERROR (H5E_INTERNAL, H5E_UNSUPPORTED, FAIL,
- "file access properties are not implemented yet");
-
- case H5C_DATASET_CREATE:
- size = sizeof(H5D_create_t);
- break;
-
- case H5C_DATASET_XFER:
- size = sizeof(H5D_xfer_t);
- break;
-
- default:
- HRETURN_ERROR (H5E_ARGS, H5E_BADRANGE, FAIL,
- "unknown template class");
- }
-
- /* Create the new template */
- new_tmpl = H5MM_xmalloc (size);
- HDmemcpy (new_tmpl, tmpl, size);
-
- /* Register the atom for the new template */
- if ((ret_value=H5Aregister_atom (group, new_tmpl))<0) {
- HRETURN_ERROR (H5E_ATOM, H5E_CANTREGISTER, FAIL,
- "unable to atomize template pointer");
- }
-
- FUNC_LEAVE (ret_value);
+ const void *tmpl = NULL;
+ void *new_tmpl = NULL;
+ H5C_class_t type;
+ size_t size;
+ hid_t ret_value = FAIL;
+ group_t group;
+
+ FUNC_ENTER(H5Ccopy, FAIL);
+ H5ECLEAR;
+
+ /* check args */
+ if (NULL == (tmpl = H5Aatom_object(template)) ||
+ (type = H5Cget_class(template)) < 0 ||
+ (group = H5Aatom_group(template)) < 0) {
+ HRETURN_ERROR(H5E_ATOM, H5E_BADATOM, FAIL,
+ "can't unatomize template");
+ }
+ /* How big is the template */
+ switch (type) {
+ case H5C_FILE_CREATE:
+ size = sizeof(H5F_create_t);
+ break;
+
+ case H5C_FILE_ACCESS:
+ HRETURN_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL,
+ "file access properties are not implemented yet");
+
+ case H5C_DATASET_CREATE:
+ size = sizeof(H5D_create_t);
+ break;
+
+ case H5C_DATASET_XFER:
+ size = sizeof(H5D_xfer_t);
+ break;
+
+ default:
+ HRETURN_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL,
+ "unknown template class");
+ }
+
+ /* Create the new template */
+ new_tmpl = H5MM_xmalloc(size);
+ HDmemcpy(new_tmpl, tmpl, size);
+
+ /* Register the atom for the new template */
+ if ((ret_value = H5Aregister_atom(group, new_tmpl)) < 0) {
+ HRETURN_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL,
+ "unable to atomize template pointer");
+ }
+ FUNC_LEAVE(ret_value);
}