[svn-r12655] Description:

Add "op" routine to perform operation on heap object "in situ", to allow
for faster operations on dense links during B-tree traversal & lookup.
Refactor the "read" routine to use the internal version of the "op" routine,
to keep the code duplication as low as possible.

Tested on:
    Mac OS X.4/PPC (amazon)
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
This commit is contained in:
Quincey Koziol 2006-09-11 12:25:26 -05:00
parent 9e158b7816
commit e5cad0ef24
12 changed files with 1429 additions and 988 deletions

View File

@ -20,38 +20,81 @@
#define _H5Edefin_H
/* Major error IDs */
hid_t H5E_DATATYPE_g = FAIL; /* Datatype */
hid_t H5E_PLINE_g = FAIL; /* Data filters */
hid_t H5E_OHDR_g = FAIL; /* Object header */
hid_t H5E_SYM_g = FAIL; /* Symbol table */
hid_t H5E_RESOURCE_g = FAIL; /* Resource unavailable */
hid_t H5E_FSPACE_g = FAIL; /* Free Space Manager */
hid_t H5E_INTERNAL_g = FAIL; /* Internal error (too specific to document in detail) */
hid_t H5E_DATASPACE_g = FAIL; /* Dataspace */
hid_t H5E_VFL_g = FAIL; /* Virtual File Layer */
hid_t H5E_BTREE_g = FAIL; /* B-Tree node */
hid_t H5E_IO_g = FAIL; /* Low-level I/O */
hid_t H5E_CACHE_g = FAIL; /* Object cache */
hid_t H5E_LINK_g = FAIL; /* Links */
hid_t H5E_ERROR_g = FAIL; /* Error API */
hid_t H5E_FILE_g = FAIL; /* File accessability */
hid_t H5E_NONE_MAJOR_g = FAIL; /* No error */
hid_t H5E_FUNC_g = FAIL; /* Function entry/exit */
hid_t H5E_HEAP_g = FAIL; /* Heap */
hid_t H5E_SLIST_g = FAIL; /* Skip Lists */
hid_t H5E_RS_g = FAIL; /* Reference Counted Strings */
hid_t H5E_DATASET_g = FAIL; /* Dataset */
hid_t H5E_TST_g = FAIL; /* Ternary Search Trees */
hid_t H5E_ATTR_g = FAIL; /* Attribute */
hid_t H5E_FUNC_g = FAIL; /* Function entry/exit */
hid_t H5E_STORAGE_g = FAIL; /* Data storage */
hid_t H5E_ATOM_g = FAIL; /* Object atom */
hid_t H5E_PLIST_g = FAIL; /* Property lists */
hid_t H5E_ARGS_g = FAIL; /* Invalid arguments to routine */
hid_t H5E_FILE_g = FAIL; /* File accessability */
hid_t H5E_SYM_g = FAIL; /* Symbol table */
hid_t H5E_VFL_g = FAIL; /* Virtual File Layer */
hid_t H5E_INTERNAL_g = FAIL; /* Internal error (too specific to document in detail) */
hid_t H5E_BTREE_g = FAIL; /* B-Tree node */
hid_t H5E_REFERENCE_g = FAIL; /* References */
hid_t H5E_DATASPACE_g = FAIL; /* Dataspace */
hid_t H5E_RESOURCE_g = FAIL; /* Resource unavailable */
hid_t H5E_PLIST_g = FAIL; /* Property lists */
hid_t H5E_LINK_g = FAIL; /* Links */
hid_t H5E_DATATYPE_g = FAIL; /* Datatype */
hid_t H5E_RS_g = FAIL; /* Reference Counted Strings */
hid_t H5E_HEAP_g = FAIL; /* Heap */
hid_t H5E_OHDR_g = FAIL; /* Object header */
hid_t H5E_ATOM_g = FAIL; /* Object atom */
hid_t H5E_ATTR_g = FAIL; /* Attribute */
hid_t H5E_NONE_MAJOR_g = FAIL; /* No error */
hid_t H5E_IO_g = FAIL; /* Low-level I/O */
hid_t H5E_SLIST_g = FAIL; /* Skip Lists */
hid_t H5E_EFL_g = FAIL; /* External file list */
hid_t H5E_TST_g = FAIL; /* Ternary Search Trees */
hid_t H5E_ARGS_g = FAIL; /* Invalid arguments to routine */
hid_t H5E_ERROR_g = FAIL; /* Error API */
hid_t H5E_PLINE_g = FAIL; /* Data filters */
hid_t H5E_FSPACE_g = FAIL; /* Free Space Manager */
hid_t H5E_CACHE_g = FAIL; /* Object cache */
/* Minor error IDs */
/* Generic low-level file I/O errors */
hid_t H5E_SEEKERROR_g = FAIL; /* Seek failed */
hid_t H5E_READERROR_g = FAIL; /* Read failed */
hid_t H5E_WRITEERROR_g = FAIL; /* Write failed */
hid_t H5E_CLOSEERROR_g = FAIL; /* Close failed */
hid_t H5E_OVERFLOW_g = FAIL; /* Address overflowed */
hid_t H5E_FCNTL_g = FAIL; /* File control (fcntl) failed */
/* Resource errors */
hid_t H5E_NOSPACE_g = FAIL; /* No space available for allocation */
hid_t H5E_CANTALLOC_g = FAIL; /* Can't allocate space */
hid_t H5E_CANTCOPY_g = FAIL; /* Unable to copy object */
hid_t H5E_CANTFREE_g = FAIL; /* Unable to free object */
hid_t H5E_ALREADYEXISTS_g = FAIL; /* Object already exists */
hid_t H5E_CANTLOCK_g = FAIL; /* Unable to lock object */
hid_t H5E_CANTUNLOCK_g = FAIL; /* Unable to unlock object */
hid_t H5E_CANTGC_g = FAIL; /* Unable to garbage collect */
hid_t H5E_CANTGETSIZE_g = FAIL; /* Unable to compute size */
hid_t H5E_OBJOPEN_g = FAIL; /* Object is already open */
/* Heap errors */
hid_t H5E_CANTRESTORE_g = FAIL; /* Can't restore condition */
hid_t H5E_CANTCOMPUTE_g = FAIL; /* Can't compute value */
hid_t H5E_CANTEXTEND_g = FAIL; /* Can't extend heap's space */
hid_t H5E_CANTATTACH_g = FAIL; /* Can't attach object */
hid_t H5E_CANTUPDATE_g = FAIL; /* Can't update object */
hid_t H5E_CANTOPERATE_g = FAIL; /* Can't operate on object */
/* Function entry/exit interface errors */
hid_t H5E_CANTINIT_g = FAIL; /* Unable to initialize object */
hid_t H5E_ALREADYINIT_g = FAIL; /* Object already initialized */
hid_t H5E_CANTRELEASE_g = FAIL; /* Unable to release object */
/* Property list errors */
hid_t H5E_CANTGET_g = FAIL; /* Can't get value */
hid_t H5E_CANTSET_g = FAIL; /* Can't set value */
hid_t H5E_DUPCLASS_g = FAIL; /* Duplicate class name in parent class */
/* Free space errors */
hid_t H5E_CANTMERGE_g = FAIL; /* Can't merge objects */
hid_t H5E_CANTREVIVE_g = FAIL; /* Can't revive object */
hid_t H5E_CANTSHRINK_g = FAIL; /* Can't shrink container */
/* Object header related errors */
hid_t H5E_LINKCOUNT_g = FAIL; /* Bad object header link count */
hid_t H5E_VERSION_g = FAIL; /* Wrong version number */
@ -61,23 +104,16 @@ hid_t H5E_CANTDELETE_g = FAIL; /* Can't delete message */
hid_t H5E_BADITER_g = FAIL; /* Iteration failed */
hid_t H5E_CANTPACK_g = FAIL; /* Can't pack messages */
/* Argument errors */
hid_t H5E_UNINITIALIZED_g = FAIL; /* Information is uinitialized */
hid_t H5E_UNSUPPORTED_g = FAIL; /* Feature is unsupported */
hid_t H5E_BADTYPE_g = FAIL; /* Inappropriate type */
hid_t H5E_BADRANGE_g = FAIL; /* Out of range */
hid_t H5E_BADVALUE_g = FAIL; /* Bad value */
/* System level errors */
hid_t H5E_SYSERRSTR_g = FAIL; /* System error message */
/* Dataspace errors */
hid_t H5E_CANTCLIP_g = FAIL; /* Can't clip hyperslab region */
hid_t H5E_CANTCOUNT_g = FAIL; /* Can't count elements */
hid_t H5E_CANTSELECT_g = FAIL; /* Can't select hyperslab */
hid_t H5E_CANTNEXT_g = FAIL; /* Can't move to next iterator location */
hid_t H5E_BADSELECT_g = FAIL; /* Invalid selection */
hid_t H5E_CANTCOMPARE_g = FAIL; /* Can't compare objects */
/* I/O pipeline errors */
hid_t H5E_NOFILTER_g = FAIL; /* Requested filter is not available */
hid_t H5E_CALLBACK_g = FAIL; /* Callback failed */
hid_t H5E_CANAPPLY_g = FAIL; /* Error from filter 'can apply' callback */
hid_t H5E_SETLOCAL_g = FAIL; /* Error from filter 'set local' callback */
hid_t H5E_NOENCODER_g = FAIL; /* Filter present but encoding disabled */
hid_t H5E_CANTFILTER_g = FAIL; /* Filter operation failed */
/* Group related errors */
hid_t H5E_CANTOPENOBJ_g = FAIL; /* Can't open object */
@ -85,18 +121,27 @@ hid_t H5E_CANTCLOSEOBJ_g = FAIL; /* Can't close object */
hid_t H5E_COMPLEN_g = FAIL; /* Name component is too long */
hid_t H5E_PATH_g = FAIL; /* Problem with path to object */
/* B-tree related errors */
hid_t H5E_NOTFOUND_g = FAIL; /* Object not found */
hid_t H5E_EXISTS_g = FAIL; /* Object already exists */
hid_t H5E_CANTENCODE_g = FAIL; /* Unable to encode value */
hid_t H5E_CANTDECODE_g = FAIL; /* Unable to decode value */
hid_t H5E_CANTSPLIT_g = FAIL; /* Unable to split node */
hid_t H5E_CANTREDISTRIBUTE_g = FAIL; /* Unable to redistribute records */
hid_t H5E_CANTSWAP_g = FAIL; /* Unable to swap records */
hid_t H5E_CANTINSERT_g = FAIL; /* Unable to insert object */
hid_t H5E_CANTLIST_g = FAIL; /* Unable to list node */
hid_t H5E_CANTMODIFY_g = FAIL; /* Unable to modify record */
hid_t H5E_CANTREMOVE_g = FAIL; /* Unable to remove object */
/* No error */
hid_t H5E_NONE_MINOR_g = FAIL; /* No error */
/* File accessability errors */
hid_t H5E_FILEEXISTS_g = FAIL; /* File already exists */
hid_t H5E_FILEOPEN_g = FAIL; /* File already open */
hid_t H5E_CANTCREATE_g = FAIL; /* Unable to create file */
hid_t H5E_CANTOPENFILE_g = FAIL; /* Unable to open file */
hid_t H5E_CANTCLOSEFILE_g = FAIL; /* Unable to close file */
hid_t H5E_NOTHDF5_g = FAIL; /* Not an HDF5 file */
hid_t H5E_BADFILE_g = FAIL; /* Bad file ID accessed */
hid_t H5E_TRUNCATED_g = FAIL; /* File has been truncated */
hid_t H5E_MOUNT_g = FAIL; /* File mount error */
/* Object atom related errors */
hid_t H5E_BADATOM_g = FAIL; /* Unable to find atom information (already closed?) */
hid_t H5E_BADGROUP_g = FAIL; /* Unable to find ID group information */
hid_t H5E_CANTREGISTER_g = FAIL; /* Unable to register new atom */
hid_t H5E_CANTINC_g = FAIL; /* Unable to increment reference count */
hid_t H5E_CANTDEC_g = FAIL; /* Unable to decrement reference count */
hid_t H5E_NOIDS_g = FAIL; /* Out of IDs for group */
/* Cache related errors */
hid_t H5E_CANTFLUSH_g = FAIL; /* Unable to flush data from cache */
@ -116,91 +161,47 @@ hid_t H5E_CANTDIRTY_g = FAIL; /* Unable to mark metadata as dirty */
hid_t H5E_CANTEXPUNGE_g = FAIL; /* Unable to expunge a metadata cache entry */
hid_t H5E_CANTRESIZE_g = FAIL; /* Unable to resize a metadata cache entry */
/* I/O pipeline errors */
hid_t H5E_NOFILTER_g = FAIL; /* Requested filter is not available */
hid_t H5E_CALLBACK_g = FAIL; /* Callback failed */
hid_t H5E_CANAPPLY_g = FAIL; /* Error from filter 'can apply' callback */
hid_t H5E_SETLOCAL_g = FAIL; /* Error from filter 'set local' callback */
hid_t H5E_NOENCODER_g = FAIL; /* Filter present but encoding disabled */
hid_t H5E_CANTFILTER_g = FAIL; /* Filter operation failed */
/* Resource errors */
hid_t H5E_NOSPACE_g = FAIL; /* No space available for allocation */
hid_t H5E_CANTALLOC_g = FAIL; /* Can't allocate space */
hid_t H5E_CANTCOPY_g = FAIL; /* Unable to copy object */
hid_t H5E_CANTFREE_g = FAIL; /* Unable to free object */
hid_t H5E_ALREADYEXISTS_g = FAIL; /* Object already exists */
hid_t H5E_CANTLOCK_g = FAIL; /* Unable to lock object */
hid_t H5E_CANTUNLOCK_g = FAIL; /* Unable to unlock object */
hid_t H5E_CANTGC_g = FAIL; /* Unable to garbage collect */
hid_t H5E_CANTGETSIZE_g = FAIL; /* Unable to compute size */
hid_t H5E_OBJOPEN_g = FAIL; /* Object is already open */
/* No error */
hid_t H5E_NONE_MINOR_g = FAIL; /* No error */
/* Parallel MPI errors */
hid_t H5E_MPI_g = FAIL; /* Some MPI function failed */
hid_t H5E_MPIERRSTR_g = FAIL; /* MPI Error String */
hid_t H5E_CANTRECV_g = FAIL; /* Can't receive data */
/* File accessability errors */
hid_t H5E_FILEEXISTS_g = FAIL; /* File already exists */
hid_t H5E_FILEOPEN_g = FAIL; /* File already open */
hid_t H5E_CANTCREATE_g = FAIL; /* Unable to create file */
hid_t H5E_CANTOPENFILE_g = FAIL; /* Unable to open file */
hid_t H5E_CANTCLOSEFILE_g = FAIL; /* Unable to close file */
hid_t H5E_NOTHDF5_g = FAIL; /* Not an HDF5 file */
hid_t H5E_BADFILE_g = FAIL; /* Bad file ID accessed */
hid_t H5E_TRUNCATED_g = FAIL; /* File has been truncated */
hid_t H5E_MOUNT_g = FAIL; /* File mount error */
/* Heap errors */
hid_t H5E_CANTRESTORE_g = FAIL; /* Can't restore condition */
hid_t H5E_CANTCOMPUTE_g = FAIL; /* Can't compute value */
hid_t H5E_CANTEXTEND_g = FAIL; /* Can't extend heap's space */
hid_t H5E_CANTATTACH_g = FAIL; /* Can't attach object */
hid_t H5E_CANTUPDATE_g = FAIL; /* Can't update object */
/* Datatype conversion errors */
hid_t H5E_CANTCONVERT_g = FAIL; /* Can't convert datatypes */
hid_t H5E_BADSIZE_g = FAIL; /* Bad size for object */
/* Link related errors */
hid_t H5E_TRAVERSE_g = FAIL; /* Link traversal failure */
hid_t H5E_NLINKS_g = FAIL; /* Too many soft links in path */
hid_t H5E_NOTREGISTERED_g = FAIL; /* Link class not registered */
hid_t H5E_CANTMOVE_g = FAIL; /* Move callback returned error */
/* Object atom related errors */
hid_t H5E_BADATOM_g = FAIL; /* Unable to find atom information (already closed?) */
hid_t H5E_BADGROUP_g = FAIL; /* Unable to find ID group information */
hid_t H5E_CANTREGISTER_g = FAIL; /* Unable to register new atom */
hid_t H5E_CANTINC_g = FAIL; /* Unable to increment reference count */
hid_t H5E_CANTDEC_g = FAIL; /* Unable to decrement reference count */
hid_t H5E_NOIDS_g = FAIL; /* Out of IDs for group */
/* Parallel MPI errors */
hid_t H5E_MPI_g = FAIL; /* Some MPI function failed */
hid_t H5E_MPIERRSTR_g = FAIL; /* MPI Error String */
hid_t H5E_CANTRECV_g = FAIL; /* Can't receive data */
/* Free space errors */
hid_t H5E_CANTMERGE_g = FAIL; /* Can't merge objects */
hid_t H5E_CANTREVIVE_g = FAIL; /* Can't revive object */
hid_t H5E_CANTSHRINK_g = FAIL; /* Can't shrink container */
/* Dataspace errors */
hid_t H5E_CANTCLIP_g = FAIL; /* Can't clip hyperslab region */
hid_t H5E_CANTCOUNT_g = FAIL; /* Can't count elements */
hid_t H5E_CANTSELECT_g = FAIL; /* Can't select hyperslab */
hid_t H5E_CANTNEXT_g = FAIL; /* Can't move to next iterator location */
hid_t H5E_BADSELECT_g = FAIL; /* Invalid selection */
hid_t H5E_CANTCOMPARE_g = FAIL; /* Can't compare objects */
/* Generic low-level file I/O errors */
hid_t H5E_SEEKERROR_g = FAIL; /* Seek failed */
hid_t H5E_READERROR_g = FAIL; /* Read failed */
hid_t H5E_WRITEERROR_g = FAIL; /* Write failed */
hid_t H5E_CLOSEERROR_g = FAIL; /* Close failed */
hid_t H5E_OVERFLOW_g = FAIL; /* Address overflowed */
hid_t H5E_FCNTL_g = FAIL; /* File control (fcntl) failed */
/* Argument errors */
hid_t H5E_UNINITIALIZED_g = FAIL; /* Information is uinitialized */
hid_t H5E_UNSUPPORTED_g = FAIL; /* Feature is unsupported */
hid_t H5E_BADTYPE_g = FAIL; /* Inappropriate type */
hid_t H5E_BADRANGE_g = FAIL; /* Out of range */
hid_t H5E_BADVALUE_g = FAIL; /* Bad value */
/* Property list errors */
hid_t H5E_CANTGET_g = FAIL; /* Can't get value */
hid_t H5E_CANTSET_g = FAIL; /* Can't set value */
hid_t H5E_DUPCLASS_g = FAIL; /* Duplicate class name in parent class */
/* B-tree related errors */
hid_t H5E_NOTFOUND_g = FAIL; /* Object not found */
hid_t H5E_EXISTS_g = FAIL; /* Object already exists */
hid_t H5E_CANTENCODE_g = FAIL; /* Unable to encode value */
hid_t H5E_CANTDECODE_g = FAIL; /* Unable to decode value */
hid_t H5E_CANTSPLIT_g = FAIL; /* Unable to split node */
hid_t H5E_CANTREDISTRIBUTE_g = FAIL; /* Unable to redistribute records */
hid_t H5E_CANTSWAP_g = FAIL; /* Unable to swap records */
hid_t H5E_CANTINSERT_g = FAIL; /* Unable to insert object */
hid_t H5E_CANTLIST_g = FAIL; /* Unable to list node */
hid_t H5E_CANTMODIFY_g = FAIL; /* Unable to modify record */
hid_t H5E_CANTREMOVE_g = FAIL; /* Unable to remove object */
/* Function entry/exit interface errors */
hid_t H5E_CANTINIT_g = FAIL; /* Unable to initialize object */
hid_t H5E_ALREADYINIT_g = FAIL; /* Object already initialized */
hid_t H5E_CANTRELEASE_g = FAIL; /* Unable to release object */
/* Datatype conversion errors */
hid_t H5E_CANTCONVERT_g = FAIL; /* Can't convert datatypes */
hid_t H5E_BADSIZE_g = FAIL; /* Bad size for object */
#endif /* H5Edefin_H */

