# Copyright by The HDF Group.
# All rights reserved.
#
# This file is part of HDF5.  The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the LICENSE file, which can be found at the root of the source code
# distribution tree, or in https://www.hdfgroup.org/licenses.
# If you do not have access to either file, you may request a copy from
# help@hdfgroup.org.
#

# This file is used to generate the various headers that are needed for the
# error API.  The bin/make_err script reads in this file and creates the
# appropriate files in the src/ directory when the generated headers are out
# of date with respect to this file.
#
# Blank lines and lines beginning with '#' are ignored
#
# The format of this file is as follows:
#  <type>,<major section, if minor type, otherwise omitted>,<name>,<description>
#
# For example, the following sample input shows two major errors and two minor
# errors in each section:
#
# MAJOR, H5E_ARGS, Invalid arguments to routine
# MAJOR, H5E_RESOURCE, Resource unavailable
#
# SECTION, ARGS, Argument errors
# SECTION, RESOURCE, Resource errors
#
# MINOR, ARGS, H5E_UNINITIALIZED, Information is uinitialized
# MINOR, ARGS, H5E_UNSUPPORTED, Feature is unsupported
# MINOR, RESOURCE, H5E_NOSPACE, No space available for allocation
# MINOR, RESOURCE, H5E_CANTCOPY, unable to copy object
#
# The section information is just used for grouping the information in the
# files created and can have any value.  They generally correspond to the
# major errors, but don't have to.  The section definition for each minor error
# must come before any minor error that uses it.
#

# Major errors
MAJOR, H5E_ARGS, Invalid arguments to routine
MAJOR, H5E_RESOURCE, Resource unavailable
MAJOR, H5E_INTERNAL, Internal error (too specific to document in detail)
MAJOR, H5E_LIB, General library infrastructure
MAJOR, H5E_FILE, File accessibility
MAJOR, H5E_IO, Low-level I/O
MAJOR, H5E_FUNC, Function entry/exit
MAJOR, H5E_ID, Object ID
MAJOR, H5E_CACHE, Object cache
MAJOR, H5E_LINK, Links
MAJOR, H5E_BTREE, B-Tree node
MAJOR, H5E_SYM, Symbol table
MAJOR, H5E_HEAP, Heap
MAJOR, H5E_OHDR, Object header
MAJOR, H5E_DATATYPE, Datatype
MAJOR, H5E_DATASPACE, Dataspace
MAJOR, H5E_DATASET, Dataset
MAJOR, H5E_STORAGE, Data storage
MAJOR, H5E_PLIST, Property lists
MAJOR, H5E_ATTR, Attribute
MAJOR, H5E_PLINE, Data filters
MAJOR, H5E_EFL, External file list
MAJOR, H5E_REFERENCE, References
MAJOR, H5E_VFL, Virtual File Layer
MAJOR, H5E_VOL, Virtual Object Layer
MAJOR, H5E_TST, Ternary Search Trees
MAJOR, H5E_RS, Reference Counted Strings
MAJOR, H5E_ERROR, Error API
MAJOR, H5E_SLIST, Skip Lists
MAJOR, H5E_FSPACE, Free Space Manager
MAJOR, H5E_SOHM, Shared Object Header Messages
MAJOR, H5E_EARRAY, Extensible Array
MAJOR, H5E_FARRAY, Fixed Array
MAJOR, H5E_PLUGIN, Plugin for dynamically loaded library
MAJOR, H5E_PAGEBUF, Page Buffering
MAJOR, H5E_CONTEXT, API Context
MAJOR, H5E_MAP, Map
MAJOR, H5E_EVENTSET, Event Set
MAJOR, H5E_THREADSAFE, Threadsafety
MAJOR, H5E_RTREE, R-Tree spatial index
MAJOR, H5E_NONE_MAJOR, No error

