# 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 COPYING 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
# versioning the public symbols for the library.
#
# The bin/make_vers 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>: <base routine name>; <list of versioned parameter types for function>; <version introduced>, <list of revised versions>
#
# Where <type> is either 'FUNCTION' or 'TYPEDEF'
#
# For example, the following sample input shows two functions with different
# API versions for each.  The example below shows H5Gfoo being added to the
# library in the v1.0 branch and revised in the v1.4 and v1.8 branches (so
# there should be three versioned names for the routine: H5Gfoo1, H5Gfoo2 and
# H5Gfoo3).  H5Gbar is shown as being added to the library in the v1.2 branch
# (so the "base" version of the API name wouldn't appear if the library
# was configured with the default API interface corresponding to v1.0) and
# revised in the v1.6 branch (so there should be two versioned names for the
# routine: H5Gbar1 and H5Gbar2).
#
# FUNCTION: H5Gfoo; ; v10, v14, v18
# FUNCTION: H5Gbar; ; v12, v16
#

# API function names
# (although not required, it's easier to compare this file with the headers
#       generated if the list below is in alphanumeric sort order - QAK)
FUNCTION: H5Acreate; ; v10, v18
FUNCTION: H5Aiterate; H5A_operator; v10, v18
FUNCTION: H5Dcreate; ; v10, v18
FUNCTION: H5Dopen; ; v10, v18
FUNCTION: H5Eclear; ; v10, v18
FUNCTION: H5Eget_auto; ; v10, v18
FUNCTION: H5Eprint; ; v10, v18
FUNCTION: H5Epush; ; v14, v18
FUNCTION: H5Eset_auto; ; v10, v18
FUNCTION: H5Ewalk; H5E_walk, H5E_error; v10, v18
FUNCTION: H5Fget_info; H5F_info; v18, v110
FUNCTION: H5Gcreate; ; v10, v18
FUNCTION: H5Gopen; ; v10, v18
FUNCTION: H5Lget_info; H5L_info; v18, v112
FUNCTION: H5Lget_info_by_idx; H5L_info; v18, v112
FUNCTION: H5Literate; H5L_iterate; v18, v112
FUNCTION: H5Literate_by_name; H5L_iterate; v18, v112
FUNCTION: H5Lvisit; H5L_iterate; v18, v112
FUNCTION: H5Lvisit_by_name; H5L_iterate; v18, v112
# Note:  v111 is allowed in make_vers because H5O functions were prematurely
#        versioned in HDF5 1.10.  Because users were affected by this, the
#        versioning was rescinded but the H5O version 2 functions were kept
#        to be called directly.  Now that the version macros are added in 1.12,
#        along with a 3rd version of the H5O functions, the H5O function
#        version for default api=v110 should be version 1 to work correctly
#        with 1.10 applications that were using unversioned H5O functions,
#        and the H5O function version should be version 3 for default api=v112
#        (the default api version for 1.12).
FUNCTION: H5Oget_info; ; v18, v111, v112
FUNCTION: H5Oget_info_by_name; ; v18, v111, v112
FUNCTION: H5Oget_info_by_idx; ; v18, v111, v112
FUNCTION: H5Ovisit; ; v18, v111, v112
FUNCTION: H5Ovisit_by_name; ; v18, v111, v112
FUNCTION: H5Pencode; ; v110, v112
FUNCTION: H5Pget_filter; ; v10, v18
FUNCTION: H5Pget_filter_by_id; ; v16, v18
FUNCTION: H5Pinsert; ; v14, v18
FUNCTION: H5Pregister; ; v14, v18
FUNCTION: H5Rdereference; ; v10, v110
FUNCTION: H5Rget_obj_type; ; v16, v18
FUNCTION: H5Sencode; ; v18, v112
FUNCTION: H5Tarray_create; ; v14, v18
FUNCTION: H5Tcommit; ; v10, v18
FUNCTION: H5Tget_array_dims; ; v14, v18
FUNCTION: H5Topen; ; v10, v18

# API typedefs
# (although not required, it's easier to compare this file with the headers
#       generated if the list below is in alphanumeric sort order - QAK)
TYPEDEF: H5E_auto; v10, v18
TYPEDEF: H5O_info; v18, v112
TYPEDEF: H5O_iterate; v18, v112
TYPEDEF: H5Z_class; v16, v18