File diff suppressed because it is too large Load Diff

View File

@ -23,69 +23,143 @@
/* Major error codes */
/*********************/
#define H5E_DATATYPE (H5OPEN H5E_DATATYPE_g)
#define H5E_PLINE (H5OPEN H5E_PLINE_g)
#define H5E_OHDR (H5OPEN H5E_OHDR_g)
#define H5E_SYM (H5OPEN H5E_SYM_g)
#define H5E_RESOURCE (H5OPEN H5E_RESOURCE_g)
#define H5E_FSPACE (H5OPEN H5E_FSPACE_g)
#define H5E_INTERNAL (H5OPEN H5E_INTERNAL_g)
#define H5E_DATASPACE (H5OPEN H5E_DATASPACE_g)
#define H5E_VFL (H5OPEN H5E_VFL_g)
#define H5E_BTREE (H5OPEN H5E_BTREE_g)
#define H5E_IO (H5OPEN H5E_IO_g)
#define H5E_CACHE (H5OPEN H5E_CACHE_g)
#define H5E_LINK (H5OPEN H5E_LINK_g)
#define H5E_ERROR (H5OPEN H5E_ERROR_g)
#define H5E_FILE (H5OPEN H5E_FILE_g)
#define H5E_NONE_MAJOR (H5OPEN H5E_NONE_MAJOR_g)
#define H5E_FUNC (H5OPEN H5E_FUNC_g)
#define H5E_HEAP (H5OPEN H5E_HEAP_g)
#define H5E_SLIST (H5OPEN H5E_SLIST_g)
#define H5E_RS (H5OPEN H5E_RS_g)
#define H5E_DATASET (H5OPEN H5E_DATASET_g)
#define H5E_TST (H5OPEN H5E_TST_g)
#define H5E_ATTR (H5OPEN H5E_ATTR_g)
#define H5E_FUNC (H5OPEN H5E_FUNC_g)
#define H5E_STORAGE (H5OPEN H5E_STORAGE_g)
#define H5E_ATOM (H5OPEN H5E_ATOM_g)
#define H5E_PLIST (H5OPEN H5E_PLIST_g)
#define H5E_ARGS (H5OPEN H5E_ARGS_g)
#define H5E_FILE (H5OPEN H5E_FILE_g)
#define H5E_SYM (H5OPEN H5E_SYM_g)
#define H5E_VFL (H5OPEN H5E_VFL_g)
#define H5E_INTERNAL (H5OPEN H5E_INTERNAL_g)
#define H5E_BTREE (H5OPEN H5E_BTREE_g)
#define H5E_REFERENCE (H5OPEN H5E_REFERENCE_g)
#define H5E_DATASPACE (H5OPEN H5E_DATASPACE_g)
#define H5E_RESOURCE (H5OPEN H5E_RESOURCE_g)
#define H5E_PLIST (H5OPEN H5E_PLIST_g)
#define H5E_LINK (H5OPEN H5E_LINK_g)
#define H5E_DATATYPE (H5OPEN H5E_DATATYPE_g)
#define H5E_RS (H5OPEN H5E_RS_g)
#define H5E_HEAP (H5OPEN H5E_HEAP_g)
#define H5E_OHDR (H5OPEN H5E_OHDR_g)
#define H5E_ATOM (H5OPEN H5E_ATOM_g)
#define H5E_ATTR (H5OPEN H5E_ATTR_g)
#define H5E_NONE_MAJOR (H5OPEN H5E_NONE_MAJOR_g)
#define H5E_IO (H5OPEN H5E_IO_g)
#define H5E_SLIST (H5OPEN H5E_SLIST_g)
#define H5E_EFL (H5OPEN H5E_EFL_g)
H5_DLLVAR hid_t H5E_DATATYPE_g; /* Datatype */
H5_DLLVAR hid_t H5E_PLINE_g; /* Data filters */
H5_DLLVAR hid_t H5E_OHDR_g; /* Object header */
H5_DLLVAR hid_t H5E_SYM_g; /* Symbol table */
H5_DLLVAR hid_t H5E_RESOURCE_g; /* Resource unavailable */
H5_DLLVAR hid_t H5E_FSPACE_g; /* Free Space Manager */
H5_DLLVAR hid_t H5E_INTERNAL_g; /* Internal error (too specific to document in detail) */
H5_DLLVAR hid_t H5E_DATASPACE_g; /* Dataspace */
H5_DLLVAR hid_t H5E_VFL_g; /* Virtual File Layer */
H5_DLLVAR hid_t H5E_BTREE_g; /* B-Tree node */
H5_DLLVAR hid_t H5E_IO_g; /* Low-level I/O */
H5_DLLVAR hid_t H5E_CACHE_g; /* Object cache */
H5_DLLVAR hid_t H5E_LINK_g; /* Links */
H5_DLLVAR hid_t H5E_ERROR_g; /* Error API */
H5_DLLVAR hid_t H5E_FILE_g; /* File accessability */
H5_DLLVAR hid_t H5E_NONE_MAJOR_g; /* No error */
H5_DLLVAR hid_t H5E_FUNC_g; /* Function entry/exit */
H5_DLLVAR hid_t H5E_HEAP_g; /* Heap */
H5_DLLVAR hid_t H5E_SLIST_g; /* Skip Lists */
H5_DLLVAR hid_t H5E_RS_g; /* Reference Counted Strings */
#define H5E_TST (H5OPEN H5E_TST_g)
#define H5E_ARGS (H5OPEN H5E_ARGS_g)
#define H5E_ERROR (H5OPEN H5E_ERROR_g)
#define H5E_PLINE (H5OPEN H5E_PLINE_g)
#define H5E_FSPACE (H5OPEN H5E_FSPACE_g)
#define H5E_CACHE (H5OPEN H5E_CACHE_g)
H5_DLLVAR hid_t H5E_DATASET_g; /* Dataset */
H5_DLLVAR hid_t H5E_TST_g; /* Ternary Search Trees */
H5_DLLVAR hid_t H5E_ATTR_g; /* Attribute */
H5_DLLVAR hid_t H5E_FUNC_g; /* Function entry/exit */
H5_DLLVAR hid_t H5E_STORAGE_g; /* Data storage */
H5_DLLVAR hid_t H5E_ATOM_g; /* Object atom */
H5_DLLVAR hid_t H5E_PLIST_g; /* Property lists */
H5_DLLVAR hid_t H5E_ARGS_g; /* Invalid arguments to routine */
H5_DLLVAR hid_t H5E_FILE_g; /* File accessability */
H5_DLLVAR hid_t H5E_SYM_g; /* Symbol table */
H5_DLLVAR hid_t H5E_VFL_g; /* Virtual File Layer */
H5_DLLVAR hid_t H5E_INTERNAL_g; /* Internal error (too specific to document in detail) */
H5_DLLVAR hid_t H5E_BTREE_g; /* B-Tree node */
H5_DLLVAR hid_t H5E_REFERENCE_g; /* References */
H5_DLLVAR hid_t H5E_DATASPACE_g; /* Dataspace */
H5_DLLVAR hid_t H5E_RESOURCE_g; /* Resource unavailable */
H5_DLLVAR hid_t H5E_PLIST_g; /* Property lists */
H5_DLLVAR hid_t H5E_LINK_g; /* Links */
H5_DLLVAR hid_t H5E_DATATYPE_g; /* Datatype */
H5_DLLVAR hid_t H5E_RS_g; /* Reference Counted Strings */
H5_DLLVAR hid_t H5E_HEAP_g; /* Heap */
H5_DLLVAR hid_t H5E_OHDR_g; /* Object header */
H5_DLLVAR hid_t H5E_ATOM_g; /* Object atom */
H5_DLLVAR hid_t H5E_ATTR_g; /* Attribute */
H5_DLLVAR hid_t H5E_NONE_MAJOR_g; /* No error */
H5_DLLVAR hid_t H5E_IO_g; /* Low-level I/O */
H5_DLLVAR hid_t H5E_SLIST_g; /* Skip Lists */
H5_DLLVAR hid_t H5E_EFL_g; /* External file list */
H5_DLLVAR hid_t H5E_TST_g; /* Ternary Search Trees */
H5_DLLVAR hid_t H5E_ARGS_g; /* Invalid arguments to routine */
H5_DLLVAR hid_t H5E_ERROR_g; /* Error API */
H5_DLLVAR hid_t H5E_PLINE_g; /* Data filters */
H5_DLLVAR hid_t H5E_FSPACE_g; /* Free Space Manager */
H5_DLLVAR hid_t H5E_CACHE_g; /* Object cache */
/*********************/
/* Minor error codes */
/*********************/
/* Generic low-level file I/O errors */
#define H5E_SEEKERROR (H5OPEN H5E_SEEKERROR_g)
#define H5E_READERROR (H5OPEN H5E_READERROR_g)
#define H5E_WRITEERROR (H5OPEN H5E_WRITEERROR_g)
#define H5E_CLOSEERROR (H5OPEN H5E_CLOSEERROR_g)
#define H5E_OVERFLOW (H5OPEN H5E_OVERFLOW_g)
#define H5E_FCNTL (H5OPEN H5E_FCNTL_g)
H5_DLLVAR hid_t H5E_SEEKERROR_g; /* Seek failed */
H5_DLLVAR hid_t H5E_READERROR_g; /* Read failed */
H5_DLLVAR hid_t H5E_WRITEERROR_g; /* Write failed */
H5_DLLVAR hid_t H5E_CLOSEERROR_g; /* Close failed */
H5_DLLVAR hid_t H5E_OVERFLOW_g; /* Address overflowed */
H5_DLLVAR hid_t H5E_FCNTL_g; /* File control (fcntl) failed */
/* Resource errors */
#define H5E_NOSPACE (H5OPEN H5E_NOSPACE_g)
#define H5E_CANTALLOC (H5OPEN H5E_CANTALLOC_g)
#define H5E_CANTCOPY (H5OPEN H5E_CANTCOPY_g)
#define H5E_CANTFREE (H5OPEN H5E_CANTFREE_g)
#define H5E_ALREADYEXISTS (H5OPEN H5E_ALREADYEXISTS_g)
#define H5E_CANTLOCK (H5OPEN H5E_CANTLOCK_g)
#define H5E_CANTUNLOCK (H5OPEN H5E_CANTUNLOCK_g)
#define H5E_CANTGC (H5OPEN H5E_CANTGC_g)
#define H5E_CANTGETSIZE (H5OPEN H5E_CANTGETSIZE_g)
#define H5E_OBJOPEN (H5OPEN H5E_OBJOPEN_g)
H5_DLLVAR hid_t H5E_NOSPACE_g; /* No space available for allocation */
H5_DLLVAR hid_t H5E_CANTALLOC_g; /* Can't allocate space */
H5_DLLVAR hid_t H5E_CANTCOPY_g; /* Unable to copy object */
H5_DLLVAR hid_t H5E_CANTFREE_g; /* Unable to free object */
H5_DLLVAR hid_t H5E_ALREADYEXISTS_g; /* Object already exists */
H5_DLLVAR hid_t H5E_CANTLOCK_g; /* Unable to lock object */
H5_DLLVAR hid_t H5E_CANTUNLOCK_g; /* Unable to unlock object */
H5_DLLVAR hid_t H5E_CANTGC_g; /* Unable to garbage collect */
H5_DLLVAR hid_t H5E_CANTGETSIZE_g; /* Unable to compute size */
H5_DLLVAR hid_t H5E_OBJOPEN_g; /* Object is already open */
/* Heap errors */
#define H5E_CANTRESTORE (H5OPEN H5E_CANTRESTORE_g)
#define H5E_CANTCOMPUTE (H5OPEN H5E_CANTCOMPUTE_g)
#define H5E_CANTEXTEND (H5OPEN H5E_CANTEXTEND_g)
#define H5E_CANTATTACH (H5OPEN H5E_CANTATTACH_g)
#define H5E_CANTUPDATE (H5OPEN H5E_CANTUPDATE_g)
#define H5E_CANTOPERATE (H5OPEN H5E_CANTOPERATE_g)
H5_DLLVAR hid_t H5E_CANTRESTORE_g; /* Can't restore condition */
H5_DLLVAR hid_t H5E_CANTCOMPUTE_g; /* Can't compute value */
H5_DLLVAR hid_t H5E_CANTEXTEND_g; /* Can't extend heap's space */
H5_DLLVAR hid_t H5E_CANTATTACH_g; /* Can't attach object */
H5_DLLVAR hid_t H5E_CANTUPDATE_g; /* Can't update object */
H5_DLLVAR hid_t H5E_CANTOPERATE_g; /* Can't operate on object */
/* Function entry/exit interface errors */
#define H5E_CANTINIT (H5OPEN H5E_CANTINIT_g)
#define H5E_ALREADYINIT (H5OPEN H5E_ALREADYINIT_g)
#define H5E_CANTRELEASE (H5OPEN H5E_CANTRELEASE_g)
H5_DLLVAR hid_t H5E_CANTINIT_g; /* Unable to initialize object */
H5_DLLVAR hid_t H5E_ALREADYINIT_g; /* Object already initialized */
H5_DLLVAR hid_t H5E_CANTRELEASE_g; /* Unable to release object */
/* Property list errors */
#define H5E_CANTGET (H5OPEN H5E_CANTGET_g)
#define H5E_CANTSET (H5OPEN H5E_CANTSET_g)
#define H5E_DUPCLASS (H5OPEN H5E_DUPCLASS_g)
H5_DLLVAR hid_t H5E_CANTGET_g; /* Can't get value */
H5_DLLVAR hid_t H5E_CANTSET_g; /* Can't set value */
H5_DLLVAR hid_t H5E_DUPCLASS_g; /* Duplicate class name in parent class */
/* Free space errors */
#define H5E_CANTMERGE (H5OPEN H5E_CANTMERGE_g)
#define H5E_CANTREVIVE (H5OPEN H5E_CANTREVIVE_g)
#define H5E_CANTSHRINK (H5OPEN H5E_CANTSHRINK_g)
H5_DLLVAR hid_t H5E_CANTMERGE_g; /* Can't merge objects */
H5_DLLVAR hid_t H5E_CANTREVIVE_g; /* Can't revive object */
H5_DLLVAR hid_t H5E_CANTSHRINK_g; /* Can't shrink container */
/* Object header related errors */
#define H5E_LINKCOUNT (H5OPEN H5E_LINKCOUNT_g)
#define H5E_VERSION (H5OPEN H5E_VERSION_g)
@ -102,35 +176,23 @@ H5_DLLVAR hid_t H5E_CANTDELETE_g; /* Can't delete message */
H5_DLLVAR hid_t H5E_BADITER_g; /* Iteration failed */
H5_DLLVAR hid_t H5E_CANTPACK_g; /* Can't pack messages */
/* Argument errors */
#define H5E_UNINITIALIZED (H5OPEN H5E_UNINITIALIZED_g)
#define H5E_UNSUPPORTED (H5OPEN H5E_UNSUPPORTED_g)
#define H5E_BADTYPE (H5OPEN H5E_BADTYPE_g)
#define H5E_BADRANGE (H5OPEN H5E_BADRANGE_g)
#define H5E_BADVALUE (H5OPEN H5E_BADVALUE_g)
H5_DLLVAR hid_t H5E_UNINITIALIZED_g; /* Information is uinitialized */
H5_DLLVAR hid_t H5E_UNSUPPORTED_g; /* Feature is unsupported */
H5_DLLVAR hid_t H5E_BADTYPE_g; /* Inappropriate type */
H5_DLLVAR hid_t H5E_BADRANGE_g; /* Out of range */
H5_DLLVAR hid_t H5E_BADVALUE_g; /* Bad value */
/* System level errors */
#define H5E_SYSERRSTR (H5OPEN H5E_SYSERRSTR_g)
H5_DLLVAR hid_t H5E_SYSERRSTR_g; /* System error message */
/* Dataspace errors */
#define H5E_CANTCLIP (H5OPEN H5E_CANTCLIP_g)
#define H5E_CANTCOUNT (H5OPEN H5E_CANTCOUNT_g)
#define H5E_CANTSELECT (H5OPEN H5E_CANTSELECT_g)
#define H5E_CANTNEXT (H5OPEN H5E_CANTNEXT_g)
#define H5E_BADSELECT (H5OPEN H5E_BADSELECT_g)
#define H5E_CANTCOMPARE (H5OPEN H5E_CANTCOMPARE_g)
H5_DLLVAR hid_t H5E_CANTCLIP_g; /* Can't clip hyperslab region */
H5_DLLVAR hid_t H5E_CANTCOUNT_g; /* Can't count elements */
H5_DLLVAR hid_t H5E_CANTSELECT_g; /* Can't select hyperslab */
H5_DLLVAR hid_t H5E_CANTNEXT_g; /* Can't move to next iterator location */
H5_DLLVAR hid_t H5E_BADSELECT_g; /* Invalid selection */
H5_DLLVAR hid_t H5E_CANTCOMPARE_g; /* Can't compare objects */
/* I/O pipeline errors */
#define H5E_NOFILTER (H5OPEN H5E_NOFILTER_g)
#define H5E_CALLBACK (H5OPEN H5E_CALLBACK_g)
#define H5E_CANAPPLY (H5OPEN H5E_CANAPPLY_g)
#define H5E_SETLOCAL (H5OPEN H5E_SETLOCAL_g)
#define H5E_NOENCODER (H5OPEN H5E_NOENCODER_g)
#define H5E_CANTFILTER (H5OPEN H5E_CANTFILTER_g)
H5_DLLVAR hid_t H5E_NOFILTER_g; /* Requested filter is not available */
H5_DLLVAR hid_t H5E_CALLBACK_g; /* Callback failed */
H5_DLLVAR hid_t H5E_CANAPPLY_g; /* Error from filter 'can apply' callback */
H5_DLLVAR hid_t H5E_SETLOCAL_g; /* Error from filter 'set local' callback */
H5_DLLVAR hid_t H5E_NOENCODER_g; /* Filter present but encoding disabled */
H5_DLLVAR hid_t H5E_CANTFILTER_g; /* Filter operation failed */
/* Group related errors */
#define H5E_CANTOPENOBJ (H5OPEN H5E_CANTOPENOBJ_g)
@ -142,29 +204,43 @@ H5_DLLVAR hid_t H5E_CANTCLOSEOBJ_g; /* Can't close object */
H5_DLLVAR hid_t H5E_COMPLEN_g; /* Name component is too long */
H5_DLLVAR hid_t H5E_PATH_g; /* Problem with path to object */
/* B-tree related errors */
#define H5E_NOTFOUND (H5OPEN H5E_NOTFOUND_g)
#define H5E_EXISTS (H5OPEN H5E_EXISTS_g)
#define H5E_CANTENCODE (H5OPEN H5E_CANTENCODE_g)
#define H5E_CANTDECODE (H5OPEN H5E_CANTDECODE_g)
#define H5E_CANTSPLIT (H5OPEN H5E_CANTSPLIT_g)
#define H5E_CANTREDISTRIBUTE (H5OPEN H5E_CANTREDISTRIBUTE_g)
#define H5E_CANTSWAP (H5OPEN H5E_CANTSWAP_g)
#define H5E_CANTINSERT (H5OPEN H5E_CANTINSERT_g)
#define H5E_CANTLIST (H5OPEN H5E_CANTLIST_g)
#define H5E_CANTMODIFY (H5OPEN H5E_CANTMODIFY_g)
#define H5E_CANTREMOVE (H5OPEN H5E_CANTREMOVE_g)
H5_DLLVAR hid_t H5E_NOTFOUND_g; /* Object not found */
H5_DLLVAR hid_t H5E_EXISTS_g; /* Object already exists */
H5_DLLVAR hid_t H5E_CANTENCODE_g; /* Unable to encode value */
H5_DLLVAR hid_t H5E_CANTDECODE_g; /* Unable to decode value */
H5_DLLVAR hid_t H5E_CANTSPLIT_g; /* Unable to split node */
H5_DLLVAR hid_t H5E_CANTREDISTRIBUTE_g; /* Unable to redistribute records */
H5_DLLVAR hid_t H5E_CANTSWAP_g; /* Unable to swap records */
H5_DLLVAR hid_t H5E_CANTINSERT_g; /* Unable to insert object */
H5_DLLVAR hid_t H5E_CANTLIST_g; /* Unable to list node */
H5_DLLVAR hid_t H5E_CANTMODIFY_g; /* Unable to modify record */
H5_DLLVAR hid_t H5E_CANTREMOVE_g; /* Unable to remove object */
/* No error */
#define H5E_NONE_MINOR (H5OPEN H5E_NONE_MINOR_g)
H5_DLLVAR hid_t H5E_NONE_MINOR_g; /* No error */
/* File accessability errors */
#define H5E_FILEEXISTS (H5OPEN H5E_FILEEXISTS_g)
#define H5E_FILEOPEN (H5OPEN H5E_FILEOPEN_g)
#define H5E_CANTCREATE (H5OPEN H5E_CANTCREATE_g)
#define H5E_CANTOPENFILE (H5OPEN H5E_CANTOPENFILE_g)
#define H5E_CANTCLOSEFILE (H5OPEN H5E_CANTCLOSEFILE_g)
#define H5E_NOTHDF5 (H5OPEN H5E_NOTHDF5_g)
#define H5E_BADFILE (H5OPEN H5E_BADFILE_g)
#define H5E_TRUNCATED (H5OPEN H5E_TRUNCATED_g)
#define H5E_MOUNT (H5OPEN H5E_MOUNT_g)
H5_DLLVAR hid_t H5E_FILEEXISTS_g; /* File already exists */
H5_DLLVAR hid_t H5E_FILEOPEN_g; /* File already open */
H5_DLLVAR hid_t H5E_CANTCREATE_g; /* Unable to create file */
H5_DLLVAR hid_t H5E_CANTOPENFILE_g; /* Unable to open file */
H5_DLLVAR hid_t H5E_CANTCLOSEFILE_g; /* Unable to close file */
H5_DLLVAR hid_t H5E_NOTHDF5_g; /* Not an HDF5 file */
H5_DLLVAR hid_t H5E_BADFILE_g; /* Bad file ID accessed */
H5_DLLVAR hid_t H5E_TRUNCATED_g; /* File has been truncated */
H5_DLLVAR hid_t H5E_MOUNT_g; /* File mount error */
/* Object atom related errors */
#define H5E_BADATOM (H5OPEN H5E_BADATOM_g)
#define H5E_BADGROUP (H5OPEN H5E_BADGROUP_g)
#define H5E_CANTREGISTER (H5OPEN H5E_CANTREGISTER_g)
#define H5E_CANTINC (H5OPEN H5E_CANTINC_g)
#define H5E_CANTDEC (H5OPEN H5E_CANTDEC_g)
#define H5E_NOIDS (H5OPEN H5E_NOIDS_g)
H5_DLLVAR hid_t H5E_BADATOM_g; /* Unable to find atom information (already closed?) */
H5_DLLVAR hid_t H5E_BADGROUP_g; /* Unable to find ID group information */
H5_DLLVAR hid_t H5E_CANTREGISTER_g; /* Unable to register new atom */
H5_DLLVAR hid_t H5E_CANTINC_g; /* Unable to increment reference count */
H5_DLLVAR hid_t H5E_CANTDEC_g; /* Unable to decrement reference count */
H5_DLLVAR hid_t H5E_NOIDS_g; /* Out of IDs for group */
/* Cache related errors */
#define H5E_CANTFLUSH (H5OPEN H5E_CANTFLUSH_g)
@ -200,92 +276,6 @@ H5_DLLVAR hid_t H5E_CANTDIRTY_g; /* Unable to mark metadata as dirty */
H5_DLLVAR hid_t H5E_CANTEXPUNGE_g; /* Unable to expunge a metadata cache entry */
H5_DLLVAR hid_t H5E_CANTRESIZE_g; /* Unable to resize a metadata cache entry */
/* I/O pipeline errors */
#define H5E_NOFILTER (H5OPEN H5E_NOFILTER_g)
#define H5E_CALLBACK (H5OPEN H5E_CALLBACK_g)
#define H5E_CANAPPLY (H5OPEN H5E_CANAPPLY_g)
#define H5E_SETLOCAL (H5OPEN H5E_SETLOCAL_g)
#define H5E_NOENCODER (H5OPEN H5E_NOENCODER_g)
#define H5E_CANTFILTER (H5OPEN H5E_CANTFILTER_g)
H5_DLLVAR hid_t H5E_NOFILTER_g; /* Requested filter is not available */
H5_DLLVAR hid_t H5E_CALLBACK_g; /* Callback failed */
H5_DLLVAR hid_t H5E_CANAPPLY_g; /* Error from filter 'can apply' callback */
H5_DLLVAR hid_t H5E_SETLOCAL_g; /* Error from filter 'set local' callback */
H5_DLLVAR hid_t H5E_NOENCODER_g; /* Filter present but encoding disabled */
H5_DLLVAR hid_t H5E_CANTFILTER_g; /* Filter operation failed */
/* Resource errors */
#define H5E_NOSPACE (H5OPEN H5E_NOSPACE_g)
#define H5E_CANTALLOC (H5OPEN H5E_CANTALLOC_g)
#define H5E_CANTCOPY (H5OPEN H5E_CANTCOPY_g)
#define H5E_CANTFREE (H5OPEN H5E_CANTFREE_g)
#define H5E_ALREADYEXISTS (H5OPEN H5E_ALREADYEXISTS_g)
#define H5E_CANTLOCK (H5OPEN H5E_CANTLOCK_g)
#define H5E_CANTUNLOCK (H5OPEN H5E_CANTUNLOCK_g)
#define H5E_CANTGC (H5OPEN H5E_CANTGC_g)
#define H5E_CANTGETSIZE (H5OPEN H5E_CANTGETSIZE_g)
#define H5E_OBJOPEN (H5OPEN H5E_OBJOPEN_g)
H5_DLLVAR hid_t H5E_NOSPACE_g; /* No space available for allocation */
H5_DLLVAR hid_t H5E_CANTALLOC_g; /* Can't allocate space */
H5_DLLVAR hid_t H5E_CANTCOPY_g; /* Unable to copy object */
H5_DLLVAR hid_t H5E_CANTFREE_g; /* Unable to free object */
H5_DLLVAR hid_t H5E_ALREADYEXISTS_g; /* Object already exists */
H5_DLLVAR hid_t H5E_CANTLOCK_g; /* Unable to lock object */
H5_DLLVAR hid_t H5E_CANTUNLOCK_g; /* Unable to unlock object */
H5_DLLVAR hid_t H5E_CANTGC_g; /* Unable to garbage collect */
H5_DLLVAR hid_t H5E_CANTGETSIZE_g; /* Unable to compute size */
H5_DLLVAR hid_t H5E_OBJOPEN_g; /* Object is already open */
/* No error */
#define H5E_NONE_MINOR (H5OPEN H5E_NONE_MINOR_g)
H5_DLLVAR hid_t H5E_NONE_MINOR_g; /* No error */
/* Parallel MPI errors */
#define H5E_MPI (H5OPEN H5E_MPI_g)
#define H5E_MPIERRSTR (H5OPEN H5E_MPIERRSTR_g)
#define H5E_CANTRECV (H5OPEN H5E_CANTRECV_g)
H5_DLLVAR hid_t H5E_MPI_g; /* Some MPI function failed */
H5_DLLVAR hid_t H5E_MPIERRSTR_g; /* MPI Error String */
H5_DLLVAR hid_t H5E_CANTRECV_g; /* Can't receive data */
/* File accessability errors */
#define H5E_FILEEXISTS (H5OPEN H5E_FILEEXISTS_g)
#define H5E_FILEOPEN (H5OPEN H5E_FILEOPEN_g)
#define H5E_CANTCREATE (H5OPEN H5E_CANTCREATE_g)
#define H5E_CANTOPENFILE (H5OPEN H5E_CANTOPENFILE_g)
#define H5E_CANTCLOSEFILE (H5OPEN H5E_CANTCLOSEFILE_g)
#define H5E_NOTHDF5 (H5OPEN H5E_NOTHDF5_g)
#define H5E_BADFILE (H5OPEN H5E_BADFILE_g)
#define H5E_TRUNCATED (H5OPEN H5E_TRUNCATED_g)
#define H5E_MOUNT (H5OPEN H5E_MOUNT_g)
H5_DLLVAR hid_t H5E_FILEEXISTS_g; /* File already exists */
H5_DLLVAR hid_t H5E_FILEOPEN_g; /* File already open */
H5_DLLVAR hid_t H5E_CANTCREATE_g; /* Unable to create file */
H5_DLLVAR hid_t H5E_CANTOPENFILE_g; /* Unable to open file */
H5_DLLVAR hid_t H5E_CANTCLOSEFILE_g; /* Unable to close file */
H5_DLLVAR hid_t H5E_NOTHDF5_g; /* Not an HDF5 file */
H5_DLLVAR hid_t H5E_BADFILE_g; /* Bad file ID accessed */
H5_DLLVAR hid_t H5E_TRUNCATED_g; /* File has been truncated */
H5_DLLVAR hid_t H5E_MOUNT_g; /* File mount error */
/* Heap errors */
#define H5E_CANTRESTORE (H5OPEN H5E_CANTRESTORE_g)
#define H5E_CANTCOMPUTE (H5OPEN H5E_CANTCOMPUTE_g)
#define H5E_CANTEXTEND (H5OPEN H5E_CANTEXTEND_g)
#define H5E_CANTATTACH (H5OPEN H5E_CANTATTACH_g)
#define H5E_CANTUPDATE (H5OPEN H5E_CANTUPDATE_g)
H5_DLLVAR hid_t H5E_CANTRESTORE_g; /* Can't restore condition */
H5_DLLVAR hid_t H5E_CANTCOMPUTE_g; /* Can't compute value */
H5_DLLVAR hid_t H5E_CANTEXTEND_g; /* Can't extend heap's space */
H5_DLLVAR hid_t H5E_CANTATTACH_g; /* Can't attach object */
H5_DLLVAR hid_t H5E_CANTUPDATE_g; /* Can't update object */
/* Datatype conversion errors */
#define H5E_CANTCONVERT (H5OPEN H5E_CANTCONVERT_g)
#define H5E_BADSIZE (H5OPEN H5E_BADSIZE_g)
H5_DLLVAR hid_t H5E_CANTCONVERT_g; /* Can't convert datatypes */
H5_DLLVAR hid_t H5E_BADSIZE_g; /* Bad size for object */
/* Link related errors */
#define H5E_TRAVERSE (H5OPEN H5E_TRAVERSE_g)
#define H5E_NLINKS (H5OPEN H5E_NLINKS_g)
@ -296,56 +286,68 @@ H5_DLLVAR hid_t H5E_NLINKS_g; /* Too many soft links in path */
H5_DLLVAR hid_t H5E_NOTREGISTERED_g; /* Link class not registered */
H5_DLLVAR hid_t H5E_CANTMOVE_g; /* Move callback returned error */
/* Object atom related errors */
#define H5E_BADATOM (H5OPEN H5E_BADATOM_g)
#define H5E_BADGROUP (H5OPEN H5E_BADGROUP_g)
#define H5E_CANTREGISTER (H5OPEN H5E_CANTREGISTER_g)
#define H5E_CANTINC (H5OPEN H5E_CANTINC_g)
#define H5E_CANTDEC (H5OPEN H5E_CANTDEC_g)
#define H5E_NOIDS (H5OPEN H5E_NOIDS_g)
H5_DLLVAR hid_t H5E_BADATOM_g; /* Unable to find atom information (already closed?) */
H5_DLLVAR hid_t H5E_BADGROUP_g; /* Unable to find ID group information */
H5_DLLVAR hid_t H5E_CANTREGISTER_g; /* Unable to register new atom */
H5_DLLVAR hid_t H5E_CANTINC_g; /* Unable to increment reference count */
H5_DLLVAR hid_t H5E_CANTDEC_g; /* Unable to decrement reference count */
H5_DLLVAR hid_t H5E_NOIDS_g; /* Out of IDs for group */
/* Parallel MPI errors */
#define H5E_MPI (H5OPEN H5E_MPI_g)
#define H5E_MPIERRSTR (H5OPEN H5E_MPIERRSTR_g)
#define H5E_CANTRECV (H5OPEN H5E_CANTRECV_g)
H5_DLLVAR hid_t H5E_MPI_g; /* Some MPI function failed */
H5_DLLVAR hid_t H5E_MPIERRSTR_g; /* MPI Error String */
H5_DLLVAR hid_t H5E_CANTRECV_g; /* Can't receive data */
/* Free space errors */
#define H5E_CANTMERGE (H5OPEN H5E_CANTMERGE_g)
#define H5E_CANTREVIVE (H5OPEN H5E_CANTREVIVE_g)
#define H5E_CANTSHRINK (H5OPEN H5E_CANTSHRINK_g)
H5_DLLVAR hid_t H5E_CANTMERGE_g; /* Can't merge objects */
H5_DLLVAR hid_t H5E_CANTREVIVE_g; /* Can't revive object */
H5_DLLVAR hid_t H5E_CANTSHRINK_g; /* Can't shrink container */
/* Dataspace errors */
#define H5E_CANTCLIP (H5OPEN H5E_CANTCLIP_g)
#define H5E_CANTCOUNT (H5OPEN H5E_CANTCOUNT_g)
#define H5E_CANTSELECT (H5OPEN H5E_CANTSELECT_g)
#define H5E_CANTNEXT (H5OPEN H5E_CANTNEXT_g)
#define H5E_BADSELECT (H5OPEN H5E_BADSELECT_g)
#define H5E_CANTCOMPARE (H5OPEN H5E_CANTCOMPARE_g)
H5_DLLVAR hid_t H5E_CANTCLIP_g; /* Can't clip hyperslab region */
H5_DLLVAR hid_t H5E_CANTCOUNT_g; /* Can't count elements */
H5_DLLVAR hid_t H5E_CANTSELECT_g; /* Can't select hyperslab */
H5_DLLVAR hid_t H5E_CANTNEXT_g; /* Can't move to next iterator location */
H5_DLLVAR hid_t H5E_BADSELECT_g; /* Invalid selection */
H5_DLLVAR hid_t H5E_CANTCOMPARE_g; /* Can't compare objects */
/* Generic low-level file I/O errors */
#define H5E_SEEKERROR (H5OPEN H5E_SEEKERROR_g)
#define H5E_READERROR (H5OPEN H5E_READERROR_g)
#define H5E_WRITEERROR (H5OPEN H5E_WRITEERROR_g)
#define H5E_CLOSEERROR (H5OPEN H5E_CLOSEERROR_g)
#define H5E_OVERFLOW (H5OPEN H5E_OVERFLOW_g)
#define H5E_FCNTL (H5OPEN H5E_FCNTL_g)
H5_DLLVAR hid_t H5E_SEEKERROR_g; /* Seek failed */
H5_DLLVAR hid_t H5E_READERROR_g; /* Read failed */
H5_DLLVAR hid_t H5E_WRITEERROR_g; /* Write failed */
H5_DLLVAR hid_t H5E_CLOSEERROR_g; /* Close failed */
H5_DLLVAR hid_t H5E_OVERFLOW_g; /* Address overflowed */
H5_DLLVAR hid_t H5E_FCNTL_g; /* File control (fcntl) failed */
/* Argument errors */
#define H5E_UNINITIALIZED (H5OPEN H5E_UNINITIALIZED_g)
#define H5E_UNSUPPORTED (H5OPEN H5E_UNSUPPORTED_g)
#define H5E_BADTYPE (H5OPEN H5E_BADTYPE_g)
#define H5E_BADRANGE (H5OPEN H5E_BADRANGE_g)
#define H5E_BADVALUE (H5OPEN H5E_BADVALUE_g)
H5_DLLVAR hid_t H5E_UNINITIALIZED_g; /* Information is uinitialized */
H5_DLLVAR hid_t H5E_UNSUPPORTED_g; /* Feature is unsupported */
H5_DLLVAR hid_t H5E_BADTYPE_g; /* Inappropriate type */
H5_DLLVAR hid_t H5E_BADRANGE_g; /* Out of range */
H5_DLLVAR hid_t H5E_BADVALUE_g; /* Bad value */
/* Property list errors */
#define H5E_CANTGET (H5OPEN H5E_CANTGET_g)
#define H5E_CANTSET (H5OPEN H5E_CANTSET_g)
#define H5E_DUPCLASS (H5OPEN H5E_DUPCLASS_g)
H5_DLLVAR hid_t H5E_CANTGET_g; /* Can't get value */
H5_DLLVAR hid_t H5E_CANTSET_g; /* Can't set value */
H5_DLLVAR hid_t H5E_DUPCLASS_g; /* Duplicate class name in parent class */
/* B-tree related errors */
#define H5E_NOTFOUND (H5OPEN H5E_NOTFOUND_g)
#define H5E_EXISTS (H5OPEN H5E_EXISTS_g)
#define H5E_CANTENCODE (H5OPEN H5E_CANTENCODE_g)
#define H5E_CANTDECODE (H5OPEN H5E_CANTDECODE_g)
#define H5E_CANTSPLIT (H5OPEN H5E_CANTSPLIT_g)
#define H5E_CANTREDISTRIBUTE (H5OPEN H5E_CANTREDISTRIBUTE_g)
#define H5E_CANTSWAP (H5OPEN H5E_CANTSWAP_g)
#define H5E_CANTINSERT (H5OPEN H5E_CANTINSERT_g)
#define H5E_CANTLIST (H5OPEN H5E_CANTLIST_g)
#define H5E_CANTMODIFY (H5OPEN H5E_CANTMODIFY_g)
#define H5E_CANTREMOVE (H5OPEN H5E_CANTREMOVE_g)
H5_DLLVAR hid_t H5E_NOTFOUND_g; /* Object not found */
H5_DLLVAR hid_t H5E_EXISTS_g; /* Object already exists */
H5_DLLVAR hid_t H5E_CANTENCODE_g; /* Unable to encode value */
H5_DLLVAR hid_t H5E_CANTDECODE_g; /* Unable to decode value */
H5_DLLVAR hid_t H5E_CANTSPLIT_g; /* Unable to split node */
H5_DLLVAR hid_t H5E_CANTREDISTRIBUTE_g; /* Unable to redistribute records */
H5_DLLVAR hid_t H5E_CANTSWAP_g; /* Unable to swap records */
H5_DLLVAR hid_t H5E_CANTINSERT_g; /* Unable to insert object */
H5_DLLVAR hid_t H5E_CANTLIST_g; /* Unable to list node */
H5_DLLVAR hid_t H5E_CANTMODIFY_g; /* Unable to modify record */
H5_DLLVAR hid_t H5E_CANTREMOVE_g; /* Unable to remove object */
/* Function entry/exit interface errors */
#define H5E_CANTINIT (H5OPEN H5E_CANTINIT_g)
#define H5E_ALREADYINIT (H5OPEN H5E_ALREADYINIT_g)
#define H5E_CANTRELEASE (H5OPEN H5E_CANTRELEASE_g)
H5_DLLVAR hid_t H5E_CANTINIT_g; /* Unable to initialize object */
H5_DLLVAR hid_t H5E_ALREADYINIT_g; /* Object already initialized */
H5_DLLVAR hid_t H5E_CANTRELEASE_g; /* Unable to release object */
/* Datatype conversion errors */
#define H5E_CANTCONVERT (H5OPEN H5E_CANTCONVERT_g)
#define H5E_BADSIZE (H5OPEN H5E_BADSIZE_g)
H5_DLLVAR hid_t H5E_CANTCONVERT_g; /* Can't convert datatypes */
H5_DLLVAR hid_t H5E_BADSIZE_g; /* Bad size for object */
#endif /* H5Epubgen_H */