# Sections (for grouping minor errors)
SECTION, ARGS, Argument errors
SECTION, RESOURCE, Resource errors
SECTION, FILEACC, File accessibility errors
SECTION, FILE, Generic low-level file I/O errors
SECTION, FUNC, Function entry/exit interface errors
SECTION, ID, Object ID related errors
SECTION, CACHE, Cache related errors
SECTION, LINK, Link related errors
SECTION, BTREE, B-tree related errors
SECTION, OHDR, Object header related errors
SECTION, GROUP, Group related errors
SECTION, TYPECONV, Datatype conversion errors
SECTION, DSPACE, Dataspace errors
SECTION, PLIST, Property list errors
SECTION, MPI, Parallel MPI errors
SECTION, HEAP, Heap errors
SECTION, FSPACE, Free space errors
SECTION, PIPELINE, I/O pipeline errors
SECTION, SYSTEM, System level errors
SECTION, PLUGIN, Plugin errors
SECTION, MAP, Map related errors
SECTION, ASYNC, Asynchronous operation errors
SECTION, NONE, No error

# Minor errors

# Argument errors
MINOR, ARGS, H5E_UNINITIALIZED, Information is uinitialized
MINOR, ARGS, H5E_UNSUPPORTED, Feature is unsupported
MINOR, ARGS, H5E_BADTYPE, Inappropriate type
MINOR, ARGS, H5E_BADRANGE, Out of range
MINOR, ARGS, H5E_BADVALUE, Bad value

# Resource errors
MINOR, RESOURCE, H5E_NOSPACE, No space available for allocation
MINOR, RESOURCE, H5E_CANTALLOC, Can't allocate space
MINOR, RESOURCE, H5E_CANTCOPY, Unable to copy object
MINOR, RESOURCE, H5E_CANTFREE, Unable to free object
MINOR, RESOURCE, H5E_ALREADYEXISTS, Object already exists
MINOR, RESOURCE, H5E_CANTLOCK, Unable to lock object
MINOR, RESOURCE, H5E_CANTUNLOCK, Unable to unlock object
MINOR, RESOURCE, H5E_CANTGC, Unable to garbage collect
MINOR, RESOURCE, H5E_CANTGETSIZE, Unable to compute size
MINOR, RESOURCE, H5E_OBJOPEN, Object is already open

# File accessibility errors
MINOR, FILEACC, H5E_FILEEXISTS, File already exists
MINOR, FILEACC, H5E_FILEOPEN, File already open
MINOR, FILEACC, H5E_CANTCREATE, Unable to create file
MINOR, FILEACC, H5E_CANTOPENFILE, Unable to open file
MINOR, FILEACC, H5E_CANTCLOSEFILE, Unable to close file
MINOR, FILEACC, H5E_NOTHDF5, Not an HDF5 file
MINOR, FILEACC, H5E_BADFILE, Bad file ID accessed
MINOR, FILEACC, H5E_TRUNCATED, File has been truncated
MINOR, FILEACC, H5E_MOUNT, File mount error
MINOR, FILEACC, H5E_UNMOUNT, File unmount error
MINOR, FILEACC, H5E_CANTDELETEFILE, Unable to delete file
MINOR, FILEACC, H5E_CANTLOCKFILE, Unable to lock file
MINOR, FILEACC, H5E_CANTUNLOCKFILE, Unable to unlock file

# Generic low-level file I/O errors
MINOR, FILE, H5E_SEEKERROR, Seek failed
MINOR, FILE, H5E_READERROR, Read failed
MINOR, FILE, H5E_WRITEERROR, Write failed
MINOR, FILE, H5E_CLOSEERROR, Close failed
MINOR, FILE, H5E_OVERFLOW, Address overflowed
MINOR, FILE, H5E_FCNTL, File control (fcntl) failed

# Function entry/exit interface errors
MINOR, FUNC, H5E_CANTINIT, Unable to initialize object
MINOR, FUNC, H5E_ALREADYINIT, Object already initialized
MINOR, FUNC, H5E_CANTRELEASE, Unable to release object