View File

@ -21,39 +21,82 @@
/* Reset major error IDs */
H5E_DATATYPE_g=
H5E_PLINE_g=
H5E_OHDR_g=
H5E_SYM_g=
H5E_RESOURCE_g=
H5E_FSPACE_g=
H5E_INTERNAL_g=
H5E_DATASPACE_g=
H5E_VFL_g=
H5E_BTREE_g=
H5E_IO_g=
H5E_CACHE_g=
H5E_LINK_g=
H5E_ERROR_g=
H5E_FILE_g=
H5E_NONE_MAJOR_g=
H5E_FUNC_g=
H5E_HEAP_g=
H5E_SLIST_g=
H5E_RS_g=
H5E_DATASET_g=
H5E_TST_g=
H5E_ATTR_g=
H5E_FUNC_g=
H5E_STORAGE_g=
H5E_ATOM_g=
H5E_PLIST_g=
H5E_ARGS_g=
H5E_FILE_g=
H5E_SYM_g=
H5E_VFL_g=
H5E_INTERNAL_g=
H5E_BTREE_g=
H5E_REFERENCE_g=
H5E_EFL_g= (-1);
H5E_DATASPACE_g=
H5E_RESOURCE_g=
H5E_PLIST_g=
H5E_LINK_g=
H5E_DATATYPE_g=
H5E_RS_g=
H5E_HEAP_g=
H5E_OHDR_g=
H5E_ATOM_g=
H5E_ATTR_g=
H5E_NONE_MAJOR_g=
H5E_IO_g=
H5E_SLIST_g=
H5E_EFL_g=
H5E_TST_g=
H5E_ARGS_g=
H5E_ERROR_g=
H5E_PLINE_g=
H5E_FSPACE_g=
H5E_CACHE_g= (-1);
/* Reset minor error IDs */
/* Generic low-level file I/O errors */
H5E_SEEKERROR_g=
H5E_READERROR_g=
H5E_WRITEERROR_g=
H5E_CLOSEERROR_g=
H5E_OVERFLOW_g=
H5E_FCNTL_g=
/* Resource errors */
H5E_NOSPACE_g=
H5E_CANTALLOC_g=
H5E_CANTCOPY_g=
H5E_CANTFREE_g=
H5E_ALREADYEXISTS_g=
H5E_CANTLOCK_g=
H5E_CANTUNLOCK_g=
H5E_CANTGC_g=
H5E_CANTGETSIZE_g=
H5E_OBJOPEN_g=
/* Heap errors */
H5E_CANTRESTORE_g=
H5E_CANTCOMPUTE_g=
H5E_CANTEXTEND_g=
H5E_CANTATTACH_g=
H5E_CANTUPDATE_g=
H5E_CANTOPERATE_g=
/* Function entry/exit interface errors */
H5E_CANTINIT_g=
H5E_ALREADYINIT_g=
H5E_CANTRELEASE_g=
/* Property list errors */
H5E_CANTGET_g=
H5E_CANTSET_g=
H5E_DUPCLASS_g=
/* Free space errors */
H5E_CANTMERGE_g=
H5E_CANTREVIVE_g=
H5E_CANTSHRINK_g=
/* Object header related errors */
H5E_LINKCOUNT_g=
H5E_VERSION_g=
@ -63,23 +106,16 @@ H5E_CANTDELETE_g=
H5E_BADITER_g=
H5E_CANTPACK_g=
/* Argument errors */
H5E_UNINITIALIZED_g=
H5E_UNSUPPORTED_g=
H5E_BADTYPE_g=
H5E_BADRANGE_g=
H5E_BADVALUE_g=
/* System level errors */
H5E_SYSERRSTR_g=
/* Dataspace errors */
H5E_CANTCLIP_g=
H5E_CANTCOUNT_g=
H5E_CANTSELECT_g=
H5E_CANTNEXT_g=
H5E_BADSELECT_g=
H5E_CANTCOMPARE_g=
/* I/O pipeline errors */
H5E_NOFILTER_g=
H5E_CALLBACK_g=
H5E_CANAPPLY_g=
H5E_SETLOCAL_g=
H5E_NOENCODER_g=
H5E_CANTFILTER_g=
/* Group related errors */
H5E_CANTOPENOBJ_g=
@ -87,18 +123,27 @@ H5E_CANTCLOSEOBJ_g=
H5E_COMPLEN_g=
H5E_PATH_g=
/* B-tree related errors */
H5E_NOTFOUND_g=
H5E_EXISTS_g=
H5E_CANTENCODE_g=
H5E_CANTDECODE_g=
H5E_CANTSPLIT_g=
H5E_CANTREDISTRIBUTE_g=
H5E_CANTSWAP_g=
H5E_CANTINSERT_g=
H5E_CANTLIST_g=
H5E_CANTMODIFY_g=
H5E_CANTREMOVE_g=
/* No error */
H5E_NONE_MINOR_g=
/* File accessability errors */
H5E_FILEEXISTS_g=
H5E_FILEOPEN_g=
H5E_CANTCREATE_g=
H5E_CANTOPENFILE_g=
H5E_CANTCLOSEFILE_g=
H5E_NOTHDF5_g=
H5E_BADFILE_g=
H5E_TRUNCATED_g=
H5E_MOUNT_g=
/* Object atom related errors */
H5E_BADATOM_g=
H5E_BADGROUP_g=
H5E_CANTREGISTER_g=
H5E_CANTINC_g=
H5E_CANTDEC_g=
H5E_NOIDS_g=
/* Cache related errors */
H5E_CANTFLUSH_g=
@ -118,91 +163,47 @@ H5E_CANTDIRTY_g=
H5E_CANTEXPUNGE_g=
H5E_CANTRESIZE_g=
/* I/O pipeline errors */
H5E_NOFILTER_g=
H5E_CALLBACK_g=
H5E_CANAPPLY_g=
H5E_SETLOCAL_g=
H5E_NOENCODER_g=
H5E_CANTFILTER_g=
/* Resource errors */
H5E_NOSPACE_g=
H5E_CANTALLOC_g=
H5E_CANTCOPY_g=
H5E_CANTFREE_g=
H5E_ALREADYEXISTS_g=
H5E_CANTLOCK_g=
H5E_CANTUNLOCK_g=
H5E_CANTGC_g=
H5E_CANTGETSIZE_g=
H5E_OBJOPEN_g=
/* No error */
H5E_NONE_MINOR_g=
/* Parallel MPI errors */
H5E_MPI_g=
H5E_MPIERRSTR_g=
H5E_CANTRECV_g=
/* File accessability errors */
H5E_FILEEXISTS_g=
H5E_FILEOPEN_g=
H5E_CANTCREATE_g=
H5E_CANTOPENFILE_g=
H5E_CANTCLOSEFILE_g=
H5E_NOTHDF5_g=
H5E_BADFILE_g=
H5E_TRUNCATED_g=
H5E_MOUNT_g=
/* Heap errors */
H5E_CANTRESTORE_g=
H5E_CANTCOMPUTE_g=
H5E_CANTEXTEND_g=
H5E_CANTATTACH_g=
H5E_CANTUPDATE_g=
/* Datatype conversion errors */
H5E_CANTCONVERT_g=
H5E_BADSIZE_g=
/* Link related errors */
H5E_TRAVERSE_g=
H5E_NLINKS_g=
H5E_NOTREGISTERED_g=
H5E_CANTMOVE_g=
/* Object atom related errors */
H5E_BADATOM_g=
H5E_BADGROUP_g=
H5E_CANTREGISTER_g=
H5E_CANTINC_g=
H5E_CANTDEC_g=
H5E_NOIDS_g=
/* Parallel MPI errors */
H5E_MPI_g=
H5E_MPIERRSTR_g=
H5E_CANTRECV_g=
/* Free space errors */
H5E_CANTMERGE_g=
H5E_CANTREVIVE_g=
H5E_CANTSHRINK_g=
/* Dataspace errors */
H5E_CANTCLIP_g=
H5E_CANTCOUNT_g=
H5E_CANTSELECT_g=
H5E_CANTNEXT_g=
H5E_BADSELECT_g=
H5E_CANTCOMPARE_g=
/* Generic low-level file I/O errors */
H5E_SEEKERROR_g=
H5E_READERROR_g=
H5E_WRITEERROR_g=
H5E_CLOSEERROR_g=
H5E_OVERFLOW_g=
H5E_FCNTL_g=
/* Argument errors */
H5E_UNINITIALIZED_g=
H5E_UNSUPPORTED_g=
H5E_BADTYPE_g=
H5E_BADRANGE_g=
H5E_BADVALUE_g=
/* Property list errors */
H5E_CANTGET_g=
H5E_CANTSET_g=
H5E_DUPCLASS_g=
/* B-tree related errors */
H5E_NOTFOUND_g=
H5E_EXISTS_g=
H5E_CANTENCODE_g=
H5E_CANTDECODE_g=
H5E_CANTSPLIT_g=
H5E_CANTREDISTRIBUTE_g=
H5E_CANTSWAP_g=
H5E_CANTINSERT_g=
H5E_CANTLIST_g=
H5E_CANTMODIFY_g=
H5E_CANTREMOVE_g=
/* Function entry/exit interface errors */
H5E_CANTINIT_g=
H5E_ALREADYINIT_g=
H5E_CANTRELEASE_g= (-1);
/* Datatype conversion errors */
H5E_CANTCONVERT_g=
H5E_BADSIZE_g= (-1);
#endif /* H5Eterm_H */

View File

@ -81,6 +81,31 @@
H5FL_DEFINE_STATIC(H5HF_t);
/*-------------------------------------------------------------------------
* Function: H5HF_op_memcpy
*
* Purpose: Performs a 'memcpy' operation for a heap 'op' callback
*
* Return: SUCCEED/FAIL
*
* Programmer: Quincey Koziol
* koziol@hdfgroup.org
* Sep 11 2006
*
*-------------------------------------------------------------------------
*/
herr_t
H5HF_op_memcpy(const void *obj, size_t obj_len, void *op_data)
{
FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5HF_op_memcpy)
/* Perform memcpy() */
HDmemcpy(op_data, obj, obj_len);
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5HF_op_memcpy() */
/*-------------------------------------------------------------------------
* Function: H5HF_create
@ -494,6 +519,69 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5HF_read() */
/*-------------------------------------------------------------------------
* Function: H5HF_op
*
* Purpose: Perform an operation directly on a heap object
*
* Return: SUCCEED/FAIL
*
* Programmer: Quincey Koziol
* koziol@hdfgroup.org
* Sept 11 2006
*
*-------------------------------------------------------------------------
*/
herr_t
H5HF_op(H5HF_t *fh, hid_t dxpl_id, const void *_id, H5HF_operator_t op,
void *op_data)
{
const uint8_t *id = (const uint8_t *)_id; /* Object ID */
uint8_t id_flags; /* Heap ID flag bits */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5HF_op, FAIL)
/*
* Check arguments.
*/
HDassert(fh);
HDassert(id);
HDassert(op);
/* Get the ID flags */
id_flags = *id;
/* Check for correct heap ID version */
if((id_flags & H5HF_ID_VERS_MASK) != H5HF_ID_VERS_CURR)
HGOTO_ERROR(H5E_HEAP, H5E_VERSION, FAIL, "incorrect heap ID version")
/* Check type of object in heap */
if((id_flags & H5HF_ID_TYPE_MASK) == H5HF_ID_TYPE_MAN) {
/* Operate on object from managed heap blocks */
if(H5HF_man_op(fh->hdr, dxpl_id, id, op, op_data) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTOPERATE, FAIL, "can't operate on object from fractal heap")
} /* end if */
else if((id_flags & H5HF_ID_TYPE_MASK) == H5HF_ID_TYPE_HUGE) {
/* Operate on 'huge' object from file */
if(H5HF_huge_op(fh->hdr, dxpl_id, id, op, op_data) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTOPERATE, FAIL, "can't operate on 'huge' object from fractal heap")
} /* end if */
else if((id_flags & H5HF_ID_TYPE_MASK) == H5HF_ID_TYPE_TINY) {
/* Operate on 'tiny' object from file */
if(H5HF_tiny_op(fh->hdr, id, op, op_data) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTOPERATE, FAIL, "can't operate on 'tiny' object from fractal heap")
} /* end if */
else {
HDfprintf(stderr, "%s: Heap ID type not supported yet!\n", FUNC);
HGOTO_ERROR(H5E_HEAP, H5E_UNSUPPORTED, FAIL, "heap ID type not supported yet")
} /* end else */
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5HF_op() */
/*-------------------------------------------------------------------------
* Function: H5HF_remove

View File

@ -78,6 +78,8 @@ herr_t H5HF_huge_bt2_filt_dir_remove(const void *nrecord, void *op_data);
/* Local 'huge' object support routines */
static hsize_t H5HF_huge_new_id(H5HF_hdr_t *hdr);
static herr_t H5HF_huge_op_real(H5HF_hdr_t *hdr, hid_t dxpl_id,
const uint8_t *id, hbool_t is_read, H5HF_operator_t op, void *op_data);
/*********************/
/* Package Variables */
@ -571,9 +573,9 @@ done:
/*-------------------------------------------------------------------------
* Function: H5HF_huge_read
* Function: H5HF_huge_op_real
*
* Purpose: Read a 'huge' object from the heap
* Purpose: Internal routine to perform an operation on a 'huge' object
*
* Return: SUCCEED/FAIL
*
@ -583,8 +585,9 @@ done:
*
*-------------------------------------------------------------------------
*/
herr_t
H5HF_huge_read(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id, void *obj)
static herr_t
H5HF_huge_op_real(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id,
hbool_t is_read, H5HF_operator_t op, void *op_data)
{
void *read_buf; /* Pointer to buffer for reading */
haddr_t obj_addr; /* Object's address in the file */
@ -592,14 +595,14 @@ H5HF_huge_read(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id, void *obj)
unsigned filter_mask = 0; /* Filter mask for object (only used for filtered objects) */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI_NOINIT(H5HF_huge_read)
FUNC_ENTER_NOAPI_NOINIT(H5HF_huge_op_real)
/*
* Check arguments.
*/
HDassert(hdr);
HDassert(id);
HDassert(obj);
HDassert(is_read || op);
/* Skip over the flag byte */
id++;
@ -651,14 +654,15 @@ H5HF_huge_read(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id, void *obj)
} /* end else */
/* Set up buffer for reading */
if(hdr->filter_len > 0) {
if(hdr->filter_len > 0 || !is_read) {
if(NULL == (read_buf = H5MM_malloc((size_t)obj_size)))
HGOTO_ERROR(H5E_HEAP, H5E_NOSPACE, FAIL, "memory allocation failed for pipeline buffer")
} /* end if */
else
read_buf = obj;
read_buf = op_data;
/* Read the object's (possibly filtered) data from the file */
/* (reads directly into application's buffer if no filters are present) */
if(H5F_block_read(hdr->f, H5FD_MEM_FHEAP_HUGE_OBJ, obj_addr, (size_t)obj_size, dxpl_id, read_buf) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_READERROR, FAIL, "can't read 'huge' object's data from the file")
@ -672,18 +676,108 @@ H5HF_huge_read(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id, void *obj)
read_size = nbytes = obj_size;
if(H5Z_pipeline(&(hdr->pline), H5Z_FLAG_REVERSE, &filter_mask, H5Z_NO_EDC, filter_cb, &nbytes, &read_size, &read_buf) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTFILTER, FAIL, "input filter failed")
/* Copy object to user's buffer */
HDmemcpy(obj, read_buf, nbytes);
/* Release read buffer */
H5MM_xfree(read_buf);
obj_size = nbytes;
} /* end if */
/* Perform correct operation on buffer read in */
if(is_read) {
/* Copy object to user's buffer if there's filters on heap data */
/* (if there's no filters, the object was read directly into the user's buffer) */
if(hdr->filter_len > 0)
HDmemcpy(op_data, read_buf, (size_t)obj_size);
} /* end if */
else {
/* Call the user's 'op' callback */
if(op(read_buf, (size_t)obj_size, op_data) < 0) {
/* Release buffer */
H5MM_xfree(read_buf);
/* Indicate error */
HGOTO_ERROR(H5E_HEAP, H5E_CANTOPERATE, FAIL, "application's callback failed")
} /* end if */
} /* end if */
/* Release the buffer for reading */
if(hdr->filter_len > 0 || !is_read)
H5MM_xfree(read_buf);
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5HF_huge_op_real() */
/*-------------------------------------------------------------------------
* Function: H5HF_huge_read
*
* Purpose: Read a 'huge' object from the heap
*
* Return: SUCCEED/FAIL
*
* Programmer: Quincey Koziol
* koziol@ncsa.uiuc.edu
* Sept 11 2006
*
*-------------------------------------------------------------------------
*/
herr_t
H5HF_huge_read(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id, void *obj)
{
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI_NOINIT(H5HF_huge_read)
/*
* Check arguments.
*/
HDassert(hdr);
HDassert(id);
HDassert(obj);
/* Call the internal 'op' routine */
if(H5HF_huge_op_real(hdr, dxpl_id, id, TRUE, NULL, obj) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTOPERATE, FAIL, "unable to operate on heap object")
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5HF_huge_read() */
/*-------------------------------------------------------------------------
* Function: H5HF_huge_op
*
* Purpose: Operate directly on a 'huge' object
*
* Return: SUCCEED/FAIL
*
* Programmer: Quincey Koziol
* koziol@ncsa.uiuc.edu
* Sept 11 2006
*
*-------------------------------------------------------------------------
*/
herr_t
H5HF_huge_op(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id,
H5HF_operator_t op, void *op_data)
{
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI_NOINIT(H5HF_huge_op)
/*
* Check arguments.
*/
HDassert(hdr);
HDassert(id);
HDassert(op);
/* Call the internal 'op' routine routine */
if(H5HF_huge_op_real(hdr, dxpl_id, id, FALSE, op, op_data) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTOPERATE, FAIL, "unable to operate on heap object")
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5HF_huge_op() */
/*-------------------------------------------------------------------------
* Function: H5HF_huge_remove

View File

@ -57,7 +57,8 @@
/********************/
/* Local Prototypes */
/********************/
static herr_t H5HF_man_op_real(H5HF_hdr_t *hdr, hid_t dxpl_id,
const uint8_t *id, H5HF_operator_t op, void *op_data);
/*********************/
/* Package Variables */
@ -228,9 +229,10 @@ done:
/*-------------------------------------------------------------------------
* Function: H5HF_man_read
* Function: H5HF_man_op_real
*
* Purpose: Read an object from a managed heap
* Purpose: Internal routine to perform an operation on a managed heap
* object
*
* Return: SUCCEED/FAIL
*
@ -240,8 +242,9 @@ done:
*
*-------------------------------------------------------------------------
*/
herr_t
H5HF_man_read(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id, void *obj)
static herr_t
H5HF_man_op_real(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id,
H5HF_operator_t op, void *op_data)
{
H5HF_direct_t *dblock; /* Pointer to direct block to query */
hsize_t obj_off; /* Object's offset in heap */
@ -252,14 +255,14 @@ H5HF_man_read(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id, void *obj)
size_t dblock_size; /* Direct block size */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI_NOINIT(H5HF_man_read)
FUNC_ENTER_NOAPI_NOINIT(H5HF_man_op_real)
/*
* Check arguments.
*/
HDassert(hdr);
HDassert(id);
HDassert(obj);
HDassert(op);
/* Skip over the flag byte */
id++;
@ -354,18 +357,97 @@ HDfprintf(stderr, "%s: dblock_addr = %a, dblock_size = %Zu\n", FUNC, dblock_addr
/* Point to location for object */
p = dblock->blk + blk_off;
/* Copy the object's data into the heap */
HDmemcpy(obj, p, obj_len);
/* Call the user's 'op' callback */
if(op(p, obj_len, op_data) < 0) {
/* Release direct block */
if(H5AC_unprotect(hdr->f, dxpl_id, H5AC_FHEAP_DBLOCK, dblock_addr, dblock, H5AC__NO_FLAGS_SET) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTUNPROTECT, FAIL, "unable to release fractal heap direct block")
HGOTO_ERROR(H5E_HEAP, H5E_CANTOPERATE, FAIL, "application's callback failed")
} /* end if */
/* Unlock direct block */
if(H5AC_unprotect(hdr->f, dxpl_id, H5AC_FHEAP_DBLOCK, dblock_addr, dblock, H5AC__NO_FLAGS_SET) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTUNPROTECT, FAIL, "unable to release fractal heap direct block")
dblock = NULL;
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5HF_man_op_real() */
/*-------------------------------------------------------------------------
* Function: H5HF_man_read
*
* Purpose: Read an object from a managed heap
*
* Return: SUCCEED/FAIL
*
* Programmer: Quincey Koziol
* koziol@ncsa.uiuc.edu
* Mar 17 2006
*
*-------------------------------------------------------------------------
*/
herr_t
H5HF_man_read(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id, void *obj)
{
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI_NOINIT(H5HF_man_read)
/*
* Check arguments.
*/
HDassert(hdr);
HDassert(id);
HDassert(obj);
/* Call the internal 'op' routine routine */
if(H5HF_man_op_real(hdr, dxpl_id, id, H5HF_op_memcpy, obj) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTOPERATE, FAIL, "unable to operate on heap object")
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5HF_man_read() */
/*-------------------------------------------------------------------------
* Function: H5HF_man_op
*
* Purpose: Operate directly on an object from a managed heap
*
* Return: SUCCEED/FAIL
*
* Programmer: Quincey Koziol
* koziol@ncsa.uiuc.edu
* Sept 11 2006
*
*-------------------------------------------------------------------------
*/
herr_t
H5HF_man_op(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id,
H5HF_operator_t op, void *op_data)
{
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI_NOINIT(H5HF_man_op)
/*
* Check arguments.
*/
HDassert(hdr);
HDassert(id);
HDassert(op);
/* Call the internal 'op' routine routine */
if(H5HF_man_op_real(hdr, dxpl_id, id, op, op_data) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTOPERATE, FAIL, "unable to operate on heap object")
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5HF_man_op() */
/*-------------------------------------------------------------------------
* Function: H5HF_man_remove

View File

@ -619,6 +619,8 @@ H5_DLL herr_t H5HF_man_insert(H5HF_hdr_t *fh, hid_t dxpl_id, size_t obj_size,
const void *obj, void *id);
H5_DLL herr_t H5HF_man_read(H5HF_hdr_t *fh, hid_t dxpl_id, const uint8_t *id,
void *obj);
H5_DLL herr_t H5HF_man_op(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id,
H5HF_operator_t op, void *op_data);
H5_DLL herr_t H5HF_man_remove(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id);
/* 'Huge' object routines */
@ -629,6 +631,8 @@ H5_DLL herr_t H5HF_huge_get_obj_len(H5HF_hdr_t *hdr, hid_t dxpl_id,
const uint8_t *id, size_t *obj_len_p);
H5_DLL herr_t H5HF_huge_read(H5HF_hdr_t *fh, hid_t dxpl_id, const uint8_t *id,
void *obj);
H5_DLL herr_t H5HF_huge_op(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id,
H5HF_operator_t op, void *op_data);
H5_DLL herr_t H5HF_huge_remove(H5HF_hdr_t *fh, hid_t dxpl_id, const uint8_t *id);
H5_DLL herr_t H5HF_huge_term(H5HF_hdr_t *hdr, hid_t dxpl_id);
H5_DLL herr_t H5HF_huge_delete(H5HF_hdr_t *hdr, hid_t dxpl_id);
@ -640,6 +644,8 @@ H5_DLL herr_t H5HF_tiny_insert(H5HF_hdr_t *hdr, size_t obj_size, const void *obj
H5_DLL herr_t H5HF_tiny_get_obj_len(H5HF_hdr_t *hdr, const uint8_t *id,
size_t *obj_len_p);
H5_DLL herr_t H5HF_tiny_read(H5HF_hdr_t *fh, const uint8_t *id, void *obj);
H5_DLL herr_t H5HF_tiny_op(H5HF_hdr_t *hdr, const uint8_t *id,
H5HF_operator_t op, void *op_data);
H5_DLL herr_t H5HF_tiny_remove(H5HF_hdr_t *fh, const uint8_t *id);
/* Metadata cache callbacks */
@ -703,6 +709,9 @@ H5_DLL H5HF_indirect_t *H5HF_sect_row_get_iblock(H5HF_free_section_t *sect);
H5_DLL herr_t H5HF_sect_indirect_add(H5HF_hdr_t *hdr, hid_t dxpl_id,
H5HF_indirect_t *iblock, unsigned start_entry, unsigned nentries);
/* Internal operator callbacks */
H5_DLL herr_t H5HF_op_memcpy(const void *obj, size_t obj_len, void *op_data);
/* Testing routines */
#ifdef H5HF_TESTING
H5_DLL herr_t H5HF_get_cparam_test(const H5HF_t *fh, H5HF_create_t *cparam);

View File

@ -93,6 +93,10 @@ typedef struct H5HF_stat_t {
/* Fractal heap info (forward decl - defined in H5HFpkg.h) */
typedef struct H5HF_t H5HF_t;
/* Typedef for 'op' operations */
typedef herr_t (*H5HF_operator_t)(const void *obj/*in*/, size_t obj_len,
void *op_data/*in,out*/);
/*****************************/
/* Library-private Variables */
@ -111,6 +115,8 @@ H5_DLL herr_t H5HF_get_obj_len(H5HF_t *fh, hid_t dxpl_id, const void *id,
size_t *obj_len_p/*out*/);
H5_DLL herr_t H5HF_read(H5HF_t *fh, hid_t dxpl_id, const void *id,
void *obj/*out*/);
H5_DLL herr_t H5HF_op(H5HF_t *fh, hid_t dxpl_id, const void *_id,
H5HF_operator_t op, void *op_data);
H5_DLL herr_t H5HF_remove(H5HF_t *fh, hid_t dxpl_id, const void *id);
H5_DLL herr_t H5HF_close(H5HF_t *fh, hid_t dxpl_id);
H5_DLL herr_t H5HF_delete(H5F_t *f, hid_t dxpl_id, haddr_t fh_addr);

View File

@ -63,6 +63,8 @@
/********************/
/* Local Prototypes */
/********************/
static herr_t H5HF_tiny_op_real(H5HF_hdr_t *hdr, const uint8_t *id,
H5HF_operator_t op, void *op_data);
/*********************/
@ -233,31 +235,33 @@ H5HF_tiny_get_obj_len(H5HF_hdr_t *hdr, const uint8_t *id, size_t *obj_len_p)
/*-------------------------------------------------------------------------
* Function: H5HF_tiny_read
* Function: H5HF_tiny_op_real
*
* Purpose: Read a 'tiny' object from the heap
* Purpose: Internal routine to perform operation on 'tiny' object
*
* Return: SUCCEED/FAIL
*
* Programmer: Quincey Koziol
* koziol@hdfgroup.org
* Aug 8 2006
* Sep 11 2006
*
*-------------------------------------------------------------------------
*/
herr_t
H5HF_tiny_read(H5HF_hdr_t *hdr, const uint8_t *id, void *obj)
static herr_t
H5HF_tiny_op_real(H5HF_hdr_t *hdr, const uint8_t *id, H5HF_operator_t op,
void *op_data)
{
size_t enc_obj_size; /* Encoded object size */
size_t enc_obj_size; /* Encoded object size */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5HF_tiny_read)
FUNC_ENTER_NOAPI_NOINIT(H5HF_tiny_op_real)
/*
* Check arguments.
*/
HDassert(hdr);
HDassert(id);
HDassert(obj);
HDassert(op);
/* Check if 'tiny' object ID is in extended form */
if(!hdr->tiny_len_extended) {
@ -281,12 +285,87 @@ H5HF_tiny_read(H5HF_hdr_t *hdr, const uint8_t *id, void *obj)
id++; id++;
} /* end else */
/* Retrieve the object's data */
HDmemcpy(obj, id, (enc_obj_size + 1));
/* Call the user's 'op' callback */
if(op(id, (enc_obj_size + 1), op_data) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTOPERATE, FAIL, "application's callback failed")
done:
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5HF_tiny_op_real() */
/*-------------------------------------------------------------------------
* Function: H5HF_tiny_read
*
* Purpose: Read a 'tiny' object from the heap
*
* Return: SUCCEED/FAIL
*
* Programmer: Quincey Koziol
* koziol@hdfgroup.org
* Aug 8 2006
*
*-------------------------------------------------------------------------
*/
herr_t
H5HF_tiny_read(H5HF_hdr_t *hdr, const uint8_t *id, void *obj)
{
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI_NOINIT(H5HF_tiny_read)
/*
* Check arguments.
*/
HDassert(hdr);
HDassert(id);
HDassert(obj);
/* Call the internal 'op' routine */
if(H5HF_tiny_op_real(hdr, id, H5HF_op_memcpy, obj) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTOPERATE, FAIL, "unable to operate on heap object")
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5HF_tiny_read() */
/*-------------------------------------------------------------------------
* Function: H5HF_tiny_op
*
* Purpose: Operate directly on a 'tiny' object
*
* Return: SUCCEED/FAIL
*
* Programmer: Quincey Koziol
* koziol@ncsa.uiuc.edu
* Sept 11 2006
*
*-------------------------------------------------------------------------
*/
herr_t
H5HF_tiny_op(H5HF_hdr_t *hdr, const uint8_t *id, H5HF_operator_t op,
void *op_data)
{
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI_NOINIT(H5HF_tiny_op)
/*
* Check arguments.
*/
HDassert(hdr);
HDassert(id);
HDassert(op);
/* Call the internal 'op' routine routine */
if(H5HF_tiny_op_real(hdr, id, op, op_data) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTOPERATE, FAIL, "unable to operate on heap object")
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5HF_tiny_op() */
/*-------------------------------------------------------------------------
* Function: H5HF_tiny_remove

View File

@ -230,6 +230,7 @@ MINOR, HEAP, H5E_CANTCOMPUTE, Can't compute value
MINOR, HEAP, H5E_CANTEXTEND, Can't extend heap's space
MINOR, HEAP, H5E_CANTATTACH, Can't attach object
MINOR, HEAP, H5E_CANTUPDATE, Can't update object
MINOR, HEAP, H5E_CANTOPERATE, Can't operate on object
# Free space manager errors
MINOR, FSPACE, H5E_CANTMERGE, Can't merge objects

View File

@ -293,6 +293,30 @@ error:
return(1);
} /* check_stats() */
/*-------------------------------------------------------------------------
* Function: op_memcpy
*
* Purpose: Perform 'memcpy' for an object
*
* Return: Success: 0
*
* Failure: 1
*
* Programmer: Quincey Koziol
* Monday, September 11, 2006
*
*-------------------------------------------------------------------------
*/
static herr_t
op_memcpy(const void *obj, size_t obj_len, void *op_data)
{
/* Make copy of the object */
HDmemcpy(op_data, obj, obj_len);
return(SUCCEED);
} /* op_memcpy() */
/*-------------------------------------------------------------------------
* Function: add_obj
@ -13512,6 +13536,13 @@ test_tiny_insert_mix(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t *tpar
if(HDmemcmp(shared_wobj_g, shared_robj_g, obj_size))
TEST_ERROR
/* Check 'op' functionality on first huge object */
HDmemset(shared_robj_g, 0, obj_size);
if(H5HF_op(fh, dxpl, heap_id, op_memcpy, shared_robj_g) < 0)
FAIL_STACK_ERROR
if(HDmemcmp(shared_wobj_g, shared_robj_g, obj_size))
TEST_ERROR
/* Insert second object too large for managed heap blocks */
obj_size = SMALL_STAND_SIZE + 2;
if(H5HF_insert(fh, dxpl, obj_size, shared_wobj_g, heap_id2) < 0)
@ -13542,6 +13573,13 @@ test_tiny_insert_mix(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t *tpar
if(HDmemcmp(shared_wobj_g, shared_robj_g, obj_size))
TEST_ERROR
/* Check 'op' functionality on second huge object */
HDmemset(shared_robj_g, 0, obj_size);
if(H5HF_op(fh, dxpl, heap_id2, op_memcpy, shared_robj_g) < 0)
FAIL_STACK_ERROR
if(HDmemcmp(shared_wobj_g, shared_robj_g, obj_size))
TEST_ERROR
/* Insert third object too large for managed heap blocks */
obj_size = SMALL_STAND_SIZE + 3;
if(H5HF_insert(fh, dxpl, obj_size, shared_wobj_g, heap_id3) < 0)
@ -13572,6 +13610,13 @@ test_tiny_insert_mix(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t *tpar
if(HDmemcmp(shared_wobj_g, shared_robj_g, obj_size))
TEST_ERROR
/* Check 'op' functionality on third huge object */
HDmemset(shared_robj_g, 0, obj_size);
if(H5HF_op(fh, dxpl, heap_id3, op_memcpy, shared_robj_g) < 0)
FAIL_STACK_ERROR
if(HDmemcmp(shared_wobj_g, shared_robj_g, obj_size))
TEST_ERROR
/* Insert fourth object small enough to fit into 'normal' heap blocks */
obj_size = DBLOCK_SIZE(fh, 0) + 1;
if(H5HF_insert(fh, dxpl, obj_size, shared_wobj_g, heap_id4) < 0)
@ -13609,6 +13654,13 @@ test_tiny_insert_mix(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t *tpar
if(HDmemcmp(shared_wobj_g, shared_robj_g, obj_size))
TEST_ERROR
/* Check 'op' functionality on fourth ('normal') object */
HDmemset(shared_robj_g, 0, obj_size);
if(H5HF_op(fh, dxpl, heap_id4, op_memcpy, shared_robj_g) < 0)
FAIL_STACK_ERROR
if(HDmemcmp(shared_wobj_g, shared_robj_g, obj_size))
TEST_ERROR
/* Insert fifth object small enough to fit into 'normal' heap blocks */
obj_size = DBLOCK_SIZE(fh, 3) + 1;
if(H5HF_insert(fh, dxpl, obj_size, shared_wobj_g, heap_id5) < 0)
@ -13647,6 +13699,13 @@ test_tiny_insert_mix(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t *tpar
if(HDmemcmp(shared_wobj_g, shared_robj_g, obj_size))
TEST_ERROR
/* Check 'op' functionality on fifth ('normal') object */
HDmemset(shared_robj_g, 0, obj_size);
if(H5HF_op(fh, dxpl, heap_id5, op_memcpy, shared_robj_g) < 0)
FAIL_STACK_ERROR
if(HDmemcmp(shared_wobj_g, shared_robj_g, obj_size))
TEST_ERROR
/* Insert sixth object small enough to encode in heap ID */
obj_size = tparam->actual_id_len - 2;
@ -13678,6 +13737,13 @@ test_tiny_insert_mix(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t *tpar
if(HDmemcmp(shared_wobj_g, shared_robj_g, obj_size))
TEST_ERROR
/* Check 'op' functionality on sixth ('tiny') object */
HDmemset(shared_robj_g, 0, obj_size);
if(H5HF_op(fh, dxpl, heap_id6, op_memcpy, shared_robj_g) < 0)
FAIL_STACK_ERROR
if(HDmemcmp(shared_wobj_g, shared_robj_g, obj_size))
TEST_ERROR
/* Insert seventh object small enough to encode in heap ID */
obj_size = tparam->actual_id_len - 2;
if(H5HF_insert(fh, dxpl, obj_size, shared_wobj_g, heap_id7) < 0)
@ -13708,6 +13774,13 @@ test_tiny_insert_mix(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t *tpar
if(HDmemcmp(shared_wobj_g, shared_robj_g, obj_size))
TEST_ERROR
/* Check 'op' functionality on seventh ('tiny') object */
HDmemset(shared_robj_g, 0, obj_size);
if(H5HF_op(fh, dxpl, heap_id7, op_memcpy, shared_robj_g) < 0)
FAIL_STACK_ERROR
if(HDmemcmp(shared_wobj_g, shared_robj_g, obj_size))
TEST_ERROR
/* Delete individual objects, if we won't be deleting the entire heap later */
if(tparam->del_dir != FHEAP_DEL_HEAP) {
if(tparam->del_dir == FHEAP_DEL_FORWARD) {