# Object ID related errors
MINOR, ID, H5E_BADID, Unable to find ID information (already closed?)
MINOR, ID, H5E_BADGROUP, Unable to find ID group information
MINOR, ID, H5E_CANTREGISTER, Unable to register new ID
MINOR, ID, H5E_CANTINC, Unable to increment reference count
MINOR, ID, H5E_CANTDEC, Unable to decrement reference count
MINOR, ID, H5E_NOIDS, Out of IDs for group

# Cache related errors
MINOR, CACHE, H5E_CANTFLUSH, Unable to flush data from cache
MINOR, CACHE, H5E_CANTUNSERIALIZE, Unable to mark metadata as unserialized
MINOR, CACHE, H5E_CANTSERIALIZE, Unable to serialize data from cache
MINOR, CACHE, H5E_CANTTAG, Unable to tag metadata in the cache
MINOR, CACHE, H5E_CANTLOAD, Unable to load metadata into cache
MINOR, CACHE, H5E_PROTECT, Protected metadata error
MINOR, CACHE, H5E_NOTCACHED, Metadata not currently cached
MINOR, CACHE, H5E_SYSTEM, Internal error detected
MINOR, CACHE, H5E_CANTINS, Unable to insert metadata into cache
MINOR, CACHE, H5E_CANTPROTECT, Unable to protect metadata
MINOR, CACHE, H5E_CANTUNPROTECT, Unable to unprotect metadata
MINOR, CACHE, H5E_CANTPIN, Unable to pin cache entry
MINOR, CACHE, H5E_CANTUNPIN, Unable to un-pin cache entry
MINOR, CACHE, H5E_CANTMARKDIRTY, Unable to mark a pinned entry as dirty
MINOR, CACHE, H5E_CANTMARKCLEAN, Unable to mark a pinned entry as clean
MINOR, CACHE, H5E_CANTMARKUNSERIALIZED, Unable to mark an entry as unserialized
MINOR, CACHE, H5E_CANTMARKSERIALIZED, Unable to mark an entry as serialized
MINOR, CACHE, H5E_CANTDIRTY, Unable to mark metadata as dirty
MINOR, CACHE, H5E_CANTCLEAN, Unable to mark metadata as clean
MINOR, CACHE, H5E_CANTEXPUNGE, Unable to expunge a metadata cache entry
MINOR, CACHE, H5E_CANTRESIZE, Unable to resize a metadata cache entry
MINOR, CACHE, H5E_CANTDEPEND, Unable to create a flush dependency
MINOR, CACHE, H5E_CANTUNDEPEND, Unable to destroy a flush dependency
MINOR, CACHE, H5E_CANTNOTIFY, Unable to notify object about action
MINOR, CACHE, H5E_LOGGING, Failure in the cache logging framework
MINOR, CACHE, H5E_CANTCORK, Unable to cork an object
MINOR, CACHE, H5E_CANTUNCORK, Unable to uncork an object

# B-tree related errors
MINOR, BTREE, H5E_NOTFOUND, Object not found
MINOR, BTREE, H5E_EXISTS, Object already exists
MINOR, BTREE, H5E_CANTENCODE, Unable to encode value
MINOR, BTREE, H5E_CANTDECODE, Unable to decode value
MINOR, BTREE, H5E_CANTSPLIT, Unable to split node
MINOR, BTREE, H5E_CANTREDISTRIBUTE, Unable to redistribute records
MINOR, BTREE, H5E_CANTSWAP, Unable to swap records
MINOR, BTREE, H5E_CANTINSERT, Unable to insert object
MINOR, BTREE, H5E_CANTLIST, Unable to list node
MINOR, BTREE, H5E_CANTMODIFY, Unable to modify record
MINOR, BTREE, H5E_CANTREMOVE, Unable to remove object
MINOR, BTREE, H5E_CANTFIND, Unable to check for record

# Object header related errors
MINOR, OHDR, H5E_LINKCOUNT, Bad object header link count
MINOR, OHDR, H5E_VERSION, Wrong version number
MINOR, OHDR, H5E_ALIGNMENT, Alignment error
MINOR, OHDR, H5E_BADMESG, Unrecognized message
MINOR, OHDR, H5E_CANTDELETE, Can't delete message
MINOR, OHDR, H5E_BADITER, Iteration failed
MINOR, OHDR, H5E_CANTPACK, Can't pack messages
MINOR, OHDR, H5E_CANTRESET, Can't reset object
MINOR, OHDR, H5E_CANTRENAME, Unable to rename object

# Group related errors
MINOR, GROUP, H5E_CANTOPENOBJ, Can't open object
MINOR, GROUP, H5E_CANTCLOSEOBJ, Can't close object
MINOR, GROUP, H5E_COMPLEN, Name component is too long
MINOR, GROUP, H5E_PATH, Problem with path to object

# Datatype conversion errors
MINOR, TYPECONV, H5E_CANTCONVERT, Can't convert datatypes
MINOR, TYPECONV, H5E_BADSIZE, Bad size for object

# Dataspace errors
MINOR, DSPACE, H5E_CANTCLIP, Can't clip hyperslab region
MINOR, DSPACE, H5E_CANTCOUNT, Can't count elements
MINOR, DSPACE, H5E_CANTSELECT, Can't select hyperslab
MINOR, DSPACE, H5E_CANTNEXT, Can't move to next iterator location
MINOR, DSPACE, H5E_BADSELECT, Invalid selection
MINOR, DSPACE, H5E_CANTCOMPARE, Can't compare objects
MINOR, DSPACE, H5E_INCONSISTENTSTATE, Internal states are inconsistent
MINOR, DSPACE, H5E_CANTAPPEND, Can't append object

# Property list errors
MINOR, PLIST, H5E_CANTGET, Can't get value
MINOR, PLIST, H5E_CANTSET, Can't set value
MINOR, PLIST, H5E_DUPCLASS, Duplicate class name in parent class
MINOR, PLIST, H5E_SETDISALLOWED, Disallowed operation

# Link errors
MINOR, LINK, H5E_TRAVERSE, Link traversal failure
MINOR, LINK, H5E_NLINKS, Too many soft links in path
MINOR, LINK, H5E_NOTREGISTERED, Link class not registered
MINOR, LINK, H5E_CANTMOVE, Can't move object
MINOR, LINK, H5E_CANTSORT, Can't sort objects

# Parallel MPI errors
MINOR, MPI, H5E_MPI, Some MPI function failed
MINOR, MPI, H5E_MPIERRSTR, MPI Error String
MINOR, MPI, H5E_CANTRECV, Can't receive data
MINOR, MPI, H5E_CANTGATHER, Can't gather data
MINOR, MPI, H5E_NO_INDEPENDENT, Can't perform independent IO

# Heap errors
MINOR, HEAP, H5E_CANTRESTORE, Can't restore condition
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
MINOR, FSPACE, H5E_CANTREVIVE, Can't revive object
MINOR, FSPACE, H5E_CANTSHRINK, Can't shrink container

# I/O pipeline errors
MINOR, PIPELINE, H5E_NOFILTER, Requested filter is not available
MINOR, PIPELINE, H5E_CALLBACK, Callback failed
MINOR, PIPELINE, H5E_CANAPPLY, Error from filter 'can apply' callback
MINOR, PIPELINE, H5E_SETLOCAL, Error from filter 'set local' callback
MINOR, PIPELINE, H5E_NOENCODER, Filter present but encoding disabled
MINOR, PIPELINE, H5E_CANTFILTER, Filter operation failed

# System level errors
MINOR, SYSTEM, H5E_SYSERRSTR, System error message

# Plugin errors
MINOR, PLUGIN, H5E_OPENERROR, Can't open directory or file

# Map related errors
MINOR, MAP, H5E_CANTPUT, Can't put value

# Asynchronous operation errors
MINOR, ASYNC, H5E_CANTWAIT, Can't wait on operation
MINOR, ASYNC, H5E_CANTCANCEL, Can't cancel operation

# No error, for backward compatibility */
MINOR, NONE, H5E_NONE_MINOR, No error
