diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5TSprivate.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5TSprivate.h index 8bff696ca9..7f55f4f2cf 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5TSprivate.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5TSprivate.h @@ -1,126 +1,126 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * 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 files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/*------------------------------------------------------------------------- - * - * Created: H5TSprivate.h - * May 2 2000 - * Chee Wai LEE - * - * Purpose: Private non-prototype header. - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -#ifndef H5TSprivate_H_ -#define H5TSprivate_H_ - -/* Public headers needed by this file */ -#ifdef LATER -#include "H5TSpublic.h" /*Public API prototypes */ -#endif /* LATER */ - -#ifdef H5_HAVE_WIN_THREADS - -/* Library level data structures */ - -/* Mutexes, Threads, and Attributes */ -typedef struct H5TS_mutex_struct { - CRITICAL_SECTION CriticalSection; -} H5TS_mutex_t; -typedef CRITICAL_SECTION H5TS_mutex_simple_t; -typedef HANDLE H5TS_thread_t; -typedef HANDLE H5TS_attr_t; -typedef DWORD H5TS_key_t; -typedef INIT_ONCE H5TS_once_t; - -/* Defines */ -/* not used on windows side, but need to be defined to something */ -#define H5TS_SCOPE_SYSTEM 0 -#define H5TS_SCOPE_PROCESS 0 - -/* Functions */ -#define H5TS_get_thread_local_value(key) TlsGetValue( key ) -#define H5TS_set_thread_local_value(key, value) TlsSetValue( key, value ) -#define H5TS_attr_init(attr_ptr) 0 -#define H5TS_attr_setscope(attr_ptr, scope) 0 -#define H5TS_attr_destroy(attr_ptr) 0 -#define H5TS_wait_for_thread(thread) WaitForSingleObject(thread, INFINITE) -#define H5TS_mutex_init(mutex) InitializeCriticalSection(mutex) -#define H5TS_mutex_lock_simple(mutex) EnterCriticalSection(mutex) -#define H5TS_mutex_unlock_simple(mutex) LeaveCriticalSection(mutex) - -H5_DLL BOOL CALLBACK -H5TS_win32_first_thread_init(PINIT_ONCE InitOnce, PVOID Parameter, PVOID *lpContex); - -#else /* H5_HAVE_WIN_THREADS */ - -/* Library level data structures */ - -/* Mutexes, Threads, and Attributes */ -typedef struct H5TS_mutex_struct { - pthread_t owner_thread; /* current lock owner */ - pthread_mutex_t atomic_lock; /* lock for atomicity of new mechanism */ - pthread_cond_t cond_var; /* condition variable */ - unsigned int lock_count; -} H5TS_mutex_t; -typedef pthread_t H5TS_thread_t; -typedef pthread_attr_t H5TS_attr_t; -typedef pthread_mutex_t H5TS_mutex_simple_t; -typedef pthread_key_t H5TS_key_t; -typedef pthread_once_t H5TS_once_t; - -/* Scope Definitions */ -#define H5TS_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM -#define H5TS_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS - -/* Functions */ -#define H5TS_get_thread_local_value(key) pthread_getspecific( key ) -#define H5TS_set_thread_local_value(key, value) pthread_setspecific( key, value ) -#define H5TS_attr_init(attr_ptr) pthread_attr_init((attr_ptr)) -#define H5TS_attr_setscope(attr_ptr, scope) pthread_attr_setscope(attr_ptr, scope) -#define H5TS_attr_destroy(attr_ptr) pthread_attr_destroy(attr_ptr) -#define H5TS_wait_for_thread(thread) pthread_join(thread, NULL) -#define H5TS_mutex_init(mutex) pthread_mutex_init(mutex, NULL) -#define H5TS_mutex_lock_simple(mutex) pthread_mutex_lock(mutex) -#define H5TS_mutex_unlock_simple(mutex) pthread_mutex_unlock(mutex) - -#endif /* H5_HAVE_WIN_THREADS */ - -/* External global variables */ -extern H5TS_once_t H5TS_first_init_g; -extern H5TS_key_t H5TS_errstk_key_g; -extern H5TS_key_t H5TS_funcstk_key_g; - -#if defined c_plusplus || defined __cplusplus -extern "C" -{ -#endif /* c_plusplus || __cplusplus */ - -H5_DLL void H5TS_pthread_first_thread_init(void); -H5_DLL herr_t H5TS_mutex_lock(H5TS_mutex_t *mutex); -H5_DLL herr_t H5TS_mutex_unlock(H5TS_mutex_t *mutex); -H5_DLL herr_t H5TS_cancel_count_inc(void); -H5_DLL herr_t H5TS_cancel_count_dec(void); -H5_DLL H5TS_thread_t H5TS_create_thread(void * func, H5TS_attr_t * attr, void *udata); - - - -#if defined c_plusplus || defined __cplusplus -} -#endif /* c_plusplus || __cplusplus */ - -#endif /* H5TSprivate_H_ */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/*------------------------------------------------------------------------- + * + * Created: H5TSprivate.h + * May 2 2000 + * Chee Wai LEE + * + * Purpose: Private non-prototype header. + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +#ifndef H5TSprivate_H_ +#define H5TSprivate_H_ + +/* Public headers needed by this file */ +#ifdef LATER +#include "H5TSpublic.h" /*Public API prototypes */ +#endif /* LATER */ + +#ifdef H5_HAVE_WIN_THREADS + +/* Library level data structures */ + +/* Mutexes, Threads, and Attributes */ +typedef struct H5TS_mutex_struct { + CRITICAL_SECTION CriticalSection; +} H5TS_mutex_t; +typedef CRITICAL_SECTION H5TS_mutex_simple_t; +typedef HANDLE H5TS_thread_t; +typedef HANDLE H5TS_attr_t; +typedef DWORD H5TS_key_t; +typedef INIT_ONCE H5TS_once_t; + +/* Defines */ +/* not used on windows side, but need to be defined to something */ +#define H5TS_SCOPE_SYSTEM 0 +#define H5TS_SCOPE_PROCESS 0 + +/* Functions */ +#define H5TS_get_thread_local_value(key) TlsGetValue( key ) +#define H5TS_set_thread_local_value(key, value) TlsSetValue( key, value ) +#define H5TS_attr_init(attr_ptr) 0 +#define H5TS_attr_setscope(attr_ptr, scope) 0 +#define H5TS_attr_destroy(attr_ptr) 0 +#define H5TS_wait_for_thread(thread) WaitForSingleObject(thread, INFINITE) +#define H5TS_mutex_init(mutex) InitializeCriticalSection(mutex) +#define H5TS_mutex_lock_simple(mutex) EnterCriticalSection(mutex) +#define H5TS_mutex_unlock_simple(mutex) LeaveCriticalSection(mutex) + +H5_DLL BOOL CALLBACK +H5TS_win32_first_thread_init(PINIT_ONCE InitOnce, PVOID Parameter, PVOID *lpContex); + +#else /* H5_HAVE_WIN_THREADS */ + +/* Library level data structures */ + +/* Mutexes, Threads, and Attributes */ +typedef struct H5TS_mutex_struct { + pthread_t owner_thread; /* current lock owner */ + pthread_mutex_t atomic_lock; /* lock for atomicity of new mechanism */ + pthread_cond_t cond_var; /* condition variable */ + unsigned int lock_count; +} H5TS_mutex_t; +typedef pthread_t H5TS_thread_t; +typedef pthread_attr_t H5TS_attr_t; +typedef pthread_mutex_t H5TS_mutex_simple_t; +typedef pthread_key_t H5TS_key_t; +typedef pthread_once_t H5TS_once_t; + +/* Scope Definitions */ +#define H5TS_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM +#define H5TS_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS + +/* Functions */ +#define H5TS_get_thread_local_value(key) pthread_getspecific( key ) +#define H5TS_set_thread_local_value(key, value) pthread_setspecific( key, value ) +#define H5TS_attr_init(attr_ptr) pthread_attr_init((attr_ptr)) +#define H5TS_attr_setscope(attr_ptr, scope) pthread_attr_setscope(attr_ptr, scope) +#define H5TS_attr_destroy(attr_ptr) pthread_attr_destroy(attr_ptr) +#define H5TS_wait_for_thread(thread) pthread_join(thread, NULL) +#define H5TS_mutex_init(mutex) pthread_mutex_init(mutex, NULL) +#define H5TS_mutex_lock_simple(mutex) pthread_mutex_lock(mutex) +#define H5TS_mutex_unlock_simple(mutex) pthread_mutex_unlock(mutex) + +#endif /* H5_HAVE_WIN_THREADS */ + +/* External global variables */ +extern H5TS_once_t H5TS_first_init_g; +extern H5TS_key_t H5TS_errstk_key_g; +extern H5TS_key_t H5TS_funcstk_key_g; + +#if defined c_plusplus || defined __cplusplus +extern "C" +{ +#endif /* c_plusplus || __cplusplus */ + +H5_DLL void H5TS_pthread_first_thread_init(void); +H5_DLL herr_t H5TS_mutex_lock(H5TS_mutex_t *mutex); +H5_DLL herr_t H5TS_mutex_unlock(H5TS_mutex_t *mutex); +H5_DLL herr_t H5TS_cancel_count_inc(void); +H5_DLL herr_t H5TS_cancel_count_dec(void); +H5_DLL H5TS_thread_t H5TS_create_thread(void * func, H5TS_attr_t * attr, void *udata); + + + +#if defined c_plusplus || defined __cplusplus +} +#endif /* c_plusplus || __cplusplus */ + +#endif /* H5TSprivate_H_ */ diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Tpkg.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Tpkg.h index e6aec804cd..8323e150a6 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Tpkg.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Tpkg.h @@ -1,1408 +1,1408 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * 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 files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* - * Programmer: Robb Matzke - * Monday, December 8, 1997 - * - * Purpose: This file contains declarations which are visible only within - * the H5T package. Source files outside the H5T package should - * include H5Tprivate.h instead. - */ -#ifndef H5T_PACKAGE -#error "Do not include this file outside the H5T package!" -#endif - -#ifndef _H5Tpkg_H -#define _H5Tpkg_H - -/* - * Define this to enable debugging. - */ -#ifdef NDEBUG -# undef H5T_DEBUG -#endif - -/* Get package's private header */ -#include "H5Tprivate.h" - -/* Other private headers needed by this file */ -#include "H5Fprivate.h" /* Files */ -#include "H5FLprivate.h" /* Free Lists */ -#include "H5Oprivate.h" /* Object headers */ - -/* Other public headers needed by this file */ -#include "H5Spublic.h" /* Dataspace functions */ - -/* Length of debugging name buffer */ -#define H5T_NAMELEN 32 - -/* Macro to ease detecting "complex" datatypes (i.e. those with base types or fields) */ -#define H5T_IS_COMPLEX(t) ((t) == H5T_COMPOUND || (t) == H5T_ENUM || (t) == H5T_VLEN || (t) == H5T_ARRAY) - -/* Macro to ease detecting fixed "string" datatypes */ -#define H5T_IS_FIXED_STRING(dt) (H5T_STRING == (dt)->type) - -/* Macro to ease detecting variable-length "string" datatypes */ -#define H5T_IS_VL_STRING(dt) (H5T_VLEN == (dt)->type && H5T_VLEN_STRING == (dt)->u.vlen.type) - -/* Macro to ease detecting fixed or variable-length "string" datatypes */ -#define H5T_IS_STRING(dt) (H5T_IS_FIXED_STRING(dt) || H5T_IS_VL_STRING(dt)) - -/* Macro to ease detecting atomic datatypes */ -#define H5T_IS_ATOMIC(dt) (!(H5T_IS_COMPLEX((dt)->type) || (dt)->type == H5T_OPAQUE)) - -/* Macro to ease retrieving class of shared datatype */ -/* (Externally, a VL string is a string; internally, a VL string is a VL. Lie - * to the user if they have a VL string and tell them it's in the string - * class) - */ -#define H5T_GET_CLASS(shared, internal) ((internal) ? (shared)->type : (H5T_IS_VL_STRING(shared) ? H5T_STRING : (shared)->type)) - - -/* - * Datatype encoding versions - */ - -/* This is the version to create all datatypes which don't contain - * array datatypes (atomic types, compound datatypes without array fields, - * vlen sequences of objects which aren't arrays, etc.) or VAX byte-ordered - * objects. - */ -#define H5O_DTYPE_VERSION_1 1 - -/* This is the version to create all datatypes which contain H5T_ARRAY - * class objects (array definitely, potentially compound & vlen sequences also), - * but not VAX byte-ordered objects. - */ -#define H5O_DTYPE_VERSION_2 2 - -/* This is the version to create all datatypes which contain VAX byte-ordered - * objects (floating-point types, currently). - */ -/* This version also packs compound & enum field names without padding */ -/* This version also encodes the member offset of compound fields more efficiently */ -/* This version also encodes array types more efficiently */ -#define H5O_DTYPE_VERSION_3 3 - -/* The latest version of the format. Look through the 'encode helper' routine - * and 'size' callback for places to change when updating this. */ -#define H5O_DTYPE_VERSION_LATEST H5O_DTYPE_VERSION_3 - - -/* Flags for visiting datatype */ -#define H5T_VISIT_COMPLEX_FIRST 0x01 /* Visit complex datatype before visiting member/parent datatypes */ -#define H5T_VISIT_COMPLEX_LAST 0x02 /* Visit complex datatype after visiting member/parent datatypes */ - /* (setting both flags will mean visiting complex type twice) */ -#define H5T_VISIT_SIMPLE 0x04 /* Visit simple datatypes (at all) */ - /* (setting H5T_VISIT_SIMPLE and _not_ setting either H5T_VISIT_COMPLEX_FIRST or H5T_VISIT_COMPLEX_LAST will mean visiting _only_ "simple" "leafs" in the "tree" */ - /* (_not_ setting H5T_VISIT_SIMPLE and setting either H5T_VISIT_COMPLEX_FIRST or H5T_VISIT_COMPLEX_LAST will mean visiting all nodes _except_ "simple" "leafs" in the "tree" */ - - -/* Define an internal macro for converting between floating number(float and double) and floating number. - * All Cray compilers don't support denormalized floating values generating exception(?). */ -#if H5_CONVERT_DENORMAL_FLOAT -#define H5T_CONV_INTERNAL_FP_FP 1 -#endif /*H5_CONVERT_DENORMAL_FLOAT*/ - -/* Define an internal macro for converting between floating number(float and double) and long double. - * All Cray compilers don't support denormalized floating values generating exception(?). NEC doesn't - * support long double. */ -#if H5_SIZEOF_LONG_DOUBLE && H5_CONVERT_DENORMAL_FLOAT -#define H5T_CONV_INTERNAL_FP_LDOUBLE 1 -#endif /*H5_SIZEOF_LONG_DOUBLE && H5_CONVERT_DENORMAL_FLOAT*/ - -/* Define an internal macro for converting all integers to long double. SGI compilers give some - * incorrect conversions. */ -#if (H5_WANT_DATA_ACCURACY && H5_INTEGER_TO_LDOUBLE_ACCURATE) || (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_INTEGER_LDOUBLE 1 -#endif - -/* Define an internal macro for converting unsigned long to float. - * Pathscale compiler on Sandia's Linux machine has some problem. - * 64-bit Solaris does different rounding. */ -#if (H5_WANT_DATA_ACCURACY && H5_ULONG_TO_FLOAT_ACCURATE && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \ - (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_ULONG_FLT 1 -#endif - -/* Define an internal macro for converting unsigned (long) long to double. - * 64-bit Solaris does different rounding. */ -#if (H5_WANT_DATA_ACCURACY && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_ULONG_DBL 1 -#endif - -/* Define an internal macro for converting unsigned long to long double. SGI compilers give some - * incorrect conversions. 64-bit Solaris does different rounding. */ -#if (H5_WANT_DATA_ACCURACY && H5_INTEGER_TO_LDOUBLE_ACCURATE && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \ - (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_ULONG_LDOUBLE 1 -#endif - -/* Define an internal macro for converting long long to long double. Mac OS 10.4 gives some - * incorrect conversions. */ -#if (H5_WANT_DATA_ACCURACY && H5_INTEGER_TO_LDOUBLE_ACCURATE && defined(H5_LLONG_TO_LDOUBLE_CORRECT)) || \ - (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_LLONG_LDOUBLE 1 -#endif - -/* Define an internal macro for converting unsigned long long to floating numbers. SGI compilers give - * some incorect conversion. 64-bit Solaris does different rounding. Windows Visual Studio 6 does - * not support unsigned long long. */ -#if (H5_WANT_DATA_ACCURACY && H5_ULLONG_TO_FP_CAST_WORKS && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \ - (!H5_WANT_DATA_ACCURACY && H5_ULLONG_TO_FP_CAST_WORKS) -#define H5T_CONV_INTERNAL_ULLONG_FP 1 -#endif - -/* Define an internal macro for converting unsigned long long to long double. SGI compilers give - * some incorect conversion. 64-bit Solaris does different rounding. Windows Visual Studio 6 does - * not support unsigned long long. For FreeBSD(sleipnir), the last 2 bytes of mantissa are lost when - * compiler tries to do the conversion. For Cygwin, compiler doesn't do rounding correctly. - * Mac OS 10.4 gives some incorrect result. */ -#if (H5_WANT_DATA_ACCURACY && H5_ULLONG_TO_FP_CAST_WORKS && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE && \ - defined(H5_ULLONG_TO_LDOUBLE_PRECISION) && defined(H5_LLONG_TO_LDOUBLE_CORRECT)) || (!H5_WANT_DATA_ACCURACY && \ - H5_ULLONG_TO_FP_CAST_WORKS) -#define H5T_CONV_INTERNAL_ULLONG_LDOUBLE 1 -#endif - -/* Define an internal macro for converting long double to all integers. SGI compilers give some incorrect - * conversions. HP-UX 11.00 compiler generates floating exception. */ -#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_INTEGER_WORKS) || \ - (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) -#define H5T_CONV_INTERNAL_LDOUBLE_INTEGER 1 -#endif - -/* Define an internal macro for converting long double to unsigned int. SGI compilers give some incorrect - * conversions. HP-UX 11.00 compiler generates floating exception. Some Intel compilers on some Linux - * give incorrect values. */ -#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_UINT_ACCURATE && \ - H5_LDOUBLE_TO_INTEGER_WORKS) || (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) -#define H5T_CONV_INTERNAL_LDOUBLE_UINT 1 -#endif - -/* Define an internal macro for converting floating numbers to long long. The hard conversion on Windows - * .NET 2003 has a bug and gives wrong exception value. */ -#if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS)) || (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_FP_LLONG 1 -#endif - -/* Define an internal macro for converting long double to long long. SGI compilers give some incorrect - * conversions. Mac OS 10.4 gives incorrect conversions. HP-UX 11.00 compiler generates floating exception. - * The hard conversion on Windows .NET 2003 has a bug and gives wrong exception value. */ -#if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && H5_LDOUBLE_TO_INTEGER_ACCURATE && \ - H5_LDOUBLE_TO_INTEGER_WORKS && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \ - (!H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && H5_LDOUBLE_TO_INTEGER_WORKS) -#define H5T_CONV_INTERNAL_LDOUBLE_LLONG 1 -#endif - -/* Define an internal macro for converting floating numbers to unsigned long long. PGI compiler does - * roundup when the source fraction part is greater than 0.5. HP-UX compilers set the maximal number - * for unsigned long long as 0x7fffffffffffffff during conversion. */ -#if (H5_WANT_DATA_ACCURACY && H5_FP_TO_ULLONG_ACCURATE && defined(H5_FP_TO_ULLONG_RIGHT_MAXIMUM)) || \ - (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_FP_ULLONG 1 -#else -#define H5T_CONV_INTERNAL_FP_ULLONG 0 -#endif - -/* Define an internal macro for converting long double to unsigned long long. SGI compilers give some - * incorrect conversions. Mac OS 10.4 gives incorrect conversions. HP-UX 11.00 compiler generates - * floating exception. */ -#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_INTEGER_WORKS && \ - H5_FP_TO_ULLONG_ACCURATE && defined(H5_FP_TO_ULLONG_RIGHT_MAXIMUM) && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \ - (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) -#define H5T_CONV_INTERNAL_LDOUBLE_ULLONG 1 -#else -#define H5T_CONV_INTERNAL_LDOUBLE_ULLONG 0 -#endif - -/* Statistics about a conversion function */ -struct H5T_stats_t { - unsigned ncalls; /*num calls to conversion function */ - hsize_t nelmts; /*total data points converted */ - H5_timer_t timer; /*total time for conversion */ -}; - -/* The datatype conversion database */ -struct H5T_path_t { - char name[H5T_NAMELEN]; /*name for debugging only */ - H5T_t *src; /*source datatype */ - H5T_t *dst; /*destination datatype */ - H5T_conv_t func; /*data conversion function */ - hbool_t is_hard; /*is it a hard function? */ - hbool_t is_noop; /*is it the noop conversion? */ - hbool_t are_compounds; /*are source and dest both compounds?*/ - H5T_stats_t stats; /*statistics for the conversion */ - H5T_cdata_t cdata; /*data for this function */ -}; - -typedef struct H5T_atomic_t { - H5T_order_t order; /*byte order */ - size_t prec; /*precision in bits */ - size_t offset; /*bit position of lsb of value */ - H5T_pad_t lsb_pad;/*type of lsb padding */ - H5T_pad_t msb_pad;/*type of msb padding */ - union { - struct { - H5T_sign_t sign; /*type of integer sign */ - } i; /*integer; integer types */ - - struct { - size_t sign; /*bit position of sign bit */ - size_t epos; /*position of lsb of exponent */ - size_t esize; /*size of exponent in bits */ - uint64_t ebias; /*exponent bias */ - size_t mpos; /*position of lsb of mantissa */ - size_t msize; /*size of mantissa */ - H5T_norm_t norm; /*normalization */ - H5T_pad_t pad; /*type of padding for internal bits */ - } f; /*floating-point types */ - - struct { - H5T_cset_t cset; /*character set */ - H5T_str_t pad; /*space or null padding of extra bytes */ - } s; /*string types */ - - struct { - H5R_type_t rtype; /*type of reference stored */ - H5T_loc_t loc; /* Location of data in buffer */ - } r; /*reference types */ - } u; -} H5T_atomic_t; - -/* How members are sorted for compound or enum datatypes */ -typedef enum H5T_sort_t { - H5T_SORT_NONE = 0, /*not sorted */ - H5T_SORT_NAME = 1, /*sorted by member name */ - H5T_SORT_VALUE = 2 /*sorted by memb offset or enum value*/ -} H5T_sort_t; - -/* A compound datatype member */ -typedef struct H5T_cmemb_t { - char *name; /*name of this member */ - size_t offset; /*offset from beginning of struct */ - size_t size; /*size of this member */ - struct H5T_t *type; /*type of this member */ -} H5T_cmemb_t; - -/* A compound datatype */ -typedef struct H5T_compnd_t { - unsigned nalloc; /*num entries allocated in MEMB array*/ - unsigned nmembs; /*number of members defined in struct*/ - H5T_sort_t sorted; /*how are members sorted? */ - hbool_t packed; /*are members packed together? */ - H5T_cmemb_t *memb; /*array of struct members */ - size_t memb_size; /*total of all member sizes */ -} H5T_compnd_t; - -/* An enumeration datatype */ -typedef struct H5T_enum_t { - unsigned nalloc; /*num entries allocated */ - unsigned nmembs; /*number of members defined in enum */ - H5T_sort_t sorted; /*how are members sorted? */ - uint8_t *value; /*array of values */ - char **name; /*array of symbol names */ -} H5T_enum_t; - -/* VL function pointers */ -typedef ssize_t (*H5T_vlen_getlenfunc_t)(const void *vl_addr); -typedef void * (*H5T_vlen_getptrfunc_t)(void *vl_addr); -typedef htri_t (*H5T_vlen_isnullfunc_t)(const H5F_t *f, void *vl_addr); -typedef herr_t (*H5T_vlen_readfunc_t)(H5F_t *f, hid_t dxpl_id, void *_vl, void *buf, size_t len); -typedef herr_t (*H5T_vlen_writefunc_t)(H5F_t *f, hid_t dxpl_id, const H5T_vlen_alloc_info_t *vl_alloc_info, void *_vl, void *buf, void *_bg, size_t seq_len, size_t base_size); -typedef herr_t (*H5T_vlen_setnullfunc_t)(H5F_t *f, hid_t dxpl_id, void *_vl, void *_bg); - -/* VL types */ -typedef enum { - H5T_VLEN_BADTYPE = -1, /* invalid VL Type */ - H5T_VLEN_SEQUENCE = 0, /* VL sequence */ - H5T_VLEN_STRING, /* VL string */ - H5T_VLEN_MAXTYPE /* highest type (Invalid as true type) */ -} H5T_vlen_type_t; - -/* A VL datatype */ -typedef struct H5T_vlen_t { - H5T_vlen_type_t type; /* Type of VL data in buffer */ - H5T_loc_t loc; /* Location of VL data in buffer */ - H5T_cset_t cset; /* For VL string. character set */ - H5T_str_t pad; /* For VL string. space or null padding of - * extra bytes */ - H5F_t *f; /* File ID (if VL data is on disk) */ - H5T_vlen_getptrfunc_t getptr; /* Function to get VL sequence pointer */ - H5T_vlen_getlenfunc_t getlen; /* Function to get VL sequence size (in element units, not bytes) */ - H5T_vlen_isnullfunc_t isnull; /* Function to check if VL value is NIL */ - H5T_vlen_readfunc_t read; /* Function to read VL sequence into buffer */ - H5T_vlen_writefunc_t write; /* Function to write VL sequence from buffer */ - H5T_vlen_setnullfunc_t setnull; /* Function to set a VL value to NIL */ -} H5T_vlen_t; - -/* An opaque datatype */ -typedef struct H5T_opaque_t { - char *tag; /*short type description string */ -} H5T_opaque_t; - -/* An array datatype */ -typedef struct H5T_array_t { - size_t nelem; /* total number of elements in array */ - unsigned ndims; /* member dimensionality */ - size_t dim[H5S_MAX_RANK]; /* size in each dimension */ -} H5T_array_t; - -typedef enum H5T_state_t { - H5T_STATE_TRANSIENT, /*type is a modifiable, closable transient */ - H5T_STATE_RDONLY, /*transient, not modifiable, closable */ - H5T_STATE_IMMUTABLE, /*transient, not modifiable, not closable */ - H5T_STATE_NAMED, /*named constant, not open */ - H5T_STATE_OPEN /*named constant, open object header */ -} H5T_state_t; - - /* This struct is shared between all occurances of an open named type */ -typedef struct H5T_shared_t { - hsize_t fo_count; /* number of references to this file object */ - H5T_state_t state; /*current state of the type */ - H5T_class_t type; /*which class of type is this? */ - size_t size; /*total size of an instance of this type */ - unsigned version; /* Version of object header message to encode this object with */ - hbool_t force_conv;/* Set if this type always needs to be converted and H5T__conv_noop cannot be called */ - struct H5T_t *parent;/*parent type for derived datatypes */ - union { - H5T_atomic_t atomic; /* an atomic datatype */ - H5T_compnd_t compnd; /* a compound datatype (struct) */ - H5T_enum_t enumer; /* an enumeration type (enum) */ - H5T_vlen_t vlen; /* a variable-length datatype */ - H5T_opaque_t opaque; /* an opaque datatype */ - H5T_array_t array; /* an array datatype */ - } u; -} H5T_shared_t; - -struct H5T_t { - H5O_shared_t sh_loc; /* Shared message info (must be first) */ - - H5T_shared_t *shared; /* all other information */ - H5O_loc_t oloc; /* Object location, if the type is a named type */ - H5G_name_t path; /* group hier. path if the type is a named type */ -}; - -/* The master list of soft conversion functions */ -typedef struct H5T_soft_t { - char name[H5T_NAMELEN]; /*name for debugging only */ - H5T_class_t src; /*source datatype class */ - H5T_class_t dst; /*destination datatype class */ - H5T_conv_t func; /*the conversion function */ -} H5T_soft_t; - -/* Bit search direction */ -typedef enum H5T_sdir_t { - H5T_BIT_LSB, /*search lsb toward msb */ - H5T_BIT_MSB /*search msb toward lsb */ -} H5T_sdir_t; - -/* Typedef for named datatype creation operation */ -typedef struct { - H5T_t *dt; /* Datatype to commit */ - hid_t tcpl_id; /* Named datatype creation property list */ -} H5T_obj_create_t; - -/* Typedef for datatype iteration operations */ -typedef herr_t (*H5T_operator_t)(H5T_t *dt, void *op_data/*in,out*/); - -/* - * Alignment information for native types. A value of N indicates that the - * data must be aligned on an address ADDR such that 0 == ADDR mod N. When - * N=1 no alignment is required; N=0 implies that alignment constraints were - * not calculated. These alignment info is only for H5Tget_native_type. - * These values are used for structure alignment. - */ -H5_DLLVAR size_t H5T_NATIVE_SCHAR_COMP_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_SHORT_COMP_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_INT_COMP_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_LONG_COMP_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_LLONG_COMP_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_FLOAT_COMP_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_DOUBLE_COMP_ALIGN_g; -#if H5_SIZEOF_LONG_DOUBLE !=0 -H5_DLLVAR size_t H5T_NATIVE_LDOUBLE_COMP_ALIGN_g; -#endif - -H5_DLLVAR size_t H5T_POINTER_COMP_ALIGN_g; -H5_DLLVAR size_t H5T_HVL_COMP_ALIGN_g; -H5_DLLVAR size_t H5T_HOBJREF_COMP_ALIGN_g; -H5_DLLVAR size_t H5T_HDSETREGREF_COMP_ALIGN_g; - -/* - * Alignment information for native types. A value of N indicates that the - * data must be aligned on an address ADDR such that 0 == ADDR mod N. When - * N=1 no alignment is required; N=0 implies that alignment constraints were - * not calculated. - */ -H5_DLLVAR size_t H5T_NATIVE_SCHAR_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_UCHAR_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_SHORT_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_USHORT_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_INT_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_UINT_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_LONG_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_ULONG_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_LLONG_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_ULLONG_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_FLOAT_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_DOUBLE_ALIGN_g; -#if H5_SIZEOF_LONG_DOUBLE !=0 -H5_DLLVAR size_t H5T_NATIVE_LDOUBLE_ALIGN_g; -#endif - -/* C9x alignment constraints */ -H5_DLLVAR size_t H5T_NATIVE_INT8_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_UINT8_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_INT_LEAST8_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_UINT_LEAST8_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_INT_FAST8_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_UINT_FAST8_ALIGN_g; - -H5_DLLVAR size_t H5T_NATIVE_INT16_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_UINT16_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_INT_LEAST16_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_UINT_LEAST16_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_INT_FAST16_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_UINT_FAST16_ALIGN_g; - -H5_DLLVAR size_t H5T_NATIVE_INT32_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_UINT32_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_INT_LEAST32_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_UINT_LEAST32_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_INT_FAST32_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_UINT_FAST32_ALIGN_g; - -H5_DLLVAR size_t H5T_NATIVE_INT64_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_UINT64_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_INT_LEAST64_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_UINT_LEAST64_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_INT_FAST64_ALIGN_g; -H5_DLLVAR size_t H5T_NATIVE_UINT_FAST64_ALIGN_g; - -/* Useful floating-point values for conversion routines */ -/* (+/- Inf for all floating-point types) */ -H5_DLLVAR float H5T_NATIVE_FLOAT_POS_INF_g; -H5_DLLVAR float H5T_NATIVE_FLOAT_NEG_INF_g; -H5_DLLVAR double H5T_NATIVE_DOUBLE_POS_INF_g; -H5_DLLVAR double H5T_NATIVE_DOUBLE_NEG_INF_g; -#if H5_SIZEOF_LONG_DOUBLE !=0 -H5_DLLVAR double H5T_NATIVE_LDOUBLE_POS_INF_g; -H5_DLLVAR double H5T_NATIVE_LDOUBLE_NEG_INF_g; -#endif - -/* Declare extern the free lists for H5T_t's and H5T_shared_t's */ -H5FL_EXTERN(H5T_t); -H5FL_EXTERN(H5T_shared_t); - -/* Common functions */ -H5_DLL H5T_t *H5T__create(H5T_class_t type, size_t size); -H5_DLL herr_t H5T__commit(H5F_t *file, H5T_t *type, hid_t tcpl_id, hid_t dxpl_id); -H5_DLL herr_t H5T__commit_named(const H5G_loc_t *loc, const char *name, - H5T_t *dt, hid_t lcpl_id, hid_t tcpl_id, hid_t tapl_id, hid_t dxpl_id); -H5_DLL H5T_t *H5T__alloc(void); -H5_DLL herr_t H5T__free(H5T_t *dt); -H5_DLL herr_t H5T__visit(H5T_t *dt, unsigned visit_flags, H5T_operator_t op, - void *op_value); -H5_DLL herr_t H5T__upgrade_version(H5T_t *dt, unsigned new_version); - -/* Conversion functions */ -H5_DLL herr_t H5T__conv_noop(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *buf, void *bkg, - hid_t dset_xfer_plist); - -H5_DLL herr_t H5T__conv_order(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *_buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_order_opt(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *_buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_struct(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *_buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_struct_opt(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *_buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_enum(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_enum_numeric(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_vlen(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_array(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_i_i(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *_buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_f_f(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *_buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_f_i(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *_buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_i_f(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *_buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_s_s(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *_buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_b_b(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *_buf, void *bkg, - hid_t dset_xfer_plist); - -H5_DLL herr_t H5T__conv_schar_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uchar_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_schar_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_schar_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uchar_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uchar_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, - size_t bkg_stride, void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_schar_int(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_schar_uint(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uchar_int(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uchar_uint(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_schar_long(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_schar_ulong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uchar_long(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uchar_ulong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_schar_llong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_schar_ullong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uchar_llong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uchar_ullong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); - -H5_DLL herr_t H5T__conv_short_schar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_short_uchar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ushort_schar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ushort_uchar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_short_ushort(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ushort_short(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_short_int(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_short_uint(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ushort_int(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ushort_uint(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_short_long(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_short_ulong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ushort_long(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ushort_ulong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_short_llong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_short_ullong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ushort_llong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ushort_ullong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); - -H5_DLL herr_t H5T__conv_int_schar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_int_uchar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uint_schar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uint_uchar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_int_short(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_int_ushort(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uint_short(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uint_ushort(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_int_uint(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uint_int(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_int_long(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_int_ulong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uint_long(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uint_ulong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_int_llong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_int_ullong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uint_llong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uint_ullong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); - -H5_DLL herr_t H5T__conv_long_schar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_long_uchar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ulong_schar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ulong_uchar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_long_short(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_long_ushort(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ulong_short(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ulong_ushort(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_long_int(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_long_uint(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ulong_int(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ulong_uint(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_long_ulong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ulong_long(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_long_llong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_long_ullong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ulong_llong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ulong_ullong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); - -H5_DLL herr_t H5T__conv_llong_schar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_llong_uchar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ullong_schar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ullong_uchar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_llong_short(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_llong_ushort(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ullong_short(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ullong_ushort(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_llong_int(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_llong_uint(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ullong_int(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ullong_uint(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_llong_long(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_llong_ulong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ullong_long(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ullong_ulong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_llong_ullong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ullong_llong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_float_double(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_float_ldouble(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_double_float(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_double_ldouble(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ldouble_float(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ldouble_double(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_schar_float(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_schar_double(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_schar_ldouble(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uchar_float(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uchar_double(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uchar_ldouble(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_short_float(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_short_double(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_short_ldouble(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ushort_float(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ushort_double(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ushort_ldouble(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_int_float(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_int_double(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_int_ldouble(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uint_float(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uint_double(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_uint_ldouble(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_long_float(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_long_double(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_long_ldouble(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ulong_float(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ulong_double(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ulong_ldouble(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_llong_float(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_llong_double(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_llong_ldouble(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ullong_float(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ullong_double(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ullong_ldouble(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_float_schar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_float_uchar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_float_short(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_float_ushort(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_float_int(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_float_uint(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_float_long(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_float_ulong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_float_llong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_float_ullong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_double_schar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_double_uchar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_double_short(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_double_ushort(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_double_int(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_double_uint(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_double_long(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_double_ulong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_double_llong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_double_ullong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ldouble_schar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ldouble_uchar(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ldouble_short(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ldouble_ushort(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ldouble_int(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ldouble_uint(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ldouble_long(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ldouble_ulong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ldouble_llong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T__conv_ldouble_ullong(hid_t src_id, hid_t dst_id, - H5T_cdata_t *cdata, size_t nelmts, - size_t buf_stride, size_t bkg_stride, - void *buf, void *bkg, - hid_t dset_xfer_plist); - -/* Bit twiddling functions */ -H5_DLL void H5T__bit_copy(uint8_t *dst, size_t dst_offset, const uint8_t *src, - size_t src_offset, size_t size); -H5_DLL herr_t H5T__bit_shift(uint8_t *buf, ssize_t shift_dist, size_t offset, size_t size); -H5_DLL void H5T__bit_set(uint8_t *buf, size_t offset, size_t size, - hbool_t value); -H5_DLL uint64_t H5T__bit_get_d(uint8_t *buf, size_t offset, size_t size); -H5_DLL void H5T__bit_set_d(uint8_t *buf, size_t offset, size_t size, - uint64_t val); -H5_DLL ssize_t H5T__bit_find(uint8_t *buf, size_t offset, size_t size, - H5T_sdir_t direction, hbool_t value); -H5_DLL htri_t H5T__bit_inc(uint8_t *buf, size_t start, size_t size); -H5_DLL htri_t H5T__bit_dec(uint8_t *buf, size_t start, size_t size); -H5_DLL void H5T__bit_neg(uint8_t *buf, size_t start, size_t size); - -/* VL functions */ -H5_DLL H5T_t * H5T__vlen_create(const H5T_t *base); -H5_DLL htri_t H5T__vlen_set_loc(const H5T_t *dt, H5F_t *f, H5T_loc_t loc); - -/* Array functions */ -H5_DLL H5T_t *H5T__array_create(H5T_t *base, unsigned ndims, const hsize_t dim[/* ndims */]); -H5_DLL int H5T__get_array_ndims(const H5T_t *dt); -H5_DLL int H5T__get_array_dims(const H5T_t *dt, hsize_t dims[]); - -/* Compound functions */ -H5_DLL herr_t H5T__insert(H5T_t *parent, const char *name, size_t offset, - const H5T_t *member); -H5_DLL size_t H5T__get_member_size(const H5T_t *dt, unsigned membno); -H5_DLL void H5T__update_packed(const H5T_t *dt); -H5_DLL H5T_subset_info_t *H5T__conv_struct_subset(const H5T_cdata_t *cdata); - -/* Enumerated type functions */ -H5_DLL H5T_t *H5T__enum_create(const H5T_t *parent); -H5_DLL herr_t H5T__enum_insert(const H5T_t *dt, const char *name, const void *value); -H5_DLL herr_t H5T__get_member_value(const H5T_t *dt, unsigned membno, void *value); - -/* Field functions (for both compound & enumerated types) */ -H5_DLL char *H5T__get_member_name(H5T_t const *dt, unsigned membno); -H5_DLL herr_t H5T__sort_value(const H5T_t *dt, int *map); -H5_DLL herr_t H5T__sort_name(const H5T_t *dt, int *map); - -/* Debugging functions */ -H5_DLL herr_t H5T__print_stats(H5T_path_t *path, int *nprint/*in,out*/); - -#endif /* _H5Tpkg_H */ - +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * Programmer: Robb Matzke + * Monday, December 8, 1997 + * + * Purpose: This file contains declarations which are visible only within + * the H5T package. Source files outside the H5T package should + * include H5Tprivate.h instead. + */ +#ifndef H5T_PACKAGE +#error "Do not include this file outside the H5T package!" +#endif + +#ifndef _H5Tpkg_H +#define _H5Tpkg_H + +/* + * Define this to enable debugging. + */ +#ifdef NDEBUG +# undef H5T_DEBUG +#endif + +/* Get package's private header */ +#include "H5Tprivate.h" + +/* Other private headers needed by this file */ +#include "H5Fprivate.h" /* Files */ +#include "H5FLprivate.h" /* Free Lists */ +#include "H5Oprivate.h" /* Object headers */ + +/* Other public headers needed by this file */ +#include "H5Spublic.h" /* Dataspace functions */ + +/* Length of debugging name buffer */ +#define H5T_NAMELEN 32 + +/* Macro to ease detecting "complex" datatypes (i.e. those with base types or fields) */ +#define H5T_IS_COMPLEX(t) ((t) == H5T_COMPOUND || (t) == H5T_ENUM || (t) == H5T_VLEN || (t) == H5T_ARRAY) + +/* Macro to ease detecting fixed "string" datatypes */ +#define H5T_IS_FIXED_STRING(dt) (H5T_STRING == (dt)->type) + +/* Macro to ease detecting variable-length "string" datatypes */ +#define H5T_IS_VL_STRING(dt) (H5T_VLEN == (dt)->type && H5T_VLEN_STRING == (dt)->u.vlen.type) + +/* Macro to ease detecting fixed or variable-length "string" datatypes */ +#define H5T_IS_STRING(dt) (H5T_IS_FIXED_STRING(dt) || H5T_IS_VL_STRING(dt)) + +/* Macro to ease detecting atomic datatypes */ +#define H5T_IS_ATOMIC(dt) (!(H5T_IS_COMPLEX((dt)->type) || (dt)->type == H5T_OPAQUE)) + +/* Macro to ease retrieving class of shared datatype */ +/* (Externally, a VL string is a string; internally, a VL string is a VL. Lie + * to the user if they have a VL string and tell them it's in the string + * class) + */ +#define H5T_GET_CLASS(shared, internal) ((internal) ? (shared)->type : (H5T_IS_VL_STRING(shared) ? H5T_STRING : (shared)->type)) + + +/* + * Datatype encoding versions + */ + +/* This is the version to create all datatypes which don't contain + * array datatypes (atomic types, compound datatypes without array fields, + * vlen sequences of objects which aren't arrays, etc.) or VAX byte-ordered + * objects. + */ +#define H5O_DTYPE_VERSION_1 1 + +/* This is the version to create all datatypes which contain H5T_ARRAY + * class objects (array definitely, potentially compound & vlen sequences also), + * but not VAX byte-ordered objects. + */ +#define H5O_DTYPE_VERSION_2 2 + +/* This is the version to create all datatypes which contain VAX byte-ordered + * objects (floating-point types, currently). + */ +/* This version also packs compound & enum field names without padding */ +/* This version also encodes the member offset of compound fields more efficiently */ +/* This version also encodes array types more efficiently */ +#define H5O_DTYPE_VERSION_3 3 + +/* The latest version of the format. Look through the 'encode helper' routine + * and 'size' callback for places to change when updating this. */ +#define H5O_DTYPE_VERSION_LATEST H5O_DTYPE_VERSION_3 + + +/* Flags for visiting datatype */ +#define H5T_VISIT_COMPLEX_FIRST 0x01 /* Visit complex datatype before visiting member/parent datatypes */ +#define H5T_VISIT_COMPLEX_LAST 0x02 /* Visit complex datatype after visiting member/parent datatypes */ + /* (setting both flags will mean visiting complex type twice) */ +#define H5T_VISIT_SIMPLE 0x04 /* Visit simple datatypes (at all) */ + /* (setting H5T_VISIT_SIMPLE and _not_ setting either H5T_VISIT_COMPLEX_FIRST or H5T_VISIT_COMPLEX_LAST will mean visiting _only_ "simple" "leafs" in the "tree" */ + /* (_not_ setting H5T_VISIT_SIMPLE and setting either H5T_VISIT_COMPLEX_FIRST or H5T_VISIT_COMPLEX_LAST will mean visiting all nodes _except_ "simple" "leafs" in the "tree" */ + + +/* Define an internal macro for converting between floating number(float and double) and floating number. + * All Cray compilers don't support denormalized floating values generating exception(?). */ +#if H5_CONVERT_DENORMAL_FLOAT +#define H5T_CONV_INTERNAL_FP_FP 1 +#endif /*H5_CONVERT_DENORMAL_FLOAT*/ + +/* Define an internal macro for converting between floating number(float and double) and long double. + * All Cray compilers don't support denormalized floating values generating exception(?). NEC doesn't + * support long double. */ +#if H5_SIZEOF_LONG_DOUBLE && H5_CONVERT_DENORMAL_FLOAT +#define H5T_CONV_INTERNAL_FP_LDOUBLE 1 +#endif /*H5_SIZEOF_LONG_DOUBLE && H5_CONVERT_DENORMAL_FLOAT*/ + +/* Define an internal macro for converting all integers to long double. SGI compilers give some + * incorrect conversions. */ +#if (H5_WANT_DATA_ACCURACY && H5_INTEGER_TO_LDOUBLE_ACCURATE) || (!H5_WANT_DATA_ACCURACY) +#define H5T_CONV_INTERNAL_INTEGER_LDOUBLE 1 +#endif + +/* Define an internal macro for converting unsigned long to float. + * Pathscale compiler on Sandia's Linux machine has some problem. + * 64-bit Solaris does different rounding. */ +#if (H5_WANT_DATA_ACCURACY && H5_ULONG_TO_FLOAT_ACCURATE && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \ + (!H5_WANT_DATA_ACCURACY) +#define H5T_CONV_INTERNAL_ULONG_FLT 1 +#endif + +/* Define an internal macro for converting unsigned (long) long to double. + * 64-bit Solaris does different rounding. */ +#if (H5_WANT_DATA_ACCURACY && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || (!H5_WANT_DATA_ACCURACY) +#define H5T_CONV_INTERNAL_ULONG_DBL 1 +#endif + +/* Define an internal macro for converting unsigned long to long double. SGI compilers give some + * incorrect conversions. 64-bit Solaris does different rounding. */ +#if (H5_WANT_DATA_ACCURACY && H5_INTEGER_TO_LDOUBLE_ACCURATE && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \ + (!H5_WANT_DATA_ACCURACY) +#define H5T_CONV_INTERNAL_ULONG_LDOUBLE 1 +#endif + +/* Define an internal macro for converting long long to long double. Mac OS 10.4 gives some + * incorrect conversions. */ +#if (H5_WANT_DATA_ACCURACY && H5_INTEGER_TO_LDOUBLE_ACCURATE && defined(H5_LLONG_TO_LDOUBLE_CORRECT)) || \ + (!H5_WANT_DATA_ACCURACY) +#define H5T_CONV_INTERNAL_LLONG_LDOUBLE 1 +#endif + +/* Define an internal macro for converting unsigned long long to floating numbers. SGI compilers give + * some incorect conversion. 64-bit Solaris does different rounding. Windows Visual Studio 6 does + * not support unsigned long long. */ +#if (H5_WANT_DATA_ACCURACY && H5_ULLONG_TO_FP_CAST_WORKS && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \ + (!H5_WANT_DATA_ACCURACY && H5_ULLONG_TO_FP_CAST_WORKS) +#define H5T_CONV_INTERNAL_ULLONG_FP 1 +#endif + +/* Define an internal macro for converting unsigned long long to long double. SGI compilers give + * some incorect conversion. 64-bit Solaris does different rounding. Windows Visual Studio 6 does + * not support unsigned long long. For FreeBSD(sleipnir), the last 2 bytes of mantissa are lost when + * compiler tries to do the conversion. For Cygwin, compiler doesn't do rounding correctly. + * Mac OS 10.4 gives some incorrect result. */ +#if (H5_WANT_DATA_ACCURACY && H5_ULLONG_TO_FP_CAST_WORKS && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE && \ + defined(H5_ULLONG_TO_LDOUBLE_PRECISION) && defined(H5_LLONG_TO_LDOUBLE_CORRECT)) || (!H5_WANT_DATA_ACCURACY && \ + H5_ULLONG_TO_FP_CAST_WORKS) +#define H5T_CONV_INTERNAL_ULLONG_LDOUBLE 1 +#endif + +/* Define an internal macro for converting long double to all integers. SGI compilers give some incorrect + * conversions. HP-UX 11.00 compiler generates floating exception. */ +#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_INTEGER_WORKS) || \ + (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) +#define H5T_CONV_INTERNAL_LDOUBLE_INTEGER 1 +#endif + +/* Define an internal macro for converting long double to unsigned int. SGI compilers give some incorrect + * conversions. HP-UX 11.00 compiler generates floating exception. Some Intel compilers on some Linux + * give incorrect values. */ +#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_UINT_ACCURATE && \ + H5_LDOUBLE_TO_INTEGER_WORKS) || (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) +#define H5T_CONV_INTERNAL_LDOUBLE_UINT 1 +#endif + +/* Define an internal macro for converting floating numbers to long long. The hard conversion on Windows + * .NET 2003 has a bug and gives wrong exception value. */ +#if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS)) || (!H5_WANT_DATA_ACCURACY) +#define H5T_CONV_INTERNAL_FP_LLONG 1 +#endif + +/* Define an internal macro for converting long double to long long. SGI compilers give some incorrect + * conversions. Mac OS 10.4 gives incorrect conversions. HP-UX 11.00 compiler generates floating exception. + * The hard conversion on Windows .NET 2003 has a bug and gives wrong exception value. */ +#if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && H5_LDOUBLE_TO_INTEGER_ACCURATE && \ + H5_LDOUBLE_TO_INTEGER_WORKS && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \ + (!H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && H5_LDOUBLE_TO_INTEGER_WORKS) +#define H5T_CONV_INTERNAL_LDOUBLE_LLONG 1 +#endif + +/* Define an internal macro for converting floating numbers to unsigned long long. PGI compiler does + * roundup when the source fraction part is greater than 0.5. HP-UX compilers set the maximal number + * for unsigned long long as 0x7fffffffffffffff during conversion. */ +#if (H5_WANT_DATA_ACCURACY && H5_FP_TO_ULLONG_ACCURATE && defined(H5_FP_TO_ULLONG_RIGHT_MAXIMUM)) || \ + (!H5_WANT_DATA_ACCURACY) +#define H5T_CONV_INTERNAL_FP_ULLONG 1 +#else +#define H5T_CONV_INTERNAL_FP_ULLONG 0 +#endif + +/* Define an internal macro for converting long double to unsigned long long. SGI compilers give some + * incorrect conversions. Mac OS 10.4 gives incorrect conversions. HP-UX 11.00 compiler generates + * floating exception. */ +#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_INTEGER_WORKS && \ + H5_FP_TO_ULLONG_ACCURATE && defined(H5_FP_TO_ULLONG_RIGHT_MAXIMUM) && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \ + (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) +#define H5T_CONV_INTERNAL_LDOUBLE_ULLONG 1 +#else +#define H5T_CONV_INTERNAL_LDOUBLE_ULLONG 0 +#endif + +/* Statistics about a conversion function */ +struct H5T_stats_t { + unsigned ncalls; /*num calls to conversion function */ + hsize_t nelmts; /*total data points converted */ + H5_timer_t timer; /*total time for conversion */ +}; + +/* The datatype conversion database */ +struct H5T_path_t { + char name[H5T_NAMELEN]; /*name for debugging only */ + H5T_t *src; /*source datatype */ + H5T_t *dst; /*destination datatype */ + H5T_conv_t func; /*data conversion function */ + hbool_t is_hard; /*is it a hard function? */ + hbool_t is_noop; /*is it the noop conversion? */ + hbool_t are_compounds; /*are source and dest both compounds?*/ + H5T_stats_t stats; /*statistics for the conversion */ + H5T_cdata_t cdata; /*data for this function */ +}; + +typedef struct H5T_atomic_t { + H5T_order_t order; /*byte order */ + size_t prec; /*precision in bits */ + size_t offset; /*bit position of lsb of value */ + H5T_pad_t lsb_pad;/*type of lsb padding */ + H5T_pad_t msb_pad;/*type of msb padding */ + union { + struct { + H5T_sign_t sign; /*type of integer sign */ + } i; /*integer; integer types */ + + struct { + size_t sign; /*bit position of sign bit */ + size_t epos; /*position of lsb of exponent */ + size_t esize; /*size of exponent in bits */ + uint64_t ebias; /*exponent bias */ + size_t mpos; /*position of lsb of mantissa */ + size_t msize; /*size of mantissa */ + H5T_norm_t norm; /*normalization */ + H5T_pad_t pad; /*type of padding for internal bits */ + } f; /*floating-point types */ + + struct { + H5T_cset_t cset; /*character set */ + H5T_str_t pad; /*space or null padding of extra bytes */ + } s; /*string types */ + + struct { + H5R_type_t rtype; /*type of reference stored */ + H5T_loc_t loc; /* Location of data in buffer */ + } r; /*reference types */ + } u; +} H5T_atomic_t; + +/* How members are sorted for compound or enum datatypes */ +typedef enum H5T_sort_t { + H5T_SORT_NONE = 0, /*not sorted */ + H5T_SORT_NAME = 1, /*sorted by member name */ + H5T_SORT_VALUE = 2 /*sorted by memb offset or enum value*/ +} H5T_sort_t; + +/* A compound datatype member */ +typedef struct H5T_cmemb_t { + char *name; /*name of this member */ + size_t offset; /*offset from beginning of struct */ + size_t size; /*size of this member */ + struct H5T_t *type; /*type of this member */ +} H5T_cmemb_t; + +/* A compound datatype */ +typedef struct H5T_compnd_t { + unsigned nalloc; /*num entries allocated in MEMB array*/ + unsigned nmembs; /*number of members defined in struct*/ + H5T_sort_t sorted; /*how are members sorted? */ + hbool_t packed; /*are members packed together? */ + H5T_cmemb_t *memb; /*array of struct members */ + size_t memb_size; /*total of all member sizes */ +} H5T_compnd_t; + +/* An enumeration datatype */ +typedef struct H5T_enum_t { + unsigned nalloc; /*num entries allocated */ + unsigned nmembs; /*number of members defined in enum */ + H5T_sort_t sorted; /*how are members sorted? */ + uint8_t *value; /*array of values */ + char **name; /*array of symbol names */ +} H5T_enum_t; + +/* VL function pointers */ +typedef ssize_t (*H5T_vlen_getlenfunc_t)(const void *vl_addr); +typedef void * (*H5T_vlen_getptrfunc_t)(void *vl_addr); +typedef htri_t (*H5T_vlen_isnullfunc_t)(const H5F_t *f, void *vl_addr); +typedef herr_t (*H5T_vlen_readfunc_t)(H5F_t *f, hid_t dxpl_id, void *_vl, void *buf, size_t len); +typedef herr_t (*H5T_vlen_writefunc_t)(H5F_t *f, hid_t dxpl_id, const H5T_vlen_alloc_info_t *vl_alloc_info, void *_vl, void *buf, void *_bg, size_t seq_len, size_t base_size); +typedef herr_t (*H5T_vlen_setnullfunc_t)(H5F_t *f, hid_t dxpl_id, void *_vl, void *_bg); + +/* VL types */ +typedef enum { + H5T_VLEN_BADTYPE = -1, /* invalid VL Type */ + H5T_VLEN_SEQUENCE = 0, /* VL sequence */ + H5T_VLEN_STRING, /* VL string */ + H5T_VLEN_MAXTYPE /* highest type (Invalid as true type) */ +} H5T_vlen_type_t; + +/* A VL datatype */ +typedef struct H5T_vlen_t { + H5T_vlen_type_t type; /* Type of VL data in buffer */ + H5T_loc_t loc; /* Location of VL data in buffer */ + H5T_cset_t cset; /* For VL string. character set */ + H5T_str_t pad; /* For VL string. space or null padding of + * extra bytes */ + H5F_t *f; /* File ID (if VL data is on disk) */ + H5T_vlen_getptrfunc_t getptr; /* Function to get VL sequence pointer */ + H5T_vlen_getlenfunc_t getlen; /* Function to get VL sequence size (in element units, not bytes) */ + H5T_vlen_isnullfunc_t isnull; /* Function to check if VL value is NIL */ + H5T_vlen_readfunc_t read; /* Function to read VL sequence into buffer */ + H5T_vlen_writefunc_t write; /* Function to write VL sequence from buffer */ + H5T_vlen_setnullfunc_t setnull; /* Function to set a VL value to NIL */ +} H5T_vlen_t; + +/* An opaque datatype */ +typedef struct H5T_opaque_t { + char *tag; /*short type description string */ +} H5T_opaque_t; + +/* An array datatype */ +typedef struct H5T_array_t { + size_t nelem; /* total number of elements in array */ + unsigned ndims; /* member dimensionality */ + size_t dim[H5S_MAX_RANK]; /* size in each dimension */ +} H5T_array_t; + +typedef enum H5T_state_t { + H5T_STATE_TRANSIENT, /*type is a modifiable, closable transient */ + H5T_STATE_RDONLY, /*transient, not modifiable, closable */ + H5T_STATE_IMMUTABLE, /*transient, not modifiable, not closable */ + H5T_STATE_NAMED, /*named constant, not open */ + H5T_STATE_OPEN /*named constant, open object header */ +} H5T_state_t; + + /* This struct is shared between all occurances of an open named type */ +typedef struct H5T_shared_t { + hsize_t fo_count; /* number of references to this file object */ + H5T_state_t state; /*current state of the type */ + H5T_class_t type; /*which class of type is this? */ + size_t size; /*total size of an instance of this type */ + unsigned version; /* Version of object header message to encode this object with */ + hbool_t force_conv;/* Set if this type always needs to be converted and H5T__conv_noop cannot be called */ + struct H5T_t *parent;/*parent type for derived datatypes */ + union { + H5T_atomic_t atomic; /* an atomic datatype */ + H5T_compnd_t compnd; /* a compound datatype (struct) */ + H5T_enum_t enumer; /* an enumeration type (enum) */ + H5T_vlen_t vlen; /* a variable-length datatype */ + H5T_opaque_t opaque; /* an opaque datatype */ + H5T_array_t array; /* an array datatype */ + } u; +} H5T_shared_t; + +struct H5T_t { + H5O_shared_t sh_loc; /* Shared message info (must be first) */ + + H5T_shared_t *shared; /* all other information */ + H5O_loc_t oloc; /* Object location, if the type is a named type */ + H5G_name_t path; /* group hier. path if the type is a named type */ +}; + +/* The master list of soft conversion functions */ +typedef struct H5T_soft_t { + char name[H5T_NAMELEN]; /*name for debugging only */ + H5T_class_t src; /*source datatype class */ + H5T_class_t dst; /*destination datatype class */ + H5T_conv_t func; /*the conversion function */ +} H5T_soft_t; + +/* Bit search direction */ +typedef enum H5T_sdir_t { + H5T_BIT_LSB, /*search lsb toward msb */ + H5T_BIT_MSB /*search msb toward lsb */ +} H5T_sdir_t; + +/* Typedef for named datatype creation operation */ +typedef struct { + H5T_t *dt; /* Datatype to commit */ + hid_t tcpl_id; /* Named datatype creation property list */ +} H5T_obj_create_t; + +/* Typedef for datatype iteration operations */ +typedef herr_t (*H5T_operator_t)(H5T_t *dt, void *op_data/*in,out*/); + +/* + * Alignment information for native types. A value of N indicates that the + * data must be aligned on an address ADDR such that 0 == ADDR mod N. When + * N=1 no alignment is required; N=0 implies that alignment constraints were + * not calculated. These alignment info is only for H5Tget_native_type. + * These values are used for structure alignment. + */ +H5_DLLVAR size_t H5T_NATIVE_SCHAR_COMP_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_SHORT_COMP_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_INT_COMP_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_LONG_COMP_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_LLONG_COMP_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_FLOAT_COMP_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_DOUBLE_COMP_ALIGN_g; +#if H5_SIZEOF_LONG_DOUBLE !=0 +H5_DLLVAR size_t H5T_NATIVE_LDOUBLE_COMP_ALIGN_g; +#endif + +H5_DLLVAR size_t H5T_POINTER_COMP_ALIGN_g; +H5_DLLVAR size_t H5T_HVL_COMP_ALIGN_g; +H5_DLLVAR size_t H5T_HOBJREF_COMP_ALIGN_g; +H5_DLLVAR size_t H5T_HDSETREGREF_COMP_ALIGN_g; + +/* + * Alignment information for native types. A value of N indicates that the + * data must be aligned on an address ADDR such that 0 == ADDR mod N. When + * N=1 no alignment is required; N=0 implies that alignment constraints were + * not calculated. + */ +H5_DLLVAR size_t H5T_NATIVE_SCHAR_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_UCHAR_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_SHORT_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_USHORT_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_INT_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_UINT_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_LONG_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_ULONG_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_LLONG_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_ULLONG_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_FLOAT_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_DOUBLE_ALIGN_g; +#if H5_SIZEOF_LONG_DOUBLE !=0 +H5_DLLVAR size_t H5T_NATIVE_LDOUBLE_ALIGN_g; +#endif + +/* C9x alignment constraints */ +H5_DLLVAR size_t H5T_NATIVE_INT8_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_UINT8_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_INT_LEAST8_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_UINT_LEAST8_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_INT_FAST8_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_UINT_FAST8_ALIGN_g; + +H5_DLLVAR size_t H5T_NATIVE_INT16_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_UINT16_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_INT_LEAST16_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_UINT_LEAST16_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_INT_FAST16_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_UINT_FAST16_ALIGN_g; + +H5_DLLVAR size_t H5T_NATIVE_INT32_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_UINT32_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_INT_LEAST32_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_UINT_LEAST32_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_INT_FAST32_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_UINT_FAST32_ALIGN_g; + +H5_DLLVAR size_t H5T_NATIVE_INT64_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_UINT64_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_INT_LEAST64_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_UINT_LEAST64_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_INT_FAST64_ALIGN_g; +H5_DLLVAR size_t H5T_NATIVE_UINT_FAST64_ALIGN_g; + +/* Useful floating-point values for conversion routines */ +/* (+/- Inf for all floating-point types) */ +H5_DLLVAR float H5T_NATIVE_FLOAT_POS_INF_g; +H5_DLLVAR float H5T_NATIVE_FLOAT_NEG_INF_g; +H5_DLLVAR double H5T_NATIVE_DOUBLE_POS_INF_g; +H5_DLLVAR double H5T_NATIVE_DOUBLE_NEG_INF_g; +#if H5_SIZEOF_LONG_DOUBLE !=0 +H5_DLLVAR double H5T_NATIVE_LDOUBLE_POS_INF_g; +H5_DLLVAR double H5T_NATIVE_LDOUBLE_NEG_INF_g; +#endif + +/* Declare extern the free lists for H5T_t's and H5T_shared_t's */ +H5FL_EXTERN(H5T_t); +H5FL_EXTERN(H5T_shared_t); + +/* Common functions */ +H5_DLL H5T_t *H5T__create(H5T_class_t type, size_t size); +H5_DLL herr_t H5T__commit(H5F_t *file, H5T_t *type, hid_t tcpl_id, hid_t dxpl_id); +H5_DLL herr_t H5T__commit_named(const H5G_loc_t *loc, const char *name, + H5T_t *dt, hid_t lcpl_id, hid_t tcpl_id, hid_t tapl_id, hid_t dxpl_id); +H5_DLL H5T_t *H5T__alloc(void); +H5_DLL herr_t H5T__free(H5T_t *dt); +H5_DLL herr_t H5T__visit(H5T_t *dt, unsigned visit_flags, H5T_operator_t op, + void *op_value); +H5_DLL herr_t H5T__upgrade_version(H5T_t *dt, unsigned new_version); + +/* Conversion functions */ +H5_DLL herr_t H5T__conv_noop(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *buf, void *bkg, + hid_t dset_xfer_plist); + +H5_DLL herr_t H5T__conv_order(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *_buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_order_opt(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *_buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_struct(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *_buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_struct_opt(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *_buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_enum(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_enum_numeric(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_vlen(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_array(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_i_i(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *_buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_f_f(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *_buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_f_i(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *_buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_i_f(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *_buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_s_s(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *_buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_b_b(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *_buf, void *bkg, + hid_t dset_xfer_plist); + +H5_DLL herr_t H5T__conv_schar_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uchar_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_schar_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_schar_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uchar_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uchar_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, + size_t bkg_stride, void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_schar_int(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_schar_uint(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uchar_int(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uchar_uint(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_schar_long(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_schar_ulong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uchar_long(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uchar_ulong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_schar_llong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_schar_ullong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uchar_llong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uchar_ullong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); + +H5_DLL herr_t H5T__conv_short_schar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_short_uchar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ushort_schar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ushort_uchar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_short_ushort(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ushort_short(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_short_int(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_short_uint(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ushort_int(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ushort_uint(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_short_long(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_short_ulong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ushort_long(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ushort_ulong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_short_llong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_short_ullong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ushort_llong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ushort_ullong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); + +H5_DLL herr_t H5T__conv_int_schar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_int_uchar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uint_schar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uint_uchar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_int_short(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_int_ushort(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uint_short(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uint_ushort(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_int_uint(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uint_int(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_int_long(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_int_ulong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uint_long(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uint_ulong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_int_llong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_int_ullong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uint_llong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uint_ullong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); + +H5_DLL herr_t H5T__conv_long_schar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_long_uchar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ulong_schar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ulong_uchar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_long_short(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_long_ushort(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ulong_short(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ulong_ushort(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_long_int(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_long_uint(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ulong_int(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ulong_uint(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_long_ulong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ulong_long(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_long_llong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_long_ullong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ulong_llong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ulong_ullong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); + +H5_DLL herr_t H5T__conv_llong_schar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_llong_uchar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ullong_schar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ullong_uchar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_llong_short(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_llong_ushort(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ullong_short(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ullong_ushort(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_llong_int(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_llong_uint(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ullong_int(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ullong_uint(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_llong_long(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_llong_ulong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ullong_long(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ullong_ulong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_llong_ullong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ullong_llong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_float_double(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_float_ldouble(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_double_float(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_double_ldouble(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ldouble_float(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ldouble_double(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_schar_float(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_schar_double(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_schar_ldouble(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uchar_float(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uchar_double(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uchar_ldouble(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_short_float(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_short_double(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_short_ldouble(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ushort_float(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ushort_double(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ushort_ldouble(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_int_float(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_int_double(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_int_ldouble(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uint_float(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uint_double(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_uint_ldouble(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_long_float(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_long_double(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_long_ldouble(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ulong_float(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ulong_double(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ulong_ldouble(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_llong_float(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_llong_double(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_llong_ldouble(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ullong_float(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ullong_double(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ullong_ldouble(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_float_schar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_float_uchar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_float_short(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_float_ushort(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_float_int(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_float_uint(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_float_long(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_float_ulong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_float_llong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_float_ullong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_double_schar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_double_uchar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_double_short(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_double_ushort(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_double_int(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_double_uint(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_double_long(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_double_ulong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_double_llong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_double_ullong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ldouble_schar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ldouble_uchar(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ldouble_short(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ldouble_ushort(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ldouble_int(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ldouble_uint(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ldouble_long(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ldouble_ulong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ldouble_llong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T__conv_ldouble_ullong(hid_t src_id, hid_t dst_id, + H5T_cdata_t *cdata, size_t nelmts, + size_t buf_stride, size_t bkg_stride, + void *buf, void *bkg, + hid_t dset_xfer_plist); + +/* Bit twiddling functions */ +H5_DLL void H5T__bit_copy(uint8_t *dst, size_t dst_offset, const uint8_t *src, + size_t src_offset, size_t size); +H5_DLL herr_t H5T__bit_shift(uint8_t *buf, ssize_t shift_dist, size_t offset, size_t size); +H5_DLL void H5T__bit_set(uint8_t *buf, size_t offset, size_t size, + hbool_t value); +H5_DLL uint64_t H5T__bit_get_d(uint8_t *buf, size_t offset, size_t size); +H5_DLL void H5T__bit_set_d(uint8_t *buf, size_t offset, size_t size, + uint64_t val); +H5_DLL ssize_t H5T__bit_find(uint8_t *buf, size_t offset, size_t size, + H5T_sdir_t direction, hbool_t value); +H5_DLL htri_t H5T__bit_inc(uint8_t *buf, size_t start, size_t size); +H5_DLL htri_t H5T__bit_dec(uint8_t *buf, size_t start, size_t size); +H5_DLL void H5T__bit_neg(uint8_t *buf, size_t start, size_t size); + +/* VL functions */ +H5_DLL H5T_t * H5T__vlen_create(const H5T_t *base); +H5_DLL htri_t H5T__vlen_set_loc(const H5T_t *dt, H5F_t *f, H5T_loc_t loc); + +/* Array functions */ +H5_DLL H5T_t *H5T__array_create(H5T_t *base, unsigned ndims, const hsize_t dim[/* ndims */]); +H5_DLL int H5T__get_array_ndims(const H5T_t *dt); +H5_DLL int H5T__get_array_dims(const H5T_t *dt, hsize_t dims[]); + +/* Compound functions */ +H5_DLL herr_t H5T__insert(H5T_t *parent, const char *name, size_t offset, + const H5T_t *member); +H5_DLL size_t H5T__get_member_size(const H5T_t *dt, unsigned membno); +H5_DLL void H5T__update_packed(const H5T_t *dt); +H5_DLL H5T_subset_info_t *H5T__conv_struct_subset(const H5T_cdata_t *cdata); + +/* Enumerated type functions */ +H5_DLL H5T_t *H5T__enum_create(const H5T_t *parent); +H5_DLL herr_t H5T__enum_insert(const H5T_t *dt, const char *name, const void *value); +H5_DLL herr_t H5T__get_member_value(const H5T_t *dt, unsigned membno, void *value); + +/* Field functions (for both compound & enumerated types) */ +H5_DLL char *H5T__get_member_name(H5T_t const *dt, unsigned membno); +H5_DLL herr_t H5T__sort_value(const H5T_t *dt, int *map); +H5_DLL herr_t H5T__sort_name(const H5T_t *dt, int *map); + +/* Debugging functions */ +H5_DLL herr_t H5T__print_stats(H5T_path_t *path, int *nprint/*in,out*/); + +#endif /* _H5Tpkg_H */ + diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Tprivate.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Tprivate.h index 35b032bb98..345924ca3e 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Tprivate.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Tprivate.h @@ -1,164 +1,164 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * 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 files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* - * This file contains private information about the H5T module - */ -#ifndef _H5Tprivate_H -#define _H5Tprivate_H - -/* Get package's public header */ -#include "H5Tpublic.h" - -/* Other public headers needed by this file */ -#include "H5MMpublic.h" /* Memory management */ - -/* Private headers needed by this file */ -#include "H5private.h" /* Generic Functions */ -#include "H5Gprivate.h" /* Groups */ -#include "H5Rprivate.h" /* References */ - -/* Macro for size of temporary buffers to contain a single element */ -#define H5T_ELEM_BUF_SIZE 256 - -/* If the module using this macro is allowed access to the private variables, access them directly */ -#ifdef H5T_PACKAGE -#define H5T_GET_SIZE(T) ((T)->shared->size) -#define H5T_GET_SHARED(T) ((T)->shared) -#define H5T_GET_MEMBER_OFFSET(T, I) ((T)->u.compnd.memb[I].offset) -#define H5T_GET_MEMBER_SIZE(T, I) ((T)->u.compnd.memb[I].shared->size) -#else /* H5T_PACKAGE */ -#define H5T_GET_SIZE(T) (H5T_get_size(T)) -#define H5T_GET_SHARED(T) (H5T_get_shared(T)) -#define H5T_GET_MEMBER_OFFSET(T, I) (H5T_get_member_offset((T), (I))) -#define H5T_GET_MEMBER_SIZE(T, I) (H5T_get_member_size((T), (I))) -#endif /* H5T_PACKAGE */ - -/* Forward references of package typedefs (declared in H5Tpkg.h) */ -typedef struct H5T_t H5T_t; -typedef struct H5T_stats_t H5T_stats_t; -typedef struct H5T_path_t H5T_path_t; - -/* How to copy a datatype */ -typedef enum H5T_copy_t { - H5T_COPY_TRANSIENT, - H5T_COPY_ALL, - H5T_COPY_REOPEN -} H5T_copy_t; - -/* Location of datatype information */ -typedef enum { - H5T_LOC_BADLOC = 0, /* invalid datatype location */ - H5T_LOC_MEMORY, /* data stored in memory */ - H5T_LOC_DISK, /* data stored on disk */ - H5T_LOC_MAXLOC /* highest value (Invalid as true value) */ -} H5T_loc_t; - -/* VL allocation information */ -typedef struct { - H5MM_allocate_t alloc_func; /* Allocation function */ - void *alloc_info; /* Allocation information */ - H5MM_free_t free_func; /* Free function */ - void *free_info; /* Free information */ -} H5T_vlen_alloc_info_t; - -/* Structure for conversion callback property */ -typedef struct H5T_conv_cb_t { - H5T_conv_except_func_t func; - void* user_data; -} H5T_conv_cb_t; - -/* Values for the optimization of compound data reading and writing. They indicate - * whether the fields of the source and destination are subset of each other and - * there is no conversion needed. - */ -typedef enum { - H5T_SUBSET_BADVALUE = -1, /* Invalid value */ - H5T_SUBSET_FALSE = 0, /* Source and destination aren't subset of each other */ - H5T_SUBSET_SRC, /* Source is the subset of dest and no conversion is needed */ - H5T_SUBSET_DST, /* Dest is the subset of source and no conversion is needed */ - H5T_SUBSET_CAP /* Must be the last value */ -} H5T_subset_t; - -typedef struct H5T_subset_info_t { - H5T_subset_t subset; /* See above */ - size_t copy_size; /* Size in bytes, to copy for each element */ -} H5T_subset_info_t; - -/* Forward declarations for prototype arguments */ -struct H5O_t; - -/* The native endianess of the platform */ -H5_DLLVAR H5T_order_t H5T_native_order_g; - -/* Private functions */ -H5_DLL herr_t H5TN_init_interface(void); -H5_DLL herr_t H5T_init(void); -H5_DLL H5T_t *H5T_copy(H5T_t *old_dt, H5T_copy_t method); -H5_DLL herr_t H5T_lock(H5T_t *dt, hbool_t immutable); -H5_DLL herr_t H5T_close(H5T_t *dt); -H5_DLL H5T_t *H5T_get_super(const H5T_t *dt); -H5_DLL H5T_class_t H5T_get_class(const H5T_t *dt, htri_t internal); -H5_DLL htri_t H5T_detect_class(const H5T_t *dt, H5T_class_t cls, hbool_t from_api); -H5_DLL size_t H5T_get_size(const H5T_t *dt); -H5_DLL int H5T_cmp(const H5T_t *dt1, const H5T_t *dt2, hbool_t superset); -H5_DLL herr_t H5T_debug(const H5T_t *dt, FILE * stream); -H5_DLL struct H5O_loc_t *H5T_oloc(H5T_t *dt); -H5_DLL H5G_name_t *H5T_nameof(H5T_t *dt); -H5_DLL htri_t H5T_is_immutable(const H5T_t *dt); -H5_DLL htri_t H5T_is_named(const H5T_t *dt); -H5_DLL htri_t H5T_is_relocatable(const H5T_t *dt); -H5_DLL H5T_path_t *H5T_path_find(const H5T_t *src, const H5T_t *dst, - const char *name, H5T_conv_t func, hid_t dxpl_id, hbool_t is_api); -H5_DLL hbool_t H5T_path_noop(const H5T_path_t *p); -H5_DLL H5T_bkg_t H5T_path_bkg(const H5T_path_t *p); -H5_DLL H5T_subset_info_t *H5T_path_compound_subset(const H5T_path_t *p); -H5_DLL herr_t H5T_convert(H5T_path_t *tpath, hid_t src_id, hid_t dst_id, - size_t nelmts, size_t buf_stride, size_t bkg_stride, void *buf, void *bkg, - hid_t dset_xfer_plist); -H5_DLL herr_t H5T_vlen_reclaim(void *elem, hid_t type_id, unsigned ndim, const hsize_t *point, void *_op_data); -H5_DLL herr_t H5T_vlen_reclaim_elmt(void *elem, H5T_t *dt, hid_t dxpl_id); -H5_DLL herr_t H5T_vlen_get_alloc_info(hid_t dxpl_id, H5T_vlen_alloc_info_t **vl_alloc_info); -H5_DLL htri_t H5T_set_loc(H5T_t *dt, H5F_t *f, H5T_loc_t loc); -H5_DLL htri_t H5T_is_sensible(const H5T_t *dt); -H5_DLL uint32_t H5T_hash(H5F_t * file, const H5T_t *dt); -H5_DLL herr_t H5T_set_latest_version(H5T_t *dt); -H5_DLL herr_t H5T_patch_file(H5T_t *dt, H5F_t *f); -H5_DLL htri_t H5T_is_variable_str(const H5T_t *dt); - -/* Reference specific functions */ -H5_DLL H5R_type_t H5T_get_ref_type(const H5T_t *dt); - -/* Operations on named datatypes */ -H5_DLL H5T_t *H5T_open(const H5G_loc_t *loc, hid_t dxpl_id); -H5_DLL htri_t H5T_committed(const H5T_t *type); -H5_DLL int H5T_link(const H5T_t *type, int adjust, hid_t dxpl_id); -H5_DLL herr_t H5T_update_shared(H5T_t *type); - -/* Field functions (for both compound & enumerated types) */ -H5_DLL int H5T_get_nmembers(const H5T_t *dt); -H5_DLL H5T_t *H5T_get_member_type(const H5T_t *dt, unsigned membno, H5T_copy_t method); -H5_DLL size_t H5T_get_member_offset(const H5T_t *dt, unsigned membno); - -/* Atomic functions */ -H5_DLL H5T_order_t H5T_get_order(const H5T_t *dt); -H5_DLL size_t H5T_get_precision(const H5T_t *dt); -H5_DLL int H5T_get_offset(const H5T_t *dt); - -/* Fixed-point functions */ -H5_DLL H5T_sign_t H5T_get_sign(H5T_t const *dt); - -#endif /* _H5Tprivate_H */ - +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * This file contains private information about the H5T module + */ +#ifndef _H5Tprivate_H +#define _H5Tprivate_H + +/* Get package's public header */ +#include "H5Tpublic.h" + +/* Other public headers needed by this file */ +#include "H5MMpublic.h" /* Memory management */ + +/* Private headers needed by this file */ +#include "H5private.h" /* Generic Functions */ +#include "H5Gprivate.h" /* Groups */ +#include "H5Rprivate.h" /* References */ + +/* Macro for size of temporary buffers to contain a single element */ +#define H5T_ELEM_BUF_SIZE 256 + +/* If the module using this macro is allowed access to the private variables, access them directly */ +#ifdef H5T_PACKAGE +#define H5T_GET_SIZE(T) ((T)->shared->size) +#define H5T_GET_SHARED(T) ((T)->shared) +#define H5T_GET_MEMBER_OFFSET(T, I) ((T)->u.compnd.memb[I].offset) +#define H5T_GET_MEMBER_SIZE(T, I) ((T)->u.compnd.memb[I].shared->size) +#else /* H5T_PACKAGE */ +#define H5T_GET_SIZE(T) (H5T_get_size(T)) +#define H5T_GET_SHARED(T) (H5T_get_shared(T)) +#define H5T_GET_MEMBER_OFFSET(T, I) (H5T_get_member_offset((T), (I))) +#define H5T_GET_MEMBER_SIZE(T, I) (H5T_get_member_size((T), (I))) +#endif /* H5T_PACKAGE */ + +/* Forward references of package typedefs (declared in H5Tpkg.h) */ +typedef struct H5T_t H5T_t; +typedef struct H5T_stats_t H5T_stats_t; +typedef struct H5T_path_t H5T_path_t; + +/* How to copy a datatype */ +typedef enum H5T_copy_t { + H5T_COPY_TRANSIENT, + H5T_COPY_ALL, + H5T_COPY_REOPEN +} H5T_copy_t; + +/* Location of datatype information */ +typedef enum { + H5T_LOC_BADLOC = 0, /* invalid datatype location */ + H5T_LOC_MEMORY, /* data stored in memory */ + H5T_LOC_DISK, /* data stored on disk */ + H5T_LOC_MAXLOC /* highest value (Invalid as true value) */ +} H5T_loc_t; + +/* VL allocation information */ +typedef struct { + H5MM_allocate_t alloc_func; /* Allocation function */ + void *alloc_info; /* Allocation information */ + H5MM_free_t free_func; /* Free function */ + void *free_info; /* Free information */ +} H5T_vlen_alloc_info_t; + +/* Structure for conversion callback property */ +typedef struct H5T_conv_cb_t { + H5T_conv_except_func_t func; + void* user_data; +} H5T_conv_cb_t; + +/* Values for the optimization of compound data reading and writing. They indicate + * whether the fields of the source and destination are subset of each other and + * there is no conversion needed. + */ +typedef enum { + H5T_SUBSET_BADVALUE = -1, /* Invalid value */ + H5T_SUBSET_FALSE = 0, /* Source and destination aren't subset of each other */ + H5T_SUBSET_SRC, /* Source is the subset of dest and no conversion is needed */ + H5T_SUBSET_DST, /* Dest is the subset of source and no conversion is needed */ + H5T_SUBSET_CAP /* Must be the last value */ +} H5T_subset_t; + +typedef struct H5T_subset_info_t { + H5T_subset_t subset; /* See above */ + size_t copy_size; /* Size in bytes, to copy for each element */ +} H5T_subset_info_t; + +/* Forward declarations for prototype arguments */ +struct H5O_t; + +/* The native endianess of the platform */ +H5_DLLVAR H5T_order_t H5T_native_order_g; + +/* Private functions */ +H5_DLL herr_t H5TN_init_interface(void); +H5_DLL herr_t H5T_init(void); +H5_DLL H5T_t *H5T_copy(H5T_t *old_dt, H5T_copy_t method); +H5_DLL herr_t H5T_lock(H5T_t *dt, hbool_t immutable); +H5_DLL herr_t H5T_close(H5T_t *dt); +H5_DLL H5T_t *H5T_get_super(const H5T_t *dt); +H5_DLL H5T_class_t H5T_get_class(const H5T_t *dt, htri_t internal); +H5_DLL htri_t H5T_detect_class(const H5T_t *dt, H5T_class_t cls, hbool_t from_api); +H5_DLL size_t H5T_get_size(const H5T_t *dt); +H5_DLL int H5T_cmp(const H5T_t *dt1, const H5T_t *dt2, hbool_t superset); +H5_DLL herr_t H5T_debug(const H5T_t *dt, FILE * stream); +H5_DLL struct H5O_loc_t *H5T_oloc(H5T_t *dt); +H5_DLL H5G_name_t *H5T_nameof(H5T_t *dt); +H5_DLL htri_t H5T_is_immutable(const H5T_t *dt); +H5_DLL htri_t H5T_is_named(const H5T_t *dt); +H5_DLL htri_t H5T_is_relocatable(const H5T_t *dt); +H5_DLL H5T_path_t *H5T_path_find(const H5T_t *src, const H5T_t *dst, + const char *name, H5T_conv_t func, hid_t dxpl_id, hbool_t is_api); +H5_DLL hbool_t H5T_path_noop(const H5T_path_t *p); +H5_DLL H5T_bkg_t H5T_path_bkg(const H5T_path_t *p); +H5_DLL H5T_subset_info_t *H5T_path_compound_subset(const H5T_path_t *p); +H5_DLL herr_t H5T_convert(H5T_path_t *tpath, hid_t src_id, hid_t dst_id, + size_t nelmts, size_t buf_stride, size_t bkg_stride, void *buf, void *bkg, + hid_t dset_xfer_plist); +H5_DLL herr_t H5T_vlen_reclaim(void *elem, hid_t type_id, unsigned ndim, const hsize_t *point, void *_op_data); +H5_DLL herr_t H5T_vlen_reclaim_elmt(void *elem, H5T_t *dt, hid_t dxpl_id); +H5_DLL herr_t H5T_vlen_get_alloc_info(hid_t dxpl_id, H5T_vlen_alloc_info_t **vl_alloc_info); +H5_DLL htri_t H5T_set_loc(H5T_t *dt, H5F_t *f, H5T_loc_t loc); +H5_DLL htri_t H5T_is_sensible(const H5T_t *dt); +H5_DLL uint32_t H5T_hash(H5F_t * file, const H5T_t *dt); +H5_DLL herr_t H5T_set_latest_version(H5T_t *dt); +H5_DLL herr_t H5T_patch_file(H5T_t *dt, H5F_t *f); +H5_DLL htri_t H5T_is_variable_str(const H5T_t *dt); + +/* Reference specific functions */ +H5_DLL H5R_type_t H5T_get_ref_type(const H5T_t *dt); + +/* Operations on named datatypes */ +H5_DLL H5T_t *H5T_open(const H5G_loc_t *loc, hid_t dxpl_id); +H5_DLL htri_t H5T_committed(const H5T_t *type); +H5_DLL int H5T_link(const H5T_t *type, int adjust, hid_t dxpl_id); +H5_DLL herr_t H5T_update_shared(H5T_t *type); + +/* Field functions (for both compound & enumerated types) */ +H5_DLL int H5T_get_nmembers(const H5T_t *dt); +H5_DLL H5T_t *H5T_get_member_type(const H5T_t *dt, unsigned membno, H5T_copy_t method); +H5_DLL size_t H5T_get_member_offset(const H5T_t *dt, unsigned membno); + +/* Atomic functions */ +H5_DLL H5T_order_t H5T_get_order(const H5T_t *dt); +H5_DLL size_t H5T_get_precision(const H5T_t *dt); +H5_DLL int H5T_get_offset(const H5T_t *dt); + +/* Fixed-point functions */ +H5_DLL H5T_sign_t H5T_get_sign(H5T_t const *dt); + +#endif /* _H5Tprivate_H */ + diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Tpublic.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Tpublic.h index 6dbf7fe074..d646ef1e88 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Tpublic.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Tpublic.h @@ -1,621 +1,621 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * 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 files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* - * This file contains public declarations for the H5T module. - */ -#ifndef _H5Tpublic_H -#define _H5Tpublic_H - -/* Public headers needed by this file */ -#include "H5public.h" -#include "H5Ipublic.h" - -#define HOFFSET(S,M) (offsetof(S,M)) - -/* These are the various classes of datatypes */ -/* If this goes over 16 types (0-15), the file format will need to change) */ -typedef enum H5T_class_t { - H5T_NO_CLASS = -1, /*error */ - H5T_INTEGER = 0, /*integer types */ - H5T_FLOAT = 1, /*floating-point types */ - H5T_TIME = 2, /*date and time types */ - H5T_STRING = 3, /*character string types */ - H5T_BITFIELD = 4, /*bit field types */ - H5T_OPAQUE = 5, /*opaque types */ - H5T_COMPOUND = 6, /*compound types */ - H5T_REFERENCE = 7, /*reference types */ - H5T_ENUM = 8, /*enumeration types */ - H5T_VLEN = 9, /*Variable-Length types */ - H5T_ARRAY = 10, /*Array types */ - - H5T_NCLASSES /*this must be last */ -} H5T_class_t; - -/* Byte orders */ -typedef enum H5T_order_t { - H5T_ORDER_ERROR = -1, /*error */ - H5T_ORDER_LE = 0, /*little endian */ - H5T_ORDER_BE = 1, /*bit endian */ - H5T_ORDER_VAX = 2, /*VAX mixed endian */ - H5T_ORDER_MIXED = 3, /*Compound type with mixed member orders */ - H5T_ORDER_NONE = 4 /*no particular order (strings, bits,..) */ - /*H5T_ORDER_NONE must be last */ -} H5T_order_t; - -/* Types of integer sign schemes */ -typedef enum H5T_sign_t { - H5T_SGN_ERROR = -1, /*error */ - H5T_SGN_NONE = 0, /*this is an unsigned type */ - H5T_SGN_2 = 1, /*two's complement */ - - H5T_NSGN = 2 /*this must be last! */ -} H5T_sign_t; - -/* Floating-point normalization schemes */ -typedef enum H5T_norm_t { - H5T_NORM_ERROR = -1, /*error */ - H5T_NORM_IMPLIED = 0, /*msb of mantissa isn't stored, always 1 */ - H5T_NORM_MSBSET = 1, /*msb of mantissa is always 1 */ - H5T_NORM_NONE = 2 /*not normalized */ - /*H5T_NORM_NONE must be last */ -} H5T_norm_t; - -/* - * Character set to use for text strings. Do not change these values since - * they appear in HDF5 files! - */ -typedef enum H5T_cset_t { - H5T_CSET_ERROR = -1, /*error */ - H5T_CSET_ASCII = 0, /*US ASCII */ - H5T_CSET_UTF8 = 1, /*UTF-8 Unicode encoding */ - H5T_CSET_RESERVED_2 = 2, /*reserved for later use */ - H5T_CSET_RESERVED_3 = 3, /*reserved for later use */ - H5T_CSET_RESERVED_4 = 4, /*reserved for later use */ - H5T_CSET_RESERVED_5 = 5, /*reserved for later use */ - H5T_CSET_RESERVED_6 = 6, /*reserved for later use */ - H5T_CSET_RESERVED_7 = 7, /*reserved for later use */ - H5T_CSET_RESERVED_8 = 8, /*reserved for later use */ - H5T_CSET_RESERVED_9 = 9, /*reserved for later use */ - H5T_CSET_RESERVED_10 = 10, /*reserved for later use */ - H5T_CSET_RESERVED_11 = 11, /*reserved for later use */ - H5T_CSET_RESERVED_12 = 12, /*reserved for later use */ - H5T_CSET_RESERVED_13 = 13, /*reserved for later use */ - H5T_CSET_RESERVED_14 = 14, /*reserved for later use */ - H5T_CSET_RESERVED_15 = 15 /*reserved for later use */ -} H5T_cset_t; -#define H5T_NCSET H5T_CSET_RESERVED_2 /*Number of character sets actually defined */ - -/* - * Type of padding to use in character strings. Do not change these values - * since they appear in HDF5 files! - */ -typedef enum H5T_str_t { - H5T_STR_ERROR = -1, /*error */ - H5T_STR_NULLTERM = 0, /*null terminate like in C */ - H5T_STR_NULLPAD = 1, /*pad with nulls */ - H5T_STR_SPACEPAD = 2, /*pad with spaces like in Fortran */ - H5T_STR_RESERVED_3 = 3, /*reserved for later use */ - H5T_STR_RESERVED_4 = 4, /*reserved for later use */ - H5T_STR_RESERVED_5 = 5, /*reserved for later use */ - H5T_STR_RESERVED_6 = 6, /*reserved for later use */ - H5T_STR_RESERVED_7 = 7, /*reserved for later use */ - H5T_STR_RESERVED_8 = 8, /*reserved for later use */ - H5T_STR_RESERVED_9 = 9, /*reserved for later use */ - H5T_STR_RESERVED_10 = 10, /*reserved for later use */ - H5T_STR_RESERVED_11 = 11, /*reserved for later use */ - H5T_STR_RESERVED_12 = 12, /*reserved for later use */ - H5T_STR_RESERVED_13 = 13, /*reserved for later use */ - H5T_STR_RESERVED_14 = 14, /*reserved for later use */ - H5T_STR_RESERVED_15 = 15 /*reserved for later use */ -} H5T_str_t; -#define H5T_NSTR H5T_STR_RESERVED_3 /*num H5T_str_t types actually defined */ - -/* Type of padding to use in other atomic types */ -typedef enum H5T_pad_t { - H5T_PAD_ERROR = -1, /*error */ - H5T_PAD_ZERO = 0, /*always set to zero */ - H5T_PAD_ONE = 1, /*always set to one */ - H5T_PAD_BACKGROUND = 2, /*set to background value */ - - H5T_NPAD = 3 /*THIS MUST BE LAST */ -} H5T_pad_t; - -/* Commands sent to conversion functions */ -typedef enum H5T_cmd_t { - H5T_CONV_INIT = 0, /*query and/or initialize private data */ - H5T_CONV_CONV = 1, /*convert data from source to dest datatype */ - H5T_CONV_FREE = 2 /*function is being removed from path */ -} H5T_cmd_t; - -/* How is the `bkg' buffer used by the conversion function? */ -typedef enum H5T_bkg_t { - H5T_BKG_NO = 0, /*background buffer is not needed, send NULL */ - H5T_BKG_TEMP = 1, /*bkg buffer used as temp storage only */ - H5T_BKG_YES = 2 /*init bkg buf with data before conversion */ -} H5T_bkg_t; - -/* Type conversion client data */ -typedef struct H5T_cdata_t { - H5T_cmd_t command;/*what should the conversion function do? */ - H5T_bkg_t need_bkg;/*is the background buffer needed? */ - hbool_t recalc; /*recalculate private data */ - void *priv; /*private data */ -} H5T_cdata_t; - -/* Conversion function persistence */ -typedef enum H5T_pers_t { - H5T_PERS_DONTCARE = -1, /*wild card */ - H5T_PERS_HARD = 0, /*hard conversion function */ - H5T_PERS_SOFT = 1 /*soft conversion function */ -} H5T_pers_t; - -/* The order to retrieve atomic native datatype */ -typedef enum H5T_direction_t { - H5T_DIR_DEFAULT = 0, /*default direction is inscendent */ - H5T_DIR_ASCEND = 1, /*in inscendent order */ - H5T_DIR_DESCEND = 2 /*in descendent order */ -} H5T_direction_t; - -/* The exception type passed into the conversion callback function */ -typedef enum H5T_conv_except_t { - H5T_CONV_EXCEPT_RANGE_HI = 0, /*source value is greater than destination's range */ - H5T_CONV_EXCEPT_RANGE_LOW = 1, /*source value is less than destination's range */ - H5T_CONV_EXCEPT_PRECISION = 2, /*source value loses precision in destination */ - H5T_CONV_EXCEPT_TRUNCATE = 3, /*source value is truncated in destination */ - H5T_CONV_EXCEPT_PINF = 4, /*source value is positive infinity(floating number) */ - H5T_CONV_EXCEPT_NINF = 5, /*source value is negative infinity(floating number) */ - H5T_CONV_EXCEPT_NAN = 6 /*source value is NaN(floating number) */ -} H5T_conv_except_t; - -/* The return value from conversion callback function H5T_conv_except_func_t */ -typedef enum H5T_conv_ret_t { - H5T_CONV_ABORT = -1, /*abort conversion */ - H5T_CONV_UNHANDLED = 0, /*callback function failed to handle the exception */ - H5T_CONV_HANDLED = 1 /*callback function handled the exception successfully */ -} H5T_conv_ret_t; - -/* Variable Length Datatype struct in memory */ -/* (This is only used for VL sequences, not VL strings, which are stored in char *'s) */ -typedef struct { - size_t len; /* Length of VL data (in base type units) */ - void *p; /* Pointer to VL data */ -} hvl_t; - -/* Variable Length String information */ -#define H5T_VARIABLE ((size_t)(-1)) /* Indicate that a string is variable length (null-terminated in C, instead of fixed length) */ - -/* Opaque information */ -#define H5T_OPAQUE_TAG_MAX 256 /* Maximum length of an opaque tag */ - /* This could be raised without too much difficulty */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* All datatype conversion functions are... */ -typedef herr_t (*H5T_conv_t) (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, - size_t nelmts, size_t buf_stride, size_t bkg_stride, void *buf, - void *bkg, hid_t dset_xfer_plist); - -/* Exception handler. If an exception like overflow happenes during conversion, - * this function is called if it's registered through H5Pset_type_conv_cb. - */ -typedef H5T_conv_ret_t (*H5T_conv_except_func_t)(H5T_conv_except_t except_type, - hid_t src_id, hid_t dst_id, void *src_buf, void *dst_buf, void *user_data); - -/* When this header is included from a private header, don't make calls to H5open() */ -#undef H5OPEN -#ifndef _H5private_H -#define H5OPEN H5open(), -#else /* _H5private_H */ -#define H5OPEN -#endif /* _H5private_H */ - -/* - * The IEEE floating point types in various byte orders. - */ -#define H5T_IEEE_F32BE (H5OPEN H5T_IEEE_F32BE_g) -#define H5T_IEEE_F32LE (H5OPEN H5T_IEEE_F32LE_g) -#define H5T_IEEE_F64BE (H5OPEN H5T_IEEE_F64BE_g) -#define H5T_IEEE_F64LE (H5OPEN H5T_IEEE_F64LE_g) -H5_DLLVAR hid_t H5T_IEEE_F32BE_g; -H5_DLLVAR hid_t H5T_IEEE_F32LE_g; -H5_DLLVAR hid_t H5T_IEEE_F64BE_g; -H5_DLLVAR hid_t H5T_IEEE_F64LE_g; - -/* - * These are "standard" types. For instance, signed (2's complement) and - * unsigned integers of various sizes and byte orders. - */ -#define H5T_STD_I8BE (H5OPEN H5T_STD_I8BE_g) -#define H5T_STD_I8LE (H5OPEN H5T_STD_I8LE_g) -#define H5T_STD_I16BE (H5OPEN H5T_STD_I16BE_g) -#define H5T_STD_I16LE (H5OPEN H5T_STD_I16LE_g) -#define H5T_STD_I32BE (H5OPEN H5T_STD_I32BE_g) -#define H5T_STD_I32LE (H5OPEN H5T_STD_I32LE_g) -#define H5T_STD_I64BE (H5OPEN H5T_STD_I64BE_g) -#define H5T_STD_I64LE (H5OPEN H5T_STD_I64LE_g) -#define H5T_STD_U8BE (H5OPEN H5T_STD_U8BE_g) -#define H5T_STD_U8LE (H5OPEN H5T_STD_U8LE_g) -#define H5T_STD_U16BE (H5OPEN H5T_STD_U16BE_g) -#define H5T_STD_U16LE (H5OPEN H5T_STD_U16LE_g) -#define H5T_STD_U32BE (H5OPEN H5T_STD_U32BE_g) -#define H5T_STD_U32LE (H5OPEN H5T_STD_U32LE_g) -#define H5T_STD_U64BE (H5OPEN H5T_STD_U64BE_g) -#define H5T_STD_U64LE (H5OPEN H5T_STD_U64LE_g) -#define H5T_STD_B8BE (H5OPEN H5T_STD_B8BE_g) -#define H5T_STD_B8LE (H5OPEN H5T_STD_B8LE_g) -#define H5T_STD_B16BE (H5OPEN H5T_STD_B16BE_g) -#define H5T_STD_B16LE (H5OPEN H5T_STD_B16LE_g) -#define H5T_STD_B32BE (H5OPEN H5T_STD_B32BE_g) -#define H5T_STD_B32LE (H5OPEN H5T_STD_B32LE_g) -#define H5T_STD_B64BE (H5OPEN H5T_STD_B64BE_g) -#define H5T_STD_B64LE (H5OPEN H5T_STD_B64LE_g) -#define H5T_STD_REF_OBJ (H5OPEN H5T_STD_REF_OBJ_g) -#define H5T_STD_REF_DSETREG (H5OPEN H5T_STD_REF_DSETREG_g) -H5_DLLVAR hid_t H5T_STD_I8BE_g; -H5_DLLVAR hid_t H5T_STD_I8LE_g; -H5_DLLVAR hid_t H5T_STD_I16BE_g; -H5_DLLVAR hid_t H5T_STD_I16LE_g; -H5_DLLVAR hid_t H5T_STD_I32BE_g; -H5_DLLVAR hid_t H5T_STD_I32LE_g; -H5_DLLVAR hid_t H5T_STD_I64BE_g; -H5_DLLVAR hid_t H5T_STD_I64LE_g; -H5_DLLVAR hid_t H5T_STD_U8BE_g; -H5_DLLVAR hid_t H5T_STD_U8LE_g; -H5_DLLVAR hid_t H5T_STD_U16BE_g; -H5_DLLVAR hid_t H5T_STD_U16LE_g; -H5_DLLVAR hid_t H5T_STD_U32BE_g; -H5_DLLVAR hid_t H5T_STD_U32LE_g; -H5_DLLVAR hid_t H5T_STD_U64BE_g; -H5_DLLVAR hid_t H5T_STD_U64LE_g; -H5_DLLVAR hid_t H5T_STD_B8BE_g; -H5_DLLVAR hid_t H5T_STD_B8LE_g; -H5_DLLVAR hid_t H5T_STD_B16BE_g; -H5_DLLVAR hid_t H5T_STD_B16LE_g; -H5_DLLVAR hid_t H5T_STD_B32BE_g; -H5_DLLVAR hid_t H5T_STD_B32LE_g; -H5_DLLVAR hid_t H5T_STD_B64BE_g; -H5_DLLVAR hid_t H5T_STD_B64LE_g; -H5_DLLVAR hid_t H5T_STD_REF_OBJ_g; -H5_DLLVAR hid_t H5T_STD_REF_DSETREG_g; - -/* - * Types which are particular to Unix. - */ -#define H5T_UNIX_D32BE (H5OPEN H5T_UNIX_D32BE_g) -#define H5T_UNIX_D32LE (H5OPEN H5T_UNIX_D32LE_g) -#define H5T_UNIX_D64BE (H5OPEN H5T_UNIX_D64BE_g) -#define H5T_UNIX_D64LE (H5OPEN H5T_UNIX_D64LE_g) -H5_DLLVAR hid_t H5T_UNIX_D32BE_g; -H5_DLLVAR hid_t H5T_UNIX_D32LE_g; -H5_DLLVAR hid_t H5T_UNIX_D64BE_g; -H5_DLLVAR hid_t H5T_UNIX_D64LE_g; - -/* - * Types particular to the C language. String types use `bytes' instead - * of `bits' as their size. - */ -#define H5T_C_S1 (H5OPEN H5T_C_S1_g) -H5_DLLVAR hid_t H5T_C_S1_g; - -/* - * Types particular to Fortran. - */ -#define H5T_FORTRAN_S1 (H5OPEN H5T_FORTRAN_S1_g) -H5_DLLVAR hid_t H5T_FORTRAN_S1_g; - -/* - * These types are for Intel CPU's. They are little endian with IEEE - * floating point. - */ -#define H5T_INTEL_I8 H5T_STD_I8LE -#define H5T_INTEL_I16 H5T_STD_I16LE -#define H5T_INTEL_I32 H5T_STD_I32LE -#define H5T_INTEL_I64 H5T_STD_I64LE -#define H5T_INTEL_U8 H5T_STD_U8LE -#define H5T_INTEL_U16 H5T_STD_U16LE -#define H5T_INTEL_U32 H5T_STD_U32LE -#define H5T_INTEL_U64 H5T_STD_U64LE -#define H5T_INTEL_B8 H5T_STD_B8LE -#define H5T_INTEL_B16 H5T_STD_B16LE -#define H5T_INTEL_B32 H5T_STD_B32LE -#define H5T_INTEL_B64 H5T_STD_B64LE -#define H5T_INTEL_F32 H5T_IEEE_F32LE -#define H5T_INTEL_F64 H5T_IEEE_F64LE - -/* - * These types are for DEC Alpha CPU's. They are little endian with IEEE - * floating point. - */ -#define H5T_ALPHA_I8 H5T_STD_I8LE -#define H5T_ALPHA_I16 H5T_STD_I16LE -#define H5T_ALPHA_I32 H5T_STD_I32LE -#define H5T_ALPHA_I64 H5T_STD_I64LE -#define H5T_ALPHA_U8 H5T_STD_U8LE -#define H5T_ALPHA_U16 H5T_STD_U16LE -#define H5T_ALPHA_U32 H5T_STD_U32LE -#define H5T_ALPHA_U64 H5T_STD_U64LE -#define H5T_ALPHA_B8 H5T_STD_B8LE -#define H5T_ALPHA_B16 H5T_STD_B16LE -#define H5T_ALPHA_B32 H5T_STD_B32LE -#define H5T_ALPHA_B64 H5T_STD_B64LE -#define H5T_ALPHA_F32 H5T_IEEE_F32LE -#define H5T_ALPHA_F64 H5T_IEEE_F64LE - -/* - * These types are for MIPS cpu's commonly used in SGI systems. They are big - * endian with IEEE floating point. - */ -#define H5T_MIPS_I8 H5T_STD_I8BE -#define H5T_MIPS_I16 H5T_STD_I16BE -#define H5T_MIPS_I32 H5T_STD_I32BE -#define H5T_MIPS_I64 H5T_STD_I64BE -#define H5T_MIPS_U8 H5T_STD_U8BE -#define H5T_MIPS_U16 H5T_STD_U16BE -#define H5T_MIPS_U32 H5T_STD_U32BE -#define H5T_MIPS_U64 H5T_STD_U64BE -#define H5T_MIPS_B8 H5T_STD_B8BE -#define H5T_MIPS_B16 H5T_STD_B16BE -#define H5T_MIPS_B32 H5T_STD_B32BE -#define H5T_MIPS_B64 H5T_STD_B64BE -#define H5T_MIPS_F32 H5T_IEEE_F32BE -#define H5T_MIPS_F64 H5T_IEEE_F64BE - -/* - * The VAX floating point types (i.e. in VAX byte order) - */ -#define H5T_VAX_F32 (H5OPEN H5T_VAX_F32_g) -#define H5T_VAX_F64 (H5OPEN H5T_VAX_F64_g) -H5_DLLVAR hid_t H5T_VAX_F32_g; -H5_DLLVAR hid_t H5T_VAX_F64_g; - -/* - * The predefined native types. These are the types detected by H5detect and - * they violate the naming scheme a little. Instead of a class name, - * precision and byte order as the last component, they have a C-like type - * name. If the type begins with `U' then it is the unsigned version of the - * integer type; other integer types are signed. The type LLONG corresponds - * to C's `long long' and LDOUBLE is `long double' (these types might be the - * same as `LONG' and `DOUBLE' respectively). - */ -#define H5T_NATIVE_CHAR (CHAR_MIN?H5T_NATIVE_SCHAR:H5T_NATIVE_UCHAR) -#define H5T_NATIVE_SCHAR (H5OPEN H5T_NATIVE_SCHAR_g) -#define H5T_NATIVE_UCHAR (H5OPEN H5T_NATIVE_UCHAR_g) -#define H5T_NATIVE_SHORT (H5OPEN H5T_NATIVE_SHORT_g) -#define H5T_NATIVE_USHORT (H5OPEN H5T_NATIVE_USHORT_g) -#define H5T_NATIVE_INT (H5OPEN H5T_NATIVE_INT_g) -#define H5T_NATIVE_UINT (H5OPEN H5T_NATIVE_UINT_g) -#define H5T_NATIVE_LONG (H5OPEN H5T_NATIVE_LONG_g) -#define H5T_NATIVE_ULONG (H5OPEN H5T_NATIVE_ULONG_g) -#define H5T_NATIVE_LLONG (H5OPEN H5T_NATIVE_LLONG_g) -#define H5T_NATIVE_ULLONG (H5OPEN H5T_NATIVE_ULLONG_g) -#define H5T_NATIVE_FLOAT (H5OPEN H5T_NATIVE_FLOAT_g) -#define H5T_NATIVE_DOUBLE (H5OPEN H5T_NATIVE_DOUBLE_g) -#if H5_SIZEOF_LONG_DOUBLE !=0 -#define H5T_NATIVE_LDOUBLE (H5OPEN H5T_NATIVE_LDOUBLE_g) -#endif -#define H5T_NATIVE_B8 (H5OPEN H5T_NATIVE_B8_g) -#define H5T_NATIVE_B16 (H5OPEN H5T_NATIVE_B16_g) -#define H5T_NATIVE_B32 (H5OPEN H5T_NATIVE_B32_g) -#define H5T_NATIVE_B64 (H5OPEN H5T_NATIVE_B64_g) -#define H5T_NATIVE_OPAQUE (H5OPEN H5T_NATIVE_OPAQUE_g) -#define H5T_NATIVE_HADDR (H5OPEN H5T_NATIVE_HADDR_g) -#define H5T_NATIVE_HSIZE (H5OPEN H5T_NATIVE_HSIZE_g) -#define H5T_NATIVE_HSSIZE (H5OPEN H5T_NATIVE_HSSIZE_g) -#define H5T_NATIVE_HERR (H5OPEN H5T_NATIVE_HERR_g) -#define H5T_NATIVE_HBOOL (H5OPEN H5T_NATIVE_HBOOL_g) -H5_DLLVAR hid_t H5T_NATIVE_SCHAR_g; -H5_DLLVAR hid_t H5T_NATIVE_UCHAR_g; -H5_DLLVAR hid_t H5T_NATIVE_SHORT_g; -H5_DLLVAR hid_t H5T_NATIVE_USHORT_g; -H5_DLLVAR hid_t H5T_NATIVE_INT_g; -H5_DLLVAR hid_t H5T_NATIVE_UINT_g; -H5_DLLVAR hid_t H5T_NATIVE_LONG_g; -H5_DLLVAR hid_t H5T_NATIVE_ULONG_g; -H5_DLLVAR hid_t H5T_NATIVE_LLONG_g; -H5_DLLVAR hid_t H5T_NATIVE_ULLONG_g; -H5_DLLVAR hid_t H5T_NATIVE_FLOAT_g; -H5_DLLVAR hid_t H5T_NATIVE_DOUBLE_g; -#if H5_SIZEOF_LONG_DOUBLE !=0 -H5_DLLVAR hid_t H5T_NATIVE_LDOUBLE_g; -#endif -H5_DLLVAR hid_t H5T_NATIVE_B8_g; -H5_DLLVAR hid_t H5T_NATIVE_B16_g; -H5_DLLVAR hid_t H5T_NATIVE_B32_g; -H5_DLLVAR hid_t H5T_NATIVE_B64_g; -H5_DLLVAR hid_t H5T_NATIVE_OPAQUE_g; -H5_DLLVAR hid_t H5T_NATIVE_HADDR_g; -H5_DLLVAR hid_t H5T_NATIVE_HSIZE_g; -H5_DLLVAR hid_t H5T_NATIVE_HSSIZE_g; -H5_DLLVAR hid_t H5T_NATIVE_HERR_g; -H5_DLLVAR hid_t H5T_NATIVE_HBOOL_g; - -/* C9x integer types */ -#define H5T_NATIVE_INT8 (H5OPEN H5T_NATIVE_INT8_g) -#define H5T_NATIVE_UINT8 (H5OPEN H5T_NATIVE_UINT8_g) -#define H5T_NATIVE_INT_LEAST8 (H5OPEN H5T_NATIVE_INT_LEAST8_g) -#define H5T_NATIVE_UINT_LEAST8 (H5OPEN H5T_NATIVE_UINT_LEAST8_g) -#define H5T_NATIVE_INT_FAST8 (H5OPEN H5T_NATIVE_INT_FAST8_g) -#define H5T_NATIVE_UINT_FAST8 (H5OPEN H5T_NATIVE_UINT_FAST8_g) -H5_DLLVAR hid_t H5T_NATIVE_INT8_g; -H5_DLLVAR hid_t H5T_NATIVE_UINT8_g; -H5_DLLVAR hid_t H5T_NATIVE_INT_LEAST8_g; -H5_DLLVAR hid_t H5T_NATIVE_UINT_LEAST8_g; -H5_DLLVAR hid_t H5T_NATIVE_INT_FAST8_g; -H5_DLLVAR hid_t H5T_NATIVE_UINT_FAST8_g; - -#define H5T_NATIVE_INT16 (H5OPEN H5T_NATIVE_INT16_g) -#define H5T_NATIVE_UINT16 (H5OPEN H5T_NATIVE_UINT16_g) -#define H5T_NATIVE_INT_LEAST16 (H5OPEN H5T_NATIVE_INT_LEAST16_g) -#define H5T_NATIVE_UINT_LEAST16 (H5OPEN H5T_NATIVE_UINT_LEAST16_g) -#define H5T_NATIVE_INT_FAST16 (H5OPEN H5T_NATIVE_INT_FAST16_g) -#define H5T_NATIVE_UINT_FAST16 (H5OPEN H5T_NATIVE_UINT_FAST16_g) -H5_DLLVAR hid_t H5T_NATIVE_INT16_g; -H5_DLLVAR hid_t H5T_NATIVE_UINT16_g; -H5_DLLVAR hid_t H5T_NATIVE_INT_LEAST16_g; -H5_DLLVAR hid_t H5T_NATIVE_UINT_LEAST16_g; -H5_DLLVAR hid_t H5T_NATIVE_INT_FAST16_g; -H5_DLLVAR hid_t H5T_NATIVE_UINT_FAST16_g; - -#define H5T_NATIVE_INT32 (H5OPEN H5T_NATIVE_INT32_g) -#define H5T_NATIVE_UINT32 (H5OPEN H5T_NATIVE_UINT32_g) -#define H5T_NATIVE_INT_LEAST32 (H5OPEN H5T_NATIVE_INT_LEAST32_g) -#define H5T_NATIVE_UINT_LEAST32 (H5OPEN H5T_NATIVE_UINT_LEAST32_g) -#define H5T_NATIVE_INT_FAST32 (H5OPEN H5T_NATIVE_INT_FAST32_g) -#define H5T_NATIVE_UINT_FAST32 (H5OPEN H5T_NATIVE_UINT_FAST32_g) -H5_DLLVAR hid_t H5T_NATIVE_INT32_g; -H5_DLLVAR hid_t H5T_NATIVE_UINT32_g; -H5_DLLVAR hid_t H5T_NATIVE_INT_LEAST32_g; -H5_DLLVAR hid_t H5T_NATIVE_UINT_LEAST32_g; -H5_DLLVAR hid_t H5T_NATIVE_INT_FAST32_g; -H5_DLLVAR hid_t H5T_NATIVE_UINT_FAST32_g; - -#define H5T_NATIVE_INT64 (H5OPEN H5T_NATIVE_INT64_g) -#define H5T_NATIVE_UINT64 (H5OPEN H5T_NATIVE_UINT64_g) -#define H5T_NATIVE_INT_LEAST64 (H5OPEN H5T_NATIVE_INT_LEAST64_g) -#define H5T_NATIVE_UINT_LEAST64 (H5OPEN H5T_NATIVE_UINT_LEAST64_g) -#define H5T_NATIVE_INT_FAST64 (H5OPEN H5T_NATIVE_INT_FAST64_g) -#define H5T_NATIVE_UINT_FAST64 (H5OPEN H5T_NATIVE_UINT_FAST64_g) -H5_DLLVAR hid_t H5T_NATIVE_INT64_g; -H5_DLLVAR hid_t H5T_NATIVE_UINT64_g; -H5_DLLVAR hid_t H5T_NATIVE_INT_LEAST64_g; -H5_DLLVAR hid_t H5T_NATIVE_UINT_LEAST64_g; -H5_DLLVAR hid_t H5T_NATIVE_INT_FAST64_g; -H5_DLLVAR hid_t H5T_NATIVE_UINT_FAST64_g; - -/* Operations defined on all datatypes */ -H5_DLL hid_t H5Tcreate(H5T_class_t type, size_t size); -H5_DLL hid_t H5Tcopy(hid_t type_id); -H5_DLL herr_t H5Tclose(hid_t type_id); -H5_DLL htri_t H5Tequal(hid_t type1_id, hid_t type2_id); -H5_DLL herr_t H5Tlock(hid_t type_id); -H5_DLL herr_t H5Tcommit2(hid_t loc_id, const char *name, hid_t type_id, - hid_t lcpl_id, hid_t tcpl_id, hid_t tapl_id); -H5_DLL hid_t H5Topen2(hid_t loc_id, const char *name, hid_t tapl_id); -H5_DLL herr_t H5Tcommit_anon(hid_t loc_id, hid_t type_id, hid_t tcpl_id, hid_t tapl_id); -H5_DLL hid_t H5Tget_create_plist(hid_t type_id); -H5_DLL htri_t H5Tcommitted(hid_t type_id); -H5_DLL herr_t H5Tencode(hid_t obj_id, void *buf, size_t *nalloc); -H5_DLL hid_t H5Tdecode(const void *buf); - -/* Operations defined on compound datatypes */ -H5_DLL herr_t H5Tinsert(hid_t parent_id, const char *name, size_t offset, - hid_t member_id); -H5_DLL herr_t H5Tpack(hid_t type_id); - -/* Operations defined on enumeration datatypes */ -H5_DLL hid_t H5Tenum_create(hid_t base_id); -H5_DLL herr_t H5Tenum_insert(hid_t type, const char *name, const void *value); -H5_DLL herr_t H5Tenum_nameof(hid_t type, const void *value, char *name/*out*/, - size_t size); -H5_DLL herr_t H5Tenum_valueof(hid_t type, const char *name, - void *value/*out*/); - -/* Operations defined on variable-length datatypes */ -H5_DLL hid_t H5Tvlen_create(hid_t base_id); - -/* Operations defined on array datatypes */ -H5_DLL hid_t H5Tarray_create2(hid_t base_id, unsigned ndims, - const hsize_t dim[/* ndims */]); -H5_DLL int H5Tget_array_ndims(hid_t type_id); -H5_DLL int H5Tget_array_dims2(hid_t type_id, hsize_t dims[]); - -/* Operations defined on opaque datatypes */ -H5_DLL herr_t H5Tset_tag(hid_t type, const char *tag); -H5_DLL char *H5Tget_tag(hid_t type); - -/* Querying property values */ -H5_DLL hid_t H5Tget_super(hid_t type); -H5_DLL H5T_class_t H5Tget_class(hid_t type_id); -H5_DLL htri_t H5Tdetect_class(hid_t type_id, H5T_class_t cls); -H5_DLL size_t H5Tget_size(hid_t type_id); -H5_DLL H5T_order_t H5Tget_order(hid_t type_id); -H5_DLL size_t H5Tget_precision(hid_t type_id); -H5_DLL int H5Tget_offset(hid_t type_id); -H5_DLL herr_t H5Tget_pad(hid_t type_id, H5T_pad_t *lsb/*out*/, - H5T_pad_t *msb/*out*/); -H5_DLL H5T_sign_t H5Tget_sign(hid_t type_id); -H5_DLL herr_t H5Tget_fields(hid_t type_id, size_t *spos/*out*/, - size_t *epos/*out*/, size_t *esize/*out*/, - size_t *mpos/*out*/, size_t *msize/*out*/); -H5_DLL size_t H5Tget_ebias(hid_t type_id); -H5_DLL H5T_norm_t H5Tget_norm(hid_t type_id); -H5_DLL H5T_pad_t H5Tget_inpad(hid_t type_id); -H5_DLL H5T_str_t H5Tget_strpad(hid_t type_id); -H5_DLL int H5Tget_nmembers(hid_t type_id); -H5_DLL char *H5Tget_member_name(hid_t type_id, unsigned membno); -H5_DLL int H5Tget_member_index(hid_t type_id, const char *name); -H5_DLL size_t H5Tget_member_offset(hid_t type_id, unsigned membno); -H5_DLL H5T_class_t H5Tget_member_class(hid_t type_id, unsigned membno); -H5_DLL hid_t H5Tget_member_type(hid_t type_id, unsigned membno); -H5_DLL herr_t H5Tget_member_value(hid_t type_id, unsigned membno, void *value/*out*/); -H5_DLL H5T_cset_t H5Tget_cset(hid_t type_id); -H5_DLL htri_t H5Tis_variable_str(hid_t type_id); -H5_DLL hid_t H5Tget_native_type(hid_t type_id, H5T_direction_t direction); - -/* Setting property values */ -H5_DLL herr_t H5Tset_size(hid_t type_id, size_t size); -H5_DLL herr_t H5Tset_order(hid_t type_id, H5T_order_t order); -H5_DLL herr_t H5Tset_precision(hid_t type_id, size_t prec); -H5_DLL herr_t H5Tset_offset(hid_t type_id, size_t offset); -H5_DLL herr_t H5Tset_pad(hid_t type_id, H5T_pad_t lsb, H5T_pad_t msb); -H5_DLL herr_t H5Tset_sign(hid_t type_id, H5T_sign_t sign); -H5_DLL herr_t H5Tset_fields(hid_t type_id, size_t spos, size_t epos, - size_t esize, size_t mpos, size_t msize); -H5_DLL herr_t H5Tset_ebias(hid_t type_id, size_t ebias); -H5_DLL herr_t H5Tset_norm(hid_t type_id, H5T_norm_t norm); -H5_DLL herr_t H5Tset_inpad(hid_t type_id, H5T_pad_t pad); -H5_DLL herr_t H5Tset_cset(hid_t type_id, H5T_cset_t cset); -H5_DLL herr_t H5Tset_strpad(hid_t type_id, H5T_str_t strpad); - -/* Type conversion database */ -H5_DLL herr_t H5Tregister(H5T_pers_t pers, const char *name, hid_t src_id, - hid_t dst_id, H5T_conv_t func); -H5_DLL herr_t H5Tunregister(H5T_pers_t pers, const char *name, hid_t src_id, - hid_t dst_id, H5T_conv_t func); -H5_DLL H5T_conv_t H5Tfind(hid_t src_id, hid_t dst_id, H5T_cdata_t **pcdata); -H5_DLL htri_t H5Tcompiler_conv(hid_t src_id, hid_t dst_id); -H5_DLL herr_t H5Tconvert(hid_t src_id, hid_t dst_id, size_t nelmts, - void *buf, void *background, hid_t plist_id); - -/* Symbols defined for compatibility with previous versions of the HDF5 API. - * - * Use of these symbols is deprecated. - */ -#ifndef H5_NO_DEPRECATED_SYMBOLS - -/* Macros */ - - -/* Typedefs */ - - -/* Function prototypes */ -H5_DLL herr_t H5Tcommit1(hid_t loc_id, const char *name, hid_t type_id); -H5_DLL hid_t H5Topen1(hid_t loc_id, const char *name); -H5_DLL hid_t H5Tarray_create1(hid_t base_id, int ndims, - const hsize_t dim[/* ndims */], - const int perm[/* ndims */]); -H5_DLL int H5Tget_array_dims1(hid_t type_id, hsize_t dims[], int perm[]); - -#endif /* H5_NO_DEPRECATED_SYMBOLS */ - -#ifdef __cplusplus -} -#endif -#endif /* _H5Tpublic_H */ - +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * This file contains public declarations for the H5T module. + */ +#ifndef _H5Tpublic_H +#define _H5Tpublic_H + +/* Public headers needed by this file */ +#include "H5public.h" +#include "H5Ipublic.h" + +#define HOFFSET(S,M) (offsetof(S,M)) + +/* These are the various classes of datatypes */ +/* If this goes over 16 types (0-15), the file format will need to change) */ +typedef enum H5T_class_t { + H5T_NO_CLASS = -1, /*error */ + H5T_INTEGER = 0, /*integer types */ + H5T_FLOAT = 1, /*floating-point types */ + H5T_TIME = 2, /*date and time types */ + H5T_STRING = 3, /*character string types */ + H5T_BITFIELD = 4, /*bit field types */ + H5T_OPAQUE = 5, /*opaque types */ + H5T_COMPOUND = 6, /*compound types */ + H5T_REFERENCE = 7, /*reference types */ + H5T_ENUM = 8, /*enumeration types */ + H5T_VLEN = 9, /*Variable-Length types */ + H5T_ARRAY = 10, /*Array types */ + + H5T_NCLASSES /*this must be last */ +} H5T_class_t; + +/* Byte orders */ +typedef enum H5T_order_t { + H5T_ORDER_ERROR = -1, /*error */ + H5T_ORDER_LE = 0, /*little endian */ + H5T_ORDER_BE = 1, /*bit endian */ + H5T_ORDER_VAX = 2, /*VAX mixed endian */ + H5T_ORDER_MIXED = 3, /*Compound type with mixed member orders */ + H5T_ORDER_NONE = 4 /*no particular order (strings, bits,..) */ + /*H5T_ORDER_NONE must be last */ +} H5T_order_t; + +/* Types of integer sign schemes */ +typedef enum H5T_sign_t { + H5T_SGN_ERROR = -1, /*error */ + H5T_SGN_NONE = 0, /*this is an unsigned type */ + H5T_SGN_2 = 1, /*two's complement */ + + H5T_NSGN = 2 /*this must be last! */ +} H5T_sign_t; + +/* Floating-point normalization schemes */ +typedef enum H5T_norm_t { + H5T_NORM_ERROR = -1, /*error */ + H5T_NORM_IMPLIED = 0, /*msb of mantissa isn't stored, always 1 */ + H5T_NORM_MSBSET = 1, /*msb of mantissa is always 1 */ + H5T_NORM_NONE = 2 /*not normalized */ + /*H5T_NORM_NONE must be last */ +} H5T_norm_t; + +/* + * Character set to use for text strings. Do not change these values since + * they appear in HDF5 files! + */ +typedef enum H5T_cset_t { + H5T_CSET_ERROR = -1, /*error */ + H5T_CSET_ASCII = 0, /*US ASCII */ + H5T_CSET_UTF8 = 1, /*UTF-8 Unicode encoding */ + H5T_CSET_RESERVED_2 = 2, /*reserved for later use */ + H5T_CSET_RESERVED_3 = 3, /*reserved for later use */ + H5T_CSET_RESERVED_4 = 4, /*reserved for later use */ + H5T_CSET_RESERVED_5 = 5, /*reserved for later use */ + H5T_CSET_RESERVED_6 = 6, /*reserved for later use */ + H5T_CSET_RESERVED_7 = 7, /*reserved for later use */ + H5T_CSET_RESERVED_8 = 8, /*reserved for later use */ + H5T_CSET_RESERVED_9 = 9, /*reserved for later use */ + H5T_CSET_RESERVED_10 = 10, /*reserved for later use */ + H5T_CSET_RESERVED_11 = 11, /*reserved for later use */ + H5T_CSET_RESERVED_12 = 12, /*reserved for later use */ + H5T_CSET_RESERVED_13 = 13, /*reserved for later use */ + H5T_CSET_RESERVED_14 = 14, /*reserved for later use */ + H5T_CSET_RESERVED_15 = 15 /*reserved for later use */ +} H5T_cset_t; +#define H5T_NCSET H5T_CSET_RESERVED_2 /*Number of character sets actually defined */ + +/* + * Type of padding to use in character strings. Do not change these values + * since they appear in HDF5 files! + */ +typedef enum H5T_str_t { + H5T_STR_ERROR = -1, /*error */ + H5T_STR_NULLTERM = 0, /*null terminate like in C */ + H5T_STR_NULLPAD = 1, /*pad with nulls */ + H5T_STR_SPACEPAD = 2, /*pad with spaces like in Fortran */ + H5T_STR_RESERVED_3 = 3, /*reserved for later use */ + H5T_STR_RESERVED_4 = 4, /*reserved for later use */ + H5T_STR_RESERVED_5 = 5, /*reserved for later use */ + H5T_STR_RESERVED_6 = 6, /*reserved for later use */ + H5T_STR_RESERVED_7 = 7, /*reserved for later use */ + H5T_STR_RESERVED_8 = 8, /*reserved for later use */ + H5T_STR_RESERVED_9 = 9, /*reserved for later use */ + H5T_STR_RESERVED_10 = 10, /*reserved for later use */ + H5T_STR_RESERVED_11 = 11, /*reserved for later use */ + H5T_STR_RESERVED_12 = 12, /*reserved for later use */ + H5T_STR_RESERVED_13 = 13, /*reserved for later use */ + H5T_STR_RESERVED_14 = 14, /*reserved for later use */ + H5T_STR_RESERVED_15 = 15 /*reserved for later use */ +} H5T_str_t; +#define H5T_NSTR H5T_STR_RESERVED_3 /*num H5T_str_t types actually defined */ + +/* Type of padding to use in other atomic types */ +typedef enum H5T_pad_t { + H5T_PAD_ERROR = -1, /*error */ + H5T_PAD_ZERO = 0, /*always set to zero */ + H5T_PAD_ONE = 1, /*always set to one */ + H5T_PAD_BACKGROUND = 2, /*set to background value */ + + H5T_NPAD = 3 /*THIS MUST BE LAST */ +} H5T_pad_t; + +/* Commands sent to conversion functions */ +typedef enum H5T_cmd_t { + H5T_CONV_INIT = 0, /*query and/or initialize private data */ + H5T_CONV_CONV = 1, /*convert data from source to dest datatype */ + H5T_CONV_FREE = 2 /*function is being removed from path */ +} H5T_cmd_t; + +/* How is the `bkg' buffer used by the conversion function? */ +typedef enum H5T_bkg_t { + H5T_BKG_NO = 0, /*background buffer is not needed, send NULL */ + H5T_BKG_TEMP = 1, /*bkg buffer used as temp storage only */ + H5T_BKG_YES = 2 /*init bkg buf with data before conversion */ +} H5T_bkg_t; + +/* Type conversion client data */ +typedef struct H5T_cdata_t { + H5T_cmd_t command;/*what should the conversion function do? */ + H5T_bkg_t need_bkg;/*is the background buffer needed? */ + hbool_t recalc; /*recalculate private data */ + void *priv; /*private data */ +} H5T_cdata_t; + +/* Conversion function persistence */ +typedef enum H5T_pers_t { + H5T_PERS_DONTCARE = -1, /*wild card */ + H5T_PERS_HARD = 0, /*hard conversion function */ + H5T_PERS_SOFT = 1 /*soft conversion function */ +} H5T_pers_t; + +/* The order to retrieve atomic native datatype */ +typedef enum H5T_direction_t { + H5T_DIR_DEFAULT = 0, /*default direction is inscendent */ + H5T_DIR_ASCEND = 1, /*in inscendent order */ + H5T_DIR_DESCEND = 2 /*in descendent order */ +} H5T_direction_t; + +/* The exception type passed into the conversion callback function */ +typedef enum H5T_conv_except_t { + H5T_CONV_EXCEPT_RANGE_HI = 0, /*source value is greater than destination's range */ + H5T_CONV_EXCEPT_RANGE_LOW = 1, /*source value is less than destination's range */ + H5T_CONV_EXCEPT_PRECISION = 2, /*source value loses precision in destination */ + H5T_CONV_EXCEPT_TRUNCATE = 3, /*source value is truncated in destination */ + H5T_CONV_EXCEPT_PINF = 4, /*source value is positive infinity(floating number) */ + H5T_CONV_EXCEPT_NINF = 5, /*source value is negative infinity(floating number) */ + H5T_CONV_EXCEPT_NAN = 6 /*source value is NaN(floating number) */ +} H5T_conv_except_t; + +/* The return value from conversion callback function H5T_conv_except_func_t */ +typedef enum H5T_conv_ret_t { + H5T_CONV_ABORT = -1, /*abort conversion */ + H5T_CONV_UNHANDLED = 0, /*callback function failed to handle the exception */ + H5T_CONV_HANDLED = 1 /*callback function handled the exception successfully */ +} H5T_conv_ret_t; + +/* Variable Length Datatype struct in memory */ +/* (This is only used for VL sequences, not VL strings, which are stored in char *'s) */ +typedef struct { + size_t len; /* Length of VL data (in base type units) */ + void *p; /* Pointer to VL data */ +} hvl_t; + +/* Variable Length String information */ +#define H5T_VARIABLE ((size_t)(-1)) /* Indicate that a string is variable length (null-terminated in C, instead of fixed length) */ + +/* Opaque information */ +#define H5T_OPAQUE_TAG_MAX 256 /* Maximum length of an opaque tag */ + /* This could be raised without too much difficulty */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* All datatype conversion functions are... */ +typedef herr_t (*H5T_conv_t) (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, + size_t nelmts, size_t buf_stride, size_t bkg_stride, void *buf, + void *bkg, hid_t dset_xfer_plist); + +/* Exception handler. If an exception like overflow happenes during conversion, + * this function is called if it's registered through H5Pset_type_conv_cb. + */ +typedef H5T_conv_ret_t (*H5T_conv_except_func_t)(H5T_conv_except_t except_type, + hid_t src_id, hid_t dst_id, void *src_buf, void *dst_buf, void *user_data); + +/* When this header is included from a private header, don't make calls to H5open() */ +#undef H5OPEN +#ifndef _H5private_H +#define H5OPEN H5open(), +#else /* _H5private_H */ +#define H5OPEN +#endif /* _H5private_H */ + +/* + * The IEEE floating point types in various byte orders. + */ +#define H5T_IEEE_F32BE (H5OPEN H5T_IEEE_F32BE_g) +#define H5T_IEEE_F32LE (H5OPEN H5T_IEEE_F32LE_g) +#define H5T_IEEE_F64BE (H5OPEN H5T_IEEE_F64BE_g) +#define H5T_IEEE_F64LE (H5OPEN H5T_IEEE_F64LE_g) +H5_DLLVAR hid_t H5T_IEEE_F32BE_g; +H5_DLLVAR hid_t H5T_IEEE_F32LE_g; +H5_DLLVAR hid_t H5T_IEEE_F64BE_g; +H5_DLLVAR hid_t H5T_IEEE_F64LE_g; + +/* + * These are "standard" types. For instance, signed (2's complement) and + * unsigned integers of various sizes and byte orders. + */ +#define H5T_STD_I8BE (H5OPEN H5T_STD_I8BE_g) +#define H5T_STD_I8LE (H5OPEN H5T_STD_I8LE_g) +#define H5T_STD_I16BE (H5OPEN H5T_STD_I16BE_g) +#define H5T_STD_I16LE (H5OPEN H5T_STD_I16LE_g) +#define H5T_STD_I32BE (H5OPEN H5T_STD_I32BE_g) +#define H5T_STD_I32LE (H5OPEN H5T_STD_I32LE_g) +#define H5T_STD_I64BE (H5OPEN H5T_STD_I64BE_g) +#define H5T_STD_I64LE (H5OPEN H5T_STD_I64LE_g) +#define H5T_STD_U8BE (H5OPEN H5T_STD_U8BE_g) +#define H5T_STD_U8LE (H5OPEN H5T_STD_U8LE_g) +#define H5T_STD_U16BE (H5OPEN H5T_STD_U16BE_g) +#define H5T_STD_U16LE (H5OPEN H5T_STD_U16LE_g) +#define H5T_STD_U32BE (H5OPEN H5T_STD_U32BE_g) +#define H5T_STD_U32LE (H5OPEN H5T_STD_U32LE_g) +#define H5T_STD_U64BE (H5OPEN H5T_STD_U64BE_g) +#define H5T_STD_U64LE (H5OPEN H5T_STD_U64LE_g) +#define H5T_STD_B8BE (H5OPEN H5T_STD_B8BE_g) +#define H5T_STD_B8LE (H5OPEN H5T_STD_B8LE_g) +#define H5T_STD_B16BE (H5OPEN H5T_STD_B16BE_g) +#define H5T_STD_B16LE (H5OPEN H5T_STD_B16LE_g) +#define H5T_STD_B32BE (H5OPEN H5T_STD_B32BE_g) +#define H5T_STD_B32LE (H5OPEN H5T_STD_B32LE_g) +#define H5T_STD_B64BE (H5OPEN H5T_STD_B64BE_g) +#define H5T_STD_B64LE (H5OPEN H5T_STD_B64LE_g) +#define H5T_STD_REF_OBJ (H5OPEN H5T_STD_REF_OBJ_g) +#define H5T_STD_REF_DSETREG (H5OPEN H5T_STD_REF_DSETREG_g) +H5_DLLVAR hid_t H5T_STD_I8BE_g; +H5_DLLVAR hid_t H5T_STD_I8LE_g; +H5_DLLVAR hid_t H5T_STD_I16BE_g; +H5_DLLVAR hid_t H5T_STD_I16LE_g; +H5_DLLVAR hid_t H5T_STD_I32BE_g; +H5_DLLVAR hid_t H5T_STD_I32LE_g; +H5_DLLVAR hid_t H5T_STD_I64BE_g; +H5_DLLVAR hid_t H5T_STD_I64LE_g; +H5_DLLVAR hid_t H5T_STD_U8BE_g; +H5_DLLVAR hid_t H5T_STD_U8LE_g; +H5_DLLVAR hid_t H5T_STD_U16BE_g; +H5_DLLVAR hid_t H5T_STD_U16LE_g; +H5_DLLVAR hid_t H5T_STD_U32BE_g; +H5_DLLVAR hid_t H5T_STD_U32LE_g; +H5_DLLVAR hid_t H5T_STD_U64BE_g; +H5_DLLVAR hid_t H5T_STD_U64LE_g; +H5_DLLVAR hid_t H5T_STD_B8BE_g; +H5_DLLVAR hid_t H5T_STD_B8LE_g; +H5_DLLVAR hid_t H5T_STD_B16BE_g; +H5_DLLVAR hid_t H5T_STD_B16LE_g; +H5_DLLVAR hid_t H5T_STD_B32BE_g; +H5_DLLVAR hid_t H5T_STD_B32LE_g; +H5_DLLVAR hid_t H5T_STD_B64BE_g; +H5_DLLVAR hid_t H5T_STD_B64LE_g; +H5_DLLVAR hid_t H5T_STD_REF_OBJ_g; +H5_DLLVAR hid_t H5T_STD_REF_DSETREG_g; + +/* + * Types which are particular to Unix. + */ +#define H5T_UNIX_D32BE (H5OPEN H5T_UNIX_D32BE_g) +#define H5T_UNIX_D32LE (H5OPEN H5T_UNIX_D32LE_g) +#define H5T_UNIX_D64BE (H5OPEN H5T_UNIX_D64BE_g) +#define H5T_UNIX_D64LE (H5OPEN H5T_UNIX_D64LE_g) +H5_DLLVAR hid_t H5T_UNIX_D32BE_g; +H5_DLLVAR hid_t H5T_UNIX_D32LE_g; +H5_DLLVAR hid_t H5T_UNIX_D64BE_g; +H5_DLLVAR hid_t H5T_UNIX_D64LE_g; + +/* + * Types particular to the C language. String types use `bytes' instead + * of `bits' as their size. + */ +#define H5T_C_S1 (H5OPEN H5T_C_S1_g) +H5_DLLVAR hid_t H5T_C_S1_g; + +/* + * Types particular to Fortran. + */ +#define H5T_FORTRAN_S1 (H5OPEN H5T_FORTRAN_S1_g) +H5_DLLVAR hid_t H5T_FORTRAN_S1_g; + +/* + * These types are for Intel CPU's. They are little endian with IEEE + * floating point. + */ +#define H5T_INTEL_I8 H5T_STD_I8LE +#define H5T_INTEL_I16 H5T_STD_I16LE +#define H5T_INTEL_I32 H5T_STD_I32LE +#define H5T_INTEL_I64 H5T_STD_I64LE +#define H5T_INTEL_U8 H5T_STD_U8LE +#define H5T_INTEL_U16 H5T_STD_U16LE +#define H5T_INTEL_U32 H5T_STD_U32LE +#define H5T_INTEL_U64 H5T_STD_U64LE +#define H5T_INTEL_B8 H5T_STD_B8LE +#define H5T_INTEL_B16 H5T_STD_B16LE +#define H5T_INTEL_B32 H5T_STD_B32LE +#define H5T_INTEL_B64 H5T_STD_B64LE +#define H5T_INTEL_F32 H5T_IEEE_F32LE +#define H5T_INTEL_F64 H5T_IEEE_F64LE + +/* + * These types are for DEC Alpha CPU's. They are little endian with IEEE + * floating point. + */ +#define H5T_ALPHA_I8 H5T_STD_I8LE +#define H5T_ALPHA_I16 H5T_STD_I16LE +#define H5T_ALPHA_I32 H5T_STD_I32LE +#define H5T_ALPHA_I64 H5T_STD_I64LE +#define H5T_ALPHA_U8 H5T_STD_U8LE +#define H5T_ALPHA_U16 H5T_STD_U16LE +#define H5T_ALPHA_U32 H5T_STD_U32LE +#define H5T_ALPHA_U64 H5T_STD_U64LE +#define H5T_ALPHA_B8 H5T_STD_B8LE +#define H5T_ALPHA_B16 H5T_STD_B16LE +#define H5T_ALPHA_B32 H5T_STD_B32LE +#define H5T_ALPHA_B64 H5T_STD_B64LE +#define H5T_ALPHA_F32 H5T_IEEE_F32LE +#define H5T_ALPHA_F64 H5T_IEEE_F64LE + +/* + * These types are for MIPS cpu's commonly used in SGI systems. They are big + * endian with IEEE floating point. + */ +#define H5T_MIPS_I8 H5T_STD_I8BE +#define H5T_MIPS_I16 H5T_STD_I16BE +#define H5T_MIPS_I32 H5T_STD_I32BE +#define H5T_MIPS_I64 H5T_STD_I64BE +#define H5T_MIPS_U8 H5T_STD_U8BE +#define H5T_MIPS_U16 H5T_STD_U16BE +#define H5T_MIPS_U32 H5T_STD_U32BE +#define H5T_MIPS_U64 H5T_STD_U64BE +#define H5T_MIPS_B8 H5T_STD_B8BE +#define H5T_MIPS_B16 H5T_STD_B16BE +#define H5T_MIPS_B32 H5T_STD_B32BE +#define H5T_MIPS_B64 H5T_STD_B64BE +#define H5T_MIPS_F32 H5T_IEEE_F32BE +#define H5T_MIPS_F64 H5T_IEEE_F64BE + +/* + * The VAX floating point types (i.e. in VAX byte order) + */ +#define H5T_VAX_F32 (H5OPEN H5T_VAX_F32_g) +#define H5T_VAX_F64 (H5OPEN H5T_VAX_F64_g) +H5_DLLVAR hid_t H5T_VAX_F32_g; +H5_DLLVAR hid_t H5T_VAX_F64_g; + +/* + * The predefined native types. These are the types detected by H5detect and + * they violate the naming scheme a little. Instead of a class name, + * precision and byte order as the last component, they have a C-like type + * name. If the type begins with `U' then it is the unsigned version of the + * integer type; other integer types are signed. The type LLONG corresponds + * to C's `long long' and LDOUBLE is `long double' (these types might be the + * same as `LONG' and `DOUBLE' respectively). + */ +#define H5T_NATIVE_CHAR (CHAR_MIN?H5T_NATIVE_SCHAR:H5T_NATIVE_UCHAR) +#define H5T_NATIVE_SCHAR (H5OPEN H5T_NATIVE_SCHAR_g) +#define H5T_NATIVE_UCHAR (H5OPEN H5T_NATIVE_UCHAR_g) +#define H5T_NATIVE_SHORT (H5OPEN H5T_NATIVE_SHORT_g) +#define H5T_NATIVE_USHORT (H5OPEN H5T_NATIVE_USHORT_g) +#define H5T_NATIVE_INT (H5OPEN H5T_NATIVE_INT_g) +#define H5T_NATIVE_UINT (H5OPEN H5T_NATIVE_UINT_g) +#define H5T_NATIVE_LONG (H5OPEN H5T_NATIVE_LONG_g) +#define H5T_NATIVE_ULONG (H5OPEN H5T_NATIVE_ULONG_g) +#define H5T_NATIVE_LLONG (H5OPEN H5T_NATIVE_LLONG_g) +#define H5T_NATIVE_ULLONG (H5OPEN H5T_NATIVE_ULLONG_g) +#define H5T_NATIVE_FLOAT (H5OPEN H5T_NATIVE_FLOAT_g) +#define H5T_NATIVE_DOUBLE (H5OPEN H5T_NATIVE_DOUBLE_g) +#if H5_SIZEOF_LONG_DOUBLE !=0 +#define H5T_NATIVE_LDOUBLE (H5OPEN H5T_NATIVE_LDOUBLE_g) +#endif +#define H5T_NATIVE_B8 (H5OPEN H5T_NATIVE_B8_g) +#define H5T_NATIVE_B16 (H5OPEN H5T_NATIVE_B16_g) +#define H5T_NATIVE_B32 (H5OPEN H5T_NATIVE_B32_g) +#define H5T_NATIVE_B64 (H5OPEN H5T_NATIVE_B64_g) +#define H5T_NATIVE_OPAQUE (H5OPEN H5T_NATIVE_OPAQUE_g) +#define H5T_NATIVE_HADDR (H5OPEN H5T_NATIVE_HADDR_g) +#define H5T_NATIVE_HSIZE (H5OPEN H5T_NATIVE_HSIZE_g) +#define H5T_NATIVE_HSSIZE (H5OPEN H5T_NATIVE_HSSIZE_g) +#define H5T_NATIVE_HERR (H5OPEN H5T_NATIVE_HERR_g) +#define H5T_NATIVE_HBOOL (H5OPEN H5T_NATIVE_HBOOL_g) +H5_DLLVAR hid_t H5T_NATIVE_SCHAR_g; +H5_DLLVAR hid_t H5T_NATIVE_UCHAR_g; +H5_DLLVAR hid_t H5T_NATIVE_SHORT_g; +H5_DLLVAR hid_t H5T_NATIVE_USHORT_g; +H5_DLLVAR hid_t H5T_NATIVE_INT_g; +H5_DLLVAR hid_t H5T_NATIVE_UINT_g; +H5_DLLVAR hid_t H5T_NATIVE_LONG_g; +H5_DLLVAR hid_t H5T_NATIVE_ULONG_g; +H5_DLLVAR hid_t H5T_NATIVE_LLONG_g; +H5_DLLVAR hid_t H5T_NATIVE_ULLONG_g; +H5_DLLVAR hid_t H5T_NATIVE_FLOAT_g; +H5_DLLVAR hid_t H5T_NATIVE_DOUBLE_g; +#if H5_SIZEOF_LONG_DOUBLE !=0 +H5_DLLVAR hid_t H5T_NATIVE_LDOUBLE_g; +#endif +H5_DLLVAR hid_t H5T_NATIVE_B8_g; +H5_DLLVAR hid_t H5T_NATIVE_B16_g; +H5_DLLVAR hid_t H5T_NATIVE_B32_g; +H5_DLLVAR hid_t H5T_NATIVE_B64_g; +H5_DLLVAR hid_t H5T_NATIVE_OPAQUE_g; +H5_DLLVAR hid_t H5T_NATIVE_HADDR_g; +H5_DLLVAR hid_t H5T_NATIVE_HSIZE_g; +H5_DLLVAR hid_t H5T_NATIVE_HSSIZE_g; +H5_DLLVAR hid_t H5T_NATIVE_HERR_g; +H5_DLLVAR hid_t H5T_NATIVE_HBOOL_g; + +/* C9x integer types */ +#define H5T_NATIVE_INT8 (H5OPEN H5T_NATIVE_INT8_g) +#define H5T_NATIVE_UINT8 (H5OPEN H5T_NATIVE_UINT8_g) +#define H5T_NATIVE_INT_LEAST8 (H5OPEN H5T_NATIVE_INT_LEAST8_g) +#define H5T_NATIVE_UINT_LEAST8 (H5OPEN H5T_NATIVE_UINT_LEAST8_g) +#define H5T_NATIVE_INT_FAST8 (H5OPEN H5T_NATIVE_INT_FAST8_g) +#define H5T_NATIVE_UINT_FAST8 (H5OPEN H5T_NATIVE_UINT_FAST8_g) +H5_DLLVAR hid_t H5T_NATIVE_INT8_g; +H5_DLLVAR hid_t H5T_NATIVE_UINT8_g; +H5_DLLVAR hid_t H5T_NATIVE_INT_LEAST8_g; +H5_DLLVAR hid_t H5T_NATIVE_UINT_LEAST8_g; +H5_DLLVAR hid_t H5T_NATIVE_INT_FAST8_g; +H5_DLLVAR hid_t H5T_NATIVE_UINT_FAST8_g; + +#define H5T_NATIVE_INT16 (H5OPEN H5T_NATIVE_INT16_g) +#define H5T_NATIVE_UINT16 (H5OPEN H5T_NATIVE_UINT16_g) +#define H5T_NATIVE_INT_LEAST16 (H5OPEN H5T_NATIVE_INT_LEAST16_g) +#define H5T_NATIVE_UINT_LEAST16 (H5OPEN H5T_NATIVE_UINT_LEAST16_g) +#define H5T_NATIVE_INT_FAST16 (H5OPEN H5T_NATIVE_INT_FAST16_g) +#define H5T_NATIVE_UINT_FAST16 (H5OPEN H5T_NATIVE_UINT_FAST16_g) +H5_DLLVAR hid_t H5T_NATIVE_INT16_g; +H5_DLLVAR hid_t H5T_NATIVE_UINT16_g; +H5_DLLVAR hid_t H5T_NATIVE_INT_LEAST16_g; +H5_DLLVAR hid_t H5T_NATIVE_UINT_LEAST16_g; +H5_DLLVAR hid_t H5T_NATIVE_INT_FAST16_g; +H5_DLLVAR hid_t H5T_NATIVE_UINT_FAST16_g; + +#define H5T_NATIVE_INT32 (H5OPEN H5T_NATIVE_INT32_g) +#define H5T_NATIVE_UINT32 (H5OPEN H5T_NATIVE_UINT32_g) +#define H5T_NATIVE_INT_LEAST32 (H5OPEN H5T_NATIVE_INT_LEAST32_g) +#define H5T_NATIVE_UINT_LEAST32 (H5OPEN H5T_NATIVE_UINT_LEAST32_g) +#define H5T_NATIVE_INT_FAST32 (H5OPEN H5T_NATIVE_INT_FAST32_g) +#define H5T_NATIVE_UINT_FAST32 (H5OPEN H5T_NATIVE_UINT_FAST32_g) +H5_DLLVAR hid_t H5T_NATIVE_INT32_g; +H5_DLLVAR hid_t H5T_NATIVE_UINT32_g; +H5_DLLVAR hid_t H5T_NATIVE_INT_LEAST32_g; +H5_DLLVAR hid_t H5T_NATIVE_UINT_LEAST32_g; +H5_DLLVAR hid_t H5T_NATIVE_INT_FAST32_g; +H5_DLLVAR hid_t H5T_NATIVE_UINT_FAST32_g; + +#define H5T_NATIVE_INT64 (H5OPEN H5T_NATIVE_INT64_g) +#define H5T_NATIVE_UINT64 (H5OPEN H5T_NATIVE_UINT64_g) +#define H5T_NATIVE_INT_LEAST64 (H5OPEN H5T_NATIVE_INT_LEAST64_g) +#define H5T_NATIVE_UINT_LEAST64 (H5OPEN H5T_NATIVE_UINT_LEAST64_g) +#define H5T_NATIVE_INT_FAST64 (H5OPEN H5T_NATIVE_INT_FAST64_g) +#define H5T_NATIVE_UINT_FAST64 (H5OPEN H5T_NATIVE_UINT_FAST64_g) +H5_DLLVAR hid_t H5T_NATIVE_INT64_g; +H5_DLLVAR hid_t H5T_NATIVE_UINT64_g; +H5_DLLVAR hid_t H5T_NATIVE_INT_LEAST64_g; +H5_DLLVAR hid_t H5T_NATIVE_UINT_LEAST64_g; +H5_DLLVAR hid_t H5T_NATIVE_INT_FAST64_g; +H5_DLLVAR hid_t H5T_NATIVE_UINT_FAST64_g; + +/* Operations defined on all datatypes */ +H5_DLL hid_t H5Tcreate(H5T_class_t type, size_t size); +H5_DLL hid_t H5Tcopy(hid_t type_id); +H5_DLL herr_t H5Tclose(hid_t type_id); +H5_DLL htri_t H5Tequal(hid_t type1_id, hid_t type2_id); +H5_DLL herr_t H5Tlock(hid_t type_id); +H5_DLL herr_t H5Tcommit2(hid_t loc_id, const char *name, hid_t type_id, + hid_t lcpl_id, hid_t tcpl_id, hid_t tapl_id); +H5_DLL hid_t H5Topen2(hid_t loc_id, const char *name, hid_t tapl_id); +H5_DLL herr_t H5Tcommit_anon(hid_t loc_id, hid_t type_id, hid_t tcpl_id, hid_t tapl_id); +H5_DLL hid_t H5Tget_create_plist(hid_t type_id); +H5_DLL htri_t H5Tcommitted(hid_t type_id); +H5_DLL herr_t H5Tencode(hid_t obj_id, void *buf, size_t *nalloc); +H5_DLL hid_t H5Tdecode(const void *buf); + +/* Operations defined on compound datatypes */ +H5_DLL herr_t H5Tinsert(hid_t parent_id, const char *name, size_t offset, + hid_t member_id); +H5_DLL herr_t H5Tpack(hid_t type_id); + +/* Operations defined on enumeration datatypes */ +H5_DLL hid_t H5Tenum_create(hid_t base_id); +H5_DLL herr_t H5Tenum_insert(hid_t type, const char *name, const void *value); +H5_DLL herr_t H5Tenum_nameof(hid_t type, const void *value, char *name/*out*/, + size_t size); +H5_DLL herr_t H5Tenum_valueof(hid_t type, const char *name, + void *value/*out*/); + +/* Operations defined on variable-length datatypes */ +H5_DLL hid_t H5Tvlen_create(hid_t base_id); + +/* Operations defined on array datatypes */ +H5_DLL hid_t H5Tarray_create2(hid_t base_id, unsigned ndims, + const hsize_t dim[/* ndims */]); +H5_DLL int H5Tget_array_ndims(hid_t type_id); +H5_DLL int H5Tget_array_dims2(hid_t type_id, hsize_t dims[]); + +/* Operations defined on opaque datatypes */ +H5_DLL herr_t H5Tset_tag(hid_t type, const char *tag); +H5_DLL char *H5Tget_tag(hid_t type); + +/* Querying property values */ +H5_DLL hid_t H5Tget_super(hid_t type); +H5_DLL H5T_class_t H5Tget_class(hid_t type_id); +H5_DLL htri_t H5Tdetect_class(hid_t type_id, H5T_class_t cls); +H5_DLL size_t H5Tget_size(hid_t type_id); +H5_DLL H5T_order_t H5Tget_order(hid_t type_id); +H5_DLL size_t H5Tget_precision(hid_t type_id); +H5_DLL int H5Tget_offset(hid_t type_id); +H5_DLL herr_t H5Tget_pad(hid_t type_id, H5T_pad_t *lsb/*out*/, + H5T_pad_t *msb/*out*/); +H5_DLL H5T_sign_t H5Tget_sign(hid_t type_id); +H5_DLL herr_t H5Tget_fields(hid_t type_id, size_t *spos/*out*/, + size_t *epos/*out*/, size_t *esize/*out*/, + size_t *mpos/*out*/, size_t *msize/*out*/); +H5_DLL size_t H5Tget_ebias(hid_t type_id); +H5_DLL H5T_norm_t H5Tget_norm(hid_t type_id); +H5_DLL H5T_pad_t H5Tget_inpad(hid_t type_id); +H5_DLL H5T_str_t H5Tget_strpad(hid_t type_id); +H5_DLL int H5Tget_nmembers(hid_t type_id); +H5_DLL char *H5Tget_member_name(hid_t type_id, unsigned membno); +H5_DLL int H5Tget_member_index(hid_t type_id, const char *name); +H5_DLL size_t H5Tget_member_offset(hid_t type_id, unsigned membno); +H5_DLL H5T_class_t H5Tget_member_class(hid_t type_id, unsigned membno); +H5_DLL hid_t H5Tget_member_type(hid_t type_id, unsigned membno); +H5_DLL herr_t H5Tget_member_value(hid_t type_id, unsigned membno, void *value/*out*/); +H5_DLL H5T_cset_t H5Tget_cset(hid_t type_id); +H5_DLL htri_t H5Tis_variable_str(hid_t type_id); +H5_DLL hid_t H5Tget_native_type(hid_t type_id, H5T_direction_t direction); + +/* Setting property values */ +H5_DLL herr_t H5Tset_size(hid_t type_id, size_t size); +H5_DLL herr_t H5Tset_order(hid_t type_id, H5T_order_t order); +H5_DLL herr_t H5Tset_precision(hid_t type_id, size_t prec); +H5_DLL herr_t H5Tset_offset(hid_t type_id, size_t offset); +H5_DLL herr_t H5Tset_pad(hid_t type_id, H5T_pad_t lsb, H5T_pad_t msb); +H5_DLL herr_t H5Tset_sign(hid_t type_id, H5T_sign_t sign); +H5_DLL herr_t H5Tset_fields(hid_t type_id, size_t spos, size_t epos, + size_t esize, size_t mpos, size_t msize); +H5_DLL herr_t H5Tset_ebias(hid_t type_id, size_t ebias); +H5_DLL herr_t H5Tset_norm(hid_t type_id, H5T_norm_t norm); +H5_DLL herr_t H5Tset_inpad(hid_t type_id, H5T_pad_t pad); +H5_DLL herr_t H5Tset_cset(hid_t type_id, H5T_cset_t cset); +H5_DLL herr_t H5Tset_strpad(hid_t type_id, H5T_str_t strpad); + +/* Type conversion database */ +H5_DLL herr_t H5Tregister(H5T_pers_t pers, const char *name, hid_t src_id, + hid_t dst_id, H5T_conv_t func); +H5_DLL herr_t H5Tunregister(H5T_pers_t pers, const char *name, hid_t src_id, + hid_t dst_id, H5T_conv_t func); +H5_DLL H5T_conv_t H5Tfind(hid_t src_id, hid_t dst_id, H5T_cdata_t **pcdata); +H5_DLL htri_t H5Tcompiler_conv(hid_t src_id, hid_t dst_id); +H5_DLL herr_t H5Tconvert(hid_t src_id, hid_t dst_id, size_t nelmts, + void *buf, void *background, hid_t plist_id); + +/* Symbols defined for compatibility with previous versions of the HDF5 API. + * + * Use of these symbols is deprecated. + */ +#ifndef H5_NO_DEPRECATED_SYMBOLS + +/* Macros */ + + +/* Typedefs */ + + +/* Function prototypes */ +H5_DLL herr_t H5Tcommit1(hid_t loc_id, const char *name, hid_t type_id); +H5_DLL hid_t H5Topen1(hid_t loc_id, const char *name); +H5_DLL hid_t H5Tarray_create1(hid_t base_id, int ndims, + const hsize_t dim[/* ndims */], + const int perm[/* ndims */]); +H5_DLL int H5Tget_array_dims1(hid_t type_id, hsize_t dims[], int perm[]); + +#endif /* H5_NO_DEPRECATED_SYMBOLS */ + +#ifdef __cplusplus +} +#endif +#endif /* _H5Tpublic_H */ + diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5VarLenType.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5VarLenType.h index c38b9facd1..9ad2b40c64 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5VarLenType.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5VarLenType.h @@ -1,53 +1,53 @@ -// C++ informative line for the emacs editor: -*- C++ -*- -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * 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 files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -// Class VarLenType inherits from DataType and provides wrappers for -// the HDF5 C's Variable-length Datatypes. - -#ifndef __H5VarLenType_H -#define __H5VarLenType_H - -#ifndef H5_NO_NAMESPACE -namespace H5 { -#endif - -//! VarLenType operates on the HDF5 C's Variable-length Datatypes. -class H5_DLLCPP VarLenType : public DataType { - public: - // Constructor that creates a variable-length datatype based - // on the specified base type. - VarLenType(const DataType* base_type); - - ///\brief Returns this class name. - virtual H5std_string fromClass () const { return("VarLenType"); } - - // Copy constructor: makes copy of the original object. - VarLenType( const VarLenType& original ); - - // Constructor that takes an existing id - VarLenType( const hid_t existing_id ); - - // Noop destructor - virtual ~VarLenType(); - - protected: - // Default constructor - VarLenType(); -}; -#ifndef H5_NO_NAMESPACE -} -#endif -#endif // __H5VarLenType_H +// C++ informative line for the emacs editor: -*- C++ -*- +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +// Class VarLenType inherits from DataType and provides wrappers for +// the HDF5 C's Variable-length Datatypes. + +#ifndef __H5VarLenType_H +#define __H5VarLenType_H + +#ifndef H5_NO_NAMESPACE +namespace H5 { +#endif + +//! VarLenType operates on the HDF5 C's Variable-length Datatypes. +class H5_DLLCPP VarLenType : public DataType { + public: + // Constructor that creates a variable-length datatype based + // on the specified base type. + VarLenType(const DataType* base_type); + + ///\brief Returns this class name. + virtual H5std_string fromClass () const { return("VarLenType"); } + + // Copy constructor: makes copy of the original object. + VarLenType( const VarLenType& original ); + + // Constructor that takes an existing id + VarLenType( const hid_t existing_id ); + + // Noop destructor + virtual ~VarLenType(); + + protected: + // Default constructor + VarLenType(); +}; +#ifndef H5_NO_NAMESPACE +} +#endif +#endif // __H5VarLenType_H diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Vprivate.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Vprivate.h index 5a703cca7a..26928241bb 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Vprivate.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Vprivate.h @@ -1,441 +1,441 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * 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 files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* - * Programmer: Robb Matzke - * Friday, October 10, 1997 - */ -#ifndef H5Vprivate_H -#define H5Vprivate_H - -/* Private headers needed by this file */ -#include "H5private.h" /* Generic Functions */ -#include "H5Eprivate.h" /* Error handling */ - -/* Vector-Vector sequence operation callback */ -typedef herr_t (*H5V_opvv_func_t)(hsize_t dst_off, hsize_t src_off, - size_t len, void *udata); - -/* Vector comparison functions like Fortran66 comparison operators */ -#define H5V_vector_eq_s(N,V1,V2) (H5V_vector_cmp_s (N, V1, V2)==0) -#define H5V_vector_lt_s(N,V1,V2) (H5V_vector_cmp_s (N, V1, V2)<0) -#define H5V_vector_gt_s(N,V1,V2) (H5V_vector_cmp_s (N, V1, V2)>0) -#define H5V_vector_le_s(N,V1,V2) (H5V_vector_cmp_s (N, V1, V2)<=0) -#define H5V_vector_ge_s(N,V1,V2) (H5V_vector_cmp_s (N, V1, V2)>=0) -#define H5V_vector_eq_u(N,V1,V2) (H5V_vector_cmp_u (N, V1, V2)==0) -#define H5V_vector_lt_u(N,V1,V2) (H5V_vector_cmp_u (N, V1, V2)<0) -#define H5V_vector_gt_u(N,V1,V2) (H5V_vector_cmp_u (N, V1, V2)>0) -#define H5V_vector_le_u(N,V1,V2) (H5V_vector_cmp_u (N, V1, V2)<=0) -#define H5V_vector_ge_u(N,V1,V2) (H5V_vector_cmp_u (N, V1, V2)>=0) - -/* Other functions */ -#define H5V_vector_cpy(N,DST,SRC) { \ - HDassert(sizeof(*(DST))==sizeof(*(SRC))); \ - if (SRC) HDmemcpy (DST, SRC, (N)*sizeof(*(DST))); \ - else HDmemset (DST, 0, (N)*sizeof(*(DST))); \ -} - -#define H5V_vector_zero(N,DST) HDmemset(DST,0,(N)*sizeof(*(DST))) - -/* A null pointer is equivalent to a zero vector */ -#define H5V_ZERO NULL - -H5_DLL hsize_t H5V_hyper_stride(unsigned n, const hsize_t *size, - const hsize_t *total_size, - const hsize_t *offset, - hsize_t *stride); -H5_DLL htri_t H5V_hyper_disjointp(unsigned n, const hsize_t *offset1, - const uint32_t *size1, const hsize_t *offset2, const uint32_t *size2); -H5_DLL htri_t H5V_hyper_eq(unsigned n, const hsize_t *offset1, - const hsize_t *size1, const hsize_t *offset2, - const hsize_t *size2); -H5_DLL herr_t H5V_hyper_fill(unsigned n, const hsize_t *_size, - const hsize_t *total_size, - const hsize_t *offset, void *_dst, - unsigned fill_value); -H5_DLL herr_t H5V_hyper_copy(unsigned n, const hsize_t *size, - const hsize_t *dst_total_size, - const hsize_t *dst_offset, void *_dst, - const hsize_t *src_total_size, - const hsize_t *src_offset, const void *_src); -H5_DLL herr_t H5V_stride_fill(unsigned n, hsize_t elmt_size, const hsize_t *size, - const hsize_t *stride, void *_dst, - unsigned fill_value); -H5_DLL herr_t H5V_stride_copy(unsigned n, hsize_t elmt_size, const hsize_t *_size, - const hsize_t *dst_stride, void *_dst, - const hsize_t *src_stride, const void *_src); -H5_DLL herr_t H5V_stride_copy_s(unsigned n, hsize_t elmt_size, const hsize_t *_size, - const hssize_t *dst_stride, void *_dst, - const hssize_t *src_stride, const void *_src); -H5_DLL herr_t H5V_array_fill(void *_dst, const void *src, size_t size, - size_t count); -H5_DLL herr_t H5V_array_down(unsigned n, const hsize_t *total_size, - hsize_t *down); -H5_DLL hsize_t H5V_array_offset_pre(unsigned n, - const hsize_t *acc, const hsize_t *offset); -H5_DLL hsize_t H5V_array_offset(unsigned n, const hsize_t *total_size, - const hsize_t *offset); -H5_DLL herr_t H5V_array_calc(hsize_t offset, unsigned n, - const hsize_t *total_size, hsize_t *coords); -H5_DLL herr_t H5V_chunk_index(unsigned ndims, const hsize_t *coord, - const uint32_t *chunk, const hsize_t *down_nchunks, hsize_t *chunk_idx); -H5_DLL ssize_t H5V_opvv(size_t dst_max_nseq, size_t *dst_curr_seq, size_t dst_len_arr[], - hsize_t dst_off_arr[], - size_t src_max_nseq, size_t *src_curr_seq, size_t src_len_arr[], - hsize_t src_off_arr[], - H5V_opvv_func_t op, void *op_data); -H5_DLL ssize_t H5V_memcpyvv(void *_dst, - size_t dst_max_nseq, size_t *dst_curr_seq, size_t dst_len_arr[], hsize_t dst_off_arr[], - const void *_src, - size_t src_max_nseq, size_t *src_curr_seq, size_t src_len_arr[], hsize_t src_off_arr[]); - - -/*------------------------------------------------------------------------- - * Function: H5V_vector_reduce_product - * - * Purpose: Product reduction of a vector. Vector elements and return - * value are size_t because we usually want the number of - * elements in an array and array dimensions are always of type - * size_t. - * - * Return: Success: Product of elements - * - * Failure: 1 if N is zero - * - * Programmer: Robb Matzke - * Friday, October 10, 1997 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -static H5_inline hsize_t UNUSED -H5V_vector_reduce_product(unsigned n, const hsize_t *v) -{ - hsize_t ret_value = 1; - - /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */ - FUNC_ENTER_NOAPI_NOINIT_NOERR - - if (n && !v) HGOTO_DONE(0) - while (n--) ret_value *= *v++; - -done: - FUNC_LEAVE_NOAPI(ret_value) -} - -/*------------------------------------------------------------------------- - * Function: H5V_vector_zerop_u - * - * Purpose: Determines if all elements of a vector are zero. - * - * Return: Success: TRUE if all elements are zero, - * FALSE otherwise - * - * Failure: TRUE if N is zero - * - * Programmer: Robb Matzke - * Friday, October 10, 1997 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -static H5_inline htri_t UNUSED -H5V_vector_zerop_u(int n, const hsize_t *v) -{ - htri_t ret_value=TRUE; /* Return value */ - - /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */ - FUNC_ENTER_NOAPI_NOINIT_NOERR - - if (!v) - HGOTO_DONE(TRUE) - while (n--) - if (*v++) - HGOTO_DONE(FALSE) - -done: - FUNC_LEAVE_NOAPI(ret_value) -} - -/*------------------------------------------------------------------------- - * Function: H5V_vector_zerop_s - * - * Purpose: Determines if all elements of a vector are zero. - * - * Return: Success: TRUE if all elements are zero, - * FALSE otherwise - * - * Failure: TRUE if N is zero - * - * Programmer: Robb Matzke - * Friday, October 10, 1997 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -static H5_inline htri_t UNUSED -H5V_vector_zerop_s(int n, const hssize_t *v) -{ - htri_t ret_value=TRUE; /* Return value */ - - /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */ - FUNC_ENTER_NOAPI_NOINIT_NOERR - - if (!v) - HGOTO_DONE(TRUE) - while (n--) - if (*v++) - HGOTO_DONE(FALSE) - -done: - FUNC_LEAVE_NOAPI(ret_value) -} - -/*------------------------------------------------------------------------- - * Function: H5V_vector_cmp_u - * - * Purpose: Compares two vectors of the same size and determines if V1 is - * lexicographically less than, equal, or greater than V2. - * - * Return: Success: -1 if V1 is less than V2 - * 0 if they are equal - * 1 if V1 is greater than V2 - * - * Failure: 0 if N is zero - * - * Programmer: Robb Matzke - * Friday, October 10, 1997 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -static H5_inline int UNUSED -H5V_vector_cmp_u (unsigned n, const hsize_t *v1, const hsize_t *v2) -{ - int ret_value=0; /* Return value */ - - /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */ - FUNC_ENTER_NOAPI_NOINIT_NOERR - - if (v1 == v2) HGOTO_DONE(0) - if (v1 == NULL) HGOTO_DONE(-1) - if (v2 == NULL) HGOTO_DONE(1) - while (n--) { - if (*v1 < *v2) HGOTO_DONE(-1) - if (*v1 > *v2) HGOTO_DONE(1) - v1++; - v2++; - } - -done: - FUNC_LEAVE_NOAPI(ret_value) -} - - -/*------------------------------------------------------------------------- - * Function: H5V_vector_cmp_s - * - * Purpose: Compares two vectors of the same size and determines if V1 is - * lexicographically less than, equal, or greater than V2. - * - * Return: Success: -1 if V1 is less than V2 - * 0 if they are equal - * 1 if V1 is greater than V2 - * - * Failure: 0 if N is zero - * - * Programmer: Robb Matzke - * Wednesday, April 8, 1998 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -static H5_inline int UNUSED -H5V_vector_cmp_s (unsigned n, const hssize_t *v1, const hssize_t *v2) -{ - int ret_value=0; /* Return value */ - - /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */ - FUNC_ENTER_NOAPI_NOINIT_NOERR - - if (v1 == v2) HGOTO_DONE(0) - if (v1 == NULL) HGOTO_DONE(-1) - if (v2 == NULL) HGOTO_DONE(1) - while (n--) { - if (*v1 < *v2) HGOTO_DONE(-1) - if (*v1 > *v2) HGOTO_DONE(1) - v1++; - v2++; - } - -done: - FUNC_LEAVE_NOAPI(ret_value) -} - - -/*------------------------------------------------------------------------- - * Function: H5V_vector_inc - * - * Purpose: Increments V1 by V2 - * - * Return: void - * - * Programmer: Robb Matzke - * Monday, October 13, 1997 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -static H5_inline void UNUSED -H5V_vector_inc(int n, hsize_t *v1, const hsize_t *v2) -{ - while (n--) *v1++ += *v2++; -} - -/* Lookup table for general log2(n) routine */ -static const unsigned char LogTable256[] = -{ - 0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 -}; - - -/*------------------------------------------------------------------------- - * Function: H5V_log2_gen - * - * Purpose: Determines the log base two of a number (i.e. log2(n)). - * (i.e. the highest bit set in a number) - * - * Note: This is from the "Bit Twiddling Hacks" at: - * http://graphics.stanford.edu/~seander/bithacks.html#IntegerLogLookup - * - * The version on the web-site is for 32-bit quantities and this - * version has been extended for 64-bit quantities. - * - * Return: log2(n) (always - no failure condition) - * - * Programmer: Quincey Koziol - * Monday, March 6, 2006 - * - *------------------------------------------------------------------------- - */ -static H5_inline unsigned UNUSED -H5V_log2_gen(uint64_t n) -{ - unsigned r; /* r will be log2(n) */ - register unsigned int t, tt, ttt; /* temporaries */ - -#ifdef H5_BAD_LOG2_CODE_GENERATED - if(n > (uint64_t)0x7fffffffffffffff) - r = 63; - else { - n &= (uint64_t)0x7fffffffffffffff; -#endif /* H5_BAD_LOG2_CODE_GENERATED */ - if((ttt = (unsigned)(n >> 32))) - if((tt = (unsigned)(n >> 48))) - r = (t = (unsigned)(n >> 56)) ? 56 + (unsigned)LogTable256[t] : 48 + (unsigned)LogTable256[tt & 0xFF]; - else - r = (t = (unsigned)(n >> 40)) ? 40 + (unsigned)LogTable256[t] : 32 + (unsigned)LogTable256[ttt & 0xFF]; - else - if((tt = (unsigned)(n >> 16))) - r = (t = (unsigned)(n >> 24)) ? 24 + (unsigned)LogTable256[t] : 16 + (unsigned)LogTable256[tt & 0xFF]; - else - /* Added 'uint8_t' cast to pacify PGCC compiler */ - r = (t = (unsigned)(n >> 8)) ? 8 + (unsigned)LogTable256[t] : (unsigned)LogTable256[(uint8_t)n]; -#ifdef H5_BAD_LOG2_CODE_GENERATED - } /* end else */ -#endif /* H5_BAD_LOG2_CODE_GENERATED */ - - return(r); -} /* H5V_log2_gen() */ - - -/* Lookup table for specialized log2(n) of power of two routine */ -static const unsigned MultiplyDeBruijnBitPosition[32] = -{ - 0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, - 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9 -}; - - -/*------------------------------------------------------------------------- - * Function: H5V_log2_of2 - * - * Purpose: Determines the log base two of a number (i.e. log2(n)). - * (i.e. the highest bit set in a number) - * - * Note: **N must be a power of two** and is limited to 32-bit quantities. - * - * This is from the "Bit Twiddling Hacks" at: - * http://graphics.stanford.edu/~seander/bithacks.html#IntegerLogDeBruijn - * - * Return: log2(n) (always - no failure condition) - * - * Programmer: Quincey Koziol - * Monday, Febraury 27, 2006 - * - *------------------------------------------------------------------------- - */ -static H5_inline unsigned UNUSED -H5V_log2_of2(uint32_t n) -{ -#ifndef NDEBUG - HDassert(POWER_OF_TWO(n)); -#endif /* NDEBUG */ - return(MultiplyDeBruijnBitPosition[(n * (uint32_t)0x077CB531UL) >> 27]); -} /* H5V_log2_of2() */ - - -/*------------------------------------------------------------------------- - * Function: H5V_limit_enc_size - * - * Purpose: Determine the # of bytes needed to encode values within a - * range from 0 to a given limit - * - * Return: Number of bytes needed - * - * Programmer: Quincey Koziol - * Thursday, March 13, 2008 - * - *------------------------------------------------------------------------- - */ -static H5_inline unsigned UNUSED -H5V_limit_enc_size(uint64_t limit) -{ - return (H5V_log2_gen(limit) / 8) + 1; -} /* end H5V_limit_enc_size() */ - -#endif /* H5Vprivate_H */ - +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * Programmer: Robb Matzke + * Friday, October 10, 1997 + */ +#ifndef H5Vprivate_H +#define H5Vprivate_H + +/* Private headers needed by this file */ +#include "H5private.h" /* Generic Functions */ +#include "H5Eprivate.h" /* Error handling */ + +/* Vector-Vector sequence operation callback */ +typedef herr_t (*H5V_opvv_func_t)(hsize_t dst_off, hsize_t src_off, + size_t len, void *udata); + +/* Vector comparison functions like Fortran66 comparison operators */ +#define H5V_vector_eq_s(N,V1,V2) (H5V_vector_cmp_s (N, V1, V2)==0) +#define H5V_vector_lt_s(N,V1,V2) (H5V_vector_cmp_s (N, V1, V2)<0) +#define H5V_vector_gt_s(N,V1,V2) (H5V_vector_cmp_s (N, V1, V2)>0) +#define H5V_vector_le_s(N,V1,V2) (H5V_vector_cmp_s (N, V1, V2)<=0) +#define H5V_vector_ge_s(N,V1,V2) (H5V_vector_cmp_s (N, V1, V2)>=0) +#define H5V_vector_eq_u(N,V1,V2) (H5V_vector_cmp_u (N, V1, V2)==0) +#define H5V_vector_lt_u(N,V1,V2) (H5V_vector_cmp_u (N, V1, V2)<0) +#define H5V_vector_gt_u(N,V1,V2) (H5V_vector_cmp_u (N, V1, V2)>0) +#define H5V_vector_le_u(N,V1,V2) (H5V_vector_cmp_u (N, V1, V2)<=0) +#define H5V_vector_ge_u(N,V1,V2) (H5V_vector_cmp_u (N, V1, V2)>=0) + +/* Other functions */ +#define H5V_vector_cpy(N,DST,SRC) { \ + HDassert(sizeof(*(DST))==sizeof(*(SRC))); \ + if (SRC) HDmemcpy (DST, SRC, (N)*sizeof(*(DST))); \ + else HDmemset (DST, 0, (N)*sizeof(*(DST))); \ +} + +#define H5V_vector_zero(N,DST) HDmemset(DST,0,(N)*sizeof(*(DST))) + +/* A null pointer is equivalent to a zero vector */ +#define H5V_ZERO NULL + +H5_DLL hsize_t H5V_hyper_stride(unsigned n, const hsize_t *size, + const hsize_t *total_size, + const hsize_t *offset, + hsize_t *stride); +H5_DLL htri_t H5V_hyper_disjointp(unsigned n, const hsize_t *offset1, + const uint32_t *size1, const hsize_t *offset2, const uint32_t *size2); +H5_DLL htri_t H5V_hyper_eq(unsigned n, const hsize_t *offset1, + const hsize_t *size1, const hsize_t *offset2, + const hsize_t *size2); +H5_DLL herr_t H5V_hyper_fill(unsigned n, const hsize_t *_size, + const hsize_t *total_size, + const hsize_t *offset, void *_dst, + unsigned fill_value); +H5_DLL herr_t H5V_hyper_copy(unsigned n, const hsize_t *size, + const hsize_t *dst_total_size, + const hsize_t *dst_offset, void *_dst, + const hsize_t *src_total_size, + const hsize_t *src_offset, const void *_src); +H5_DLL herr_t H5V_stride_fill(unsigned n, hsize_t elmt_size, const hsize_t *size, + const hsize_t *stride, void *_dst, + unsigned fill_value); +H5_DLL herr_t H5V_stride_copy(unsigned n, hsize_t elmt_size, const hsize_t *_size, + const hsize_t *dst_stride, void *_dst, + const hsize_t *src_stride, const void *_src); +H5_DLL herr_t H5V_stride_copy_s(unsigned n, hsize_t elmt_size, const hsize_t *_size, + const hssize_t *dst_stride, void *_dst, + const hssize_t *src_stride, const void *_src); +H5_DLL herr_t H5V_array_fill(void *_dst, const void *src, size_t size, + size_t count); +H5_DLL herr_t H5V_array_down(unsigned n, const hsize_t *total_size, + hsize_t *down); +H5_DLL hsize_t H5V_array_offset_pre(unsigned n, + const hsize_t *acc, const hsize_t *offset); +H5_DLL hsize_t H5V_array_offset(unsigned n, const hsize_t *total_size, + const hsize_t *offset); +H5_DLL herr_t H5V_array_calc(hsize_t offset, unsigned n, + const hsize_t *total_size, hsize_t *coords); +H5_DLL herr_t H5V_chunk_index(unsigned ndims, const hsize_t *coord, + const uint32_t *chunk, const hsize_t *down_nchunks, hsize_t *chunk_idx); +H5_DLL ssize_t H5V_opvv(size_t dst_max_nseq, size_t *dst_curr_seq, size_t dst_len_arr[], + hsize_t dst_off_arr[], + size_t src_max_nseq, size_t *src_curr_seq, size_t src_len_arr[], + hsize_t src_off_arr[], + H5V_opvv_func_t op, void *op_data); +H5_DLL ssize_t H5V_memcpyvv(void *_dst, + size_t dst_max_nseq, size_t *dst_curr_seq, size_t dst_len_arr[], hsize_t dst_off_arr[], + const void *_src, + size_t src_max_nseq, size_t *src_curr_seq, size_t src_len_arr[], hsize_t src_off_arr[]); + + +/*------------------------------------------------------------------------- + * Function: H5V_vector_reduce_product + * + * Purpose: Product reduction of a vector. Vector elements and return + * value are size_t because we usually want the number of + * elements in an array and array dimensions are always of type + * size_t. + * + * Return: Success: Product of elements + * + * Failure: 1 if N is zero + * + * Programmer: Robb Matzke + * Friday, October 10, 1997 + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +static H5_inline hsize_t UNUSED +H5V_vector_reduce_product(unsigned n, const hsize_t *v) +{ + hsize_t ret_value = 1; + + /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */ + FUNC_ENTER_NOAPI_NOINIT_NOERR + + if (n && !v) HGOTO_DONE(0) + while (n--) ret_value *= *v++; + +done: + FUNC_LEAVE_NOAPI(ret_value) +} + +/*------------------------------------------------------------------------- + * Function: H5V_vector_zerop_u + * + * Purpose: Determines if all elements of a vector are zero. + * + * Return: Success: TRUE if all elements are zero, + * FALSE otherwise + * + * Failure: TRUE if N is zero + * + * Programmer: Robb Matzke + * Friday, October 10, 1997 + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +static H5_inline htri_t UNUSED +H5V_vector_zerop_u(int n, const hsize_t *v) +{ + htri_t ret_value=TRUE; /* Return value */ + + /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */ + FUNC_ENTER_NOAPI_NOINIT_NOERR + + if (!v) + HGOTO_DONE(TRUE) + while (n--) + if (*v++) + HGOTO_DONE(FALSE) + +done: + FUNC_LEAVE_NOAPI(ret_value) +} + +/*------------------------------------------------------------------------- + * Function: H5V_vector_zerop_s + * + * Purpose: Determines if all elements of a vector are zero. + * + * Return: Success: TRUE if all elements are zero, + * FALSE otherwise + * + * Failure: TRUE if N is zero + * + * Programmer: Robb Matzke + * Friday, October 10, 1997 + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +static H5_inline htri_t UNUSED +H5V_vector_zerop_s(int n, const hssize_t *v) +{ + htri_t ret_value=TRUE; /* Return value */ + + /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */ + FUNC_ENTER_NOAPI_NOINIT_NOERR + + if (!v) + HGOTO_DONE(TRUE) + while (n--) + if (*v++) + HGOTO_DONE(FALSE) + +done: + FUNC_LEAVE_NOAPI(ret_value) +} + +/*------------------------------------------------------------------------- + * Function: H5V_vector_cmp_u + * + * Purpose: Compares two vectors of the same size and determines if V1 is + * lexicographically less than, equal, or greater than V2. + * + * Return: Success: -1 if V1 is less than V2 + * 0 if they are equal + * 1 if V1 is greater than V2 + * + * Failure: 0 if N is zero + * + * Programmer: Robb Matzke + * Friday, October 10, 1997 + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +static H5_inline int UNUSED +H5V_vector_cmp_u (unsigned n, const hsize_t *v1, const hsize_t *v2) +{ + int ret_value=0; /* Return value */ + + /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */ + FUNC_ENTER_NOAPI_NOINIT_NOERR + + if (v1 == v2) HGOTO_DONE(0) + if (v1 == NULL) HGOTO_DONE(-1) + if (v2 == NULL) HGOTO_DONE(1) + while (n--) { + if (*v1 < *v2) HGOTO_DONE(-1) + if (*v1 > *v2) HGOTO_DONE(1) + v1++; + v2++; + } + +done: + FUNC_LEAVE_NOAPI(ret_value) +} + + +/*------------------------------------------------------------------------- + * Function: H5V_vector_cmp_s + * + * Purpose: Compares two vectors of the same size and determines if V1 is + * lexicographically less than, equal, or greater than V2. + * + * Return: Success: -1 if V1 is less than V2 + * 0 if they are equal + * 1 if V1 is greater than V2 + * + * Failure: 0 if N is zero + * + * Programmer: Robb Matzke + * Wednesday, April 8, 1998 + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +static H5_inline int UNUSED +H5V_vector_cmp_s (unsigned n, const hssize_t *v1, const hssize_t *v2) +{ + int ret_value=0; /* Return value */ + + /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */ + FUNC_ENTER_NOAPI_NOINIT_NOERR + + if (v1 == v2) HGOTO_DONE(0) + if (v1 == NULL) HGOTO_DONE(-1) + if (v2 == NULL) HGOTO_DONE(1) + while (n--) { + if (*v1 < *v2) HGOTO_DONE(-1) + if (*v1 > *v2) HGOTO_DONE(1) + v1++; + v2++; + } + +done: + FUNC_LEAVE_NOAPI(ret_value) +} + + +/*------------------------------------------------------------------------- + * Function: H5V_vector_inc + * + * Purpose: Increments V1 by V2 + * + * Return: void + * + * Programmer: Robb Matzke + * Monday, October 13, 1997 + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +static H5_inline void UNUSED +H5V_vector_inc(int n, hsize_t *v1, const hsize_t *v2) +{ + while (n--) *v1++ += *v2++; +} + +/* Lookup table for general log2(n) routine */ +static const unsigned char LogTable256[] = +{ + 0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 +}; + + +/*------------------------------------------------------------------------- + * Function: H5V_log2_gen + * + * Purpose: Determines the log base two of a number (i.e. log2(n)). + * (i.e. the highest bit set in a number) + * + * Note: This is from the "Bit Twiddling Hacks" at: + * http://graphics.stanford.edu/~seander/bithacks.html#IntegerLogLookup + * + * The version on the web-site is for 32-bit quantities and this + * version has been extended for 64-bit quantities. + * + * Return: log2(n) (always - no failure condition) + * + * Programmer: Quincey Koziol + * Monday, March 6, 2006 + * + *------------------------------------------------------------------------- + */ +static H5_inline unsigned UNUSED +H5V_log2_gen(uint64_t n) +{ + unsigned r; /* r will be log2(n) */ + register unsigned int t, tt, ttt; /* temporaries */ + +#ifdef H5_BAD_LOG2_CODE_GENERATED + if(n > (uint64_t)0x7fffffffffffffff) + r = 63; + else { + n &= (uint64_t)0x7fffffffffffffff; +#endif /* H5_BAD_LOG2_CODE_GENERATED */ + if((ttt = (unsigned)(n >> 32))) + if((tt = (unsigned)(n >> 48))) + r = (t = (unsigned)(n >> 56)) ? 56 + (unsigned)LogTable256[t] : 48 + (unsigned)LogTable256[tt & 0xFF]; + else + r = (t = (unsigned)(n >> 40)) ? 40 + (unsigned)LogTable256[t] : 32 + (unsigned)LogTable256[ttt & 0xFF]; + else + if((tt = (unsigned)(n >> 16))) + r = (t = (unsigned)(n >> 24)) ? 24 + (unsigned)LogTable256[t] : 16 + (unsigned)LogTable256[tt & 0xFF]; + else + /* Added 'uint8_t' cast to pacify PGCC compiler */ + r = (t = (unsigned)(n >> 8)) ? 8 + (unsigned)LogTable256[t] : (unsigned)LogTable256[(uint8_t)n]; +#ifdef H5_BAD_LOG2_CODE_GENERATED + } /* end else */ +#endif /* H5_BAD_LOG2_CODE_GENERATED */ + + return(r); +} /* H5V_log2_gen() */ + + +/* Lookup table for specialized log2(n) of power of two routine */ +static const unsigned MultiplyDeBruijnBitPosition[32] = +{ + 0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, + 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9 +}; + + +/*------------------------------------------------------------------------- + * Function: H5V_log2_of2 + * + * Purpose: Determines the log base two of a number (i.e. log2(n)). + * (i.e. the highest bit set in a number) + * + * Note: **N must be a power of two** and is limited to 32-bit quantities. + * + * This is from the "Bit Twiddling Hacks" at: + * http://graphics.stanford.edu/~seander/bithacks.html#IntegerLogDeBruijn + * + * Return: log2(n) (always - no failure condition) + * + * Programmer: Quincey Koziol + * Monday, Febraury 27, 2006 + * + *------------------------------------------------------------------------- + */ +static H5_inline unsigned UNUSED +H5V_log2_of2(uint32_t n) +{ +#ifndef NDEBUG + HDassert(POWER_OF_TWO(n)); +#endif /* NDEBUG */ + return(MultiplyDeBruijnBitPosition[(n * (uint32_t)0x077CB531UL) >> 27]); +} /* H5V_log2_of2() */ + + +/*------------------------------------------------------------------------- + * Function: H5V_limit_enc_size + * + * Purpose: Determine the # of bytes needed to encode values within a + * range from 0 to a given limit + * + * Return: Number of bytes needed + * + * Programmer: Quincey Koziol + * Thursday, March 13, 2008 + * + *------------------------------------------------------------------------- + */ +static H5_inline unsigned UNUSED +H5V_limit_enc_size(uint64_t limit) +{ + return (H5V_log2_gen(limit) / 8) + 1; +} /* end H5V_limit_enc_size() */ + +#endif /* H5Vprivate_H */ + diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Zpkg.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Zpkg.h index 80bd22166e..b0df8561d7 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Zpkg.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Zpkg.h @@ -1,70 +1,70 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * 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 files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -#ifndef H5Z_PACKAGE -#error "Do not include this file outside the H5Z package!" -#endif - -#ifndef _H5Zpkg_H -#define _H5Zpkg_H - -/* Include private header file */ -#include "H5Zprivate.h" /* Filter functions */ - - -#ifdef H5_HAVE_FILTER_DEFLATE -/* - * Deflate filter - */ -H5_DLLVAR const H5Z_class2_t H5Z_DEFLATE[1]; -#endif /* H5_HAVE_FILTER_DEFLATE */ - -#ifdef H5_HAVE_FILTER_SHUFFLE -/* - * Shuffle filter - */ -H5_DLLVAR const H5Z_class2_t H5Z_SHUFFLE[1]; -#endif /* H5_HAVE_FILTER_SHUFFLE */ - -#ifdef H5_HAVE_FILTER_FLETCHER32 -/* - * Fletcher32 filter - */ -H5_DLLVAR const H5Z_class2_t H5Z_FLETCHER32[1]; -#endif /* H5_HAVE_FILTER_FLETCHER32 */ - -#ifdef H5_HAVE_FILTER_SZIP -/* - * szip filter - */ -H5_DLLVAR H5Z_class2_t H5Z_SZIP[1]; -#endif /* H5_HAVE_FILTER_SZIP */ - -#ifdef H5_HAVE_FILTER_NBIT -/* - * nbit filter - */ -H5_DLLVAR H5Z_class2_t H5Z_NBIT[1]; -#endif /* H5_HAVE_FILTER_NBIT */ - -#ifdef H5_HAVE_FILTER_SCALEOFFSET -/* - * scaleoffset filter - */ -H5_DLLVAR H5Z_class2_t H5Z_SCALEOFFSET[1]; -#endif /* H5_HAVE_FILTER_SCALEOFFSET */ - -#endif /* _H5Zpkg_H */ - +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#ifndef H5Z_PACKAGE +#error "Do not include this file outside the H5Z package!" +#endif + +#ifndef _H5Zpkg_H +#define _H5Zpkg_H + +/* Include private header file */ +#include "H5Zprivate.h" /* Filter functions */ + + +#ifdef H5_HAVE_FILTER_DEFLATE +/* + * Deflate filter + */ +H5_DLLVAR const H5Z_class2_t H5Z_DEFLATE[1]; +#endif /* H5_HAVE_FILTER_DEFLATE */ + +#ifdef H5_HAVE_FILTER_SHUFFLE +/* + * Shuffle filter + */ +H5_DLLVAR const H5Z_class2_t H5Z_SHUFFLE[1]; +#endif /* H5_HAVE_FILTER_SHUFFLE */ + +#ifdef H5_HAVE_FILTER_FLETCHER32 +/* + * Fletcher32 filter + */ +H5_DLLVAR const H5Z_class2_t H5Z_FLETCHER32[1]; +#endif /* H5_HAVE_FILTER_FLETCHER32 */ + +#ifdef H5_HAVE_FILTER_SZIP +/* + * szip filter + */ +H5_DLLVAR H5Z_class2_t H5Z_SZIP[1]; +#endif /* H5_HAVE_FILTER_SZIP */ + +#ifdef H5_HAVE_FILTER_NBIT +/* + * nbit filter + */ +H5_DLLVAR H5Z_class2_t H5Z_NBIT[1]; +#endif /* H5_HAVE_FILTER_NBIT */ + +#ifdef H5_HAVE_FILTER_SCALEOFFSET +/* + * scaleoffset filter + */ +H5_DLLVAR H5Z_class2_t H5Z_SCALEOFFSET[1]; +#endif /* H5_HAVE_FILTER_SCALEOFFSET */ + +#endif /* _H5Zpkg_H */ + diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Zprivate.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Zprivate.h index 2a97b00386..bd5bef0480 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Zprivate.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Zprivate.h @@ -1,111 +1,111 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * 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 files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* Programmer: Robb Matzke - * Thursday, April 16, 1998 - */ - -#ifndef _H5Zprivate_H -#define _H5Zprivate_H - -/* Include package's public header */ -#include "H5Zpublic.h" - -/* Private headers needed by this file */ -#include "H5Tprivate.h" /* Datatypes */ - -/**************************/ -/* Library Private Macros */ -/**************************/ - -/* Special parameters for szip compression */ -/* [These are aliases for the similar definitions in szlib.h, which we can't - * include directly due to the duplication of various symbols with the zlib.h - * header file] */ -#define H5_SZIP_LSB_OPTION_MASK 8 -#define H5_SZIP_MSB_OPTION_MASK 16 -#define H5_SZIP_RAW_OPTION_MASK 128 - -/* Common # of 'client data values' for filters */ -/* (avoids dynamic memory allocation in most cases) */ -#define H5Z_COMMON_CD_VALUES 4 - -/* Common size of filter name */ -/* (avoids dynamic memory allocation in most cases) */ -#define H5Z_COMMON_NAME_LEN 12 - -/****************************/ -/* Library Private Typedefs */ -/****************************/ - -/* Structure to store information about each filter's parameters */ -typedef struct { - H5Z_filter_t id; /*filter identification number */ - unsigned flags; /*defn and invocation flags */ - char _name[H5Z_COMMON_NAME_LEN]; /*internal filter name */ - char *name; /*optional filter name */ - size_t cd_nelmts; /*number of elements in cd_values[] */ - unsigned _cd_values[H5Z_COMMON_CD_VALUES]; /*internal client data values */ - unsigned *cd_values; /*client data values */ -} H5Z_filter_info_t; - -/*****************************/ -/* Library-private Variables */ -/*****************************/ - - -/***************************************/ -/* Library-private Function Prototypes */ -/***************************************/ -struct H5O_pline_t; /*forward decl*/ - -/* Internal API routines */ -H5_DLL herr_t H5Z_init(void); -H5_DLL herr_t H5Z_register(const H5Z_class2_t *cls); -H5_DLL herr_t H5Z_append(struct H5O_pline_t *pline, H5Z_filter_t filter, - unsigned flags, size_t cd_nelmts, const unsigned int cd_values[]); -H5_DLL herr_t H5Z_modify(const struct H5O_pline_t *pline, H5Z_filter_t filter, - unsigned flags, size_t cd_nelmts, const unsigned int cd_values[]); -H5_DLL herr_t H5Z_pipeline(const struct H5O_pline_t *pline, - unsigned flags, unsigned *filter_mask/*in,out*/, - H5Z_EDC_t edc_read, H5Z_cb_t cb_struct, - size_t *nbytes/*in,out*/, size_t *buf_size/*in,out*/, - void **buf/*in,out*/); -H5_DLL H5Z_class2_t *H5Z_find(H5Z_filter_t id); -H5_DLL herr_t H5Z_can_apply(hid_t dcpl_id, hid_t type_id); -H5_DLL herr_t H5Z_set_local(hid_t dcpl_id, hid_t type_id); -H5_DLL herr_t H5Z_can_apply_direct(const struct H5O_pline_t *pline); -H5_DLL herr_t H5Z_set_local_direct(const struct H5O_pline_t *pline); -H5_DLL H5Z_filter_info_t *H5Z_filter_info(const struct H5O_pline_t *pline, - H5Z_filter_t filter); -H5_DLL htri_t H5Z_filter_in_pline(const struct H5O_pline_t *pline, H5Z_filter_t filter); -H5_DLL htri_t H5Z_all_filters_avail(const struct H5O_pline_t *pline); -H5_DLL herr_t H5Z_unregister(H5Z_filter_t filter_id); -H5_DLL htri_t H5Z_filter_avail(H5Z_filter_t id); -H5_DLL herr_t H5Z_delete(struct H5O_pline_t *pline, H5Z_filter_t filter); -H5_DLL herr_t H5Z_get_filter_info(H5Z_filter_t filter, unsigned int *filter_config_flags); - -/* Data Transform Functions */ -typedef struct H5Z_data_xform_t H5Z_data_xform_t; /* Defined in H5Ztrans.c */ - -H5_DLL H5Z_data_xform_t *H5Z_xform_create(const char *expr); -H5_DLL herr_t H5Z_xform_copy(H5Z_data_xform_t **data_xform_prop); -H5_DLL herr_t H5Z_xform_destroy(H5Z_data_xform_t *data_xform_prop); -H5_DLL herr_t H5Z_xform_eval(H5Z_data_xform_t *data_xform_prop, void *array, - size_t array_size, const H5T_t *buf_type); -H5_DLL hbool_t H5Z_xform_noop(const H5Z_data_xform_t *data_xform_prop); -H5_DLL const char *H5Z_xform_extract_xform_str(const H5Z_data_xform_t *data_xform_prop); - -#endif +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* Programmer: Robb Matzke + * Thursday, April 16, 1998 + */ + +#ifndef _H5Zprivate_H +#define _H5Zprivate_H + +/* Include package's public header */ +#include "H5Zpublic.h" + +/* Private headers needed by this file */ +#include "H5Tprivate.h" /* Datatypes */ + +/**************************/ +/* Library Private Macros */ +/**************************/ + +/* Special parameters for szip compression */ +/* [These are aliases for the similar definitions in szlib.h, which we can't + * include directly due to the duplication of various symbols with the zlib.h + * header file] */ +#define H5_SZIP_LSB_OPTION_MASK 8 +#define H5_SZIP_MSB_OPTION_MASK 16 +#define H5_SZIP_RAW_OPTION_MASK 128 + +/* Common # of 'client data values' for filters */ +/* (avoids dynamic memory allocation in most cases) */ +#define H5Z_COMMON_CD_VALUES 4 + +/* Common size of filter name */ +/* (avoids dynamic memory allocation in most cases) */ +#define H5Z_COMMON_NAME_LEN 12 + +/****************************/ +/* Library Private Typedefs */ +/****************************/ + +/* Structure to store information about each filter's parameters */ +typedef struct { + H5Z_filter_t id; /*filter identification number */ + unsigned flags; /*defn and invocation flags */ + char _name[H5Z_COMMON_NAME_LEN]; /*internal filter name */ + char *name; /*optional filter name */ + size_t cd_nelmts; /*number of elements in cd_values[] */ + unsigned _cd_values[H5Z_COMMON_CD_VALUES]; /*internal client data values */ + unsigned *cd_values; /*client data values */ +} H5Z_filter_info_t; + +/*****************************/ +/* Library-private Variables */ +/*****************************/ + + +/***************************************/ +/* Library-private Function Prototypes */ +/***************************************/ +struct H5O_pline_t; /*forward decl*/ + +/* Internal API routines */ +H5_DLL herr_t H5Z_init(void); +H5_DLL herr_t H5Z_register(const H5Z_class2_t *cls); +H5_DLL herr_t H5Z_append(struct H5O_pline_t *pline, H5Z_filter_t filter, + unsigned flags, size_t cd_nelmts, const unsigned int cd_values[]); +H5_DLL herr_t H5Z_modify(const struct H5O_pline_t *pline, H5Z_filter_t filter, + unsigned flags, size_t cd_nelmts, const unsigned int cd_values[]); +H5_DLL herr_t H5Z_pipeline(const struct H5O_pline_t *pline, + unsigned flags, unsigned *filter_mask/*in,out*/, + H5Z_EDC_t edc_read, H5Z_cb_t cb_struct, + size_t *nbytes/*in,out*/, size_t *buf_size/*in,out*/, + void **buf/*in,out*/); +H5_DLL H5Z_class2_t *H5Z_find(H5Z_filter_t id); +H5_DLL herr_t H5Z_can_apply(hid_t dcpl_id, hid_t type_id); +H5_DLL herr_t H5Z_set_local(hid_t dcpl_id, hid_t type_id); +H5_DLL herr_t H5Z_can_apply_direct(const struct H5O_pline_t *pline); +H5_DLL herr_t H5Z_set_local_direct(const struct H5O_pline_t *pline); +H5_DLL H5Z_filter_info_t *H5Z_filter_info(const struct H5O_pline_t *pline, + H5Z_filter_t filter); +H5_DLL htri_t H5Z_filter_in_pline(const struct H5O_pline_t *pline, H5Z_filter_t filter); +H5_DLL htri_t H5Z_all_filters_avail(const struct H5O_pline_t *pline); +H5_DLL herr_t H5Z_unregister(H5Z_filter_t filter_id); +H5_DLL htri_t H5Z_filter_avail(H5Z_filter_t id); +H5_DLL herr_t H5Z_delete(struct H5O_pline_t *pline, H5Z_filter_t filter); +H5_DLL herr_t H5Z_get_filter_info(H5Z_filter_t filter, unsigned int *filter_config_flags); + +/* Data Transform Functions */ +typedef struct H5Z_data_xform_t H5Z_data_xform_t; /* Defined in H5Ztrans.c */ + +H5_DLL H5Z_data_xform_t *H5Z_xform_create(const char *expr); +H5_DLL herr_t H5Z_xform_copy(H5Z_data_xform_t **data_xform_prop); +H5_DLL herr_t H5Z_xform_destroy(H5Z_data_xform_t *data_xform_prop); +H5_DLL herr_t H5Z_xform_eval(H5Z_data_xform_t *data_xform_prop, void *array, + size_t array_size, const H5T_t *buf_type); +H5_DLL hbool_t H5Z_xform_noop(const H5Z_data_xform_t *data_xform_prop); +H5_DLL const char *H5Z_xform_extract_xform_str(const H5Z_data_xform_t *data_xform_prop); + +#endif diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Zpublic.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Zpublic.h index a7dbaefd75..8daa5f490d 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Zpublic.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5Zpublic.h @@ -1,250 +1,250 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * 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 files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* Programmer: Robb Matzke - * Thursday, April 16, 1998 - */ - -#ifndef _H5Zpublic_H -#define _H5Zpublic_H - -/* Public headers needed by this file */ -#include "H5public.h" - -/* - * Filter identifiers. Values 0 through 255 are for filters defined by the - * HDF5 library. Values 256 through 511 are available for testing new - * filters. Subsequent values should be obtained from the HDF5 development - * team at hdf5dev@ncsa.uiuc.edu. These values will never change because they - * appear in the HDF5 files. - */ -typedef int H5Z_filter_t; - -/* Filter IDs */ -#define H5Z_FILTER_ERROR (-1) /*no filter */ -#define H5Z_FILTER_NONE 0 /*reserved indefinitely */ -#define H5Z_FILTER_DEFLATE 1 /*deflation like gzip */ -#define H5Z_FILTER_SHUFFLE 2 /*shuffle the data */ -#define H5Z_FILTER_FLETCHER32 3 /*fletcher32 checksum of EDC */ -#define H5Z_FILTER_SZIP 4 /*szip compression */ -#define H5Z_FILTER_NBIT 5 /*nbit compression */ -#define H5Z_FILTER_SCALEOFFSET 6 /*scale+offset compression */ -#define H5Z_FILTER_RESERVED 256 /*filter ids below this value are reserved for library use */ - -#define H5Z_FILTER_MAX 65535 /*maximum filter id */ - -/* General macros */ -#define H5Z_FILTER_ALL 0 /* Symbol to remove all filters in H5Premove_filter */ -#define H5Z_MAX_NFILTERS 32 /* Maximum number of filters allowed in a pipeline */ - /* (should probably be allowed to be an - * unlimited amount, but currently each - * filter uses a bit in a 32-bit field, - * so the format would have to be - * changed to accomodate that) - */ - -/* Flags for filter definition (stored) */ -#define H5Z_FLAG_DEFMASK 0x00ff /*definition flag mask */ -#define H5Z_FLAG_MANDATORY 0x0000 /*filter is mandatory */ -#define H5Z_FLAG_OPTIONAL 0x0001 /*filter is optional */ - -/* Additional flags for filter invocation (not stored) */ -#define H5Z_FLAG_INVMASK 0xff00 /*invocation flag mask */ -#define H5Z_FLAG_REVERSE 0x0100 /*reverse direction; read */ -#define H5Z_FLAG_SKIP_EDC 0x0200 /*skip EDC filters for read */ - -/* Special parameters for szip compression */ -/* [These are aliases for the similar definitions in szlib.h, which we can't - * include directly due to the duplication of various symbols with the zlib.h - * header file] */ -#define H5_SZIP_ALLOW_K13_OPTION_MASK 1 -#define H5_SZIP_CHIP_OPTION_MASK 2 -#define H5_SZIP_EC_OPTION_MASK 4 -#define H5_SZIP_NN_OPTION_MASK 32 -#define H5_SZIP_MAX_PIXELS_PER_BLOCK 32 - -/* Macros for the shuffle filter */ -#define H5Z_SHUFFLE_USER_NPARMS 0 /* Number of parameters that users can set */ -#define H5Z_SHUFFLE_TOTAL_NPARMS 1 /* Total number of parameters for filter */ - -/* Macros for the szip filter */ -#define H5Z_SZIP_USER_NPARMS 2 /* Number of parameters that users can set */ -#define H5Z_SZIP_TOTAL_NPARMS 4 /* Total number of parameters for filter */ -#define H5Z_SZIP_PARM_MASK 0 /* "User" parameter for option mask */ -#define H5Z_SZIP_PARM_PPB 1 /* "User" parameter for pixels-per-block */ -#define H5Z_SZIP_PARM_BPP 2 /* "Local" parameter for bits-per-pixel */ -#define H5Z_SZIP_PARM_PPS 3 /* "Local" parameter for pixels-per-scanline */ - -/* Macros for the nbit filter */ -#define H5Z_NBIT_USER_NPARMS 0 /* Number of parameters that users can set */ - -/* Macros for the scale offset filter */ -#define H5Z_SCALEOFFSET_USER_NPARMS 2 /* Number of parameters that users can set */ - - -/* Special parameters for ScaleOffset filter*/ -#define H5Z_SO_INT_MINBITS_DEFAULT 0 -typedef enum H5Z_SO_scale_type_t { - H5Z_SO_FLOAT_DSCALE = 0, - H5Z_SO_FLOAT_ESCALE = 1, - H5Z_SO_INT = 2 -} H5Z_SO_scale_type_t; - -/* Current version of the H5Z_class_t struct */ -#define H5Z_CLASS_T_VERS (1) - -/* Values to decide if EDC is enabled for reading data */ -typedef enum H5Z_EDC_t { - H5Z_ERROR_EDC = -1, /* error value */ - H5Z_DISABLE_EDC = 0, - H5Z_ENABLE_EDC = 1, - H5Z_NO_EDC = 2 /* must be the last */ -} H5Z_EDC_t; - -/* Bit flags for H5Zget_filter_info */ -#define H5Z_FILTER_CONFIG_ENCODE_ENABLED (0x0001) -#define H5Z_FILTER_CONFIG_DECODE_ENABLED (0x0002) - -/* Return values for filter callback function */ -typedef enum H5Z_cb_return_t { - H5Z_CB_ERROR = -1, - H5Z_CB_FAIL = 0, /* I/O should fail if filter fails. */ - H5Z_CB_CONT = 1, /* I/O continues if filter fails. */ - H5Z_CB_NO = 2 -} H5Z_cb_return_t; - -/* Filter callback function definition */ -typedef H5Z_cb_return_t (*H5Z_filter_func_t)(H5Z_filter_t filter, void* buf, - size_t buf_size, void* op_data); - -/* Structure for filter callback property */ -typedef struct H5Z_cb_t { - H5Z_filter_func_t func; - void* op_data; -} H5Z_cb_t; - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Before a dataset gets created, the "can_apply" callbacks for any filters used - * in the dataset creation property list are called - * with the dataset's dataset creation property list, the dataset's datatype and - * a dataspace describing a chunk (for chunked dataset storage). - * - * The "can_apply" callback must determine if the combination of the dataset - * creation property list setting, the datatype and the dataspace represent a - * valid combination to apply this filter to. For example, some cases of - * invalid combinations may involve the filter not operating correctly on - * certain datatypes (or certain datatype sizes), or certain sizes of the chunk - * dataspace. - * - * The "can_apply" callback can be the NULL pointer, in which case, the library - * will assume that it can apply to any combination of dataset creation - * property list values, datatypes and dataspaces. - * - * The "can_apply" callback returns positive a valid combination, zero for an - * invalid combination and negative for an error. - */ -typedef htri_t (*H5Z_can_apply_func_t)(hid_t dcpl_id, hid_t type_id, hid_t space_id); - -/* - * After the "can_apply" callbacks are checked for new datasets, the "set_local" - * callbacks for any filters used in the dataset creation property list are - * called. These callbacks receive the dataset's private copy of the dataset - * creation property list passed in to H5Dcreate (i.e. not the actual property - * list passed in to H5Dcreate) and the datatype ID passed in to H5Dcreate - * (which is not copied and should not be modified) and a dataspace describing - * the chunk (for chunked dataset storage) (which should also not be modified). - * - * The "set_local" callback must set any parameters that are specific to this - * dataset, based on the combination of the dataset creation property list - * values, the datatype and the dataspace. For example, some filters perform - * different actions based on different datatypes (or datatype sizes) or - * different number of dimensions or dataspace sizes. - * - * The "set_local" callback can be the NULL pointer, in which case, the library - * will assume that there are no dataset-specific settings for this filter. - * - * The "set_local" callback must return non-negative on success and negative - * for an error. - */ -typedef herr_t (*H5Z_set_local_func_t)(hid_t dcpl_id, hid_t type_id, hid_t space_id); - -/* - * A filter gets definition flags and invocation flags (defined above), the - * client data array and size defined when the filter was added to the - * pipeline, the size in bytes of the data on which to operate, and pointers - * to a buffer and its allocated size. - * - * The filter should store the result in the supplied buffer if possible, - * otherwise it can allocate a new buffer, freeing the original. The - * allocated size of the new buffer should be returned through the BUF_SIZE - * pointer and the new buffer through the BUF pointer. - * - * The return value from the filter is the number of bytes in the output - * buffer. If an error occurs then the function should return zero and leave - * all pointer arguments unchanged. - */ -typedef size_t (*H5Z_func_t)(unsigned int flags, size_t cd_nelmts, - const unsigned int cd_values[], size_t nbytes, - size_t *buf_size, void **buf); - -/* - * The filter table maps filter identification numbers to structs that - * contain a pointers to the filter function and timing statistics. - */ -typedef struct H5Z_class2_t { - int version; /* Version number of the H5Z_class_t struct */ - H5Z_filter_t id; /* Filter ID number */ - unsigned encoder_present; /* Does this filter have an encoder? */ - unsigned decoder_present; /* Does this filter have a decoder? */ - const char *name; /* Comment for debugging */ - H5Z_can_apply_func_t can_apply; /* The "can apply" callback for a filter */ - H5Z_set_local_func_t set_local; /* The "set local" callback for a filter */ - H5Z_func_t filter; /* The actual filter function */ -} H5Z_class2_t; - -H5_DLL herr_t H5Zregister(const void *cls); -H5_DLL herr_t H5Zunregister(H5Z_filter_t id); -H5_DLL htri_t H5Zfilter_avail(H5Z_filter_t id); -H5_DLL herr_t H5Zget_filter_info(H5Z_filter_t filter, unsigned int *filter_config_flags); - -/* Symbols defined for compatibility with previous versions of the HDF5 API. - * - * Use of these symbols is deprecated. - */ -#ifndef H5_NO_DEPRECATED_SYMBOLS - -/* - * The filter table maps filter identification numbers to structs that - * contain a pointers to the filter function and timing statistics. - */ -typedef struct H5Z_class1_t { - H5Z_filter_t id; /* Filter ID number */ - const char *name; /* Comment for debugging */ - H5Z_can_apply_func_t can_apply; /* The "can apply" callback for a filter */ - H5Z_set_local_func_t set_local; /* The "set local" callback for a filter */ - H5Z_func_t filter; /* The actual filter function */ -} H5Z_class1_t; - -#endif /* H5_NO_DEPRECATED_SYMBOLS */ - -#ifdef __cplusplus -} -#endif -#endif - +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* Programmer: Robb Matzke + * Thursday, April 16, 1998 + */ + +#ifndef _H5Zpublic_H +#define _H5Zpublic_H + +/* Public headers needed by this file */ +#include "H5public.h" + +/* + * Filter identifiers. Values 0 through 255 are for filters defined by the + * HDF5 library. Values 256 through 511 are available for testing new + * filters. Subsequent values should be obtained from the HDF5 development + * team at hdf5dev@ncsa.uiuc.edu. These values will never change because they + * appear in the HDF5 files. + */ +typedef int H5Z_filter_t; + +/* Filter IDs */ +#define H5Z_FILTER_ERROR (-1) /*no filter */ +#define H5Z_FILTER_NONE 0 /*reserved indefinitely */ +#define H5Z_FILTER_DEFLATE 1 /*deflation like gzip */ +#define H5Z_FILTER_SHUFFLE 2 /*shuffle the data */ +#define H5Z_FILTER_FLETCHER32 3 /*fletcher32 checksum of EDC */ +#define H5Z_FILTER_SZIP 4 /*szip compression */ +#define H5Z_FILTER_NBIT 5 /*nbit compression */ +#define H5Z_FILTER_SCALEOFFSET 6 /*scale+offset compression */ +#define H5Z_FILTER_RESERVED 256 /*filter ids below this value are reserved for library use */ + +#define H5Z_FILTER_MAX 65535 /*maximum filter id */ + +/* General macros */ +#define H5Z_FILTER_ALL 0 /* Symbol to remove all filters in H5Premove_filter */ +#define H5Z_MAX_NFILTERS 32 /* Maximum number of filters allowed in a pipeline */ + /* (should probably be allowed to be an + * unlimited amount, but currently each + * filter uses a bit in a 32-bit field, + * so the format would have to be + * changed to accomodate that) + */ + +/* Flags for filter definition (stored) */ +#define H5Z_FLAG_DEFMASK 0x00ff /*definition flag mask */ +#define H5Z_FLAG_MANDATORY 0x0000 /*filter is mandatory */ +#define H5Z_FLAG_OPTIONAL 0x0001 /*filter is optional */ + +/* Additional flags for filter invocation (not stored) */ +#define H5Z_FLAG_INVMASK 0xff00 /*invocation flag mask */ +#define H5Z_FLAG_REVERSE 0x0100 /*reverse direction; read */ +#define H5Z_FLAG_SKIP_EDC 0x0200 /*skip EDC filters for read */ + +/* Special parameters for szip compression */ +/* [These are aliases for the similar definitions in szlib.h, which we can't + * include directly due to the duplication of various symbols with the zlib.h + * header file] */ +#define H5_SZIP_ALLOW_K13_OPTION_MASK 1 +#define H5_SZIP_CHIP_OPTION_MASK 2 +#define H5_SZIP_EC_OPTION_MASK 4 +#define H5_SZIP_NN_OPTION_MASK 32 +#define H5_SZIP_MAX_PIXELS_PER_BLOCK 32 + +/* Macros for the shuffle filter */ +#define H5Z_SHUFFLE_USER_NPARMS 0 /* Number of parameters that users can set */ +#define H5Z_SHUFFLE_TOTAL_NPARMS 1 /* Total number of parameters for filter */ + +/* Macros for the szip filter */ +#define H5Z_SZIP_USER_NPARMS 2 /* Number of parameters that users can set */ +#define H5Z_SZIP_TOTAL_NPARMS 4 /* Total number of parameters for filter */ +#define H5Z_SZIP_PARM_MASK 0 /* "User" parameter for option mask */ +#define H5Z_SZIP_PARM_PPB 1 /* "User" parameter for pixels-per-block */ +#define H5Z_SZIP_PARM_BPP 2 /* "Local" parameter for bits-per-pixel */ +#define H5Z_SZIP_PARM_PPS 3 /* "Local" parameter for pixels-per-scanline */ + +/* Macros for the nbit filter */ +#define H5Z_NBIT_USER_NPARMS 0 /* Number of parameters that users can set */ + +/* Macros for the scale offset filter */ +#define H5Z_SCALEOFFSET_USER_NPARMS 2 /* Number of parameters that users can set */ + + +/* Special parameters for ScaleOffset filter*/ +#define H5Z_SO_INT_MINBITS_DEFAULT 0 +typedef enum H5Z_SO_scale_type_t { + H5Z_SO_FLOAT_DSCALE = 0, + H5Z_SO_FLOAT_ESCALE = 1, + H5Z_SO_INT = 2 +} H5Z_SO_scale_type_t; + +/* Current version of the H5Z_class_t struct */ +#define H5Z_CLASS_T_VERS (1) + +/* Values to decide if EDC is enabled for reading data */ +typedef enum H5Z_EDC_t { + H5Z_ERROR_EDC = -1, /* error value */ + H5Z_DISABLE_EDC = 0, + H5Z_ENABLE_EDC = 1, + H5Z_NO_EDC = 2 /* must be the last */ +} H5Z_EDC_t; + +/* Bit flags for H5Zget_filter_info */ +#define H5Z_FILTER_CONFIG_ENCODE_ENABLED (0x0001) +#define H5Z_FILTER_CONFIG_DECODE_ENABLED (0x0002) + +/* Return values for filter callback function */ +typedef enum H5Z_cb_return_t { + H5Z_CB_ERROR = -1, + H5Z_CB_FAIL = 0, /* I/O should fail if filter fails. */ + H5Z_CB_CONT = 1, /* I/O continues if filter fails. */ + H5Z_CB_NO = 2 +} H5Z_cb_return_t; + +/* Filter callback function definition */ +typedef H5Z_cb_return_t (*H5Z_filter_func_t)(H5Z_filter_t filter, void* buf, + size_t buf_size, void* op_data); + +/* Structure for filter callback property */ +typedef struct H5Z_cb_t { + H5Z_filter_func_t func; + void* op_data; +} H5Z_cb_t; + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Before a dataset gets created, the "can_apply" callbacks for any filters used + * in the dataset creation property list are called + * with the dataset's dataset creation property list, the dataset's datatype and + * a dataspace describing a chunk (for chunked dataset storage). + * + * The "can_apply" callback must determine if the combination of the dataset + * creation property list setting, the datatype and the dataspace represent a + * valid combination to apply this filter to. For example, some cases of + * invalid combinations may involve the filter not operating correctly on + * certain datatypes (or certain datatype sizes), or certain sizes of the chunk + * dataspace. + * + * The "can_apply" callback can be the NULL pointer, in which case, the library + * will assume that it can apply to any combination of dataset creation + * property list values, datatypes and dataspaces. + * + * The "can_apply" callback returns positive a valid combination, zero for an + * invalid combination and negative for an error. + */ +typedef htri_t (*H5Z_can_apply_func_t)(hid_t dcpl_id, hid_t type_id, hid_t space_id); + +/* + * After the "can_apply" callbacks are checked for new datasets, the "set_local" + * callbacks for any filters used in the dataset creation property list are + * called. These callbacks receive the dataset's private copy of the dataset + * creation property list passed in to H5Dcreate (i.e. not the actual property + * list passed in to H5Dcreate) and the datatype ID passed in to H5Dcreate + * (which is not copied and should not be modified) and a dataspace describing + * the chunk (for chunked dataset storage) (which should also not be modified). + * + * The "set_local" callback must set any parameters that are specific to this + * dataset, based on the combination of the dataset creation property list + * values, the datatype and the dataspace. For example, some filters perform + * different actions based on different datatypes (or datatype sizes) or + * different number of dimensions or dataspace sizes. + * + * The "set_local" callback can be the NULL pointer, in which case, the library + * will assume that there are no dataset-specific settings for this filter. + * + * The "set_local" callback must return non-negative on success and negative + * for an error. + */ +typedef herr_t (*H5Z_set_local_func_t)(hid_t dcpl_id, hid_t type_id, hid_t space_id); + +/* + * A filter gets definition flags and invocation flags (defined above), the + * client data array and size defined when the filter was added to the + * pipeline, the size in bytes of the data on which to operate, and pointers + * to a buffer and its allocated size. + * + * The filter should store the result in the supplied buffer if possible, + * otherwise it can allocate a new buffer, freeing the original. The + * allocated size of the new buffer should be returned through the BUF_SIZE + * pointer and the new buffer through the BUF pointer. + * + * The return value from the filter is the number of bytes in the output + * buffer. If an error occurs then the function should return zero and leave + * all pointer arguments unchanged. + */ +typedef size_t (*H5Z_func_t)(unsigned int flags, size_t cd_nelmts, + const unsigned int cd_values[], size_t nbytes, + size_t *buf_size, void **buf); + +/* + * The filter table maps filter identification numbers to structs that + * contain a pointers to the filter function and timing statistics. + */ +typedef struct H5Z_class2_t { + int version; /* Version number of the H5Z_class_t struct */ + H5Z_filter_t id; /* Filter ID number */ + unsigned encoder_present; /* Does this filter have an encoder? */ + unsigned decoder_present; /* Does this filter have a decoder? */ + const char *name; /* Comment for debugging */ + H5Z_can_apply_func_t can_apply; /* The "can apply" callback for a filter */ + H5Z_set_local_func_t set_local; /* The "set local" callback for a filter */ + H5Z_func_t filter; /* The actual filter function */ +} H5Z_class2_t; + +H5_DLL herr_t H5Zregister(const void *cls); +H5_DLL herr_t H5Zunregister(H5Z_filter_t id); +H5_DLL htri_t H5Zfilter_avail(H5Z_filter_t id); +H5_DLL herr_t H5Zget_filter_info(H5Z_filter_t filter, unsigned int *filter_config_flags); + +/* Symbols defined for compatibility with previous versions of the HDF5 API. + * + * Use of these symbols is deprecated. + */ +#ifndef H5_NO_DEPRECATED_SYMBOLS + +/* + * The filter table maps filter identification numbers to structs that + * contain a pointers to the filter function and timing statistics. + */ +typedef struct H5Z_class1_t { + H5Z_filter_t id; /* Filter ID number */ + const char *name; /* Comment for debugging */ + H5Z_can_apply_func_t can_apply; /* The "can apply" callback for a filter */ + H5Z_set_local_func_t set_local; /* The "set local" callback for a filter */ + H5Z_func_t filter; /* The actual filter function */ +} H5Z_class1_t; + +#endif /* H5_NO_DEPRECATED_SYMBOLS */ + +#ifdef __cplusplus +} +#endif +#endif + diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5api_adpt.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5api_adpt.h index 90df208198..845a9a0c97 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5api_adpt.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5api_adpt.h @@ -1,424 +1,424 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * 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 files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* - * H5api_adpt.h - * Used for the HDF5 dll project - * Created by Patrick Lu on 1/12/99 - */ -#ifndef H5API_ADPT_H -#define H5API_ADPT_H - -/* This will only be defined if HDF5 was built with CMake */ -#ifdef H5_BUILT_AS_DYNAMIC_LIB - -#if defined (hdf5_EXPORTS) - #define _HDF5DLL_ -#else - #define _HDF5USEDLL_ -#endif - -#if defined (hdf5_test_EXPORTS) - #define _HDF5TESTDLL_ -#else - #define _HDF5TESTUSEDLL_ -#endif - -#if defined (hdf5_tools_EXPORTS) - #define _HDF5TOOLSDLL_ -#else - #define _HDF5TOOLSUSEDLL_ -#endif - -#if defined (hdf5_cpp_EXPORTS) - #define HDF5_CPPDLL_EXPORTS -#else - #define HDF5CPP_USEDLL -#endif - -#if defined (hdf5_hl_EXPORTS) - #define _HDF5_HLDLL_EXPORTS_ -#else - #define _HDF5USEHLDLL_ -#endif - -#if defined (hdf5_hl_cpp_EXPORTS) - #define HDF5_HL_CPPDLL_EXPORTS -#else - #define HDF5USE_HLCPPDLL -#endif - -#if defined (hdf5_f90cstub_EXPORTS) - #define HDF5FORT_CSTUB_DLL_EXPORTS -#else - #define HDF5FORT_CSTUB_USEDLL -#endif - -#if defined (hdf5_test_f90cstub_EXPORTS) - #define HDF5FORTTEST_CSTUB_DLL_EXPORTS -#endif - -#if defined (hdf5_hl_f90cstub_EXPORTS) - #define HDF5_HL_F90CSTUBDLL_EXPORTS -#endif - -#if defined(hdf5_EXPORTS) - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define H5_DLL __declspec(dllexport) - #define H5_DLLVAR extern __declspec(dllexport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define H5_DLL __attribute__ ((visibility("default"))) - #define H5_DLLVAR extern __attribute__ ((visibility("default"))) - #endif -#else - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define H5_DLL __declspec(dllimport) - #define H5_DLLVAR __declspec(dllimport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define H5_DLL __attribute__ ((visibility("default"))) - #define H5_DLLVAR extern __attribute__ ((visibility("default"))) - #endif -#endif - -#ifndef H5_DLL - #define H5_DLL - #define H5_DLLVAR extern -#endif /* _HDF5DLL_ */ - -#if defined(hdf5_test_EXPORTS) - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define H5TEST_DLL __declspec(dllexport) - #define H5TEST_DLLVAR extern __declspec(dllexport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define H5TEST_DLL __attribute__ ((visibility("default"))) - #define H5TEST_DLLVAR extern __attribute__ ((visibility("default"))) - #endif -#else - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define H5TEST_DLL __declspec(dllimport) - #define H5TEST_DLLVAR __declspec(dllimport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define H5TEST_DLL __attribute__ ((visibility("default"))) - #define H5TEST_DLLVAR extern __attribute__ ((visibility("default"))) - #endif -#endif - -#ifndef H5TEST_DLL - #define H5TEST_DLL - #define H5TEST_DLLVAR extern -#endif /* H5TEST_DLL */ - -#if defined(hdf5_tools_EXPORTS) - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define H5TOOLS_DLL __declspec(dllexport) - #define H5TOOLS_DLLVAR extern __declspec(dllexport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define H5TOOLS_DLL __attribute__ ((visibility("default"))) - #define H5TOOLS_DLLVAR extern __attribute__ ((visibility("default"))) - #endif -#else - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define H5TOOLS_DLL __declspec(dllimport) - #define H5TOOLS_DLLVAR __declspec(dllimport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define H5TOOLS_DLL __attribute__ ((visibility("default"))) - #define H5TOOLS_DLLVAR extern __attribute__ ((visibility("default"))) - #endif -#endif - -#ifndef H5TOOLS_DLL - #define H5TOOLS_DLL - #define H5TOOLS_DLLVAR extern -#endif /* H5TOOLS_DLL */ - -#if defined(hdf5_cpp_EXPORTS) - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define H5_DLLCPP __declspec(dllexport) - #define H5_DLLCPPVAR extern __declspec(dllexport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define H5_DLLCPP __attribute__ ((visibility("default"))) - #define H5_DLLCPPVAR extern __attribute__ ((visibility("default"))) - #endif -#else - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define H5_DLLCPP __declspec(dllimport) - #define H5_DLLCPPVAR __declspec(dllimport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define H5_DLLCPP __attribute__ ((visibility("default"))) - #define H5_DLLCPPVAR extern __attribute__ ((visibility("default"))) - #endif -#endif - -#ifndef H5_DLLCPP - #define H5_DLLCPP - #define H5_DLLCPPVAR extern -#endif /* H5_DLLCPP */ - -#if defined(hdf5_hl_EXPORTS) - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define H5_HLDLL __declspec(dllexport) - #define H5_HLDLLVAR extern __declspec(dllexport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define H5_HLDLL __attribute__ ((visibility("default"))) - #define H5_HLDLLVAR extern __attribute__ ((visibility("default"))) - #endif -#else - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define H5_HLDLL __declspec(dllimport) - #define H5_HLDLLVAR __declspec(dllimport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define H5_HLDLL __attribute__ ((visibility("default"))) - #define H5_HLDLLVAR extern __attribute__ ((visibility("default"))) - #endif -#endif - -#ifndef H5_HLDLL - #define H5_HLDLL - #define H5_HLDLLVAR extern -#endif /* H5_HLDLL */ - -#if defined(hdf5_hl_cpp_EXPORTS) - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define H5_HLCPPDLL __declspec(dllexport) - #define H5_HLCPPDLLVAR extern __declspec(dllexport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define H5_HLCPPDLL __attribute__ ((visibility("default"))) - #define H5_HLCPPDLLVAR extern __attribute__ ((visibility("default"))) - #endif -#else - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define H5_HLCPPDLL __declspec(dllimport) - #define H5_HLCPPDLLVAR __declspec(dllimport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define H5_HLCPPDLL __attribute__ ((visibility("default"))) - #define H5_HLCPPDLLVAR extern __attribute__ ((visibility("default"))) - #endif -#endif - -#ifndef H5_HLCPPDLL - #define H5_HLCPPDLL - #define H5_HLCPPDLLVAR extern -#endif /* H5_HLCPPDLL */ - -#if defined(hdf5_f90cstub_EXPORTS) - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define H5_FCDLL __declspec(dllexport) - #define H5_FCDLLVAR extern __declspec(dllexport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define H5_FCDLL __attribute__ ((visibility("default"))) - #define H5_FCDLLVAR extern __attribute__ ((visibility("default"))) - #endif -#else - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define H5_FCDLL __declspec(dllimport) - #define H5_FCDLLVAR __declspec(dllimport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define H5_FCDLL __attribute__ ((visibility("default"))) - #define H5_FCDLLVAR extern __attribute__ ((visibility("default"))) - #endif -#endif - -#ifndef H5_FCDLL - #define H5_FCDLL - #define H5_FCDLLVAR extern -#endif /* H5_FCDLL */ - -#if defined(hdf5_test_f90cstub_EXPORTS) - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define H5_FCTESTDLL __declspec(dllexport) - #define H5_FCTESTDLLVAR extern __declspec(dllexport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define H5_FCTESTDLL __attribute__ ((visibility("default"))) - #define H5_FCTESTDLLVAR extern __attribute__ ((visibility("default"))) - #endif -#else - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define H5_FCTESTDLL __declspec(dllimport) - #define H5_FCTESTDLLVAR __declspec(dllimport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define H5_FCTESTDLL __attribute__ ((visibility("default"))) - #define H5_FCTESTDLLVAR extern __attribute__ ((visibility("default"))) - #endif -#endif - -#ifndef H5_FCTESTDLL - #define H5_FCTESTDLL - #define H5_FCTESTDLLVAR extern -#endif /* H5_FCTESTDLL */ - -#if defined(hdf5_hl_f90cstub_EXPORTS) - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define HDF5_HL_F90CSTUBDLL __declspec(dllexport) - #define HDF5_HL_F90CSTUBDLLVAR extern __declspec(dllexport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define HDF5_HL_F90CSTUBDLL __attribute__ ((visibility("default"))) - #define HDF5_HL_F90CSTUBDLLVAR extern __attribute__ ((visibility("default"))) - #endif -#else - #if defined (_MSC_VER) /* MSVC Compiler Case */ - #define HDF5_HL_F90CSTUBDLL __declspec(dllimport) - #define HDF5_HL_F90CSTUBDLLVAR __declspec(dllimport) - #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ - #define HDF5_HL_F90CSTUBDLL __attribute__ ((visibility("default"))) - #define HDF5_HL_F90CSTUBDLLVAR extern __attribute__ ((visibility("default"))) - #endif -#endif - -#ifndef HDF5_HL_F90CSTUBDLL - #define HDF5_HL_F90CSTUBDLL - #define HDF5_HL_F90CSTUBDLLVAR extern -#endif /* HDF5_HL_F90CSTUBDLL */ - -#elif defined(H5_BUILT_AS_STATIC_LIB) - #define H5_DLL - #define H5_HLDLL - #define H5_HLCPPDLL - #define HDF5_HL_F90CSTUBDLL - #define H5_DLLVAR extern - #define H5_DLLCPP - #define H5TEST_DLL - #define H5TEST_DLLVAR extern - #define H5TOOLS_DLL - #define H5TOOLS_DLLVAR extern - #define H5_FCDLL - #define H5_FCDLLVAR extern - #define H5_FCTESTDLL - #define H5_FCTESTDLLVAR extern - -#else -/* This is the original HDFGroup defined preprocessor code which should still work - * with the VS projects that are maintained by "The HDF Group" - * The Visual Studio project files will not be supported in the next major release of 1.10. - */ - -#if defined(H5_HAVE_WIN32_API) - -#if defined(_HDF5DLL_) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_DLL __declspec(dllexport) -#define H5_DLLVAR extern __declspec(dllexport) -#elif defined(_HDF5USEDLL_) -#define H5_DLL __declspec(dllimport) -#define H5_DLLVAR __declspec(dllimport) -#else -#define H5_DLL -#define H5_DLLVAR extern -#endif /* _HDF5DLL_ */ - -#if defined(_HDF5TESTDLL_) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5TEST_DLL __declspec(dllexport) -#define H5TEST_DLLVAR extern __declspec(dllexport) -#elif defined(_HDF5TESTUSEDLL_) -#define H5TEST_DLL __declspec(dllimport) -#define H5TEST_DLLVAR __declspec(dllimport) -#else -#define H5TEST_DLL -#define H5TEST_DLLVAR extern -#endif /* _HDF5TESTDLL_ */ - -#if defined(_HDF5TOOLSDLL_) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5TOOLS_DLL __declspec(dllexport) -#define H5TOOLS_DLLVAR extern __declspec(dllexport) -#elif defined(_HDF5TOOLSUSEDLL_) -#define H5TOOLS_DLL __declspec(dllimport) -#define H5TOOLS_DLLVAR __declspec(dllimport) -#else -#define H5TOOLS_DLL -#define H5TOOLS_DLLVAR extern -#endif /* _HDF5TOOLSDLL_ */ - -#if defined(_HDF5_HLDLL_EXPORTS_) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_HLDLL __declspec(dllexport) -#elif defined(_HDF5USEHLDLL_) -#define H5_HLDLL __declspec(dllimport) -#else -#define H5_HLDLL -#endif /* _HDF5_HLDLL_EXPORTS */ - -#if defined(HDF5_HL_CPPDLL_EXPORTS) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_HLCPPDLL __declspec(dllexport) -#elif defined(HDF5USE_HLCPPDLL) -#define H5_HLCPPDLL __declspec(dllimport) -#else -#define H5_HLCPPDLL -#endif /*HDF5_HL_CPPDLL_EXPORTS*/ - -#if defined(HDF5_HL_F90CSTUBDLL_EXPORTS) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define HDF5_HL_F90CSTUBDLL __declspec(dllexport) -#elif defined(HDF5USE_HLF90CSTUBDLL) -#define HDF5_HL_F90CSTUBDLL __declspec(dllimport) -#else -#define HDF5_HL_F90CSTUBDLL -#endif /*HDF5_HL_F90CSTUBDLL_EXPORTS*/ - - -#if defined(HDF5FORT_CSTUB_DLL_EXPORTS) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_FCDLL __declspec(dllexport) -#define H5_FCDLLVAR extern __declspec(dllexport) -#elif defined(HDF5FORT_CSTUB_USEDLL) -#define H5_FCDLL __declspec(dllimport) -#define H5_FCDLLVAR __declspec(dllimport) -#else -#define H5_FCDLL -#define H5_FCDLLVAR extern -#endif /* _HDF5_FORTRANDLL_EXPORTS_ */ - -#if defined(HDF5FORTTEST_CSTUB_DLL_EXPORTS) -#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ -#define H5_FCTESTDLL __declspec(dllexport) -#define H5_FCTESTDLLVAR extern __declspec(dllexport) -#elif defined(HDF5FORTTEST_CSTUB_USEDLL) -#define H5_FCTESTDLL __declspec(dllimport) -#define H5_FCTESTDLLVAR __declspec(dllimport) -#else -#define H5_FCTESTDLL -#define H5_FCTESTDLLVAR extern -#endif /* _HDF5_FORTRANDLL_EXPORTS_ */ - -/* Added to export or to import C++ APIs - BMR (02-15-2002) */ -#if defined(HDF5_CPPDLL_EXPORTS) /* this name is generated at creation */ -#define H5_DLLCPP __declspec(dllexport) -#elif defined(HDF5CPP_USEDLL) -#define H5_DLLCPP __declspec(dllimport) -#else -#define H5_DLLCPP -#endif /* HDF5_CPPDLL_EXPORTS */ - -#else /*H5_HAVE_WIN32_API*/ -#define H5_DLL -#define H5_HLDLL -#define H5_HLCPPDLL -#define HDF5_HL_F90CSTUBDLL -#define H5_DLLVAR extern -#define H5_DLLCPP -#define H5TEST_DLL -#define H5TEST_DLLVAR extern -#define H5TOOLS_DLL -#define H5TOOLS_DLLVAR extern -#define H5_FCDLL -#define H5_FCDLLVAR extern -#define H5_FCTESTDLL -#define H5_FCTESTDLLVAR extern -#endif /*H5_HAVE_WIN32_API*/ - -#endif /* H5API_ADPT_H */ - -#endif /* */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * H5api_adpt.h + * Used for the HDF5 dll project + * Created by Patrick Lu on 1/12/99 + */ +#ifndef H5API_ADPT_H +#define H5API_ADPT_H + +/* This will only be defined if HDF5 was built with CMake */ +#ifdef H5_BUILT_AS_DYNAMIC_LIB + +#if defined (hdf5_EXPORTS) + #define _HDF5DLL_ +#else + #define _HDF5USEDLL_ +#endif + +#if defined (hdf5_test_EXPORTS) + #define _HDF5TESTDLL_ +#else + #define _HDF5TESTUSEDLL_ +#endif + +#if defined (hdf5_tools_EXPORTS) + #define _HDF5TOOLSDLL_ +#else + #define _HDF5TOOLSUSEDLL_ +#endif + +#if defined (hdf5_cpp_EXPORTS) + #define HDF5_CPPDLL_EXPORTS +#else + #define HDF5CPP_USEDLL +#endif + +#if defined (hdf5_hl_EXPORTS) + #define _HDF5_HLDLL_EXPORTS_ +#else + #define _HDF5USEHLDLL_ +#endif + +#if defined (hdf5_hl_cpp_EXPORTS) + #define HDF5_HL_CPPDLL_EXPORTS +#else + #define HDF5USE_HLCPPDLL +#endif + +#if defined (hdf5_f90cstub_EXPORTS) + #define HDF5FORT_CSTUB_DLL_EXPORTS +#else + #define HDF5FORT_CSTUB_USEDLL +#endif + +#if defined (hdf5_test_f90cstub_EXPORTS) + #define HDF5FORTTEST_CSTUB_DLL_EXPORTS +#endif + +#if defined (hdf5_hl_f90cstub_EXPORTS) + #define HDF5_HL_F90CSTUBDLL_EXPORTS +#endif + +#if defined(hdf5_EXPORTS) + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define H5_DLL __declspec(dllexport) + #define H5_DLLVAR extern __declspec(dllexport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define H5_DLL __attribute__ ((visibility("default"))) + #define H5_DLLVAR extern __attribute__ ((visibility("default"))) + #endif +#else + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define H5_DLL __declspec(dllimport) + #define H5_DLLVAR __declspec(dllimport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define H5_DLL __attribute__ ((visibility("default"))) + #define H5_DLLVAR extern __attribute__ ((visibility("default"))) + #endif +#endif + +#ifndef H5_DLL + #define H5_DLL + #define H5_DLLVAR extern +#endif /* _HDF5DLL_ */ + +#if defined(hdf5_test_EXPORTS) + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define H5TEST_DLL __declspec(dllexport) + #define H5TEST_DLLVAR extern __declspec(dllexport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define H5TEST_DLL __attribute__ ((visibility("default"))) + #define H5TEST_DLLVAR extern __attribute__ ((visibility("default"))) + #endif +#else + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define H5TEST_DLL __declspec(dllimport) + #define H5TEST_DLLVAR __declspec(dllimport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define H5TEST_DLL __attribute__ ((visibility("default"))) + #define H5TEST_DLLVAR extern __attribute__ ((visibility("default"))) + #endif +#endif + +#ifndef H5TEST_DLL + #define H5TEST_DLL + #define H5TEST_DLLVAR extern +#endif /* H5TEST_DLL */ + +#if defined(hdf5_tools_EXPORTS) + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define H5TOOLS_DLL __declspec(dllexport) + #define H5TOOLS_DLLVAR extern __declspec(dllexport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define H5TOOLS_DLL __attribute__ ((visibility("default"))) + #define H5TOOLS_DLLVAR extern __attribute__ ((visibility("default"))) + #endif +#else + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define H5TOOLS_DLL __declspec(dllimport) + #define H5TOOLS_DLLVAR __declspec(dllimport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define H5TOOLS_DLL __attribute__ ((visibility("default"))) + #define H5TOOLS_DLLVAR extern __attribute__ ((visibility("default"))) + #endif +#endif + +#ifndef H5TOOLS_DLL + #define H5TOOLS_DLL + #define H5TOOLS_DLLVAR extern +#endif /* H5TOOLS_DLL */ + +#if defined(hdf5_cpp_EXPORTS) + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define H5_DLLCPP __declspec(dllexport) + #define H5_DLLCPPVAR extern __declspec(dllexport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define H5_DLLCPP __attribute__ ((visibility("default"))) + #define H5_DLLCPPVAR extern __attribute__ ((visibility("default"))) + #endif +#else + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define H5_DLLCPP __declspec(dllimport) + #define H5_DLLCPPVAR __declspec(dllimport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define H5_DLLCPP __attribute__ ((visibility("default"))) + #define H5_DLLCPPVAR extern __attribute__ ((visibility("default"))) + #endif +#endif + +#ifndef H5_DLLCPP + #define H5_DLLCPP + #define H5_DLLCPPVAR extern +#endif /* H5_DLLCPP */ + +#if defined(hdf5_hl_EXPORTS) + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define H5_HLDLL __declspec(dllexport) + #define H5_HLDLLVAR extern __declspec(dllexport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define H5_HLDLL __attribute__ ((visibility("default"))) + #define H5_HLDLLVAR extern __attribute__ ((visibility("default"))) + #endif +#else + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define H5_HLDLL __declspec(dllimport) + #define H5_HLDLLVAR __declspec(dllimport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define H5_HLDLL __attribute__ ((visibility("default"))) + #define H5_HLDLLVAR extern __attribute__ ((visibility("default"))) + #endif +#endif + +#ifndef H5_HLDLL + #define H5_HLDLL + #define H5_HLDLLVAR extern +#endif /* H5_HLDLL */ + +#if defined(hdf5_hl_cpp_EXPORTS) + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define H5_HLCPPDLL __declspec(dllexport) + #define H5_HLCPPDLLVAR extern __declspec(dllexport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define H5_HLCPPDLL __attribute__ ((visibility("default"))) + #define H5_HLCPPDLLVAR extern __attribute__ ((visibility("default"))) + #endif +#else + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define H5_HLCPPDLL __declspec(dllimport) + #define H5_HLCPPDLLVAR __declspec(dllimport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define H5_HLCPPDLL __attribute__ ((visibility("default"))) + #define H5_HLCPPDLLVAR extern __attribute__ ((visibility("default"))) + #endif +#endif + +#ifndef H5_HLCPPDLL + #define H5_HLCPPDLL + #define H5_HLCPPDLLVAR extern +#endif /* H5_HLCPPDLL */ + +#if defined(hdf5_f90cstub_EXPORTS) + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define H5_FCDLL __declspec(dllexport) + #define H5_FCDLLVAR extern __declspec(dllexport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define H5_FCDLL __attribute__ ((visibility("default"))) + #define H5_FCDLLVAR extern __attribute__ ((visibility("default"))) + #endif +#else + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define H5_FCDLL __declspec(dllimport) + #define H5_FCDLLVAR __declspec(dllimport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define H5_FCDLL __attribute__ ((visibility("default"))) + #define H5_FCDLLVAR extern __attribute__ ((visibility("default"))) + #endif +#endif + +#ifndef H5_FCDLL + #define H5_FCDLL + #define H5_FCDLLVAR extern +#endif /* H5_FCDLL */ + +#if defined(hdf5_test_f90cstub_EXPORTS) + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define H5_FCTESTDLL __declspec(dllexport) + #define H5_FCTESTDLLVAR extern __declspec(dllexport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define H5_FCTESTDLL __attribute__ ((visibility("default"))) + #define H5_FCTESTDLLVAR extern __attribute__ ((visibility("default"))) + #endif +#else + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define H5_FCTESTDLL __declspec(dllimport) + #define H5_FCTESTDLLVAR __declspec(dllimport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define H5_FCTESTDLL __attribute__ ((visibility("default"))) + #define H5_FCTESTDLLVAR extern __attribute__ ((visibility("default"))) + #endif +#endif + +#ifndef H5_FCTESTDLL + #define H5_FCTESTDLL + #define H5_FCTESTDLLVAR extern +#endif /* H5_FCTESTDLL */ + +#if defined(hdf5_hl_f90cstub_EXPORTS) + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define HDF5_HL_F90CSTUBDLL __declspec(dllexport) + #define HDF5_HL_F90CSTUBDLLVAR extern __declspec(dllexport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define HDF5_HL_F90CSTUBDLL __attribute__ ((visibility("default"))) + #define HDF5_HL_F90CSTUBDLLVAR extern __attribute__ ((visibility("default"))) + #endif +#else + #if defined (_MSC_VER) /* MSVC Compiler Case */ + #define HDF5_HL_F90CSTUBDLL __declspec(dllimport) + #define HDF5_HL_F90CSTUBDLLVAR __declspec(dllimport) + #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */ + #define HDF5_HL_F90CSTUBDLL __attribute__ ((visibility("default"))) + #define HDF5_HL_F90CSTUBDLLVAR extern __attribute__ ((visibility("default"))) + #endif +#endif + +#ifndef HDF5_HL_F90CSTUBDLL + #define HDF5_HL_F90CSTUBDLL + #define HDF5_HL_F90CSTUBDLLVAR extern +#endif /* HDF5_HL_F90CSTUBDLL */ + +#elif defined(H5_BUILT_AS_STATIC_LIB) + #define H5_DLL + #define H5_HLDLL + #define H5_HLCPPDLL + #define HDF5_HL_F90CSTUBDLL + #define H5_DLLVAR extern + #define H5_DLLCPP + #define H5TEST_DLL + #define H5TEST_DLLVAR extern + #define H5TOOLS_DLL + #define H5TOOLS_DLLVAR extern + #define H5_FCDLL + #define H5_FCDLLVAR extern + #define H5_FCTESTDLL + #define H5_FCTESTDLLVAR extern + +#else +/* This is the original HDFGroup defined preprocessor code which should still work + * with the VS projects that are maintained by "The HDF Group" + * The Visual Studio project files will not be supported in the next major release of 1.10. + */ + +#if defined(H5_HAVE_WIN32_API) + +#if defined(_HDF5DLL_) +#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ +#define H5_DLL __declspec(dllexport) +#define H5_DLLVAR extern __declspec(dllexport) +#elif defined(_HDF5USEDLL_) +#define H5_DLL __declspec(dllimport) +#define H5_DLLVAR __declspec(dllimport) +#else +#define H5_DLL +#define H5_DLLVAR extern +#endif /* _HDF5DLL_ */ + +#if defined(_HDF5TESTDLL_) +#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ +#define H5TEST_DLL __declspec(dllexport) +#define H5TEST_DLLVAR extern __declspec(dllexport) +#elif defined(_HDF5TESTUSEDLL_) +#define H5TEST_DLL __declspec(dllimport) +#define H5TEST_DLLVAR __declspec(dllimport) +#else +#define H5TEST_DLL +#define H5TEST_DLLVAR extern +#endif /* _HDF5TESTDLL_ */ + +#if defined(_HDF5TOOLSDLL_) +#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ +#define H5TOOLS_DLL __declspec(dllexport) +#define H5TOOLS_DLLVAR extern __declspec(dllexport) +#elif defined(_HDF5TOOLSUSEDLL_) +#define H5TOOLS_DLL __declspec(dllimport) +#define H5TOOLS_DLLVAR __declspec(dllimport) +#else +#define H5TOOLS_DLL +#define H5TOOLS_DLLVAR extern +#endif /* _HDF5TOOLSDLL_ */ + +#if defined(_HDF5_HLDLL_EXPORTS_) +#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ +#define H5_HLDLL __declspec(dllexport) +#elif defined(_HDF5USEHLDLL_) +#define H5_HLDLL __declspec(dllimport) +#else +#define H5_HLDLL +#endif /* _HDF5_HLDLL_EXPORTS */ + +#if defined(HDF5_HL_CPPDLL_EXPORTS) +#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ +#define H5_HLCPPDLL __declspec(dllexport) +#elif defined(HDF5USE_HLCPPDLL) +#define H5_HLCPPDLL __declspec(dllimport) +#else +#define H5_HLCPPDLL +#endif /*HDF5_HL_CPPDLL_EXPORTS*/ + +#if defined(HDF5_HL_F90CSTUBDLL_EXPORTS) +#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ +#define HDF5_HL_F90CSTUBDLL __declspec(dllexport) +#elif defined(HDF5USE_HLF90CSTUBDLL) +#define HDF5_HL_F90CSTUBDLL __declspec(dllimport) +#else +#define HDF5_HL_F90CSTUBDLL +#endif /*HDF5_HL_F90CSTUBDLL_EXPORTS*/ + + +#if defined(HDF5FORT_CSTUB_DLL_EXPORTS) +#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ +#define H5_FCDLL __declspec(dllexport) +#define H5_FCDLLVAR extern __declspec(dllexport) +#elif defined(HDF5FORT_CSTUB_USEDLL) +#define H5_FCDLL __declspec(dllimport) +#define H5_FCDLLVAR __declspec(dllimport) +#else +#define H5_FCDLL +#define H5_FCDLLVAR extern +#endif /* _HDF5_FORTRANDLL_EXPORTS_ */ + +#if defined(HDF5FORTTEST_CSTUB_DLL_EXPORTS) +#pragma warning(disable: 4273) /* Disable the dll linkage warnings */ +#define H5_FCTESTDLL __declspec(dllexport) +#define H5_FCTESTDLLVAR extern __declspec(dllexport) +#elif defined(HDF5FORTTEST_CSTUB_USEDLL) +#define H5_FCTESTDLL __declspec(dllimport) +#define H5_FCTESTDLLVAR __declspec(dllimport) +#else +#define H5_FCTESTDLL +#define H5_FCTESTDLLVAR extern +#endif /* _HDF5_FORTRANDLL_EXPORTS_ */ + +/* Added to export or to import C++ APIs - BMR (02-15-2002) */ +#if defined(HDF5_CPPDLL_EXPORTS) /* this name is generated at creation */ +#define H5_DLLCPP __declspec(dllexport) +#elif defined(HDF5CPP_USEDLL) +#define H5_DLLCPP __declspec(dllimport) +#else +#define H5_DLLCPP +#endif /* HDF5_CPPDLL_EXPORTS */ + +#else /*H5_HAVE_WIN32_API*/ +#define H5_DLL +#define H5_HLDLL +#define H5_HLCPPDLL +#define HDF5_HL_F90CSTUBDLL +#define H5_DLLVAR extern +#define H5_DLLCPP +#define H5TEST_DLL +#define H5TEST_DLLVAR extern +#define H5TOOLS_DLL +#define H5TOOLS_DLLVAR extern +#define H5_FCDLL +#define H5_FCDLLVAR extern +#define H5_FCTESTDLL +#define H5_FCTESTDLLVAR extern +#endif /*H5_HAVE_WIN32_API*/ + +#endif /* H5API_ADPT_H */ + +#endif /* */ diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5f90.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5f90.h index 5fcc4611f6..c45cfcbf04 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5f90.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5f90.h @@ -1,31 +1,31 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * 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 files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - -#ifndef _H5f90_H -#define _H5f90_H - -#include "hdf5.h" -#include "H5private.h" -#include "H5f90i.h" -#include "H5f90proto.h" - -/* Constants used in H5Rff.f90 and H5Rf.c files */ -#define REF_REG_BUF_LEN_F 3 - -/* Constants used in H5Gf.c files */ -#define OBJECT_NAMELEN_DEFAULT_F -1 -#define H5_MAX(a,b) (((a)>(b)) ? (a) : (b)) -#endif /* _H5f90_H */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + +#ifndef _H5f90_H +#define _H5f90_H + +#include "hdf5.h" +#include "H5private.h" +#include "H5f90i.h" +#include "H5f90proto.h" + +/* Constants used in H5Rff.f90 and H5Rf.c files */ +#define REF_REG_BUF_LEN_F 3 + +/* Constants used in H5Gf.c files */ +#define OBJECT_NAMELEN_DEFAULT_F -1 +#define H5_MAX(a,b) (((a)>(b)) ? (a) : (b)) +#endif /* _H5f90_H */ diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5f90i.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5f90i.h index d18f316242..f3c0160d38 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5f90i.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5f90i.h @@ -1,43 +1,43 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * 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 files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - -#ifndef _H5f90i_H -#define _H5f90i_H - -/* - * Include generated header. This header defines integer types, - * so this file only needs to define _fcd. - */ -#include "H5f90i_gen.h" - -/* Define _fcd. These are the same on every system - * but UNICOS. - */ -#define _fcdtocp(desc) (desc) - -#if (defined (UNICOS) || defined (_UNICOS)) && !defined(__crayx1) - -#include - -/*typedef char* _fcd;*/ - -#else - -typedef char *_fcd; - -#endif - -#endif /* _H5f90i_H */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + +#ifndef _H5f90i_H +#define _H5f90i_H + +/* + * Include generated header. This header defines integer types, + * so this file only needs to define _fcd. + */ +#include "H5f90i_gen.h" + +/* Define _fcd. These are the same on every system + * but UNICOS. + */ +#define _fcdtocp(desc) (desc) + +#if (defined (UNICOS) || defined (_UNICOS)) && !defined(__crayx1) + +#include + +/*typedef char* _fcd;*/ + +#else + +typedef char *_fcd; + +#endif + +#endif /* _H5f90i_H */ diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5f90i_gen.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5f90i_gen.h index bef64030ae..07b46f97b5 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5f90i_gen.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5f90i_gen.h @@ -1,48 +1,48 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * 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 files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - -#ifndef _H5f90i_gen_H -#define _H5f90i_gen_H - -/* This file is automatically generated by H5match_types.c at build time. */ - -#include "H5public.h" - -#define c_int_1 char -#define c_int_2 short -#define c_int_4 long -#define c_int_8 long long -#define c_float_4 float -#define c_float_8 long double - -typedef c_int_8 haddr_t_f; -typedef c_int_8 hsize_t_f; -typedef c_int_8 hssize_t_f; -typedef c_int_4 off_t_f; -typedef c_int_8 size_t_f; -typedef c_int_4 int_f; -typedef c_int_1 int_1_f; -typedef c_int_2 int_2_f; -typedef c_int_4 int_4_f; -typedef c_int_8 int_8_f; -typedef c_float_4 real_4_f; -typedef c_float_8 real_8_f; -typedef c_float_8 real_16_f; -typedef c_int_4 hid_t_f; -typedef c_float_4 real_f; -typedef c_float_8 double_f; - -#endif /* _H5f90i_gen_H */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + +#ifndef _H5f90i_gen_H +#define _H5f90i_gen_H + +/* This file is automatically generated by H5match_types.c at build time. */ + +#include "H5public.h" + +#define c_int_1 char +#define c_int_2 short +#define c_int_4 long +#define c_int_8 long long +#define c_float_4 float +#define c_float_8 long double + +typedef c_int_8 haddr_t_f; +typedef c_int_8 hsize_t_f; +typedef c_int_8 hssize_t_f; +typedef c_int_4 off_t_f; +typedef c_int_8 size_t_f; +typedef c_int_4 int_f; +typedef c_int_1 int_1_f; +typedef c_int_2 int_2_f; +typedef c_int_4 int_4_f; +typedef c_int_8 int_8_f; +typedef c_float_4 real_4_f; +typedef c_float_8 real_8_f; +typedef c_float_8 real_16_f; +typedef c_int_4 hid_t_f; +typedef c_float_4 real_f; +typedef c_float_8 double_f; + +#endif /* _H5f90i_gen_H */ diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5f90proto.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5f90proto.h index b725b13a66..4b02b6c7b3 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5f90proto.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5f90proto.h @@ -1,1346 +1,1346 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * 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 files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - -#ifndef _H5f90proto_H -#define _H5f90proto_H - -#include "H5public.h" - -H5_FCDLL char * HD5f2cstring (_fcd fdesc, size_t len); -H5_FCDLL void HD5packFstring(char *src, char *dest, size_t len); - -#ifdef H5_VMS -#define H5_FC_FUNC_(name, NAME) NAME -#endif /*H5_VMS*/ - -/* - * Storage info struct used by H5O_info_t and H5F_info_t - * interoperable with Fortran. - */ -typedef struct H5_ih_info_t_f { - hsize_t index_size; /* btree and/or list */ - hsize_t heap_size; -} H5_ih_info_t_f; - -/* Information struct for object header metadata (for H5Oget_info/H5Oget_info_by_name/H5Oget_info_by_idx) - * interoperable with Fortran. - */ -typedef struct H5O_hdr_info_t_f { - int_f version; /* Version number of header format in file */ - int_f nmesgs; /* Number of object header messages */ - int_f nchunks; /* Number of object header chunks */ - int_f flags; /* Object header status flags */ - struct { - hsize_t total; /* Total space for storing object header in file */ - hsize_t meta; /* Space within header for object header metadata information */ - hsize_t mesg; /* Space within header for actual message information */ - hsize_t free; /* Free space within object header */ - } space; - struct { - uint64_t present; /* Flags to indicate presence of message type in header */ - uint64_t shared; /* Flags to indicate message type is shared in header */ - } mesg; -} H5O_hdr_info_t_f; - -/* Information struct for object (for H5Oget_info/H5Oget_info_by_name/H5Oget_info_by_idx) - * interoperable with Fortran. - */ -typedef struct H5O_info_t_f { - unsigned long fileno; /* File number that object is located in */ - haddr_t_f addr; /* Object address in file */ - int type; /* Basic object type (group, dataset, etc.) */ - int_f rc; /* Reference count of object */ - int_f atime[8]; /* Access time */ - int_f mtime[8]; /* Modification time */ - int_f ctime[8]; /* Change time */ - int_f btime[8]; /* Birth time */ - hsize_t num_attrs; /* # of attributes attached to object */ - H5O_hdr_info_t_f hdr; /* Object header information */ - /* Extra metadata storage for obj & attributes */ - struct { - H5_ih_info_t_f obj; /* v1/v2 B-tree & local/fractal heap for groups, B-tree for chunked datasets */ - H5_ih_info_t_f attr; /* v2 B-tree & heap for attributes */ - } meta_size; -} H5O_info_t_f; - - -/* - * Functions from H5Ff.c - */ -#define nh5fcreate_c H5_FC_FUNC_(h5fcreate_c, H5FCREATE_C) -#define nh5fflush_c H5_FC_FUNC_(h5fflush_c, H5FFLUSH_C) -#define nh5fclose_c H5_FC_FUNC_(h5fclose_c, H5FCLOSE_C) -#define nh5fopen_c H5_FC_FUNC_(h5fopen_c, H5FOPEN_C) -#define nh5fis_hdf5_c H5_FC_FUNC_(h5fis_hdf5_c, H5FIS_HDF5_C) -#define nh5fmount_c H5_FC_FUNC_(h5fmount_c, H5FMOUNT_C) -#define nh5funmount_c H5_FC_FUNC_(h5funmount_c, H5FUNMOUNT_C) -#define nh5freopen_c H5_FC_FUNC_(h5freopen_c, H5FREOPEN_C) -#define nh5fget_create_plist_c H5_FC_FUNC_(h5fget_create_plist_c, H5FGET_CREATE_PLIST_C) -#define nh5fget_access_plist_c H5_FC_FUNC_(h5fget_access_plist_c, H5FGET_ACCESS_PLIST_C) -#define nh5fget_obj_count_c H5_FC_FUNC_(h5fget_obj_count_c, H5FGET_OBJ_COUNT_C) -#define nh5fget_obj_ids_c H5_FC_FUNC_(h5fget_obj_ids_c, H5FGET_OBJ_IDS_C) -#define nh5fget_freespace_c H5_FC_FUNC_(h5fget_freespace_c, H5FGET_FREESPACE_C) -#define nh5fget_file_image_c H5_FC_FUNC_(h5fget_file_image_c, H5FGET_FILE_IMAGE_C) -#define nh5fget_name_c H5_FC_FUNC_(h5fget_name_c, H5FGET_NAME_C) -#define nh5fget_filesize_c H5_FC_FUNC_(h5fget_filesize_c, H5FGET_FILESIZE_C) - -H5_FCDLL int_f nh5fcreate_c (_fcd name, int_f *namelen, int_f *access_flags, hid_t_f *crt_prp, hid_t_f *acc_prp, hid_t_f *file_id); -H5_FCDLL int_f nh5fopen_c (_fcd name, int_f *namelen, int_f *access_flags, hid_t_f *acc_prp, hid_t_f *file_id); -H5_FCDLL int_f nh5fis_hdf5_c (_fcd name, int_f *namelen, int_f *flag); -H5_FCDLL int_f nh5fclose_c (hid_t_f *file_id); -H5_FCDLL int_f nh5fmount_c (hid_t_f *loc_id, _fcd dsetname, int_f *namelen, hid_t_f *file_id, hid_t_f *acc_prp); -H5_FCDLL int_f nh5funmount_c (hid_t_f *loc_id, _fcd dsetname, int_f *namelen); -H5_FCDLL int_f nh5freopen_c (hid_t_f *file_id1, hid_t_f *file_id2); -H5_FCDLL int_f nh5fget_create_plist_c (hid_t_f *file_id, hid_t_f *prop_id); -H5_FCDLL int_f nh5fget_access_plist_c (hid_t_f *file_id, hid_t_f *access_id); -H5_FCDLL int_f nh5fget_obj_count_c (hid_t_f *file_id, int_f *obj_type, size_t_f *obj_count); -H5_FCDLL int_f nh5fget_obj_ids_c (hid_t_f *file_id, int_f *obj_type, size_t_f *max_objs, hid_t_f *obj_ids, size_t_f *num_objs); -H5_FCDLL int_f nh5fget_freespace_c (hid_t_f *file_id, hssize_t_f *free_space); -H5_FCDLL int_f nh5fget_file_image_c(hid_t_f *file_id, void *buf_ptr, size_t_f *buf_len, size_t_f *buf_req); -H5_FCDLL int_f nh5fflush_c (hid_t_f *obj_id, int_f *scope); -H5_FCDLL int_f nh5fget_name_c(hid_t_f *obj_id, size_t_f *size, _fcd buf, size_t_f *buflen); -H5_FCDLL int_f nh5fget_filesize_c(hid_t_f *file_id, hsize_t_f *size); - -/* - * Functions from H5Sf.c - */ -#define nh5screate_simple_c H5_FC_FUNC_(h5screate_simple_c, H5SCREATE_SIMPLE_C) -#define nh5sclose_c H5_FC_FUNC_(h5sclose_c, H5SCLOSE_C) -#define nh5screate_c H5_FC_FUNC_(h5screate_c, H5SCREATE_C) -#define nh5scopy_c H5_FC_FUNC_(h5scopy_c, H5SCOPY_C) -#define nh5sget_select_hyper_nblocks_c H5_FC_FUNC_(h5sget_select_hyper_nblocks_c, H5SGET_SELECT_HYPER_NBLOCKS_C) -#define nh5sget_select_hyper_blocklist_c H5_FC_FUNC_(h5sget_select_hyper_blocklist_c, H5SGET_SELECT_HYPER_BLOCKLIST_C) -#define nh5sget_select_elem_npoints_c H5_FC_FUNC_(h5sget_select_elem_npoints_c, H5SGET_SELECT_ELEM_NPOINTS_C) -#define nh5sget_select_elem_pointlist_c H5_FC_FUNC_(h5sget_select_elem_pointlist_c, H5SGET_SELECT_ELEM_POINTLIST_C) -#define nh5sget_select_bounds_c H5_FC_FUNC_(h5sget_select_bounds_c, H5SGET_SELECT_BOUNDS_C) -#define nh5sselect_all_c H5_FC_FUNC_(h5sselect_all_c, H5SSELECT_ALL_C) -#define nh5sselect_none_c H5_FC_FUNC_(h5sselect_none_c, H5SSELECT_NONE_C) -#define nh5sselect_valid_c H5_FC_FUNC_(h5sselect_valid_c, H5SSELECT_VALID_C) -#define nh5sget_simple_extent_npoints_c H5_FC_FUNC_(h5sget_simple_extent_npoints_c, H5SGET_SIMPLE_EXTENT_NPOINTS_C) -#define nh5sget_select_npoints_c H5_FC_FUNC_(h5sget_select_npoints_c, H5SGET_SELECT_NPOINTS_C) -#define nh5sget_simple_extent_ndims_c H5_FC_FUNC_(h5sget_simple_extent_ndims_c, H5SGET_SIMPLE_EXTENT_NDIMS_C) -#define nh5sget_simple_extent_type_c H5_FC_FUNC_(h5sget_simple_extent_type_c, H5SGET_SIMPLE_EXTENT_TYPE_C) -#define nh5soffset_simple_c H5_FC_FUNC_(h5soffset_simple_c, H5SOFFSET_SIMPLE_C) -#define nh5sset_extent_simple_c H5_FC_FUNC_(h5sset_extent_simple_c, H5SSET_EXTENT_SIMPLE_C) -#define nh5sis_simple_c H5_FC_FUNC_(h5sis_simple_c, H5SIS_SIMPLE_C) -#define nh5sextent_class_c H5_FC_FUNC_(h5sextent_class_c, H5SEXTENT_CLASS_C) -#define nh5sget_simple_extent_dims_c H5_FC_FUNC_(h5sget_simple_extent_dims_c, H5SGET_SIMPLE_EXTENT_DIMS_C) -#define nh5sextent_copy_c H5_FC_FUNC_(h5sextent_copy_c, H5SEXTENT_COPY_C) -#define nh5sset_extent_none_c H5_FC_FUNC_(h5sset_extent_none_c, H5SSET_EXTENT_NONE_C) -#define nh5sselect_hyperslab_c H5_FC_FUNC_(h5sselect_hyperslab_c, H5SSELECT_HYPERSLAB_C) -#define nh5scombine_hyperslab_c H5_FC_FUNC_(h5scombine_hyperslab_c, H5SCOMBINE_HYPERSLAB_C) -#define nh5scombine_select_c H5_FC_FUNC_(h5scombine_select_c, H5SCOMBINE_SELECT_C) -#define nh5sselect_select_c H5_FC_FUNC_(h5sselect_select_c, H5SSELECT_SELECT_C) -#define nh5sget_select_type_c H5_FC_FUNC_(h5sget_select_type_c, H5SGET_SELECT_TYPE_C) -#define nh5sselect_elements_c H5_FC_FUNC_(h5sselect_elements_c, H5SSELECT_ELEMENTS_C) -#define nh5sdecode_c H5_FC_FUNC_(h5sdecode_c, H5SDECODE_C) -#define nh5sencode_c H5_FC_FUNC_(h5sencode_c, H5SENCODE_C) -#define nh5sextent_equal_c H5_FC_FUNC_(h5sextent_equal_c, H5SEXTENT_EQUAL_C) - -H5_FCDLL int_f nh5screate_simple_c ( int_f *rank, hsize_t_f *dims, hsize_t_f *maxdims, hid_t_f *space_id ); -H5_FCDLL int_f nh5sclose_c ( hid_t_f *space_id ); -H5_FCDLL int_f nh5screate_c ( int_f *classtype, hid_t_f *space_id ); -H5_FCDLL int_f nh5scopy_c ( hid_t_f *space_id , hid_t_f *new_space_id); -H5_FCDLL int_f nh5sget_select_hyper_nblocks_c( hid_t_f *space_id , hssize_t_f * num_blocks); -H5_FCDLL int_f nh5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f * startblock, hsize_t_f * num_blocks, hsize_t_f * buf); -H5_FCDLL int_f nh5sget_select_bounds_c( hid_t_f *space_id , hsize_t_f * start, hsize_t_f * end); -H5_FCDLL int_f nh5sget_select_elem_npoints_c( hid_t_f *space_id , hssize_t_f * num_points); -H5_FCDLL int_f nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, hsize_t_f * numpoints, hsize_t_f * buf); -H5_FCDLL int_f nh5sselect_all_c ( hid_t_f *space_id ); -H5_FCDLL int_f nh5sselect_none_c ( hid_t_f *space_id ); -H5_FCDLL int_f nh5sselect_valid_c ( hid_t_f *space_id , int_f *flag ); -H5_FCDLL int_f nh5sget_simple_extent_npoints_c ( hid_t_f *space_id , hsize_t_f *npoints ); -H5_FCDLL int_f nh5sget_select_npoints_c ( hid_t_f *space_id , hssize_t_f *npoints ); -H5_FCDLL int_f nh5sget_simple_extent_ndims_c ( hid_t_f *space_id , int_f *ndims ); -H5_FCDLL int_f nh5sget_simple_extent_type_c ( hid_t_f *space_id , int_f *classtype); -H5_FCDLL int_f nh5soffset_simple_c ( hid_t_f *space_id , hssize_t_f *offset); -H5_FCDLL int_f nh5sset_extent_simple_c ( hid_t_f *space_id , int_f *rank, hsize_t_f * current_size, hsize_t_f *maximum_size); -H5_FCDLL int_f nh5sis_simple_c ( hid_t_f *space_id , int_f *flag ); -H5_FCDLL int_f nh5sextent_class_c ( hid_t_f *space_id , int_f *classtype); -H5_FCDLL int_f nh5sget_simple_extent_dims_c ( hid_t_f *space_id , hsize_t_f *dims, hsize_t_f *maxdims); -H5_FCDLL int_f nh5sextent_copy_c ( hid_t_f *dest_space_id , hid_t_f *source_space_id); -H5_FCDLL int_f nh5sset_extent_none_c ( hid_t_f *space_id ); -H5_FCDLL int_f nh5sselect_hyperslab_c ( hid_t_f *space_id , int_f *op, hsize_t_f *start, hsize_t_f *count, hsize_t_f *stride, hsize_t_f *block); -H5_FCDLL int_f nh5sget_select_type_c ( hid_t_f *space_id , int_f *op); -H5_FCDLL int_f nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hsize_t_f *coord); -H5_FCDLL int_f nh5scombine_hyperslab_c ( hid_t_f *space_id , int_f *op, hsize_t_f *start, hsize_t_f *count, hsize_t_f *stride, hsize_t_f *block, hid_t_f *hyper_id); -H5_FCDLL int_f nh5scombine_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id, hid_t_f *ds_id); -H5_FCDLL int_f nh5sselect_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id); -H5_FCDLL int_f nh5sdecode_c ( _fcd buf, hid_t_f *obj_id ); -H5_FCDLL int_f nh5sencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ); -H5_FCDLL int_f nh5sextent_equal_c ( hid_t_f * space1_id, hid_t_f *space2_id, hid_t_f *c_equal); - -/* - * Functions from H5Df.c - */ -#define nh5dcreate_c H5_FC_FUNC_(h5dcreate_c, H5DCREATE_C) -#define nh5dclose_c H5_FC_FUNC_(h5dclose_c, H5DCLOSE_C) -#define nh5dopen_c H5_FC_FUNC_(h5dopen_c, H5DOPEN_C) -#define nh5dwrite_c H5_FC_FUNC_(h5dwrite_c, H5DWRITE_C) -#define nh5dwrite_integer_s_c H5_FC_FUNC_(h5dwrite_integer_s_c, H5DWRITE_INTEGER_S_C) -#define nh5dwrite_integer_1_c H5_FC_FUNC_(h5dwrite_integer_1_c, H5DWRITE_INTEGER_1_C) -#define nh5dwrite_integer_2_c H5_FC_FUNC_(h5dwrite_integer_2_c, H5DWRITE_INTEGER_2_C) -#define nh5dwrite_integer_3_c H5_FC_FUNC_(h5dwrite_integer_3_c, H5DWRITE_INTEGER_3_C) -#define nh5dwrite_integer_4_c H5_FC_FUNC_(h5dwrite_integer_4_c, H5DWRITE_INTEGER_4_C) -#define nh5dwrite_integer_5_c H5_FC_FUNC_(h5dwrite_integer_5_c, H5DWRITE_INTEGER_5_C) -#define nh5dwrite_integer_6_c H5_FC_FUNC_(h5dwrite_integer_6_c, H5DWRITE_INTEGER_6_C) -#define nh5dwrite_integer_7_c H5_FC_FUNC_(h5dwrite_integer_7_c, H5DWRITE_INTEGER_7_C) -#define nh5dwrite_real_s_c H5_FC_FUNC_(h5dwrite_real_s_c, H5DWRITE_REAL_S_C) -#define nh5dwrite_real_1_c H5_FC_FUNC_(h5dwrite_real_1_c, H5DWRITE_REAL_1_C) -#define nh5dwrite_real_2_c H5_FC_FUNC_(h5dwrite_real_2_c, H5DWRITE_REAL_2_C) -#define nh5dwrite_real_3_c H5_FC_FUNC_(h5dwrite_real_3_c, H5DWRITE_REAL_3_C) -#define nh5dwrite_real_4_c H5_FC_FUNC_(h5dwrite_real_4_c, H5DWRITE_REAL_4_C) -#define nh5dwrite_real_5_c H5_FC_FUNC_(h5dwrite_real_5_c, H5DWRITE_REAL_5_C) -#define nh5dwrite_real_6_c H5_FC_FUNC_(h5dwrite_real_6_c, H5DWRITE_REAL_6_C) -#define nh5dwrite_real_7_c H5_FC_FUNC_(h5dwrite_real_7_c, H5DWRITE_REAL_7_C) -#define nh5dwrite_double_s_c H5_FC_FUNC_(h5dwrite_double_s_c, H5DWRITE_DOUBLE_S_C) -#define nh5dwrite_double_1_c H5_FC_FUNC_(h5dwrite_double_1_c, H5DWRITE_DOUBLE_1_C) -#define nh5dwrite_double_2_c H5_FC_FUNC_(h5dwrite_double_2_c, H5DWRITE_DOUBLE_2_C) -#define nh5dwrite_double_3_c H5_FC_FUNC_(h5dwrite_double_3_c, H5DWRITE_DOUBLE_3_C) -#define nh5dwrite_double_4_c H5_FC_FUNC_(h5dwrite_double_4_c, H5DWRITE_DOUBLE_4_C) -#define nh5dwrite_double_5_c H5_FC_FUNC_(h5dwrite_double_5_c, H5DWRITE_DOUBLE_5_C) -#define nh5dwrite_double_6_c H5_FC_FUNC_(h5dwrite_double_6_c, H5DWRITE_DOUBLE_6_C) -#define nh5dwrite_double_7_c H5_FC_FUNC_(h5dwrite_double_7_c, H5DWRITE_DOUBLE_7_C) -#define nh5dwrite_ref_obj_c H5_FC_FUNC_(h5dwrite_ref_obj_c, H5DWRITE_REF_OBJ_C) -#define nh5dwrite_ref_reg_c H5_FC_FUNC_(h5dwrite_ref_reg_c, H5DWRITE_REF_REG_C) -#define nh5dwritec_c H5_FC_FUNC_(h5dwritec_c, H5DWRITEC_C) -#define nh5dwritec_s_c H5_FC_FUNC_(h5dwritec_s_c, H5DWRITEC_S_C) -#define nh5dwritec_1_c H5_FC_FUNC_(h5dwritec_1_c, H5DWRITEC_1_C) -#define nh5dwritec_2_c H5_FC_FUNC_(h5dwritec_2_c, H5DWRITEC_2_C) -#define nh5dwritec_3_c H5_FC_FUNC_(h5dwritec_3_c, H5DWRITEC_3_C) -#define nh5dwritec_4_c H5_FC_FUNC_(h5dwritec_4_c, H5DWRITEC_4_C) -#define nh5dwritec_5_c H5_FC_FUNC_(h5dwritec_5_c, H5DWRITEC_5_C) -#define nh5dwritec_6_c H5_FC_FUNC_(h5dwritec_6_c, H5DWRITEC_6_C) -#define nh5dwritec_7_c H5_FC_FUNC_(h5dwritec_7_c, H5DWRITEC_7_C) -#define nh5dread_c H5_FC_FUNC_(h5dread_c, H5DREAD_C) -#define nh5dread_integer_s_c H5_FC_FUNC_(h5dread_integer_s_c, H5DREAD_INTEGER_S_C) -#define nh5dread_integer_1_c H5_FC_FUNC_(h5dread_integer_1_c, H5DREAD_INTEGER_1_C) -#define nh5dread_integer_2_c H5_FC_FUNC_(h5dread_integer_2_c, H5DREAD_INTEGER_2_C) -#define nh5dread_integer_3_c H5_FC_FUNC_(h5dread_integer_3_c, H5DREAD_INTEGER_3_C) -#define nh5dread_integer_4_c H5_FC_FUNC_(h5dread_integer_4_c, H5DREAD_INTEGER_4_C) -#define nh5dread_integer_5_c H5_FC_FUNC_(h5dread_integer_5_c, H5DREAD_INTEGER_5_C) -#define nh5dread_integer_6_c H5_FC_FUNC_(h5dread_integer_6_c, H5DREAD_INTEGER_6_C) -#define nh5dread_integer_7_c H5_FC_FUNC_(h5dread_integer_7_c, H5DREAD_INTEGER_7_C) -#define nh5dread_real_s_c H5_FC_FUNC_(h5dread_real_s_c, H5DREAD_REAL_S_C) -#define nh5dread_real_1_c H5_FC_FUNC_(h5dread_real_1_c, H5DREAD_REAL_1_C) -#define nh5dread_real_2_c H5_FC_FUNC_(h5dread_real_2_c, H5DREAD_REAL_2_C) -#define nh5dread_real_3_c H5_FC_FUNC_(h5dread_real_3_c, H5DREAD_REAL_3_C) -#define nh5dread_real_4_c H5_FC_FUNC_(h5dread_real_4_c, H5DREAD_REAL_4_C) -#define nh5dread_real_5_c H5_FC_FUNC_(h5dread_real_5_c, H5DREAD_REAL_5_C) -#define nh5dread_real_6_c H5_FC_FUNC_(h5dread_real_6_c, H5DREAD_REAL_6_C) -#define nh5dread_real_7_c H5_FC_FUNC_(h5dread_real_7_c, H5DREAD_REAL_7_C) -#define nh5dread_double_s_c H5_FC_FUNC_(h5dread_double_s_c, H5DREAD_DOUBLE_S_C) -#define nh5dread_double_1_c H5_FC_FUNC_(h5dread_double_1_c, H5DREAD_DOUBLE_1_C) -#define nh5dread_double_2_c H5_FC_FUNC_(h5dread_double_2_c, H5DREAD_DOUBLE_2_C) -#define nh5dread_double_3_c H5_FC_FUNC_(h5dread_double_3_c, H5DREAD_DOUBLE_3_C) -#define nh5dread_double_4_c H5_FC_FUNC_(h5dread_double_4_c, H5DREAD_DOUBLE_4_C) -#define nh5dread_double_5_c H5_FC_FUNC_(h5dread_double_5_c, H5DREAD_DOUBLE_5_C) -#define nh5dread_double_6_c H5_FC_FUNC_(h5dread_double_6_c, H5DREAD_DOUBLE_6_C) -#define nh5dread_double_7_c H5_FC_FUNC_(h5dread_double_7_c, H5DREAD_DOUBLE_7_C) -#define nh5dread_c_b H5_FC_FUNC_(h5dread_c_b, H5DREAD_C_B) -#define nh5dread_ref_reg_c H5_FC_FUNC_(h5dread_ref_reg_c, H5DREAD_REF_REG_C) -#define nh5dread_ref_obj_c H5_FC_FUNC_(h5dread_ref_obj_c, H5DREAD_REF_OBJ_C) -#define nh5dreadc_c H5_FC_FUNC_(h5dreadc_c, H5DREADC_C) -#define nh5dreadc_s_c H5_FC_FUNC_(h5dreadc_s_c, H5DREADC_S_C) -#define nh5dreadc_1_c H5_FC_FUNC_(h5dreadc_1_c, H5DREADC_1_C) -#define nh5dreadc_2_c H5_FC_FUNC_(h5dreadc_2_c, H5DREADC_2_C) -#define nh5dreadc_3_c H5_FC_FUNC_(h5dreadc_3_c, H5DREADC_3_C) -#define nh5dreadc_4_c H5_FC_FUNC_(h5dreadc_4_c, H5DREADC_4_C) -#define nh5dreadc_5_c H5_FC_FUNC_(h5dreadc_5_c, H5DREADC_5_C) -#define nh5dreadc_6_c H5_FC_FUNC_(h5dreadc_6_c, H5DREADC_6_C) -#define nh5dreadc_7_c H5_FC_FUNC_(h5dreadc_7_c, H5DREADC_7_C) -#define nh5dreadc_c_b H5_FC_FUNC_(h5dreadc_c_b, H5DREADC_C_B) -#define nh5dget_space_c H5_FC_FUNC_(h5dget_space_c, H5DGET_SPACE_C) -#define nh5dget_type_c H5_FC_FUNC_(h5dget_type_c, H5DGET_TYPE_C) -#define nh5dget_create_plist_c H5_FC_FUNC_(h5dget_create_plist_c, H5DGET_CREATE_PLIST_C) -#define nh5dset_extent_c H5_FC_FUNC_(h5dset_extent_c, H5DSET_EXTENT_C) -#define nh5dget_storage_size_c H5_FC_FUNC_(h5dget_storage_size_c, H5DGET_STORAGE_SIZE_C) -#define nh5dvlen_get_max_len_c H5_FC_FUNC_(h5dvlen_get_max_len_c, H5DVLEN_GET_MAX_LEN_C) -#define nh5dwrite_vl_integer_c H5_FC_FUNC_(h5dwrite_vl_integer_c, H5DWRITE_VL_INTEGER_C) -#define nh5dread_vl_integer_c H5_FC_FUNC_(h5dread_vl_integer_c, H5DREAD_VL_INTEGER_C) -#define nh5dwrite_vl_real_c H5_FC_FUNC_(h5dwrite_vl_real_c, H5DWRITE_VL_REAL_C) -#define nh5dread_vl_real_c H5_FC_FUNC_(h5dread_vl_real_c, H5DREAD_VL_REAL_C) -#define nh5dwrite_vl_string_c H5_FC_FUNC_(h5dwrite_vl_string_c, H5DWRITE_VL_STRING_C) -#define nh5dread_vl_string_c H5_FC_FUNC_(h5dread_vl_string_c, H5DREAD_VL_STRING_C) -#define nh5dfillc_c H5_FC_FUNC_(h5dfillc_c, H5DFILLC_C) -#define nh5dfill_c H5_FC_FUNC_(h5dfill_c, H5DFILL_C) -#define nh5dfill_integer_c H5_FC_FUNC_(h5dfill_integer_c, H5DFILL_INTEGER_C) -#define nh5dfill_real_c H5_FC_FUNC_(h5dfill_real_c, H5DFILL_REAL_C) -#define nh5dfill_double_c H5_FC_FUNC_(h5dfill_double_c, H5DFILL_DOUBLE_C) -#define nh5dget_space_status_c H5_FC_FUNC_(h5dget_space_status_c, H5DGET_SPACE_STATUS_C) -#define nh5dcreate_anon_c H5_FC_FUNC_(h5dcreate_anon_c, H5DCREATE_ANON_C) -#define nh5dwrite_f_c H5_FC_FUNC_(h5dwrite_f_c, H5DWRITE_F_C) -#define nh5dread_f_c H5_FC_FUNC_(h5dread_f_c, H5DREAD_F_C) -#define nh5dget_access_plist_c H5_FC_FUNC_(h5dget_access_plist_c, H5DGET_ACCESS_PLIST_C) -#define nh5dvlen_reclaim_c H5_FC_FUNC_(h5dvlen_reclaim_c, H5DVLEN_RECLAIM_C) - - -H5_FCDLL int_f nh5dcreate_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *space_id, - hid_t_f *lcpl_id, hid_t_f *dcpl_id, hid_t_f *dapl_id, hid_t_f *dset_id); -H5_FCDLL int_f nh5dopen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *dapl_id, hid_t_f *dset_id); -H5_FCDLL int_f nh5dclose_c ( hid_t_f *dset_id ); -H5_FCDLL int_f nh5dwrite_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_integer_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_integer_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_integer_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_integer_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_integer_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_integer_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_integer_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_integer_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); - -H5_FCDLL int_f nh5dwrite_real_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_real_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_real_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_real_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_real_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_real_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_real_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_real_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); - -H5_FCDLL int_f nh5dwrite_double_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_double_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_double_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_double_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_double_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_double_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_double_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_double_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); - -H5_FCDLL int_f nh5dwrite_vl_integer_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, hsize_t_f *dims, size_t_f *len); -H5_FCDLL int_f nh5dwrite_vl_real_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, real_f *buf, hsize_t_f *dims, size_t_f *len); -H5_FCDLL int_f nh5dwrite_vl_string_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims, size_t_f *len); -H5_FCDLL int_f nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, haddr_t_f *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, hsize_t_f *dims); - -H5_FCDLL int_f nh5dwritec_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); - -H5_FCDLL int_f nh5dwritec_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwritec_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwritec_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwritec_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwritec_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwritec_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwritec_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dwritec_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); - -H5_FCDLL int_f nh5dread_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); - -H5_FCDLL int_f nh5dread_integer_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_integer_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_integer_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_integer_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_integer_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_integer_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_integer_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_integer_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); - -H5_FCDLL int_f nh5dread_real_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_real_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_real_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_real_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_real_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_real_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_real_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_real_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); - -H5_FCDLL int_f nh5dread_double_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_double_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_double_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_double_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_double_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_double_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_double_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_double_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); - -H5_FCDLL int_f nh5dread_vl_integer_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, hsize_t_f *dims, size_t_f *len); -H5_FCDLL int_f nh5dread_vl_real_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, real_f *buf, hsize_t_f *dims, size_t_f *len); -H5_FCDLL int_f nh5dread_vl_string_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims, size_t_f *len); -H5_FCDLL int_f nh5dread_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, haddr_t_f * buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dread_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f * buf, hsize_t_f *dims); - -H5_FCDLL int_f nh5dreadc_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); - -H5_FCDLL int_f nh5dreadc_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dreadc_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dreadc_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dreadc_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dreadc_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dreadc_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dreadc_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dreadc_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); -H5_FCDLL int_f nh5dget_access_plist_c (hid_t_f *dset_id, hid_t_f *plist_id); - - -H5_FCDLL int_f nh5dget_space_c ( hid_t_f *dset_id , hid_t_f *space_id); -H5_FCDLL int_f nh5dget_type_c ( hid_t_f *dset_id , hid_t_f *type_id); -H5_FCDLL int_f nh5dget_create_plist_c ( hid_t_f *dset_id , hid_t_f *plist_id); -H5_FCDLL int_f nh5dset_extent_c ( hid_t_f *dset_id , hsize_t_f *dims); -H5_FCDLL int_f nh5dvlen_get_max_len_c(hid_t_f *dataset_id, hid_t_f *type_id, hid_t_f *space_id, size_t_f *len); -H5_FCDLL int_f nh5dget_storage_size_c(hid_t_f *dataset_id, hsize_t_f *size); -H5_FCDLL int_f nh5dfillc_c(_fcd fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, _fcd buf, hid_t_f *mem_type_id); -H5_FCDLL int_f nh5dfill_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); -H5_FCDLL int_f nh5dfill_integer_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); -H5_FCDLL int_f nh5dfill_real_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); -H5_FCDLL int_f nh5dfill_double_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); -H5_FCDLL int_f nh5dget_space_status_c ( hid_t_f *dset_id, int_f *flag); -H5_FCDLL int_f nh5dcreate_anon_c (hid_t_f *loc_id, hid_t_f *type_id, hid_t_f *space_id, - hid_t_f *dcpl_id, hid_t_f *dapl_id, hid_t_f *dset_id); -H5_FCDLL int_f nh5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, - hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf); -H5_FCDLL int_f nh5dread_f_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id, - hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf); -H5_FCDLL int_f nh5dvlen_reclaim_c (hid_t_f *type_id , hid_t_f *space_id, hid_t_f *plist_id, void *buf); -/* - * Functions from H5Gf.c - */ -#define nh5gcreate_c H5_FC_FUNC_(h5gcreate_c, H5GCREATE_C) -#define nh5gclose_c H5_FC_FUNC_(h5gclose_c, H5GCLOSE_C) -#define nh5gopen_c H5_FC_FUNC_(h5gopen_c, H5GOPEN_C) -#define nh5gget_obj_info_idx_c H5_FC_FUNC_(h5gget_obj_info_idx_c, H5GGET_OBJ_INFO_IDX_C) -#define nh5gn_members_c H5_FC_FUNC_(h5gn_members_c, H5GN_MEMBERS_C) -#define nh5glink_c H5_FC_FUNC_(h5glink_c, H5GLINK_C) -#define nh5glink2_c H5_FC_FUNC_(h5glink2_c, H5GLINK2_C) -#define nh5gunlink_c H5_FC_FUNC_(h5gunlink_c, H5GUNLINK_C) -#define nh5gmove_c H5_FC_FUNC_(h5gmove_c, H5GMOVE_C) -#define nh5gmove2_c H5_FC_FUNC_(h5gmove2_c, H5GMOVE2_C) -#define nh5gget_linkval_c H5_FC_FUNC_(h5gget_linkval_c, H5GGET_LINKVAL_C) -#define nh5gset_comment_c H5_FC_FUNC_(h5gset_comment_c, H5GSET_COMMENT_C) -#define nh5gget_comment_c H5_FC_FUNC_(h5gget_comment_c, H5GGET_COMMENT_C) -#define nh5gcreate_anon_c H5_FC_FUNC_(h5gcreate_anon_c, H5GCREATE_ANON_C) -#define nh5gget_create_plist_c H5_FC_FUNC_(h5gget_create_plist_c, H5GGET_CREATE_PLIST_C) -#define nh5gget_info_c H5_FC_FUNC_(h5gget_info_c, H5GGET_INFO_C) -#define nh5gget_info_by_idx_c H5_FC_FUNC_(h5gget_info_by_idx_c, H5GGET_INFO_BY_IDX_C) -#define nh5gget_info_by_name_c H5_FC_FUNC_(h5gget_info_by_name_c, H5GGET_INFO_BY_NAME_C) - - -H5_FCDLL int_f nh5gcreate_c (hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size_hint, hid_t_f *grp_id, - hid_t_f *lcpl_id, hid_t_f *gcpl_id, hid_t_f *gapl_id); -H5_FCDLL int_f nh5gopen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *gapl_id, hid_t_f *grp_id); -H5_FCDLL int_f nh5gclose_c ( hid_t_f *grp_id ); -H5_FCDLL int_f nh5gget_obj_info_idx_c (hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *idx, _fcd obj_name, int_f *obj_namelen, int_f *obj_type); -H5_FCDLL int_f nh5gn_members_c (hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *nmembers); -H5_FCDLL int_f nh5glink_c (hid_t_f *loc_id, int_f *link_type, _fcd current_name, int_f *current_namelen, _fcd new_name, int_f *new_namelen); -H5_FCDLL int_f nh5glink2_c (hid_t_f *cur_loc_id, _fcd cur_name, int_f *cur_namelen, int_f *link_type, hid_t_f *new_loc_id, _fcd new_name, int_f *new_namelen); -H5_FCDLL int_f nh5gunlink_c (hid_t_f *loc_id, _fcd name, int_f *namelen); -H5_FCDLL int_f nh5gmove_c (hid_t_f *loc_id, _fcd src_name, int_f *src_namelen, _fcd dst_name, int_f *dst_namelen); -H5_FCDLL int_f nh5gmove2_c (hid_t_f *src_loc_id, _fcd src_name, int_f *src_namelen, hid_t_f *dst_loc_id,_fcd dst_name, int_f *dst_namelen); -H5_FCDLL int_f nh5gget_linkval_c (hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size, _fcd value ); -H5_FCDLL int_f nh5gset_comment_c (hid_t_f *loc_id, _fcd name, int_f *namelen, _fcd comment, int_f *commentlen); -H5_FCDLL int_f nh5gget_comment_c (hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *bufsize, _fcd comment); -H5_FCDLL int_f nh5gcreate_anon_c (hid_t_f *loc_id, hid_t_f *gcpl_id, hid_t_f *gapl_id, hid_t_f *grp_id); -H5_FCDLL int_f nh5gget_create_plist_c(hid_t_f *grp_id, hid_t_f *gcpl_id ); -H5_FCDLL int_f nh5gget_info_c (hid_t_f *group_id, int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted); -H5_FCDLL int_f nh5gget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, - int_f *index_type, int_f *order, hsize_t_f *n, hid_t_f *lapl_id, - int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted); -H5_FCDLL int_f nh5gget_info_by_name_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, hid_t_f *lapl_id, - int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted); - -/* - * Functions from H5Af.c - */ -#define nh5acreate_c H5_FC_FUNC_(h5acreate_c, H5ACREATE_C) -#define nh5aclose_c H5_FC_FUNC_(h5aclose_c, H5ACLOSE_C) -#define nh5aopen_name_c H5_FC_FUNC_(h5aopen_name_c, H5AOPEN_NAME_C) -#define nh5awrite_c H5_FC_FUNC_(h5awrite_c, H5AWRITE_C) -#define nh5awrite_integer_s_c H5_FC_FUNC_(h5awrite_integer_s_c, H5AWRITE_INTEGER_S_C) -#define nh5awrite_integer_1_c H5_FC_FUNC_(h5awrite_integer_1_c, H5AWRITE_INTEGER_1_C) -#define nh5awrite_integer_2_c H5_FC_FUNC_(h5awrite_integer_2_c, H5AWRITE_INTEGER_2_C) -#define nh5awrite_integer_3_c H5_FC_FUNC_(h5awrite_integer_3_c, H5AWRITE_INTEGER_3_C) -#define nh5awrite_integer_4_c H5_FC_FUNC_(h5awrite_integer_4_c, H5AWRITE_INTEGER_4_C) -#define nh5awrite_integer_5_c H5_FC_FUNC_(h5awrite_integer_5_c, H5AWRITE_INTEGER_5_C) -#define nh5awrite_integer_6_c H5_FC_FUNC_(h5awrite_integer_6_c, H5AWRITE_INTEGER_6_C) -#define nh5awrite_integer_7_c H5_FC_FUNC_(h5awrite_integer_7_c, H5AWRITE_INTEGER_7_C) -#define nh5awrite_real_s_c H5_FC_FUNC_(h5awrite_real_s_c, H5AWRITE_REAL_S_C) -#define nh5awrite_real_1_c H5_FC_FUNC_(h5awrite_real_1_c, H5AWRITE_REAL_1_C) -#define nh5awrite_real_2_c H5_FC_FUNC_(h5awrite_real_2_c, H5AWRITE_REAL_2_C) -#define nh5awrite_real_3_c H5_FC_FUNC_(h5awrite_real_3_c, H5AWRITE_REAL_3_C) -#define nh5awrite_real_4_c H5_FC_FUNC_(h5awrite_real_4_c, H5AWRITE_REAL_4_C) -#define nh5awrite_real_5_c H5_FC_FUNC_(h5awrite_real_5_c, H5AWRITE_REAL_5_C) -#define nh5awrite_real_6_c H5_FC_FUNC_(h5awrite_real_6_c, H5AWRITE_REAL_6_C) -#define nh5awrite_real_7_c H5_FC_FUNC_(h5awrite_real_7_c, H5AWRITE_REAL_7_C) -#define nh5awrite_double_s_c H5_FC_FUNC_(h5awrite_double_s_c, H5AWRITE_DOUBLE_S_C) -#define nh5awrite_double_1_c H5_FC_FUNC_(h5awrite_double_1_c, H5AWRITE_DOUBLE_1_C) -#define nh5awrite_double_2_c H5_FC_FUNC_(h5awrite_double_2_c, H5AWRITE_DOUBLE_2_C) -#define nh5awrite_double_3_c H5_FC_FUNC_(h5awrite_double_3_c, H5AWRITE_DOUBLE_3_C) -#define nh5awrite_double_4_c H5_FC_FUNC_(h5awrite_double_4_c, H5AWRITE_DOUBLE_4_C) -#define nh5awrite_double_5_c H5_FC_FUNC_(h5awrite_double_5_c, H5AWRITE_DOUBLE_5_C) -#define nh5awrite_double_6_c H5_FC_FUNC_(h5awrite_double_6_c, H5AWRITE_DOUBLE_6_C) -#define nh5awrite_double_7_c H5_FC_FUNC_(h5awrite_double_7_c, H5AWRITE_DOUBLE_7_C) -#define nh5awritec_c H5_FC_FUNC_(h5awritec_c, H5AWRITEC_C) -#define nh5awritec_s_c H5_FC_FUNC_(h5awritec_s_c, H5AWRITEC_S_C) -#define nh5awritec_1_c H5_FC_FUNC_(h5awritec_1_c, H5AWRITEC_1_C) -#define nh5awritec_2_c H5_FC_FUNC_(h5awritec_2_c, H5AWRITEC_2_C) -#define nh5awritec_3_c H5_FC_FUNC_(h5awritec_3_c, H5AWRITEC_3_C) -#define nh5awritec_4_c H5_FC_FUNC_(h5awritec_4_c, H5AWRITEC_4_C) -#define nh5awritec_5_c H5_FC_FUNC_(h5awritec_5_c, H5AWRITEC_5_C) -#define nh5awritec_6_c H5_FC_FUNC_(h5awritec_6_c, H5AWRITEC_6_C) -#define nh5awritec_7_c H5_FC_FUNC_(h5awritec_7_c, H5AWRITEC_7_C) -#define nh5awrite_f_c H5_FC_FUNC_(h5awrite_f_c, H5AWRITE_F_C) -#define nh5aread_c H5_FC_FUNC_(h5aread_c, H5AREAD_C) -#define nh5aread_integer_s_c H5_FC_FUNC_(h5aread_integer_s_c, H5AREAD_INTEGER_S_C) -#define nh5aread_integer_1_c H5_FC_FUNC_(h5aread_integer_1_c, H5AREAD_INTEGER_1_C) -#define nh5aread_integer_2_c H5_FC_FUNC_(h5aread_integer_2_c, H5AREAD_INTEGER_2_C) -#define nh5aread_integer_3_c H5_FC_FUNC_(h5aread_integer_3_c, H5AREAD_INTEGER_3_C) -#define nh5aread_integer_4_c H5_FC_FUNC_(h5aread_integer_4_c, H5AREAD_INTEGER_4_C) -#define nh5aread_integer_5_c H5_FC_FUNC_(h5aread_integer_5_c, H5AREAD_INTEGER_5_C) -#define nh5aread_integer_6_c H5_FC_FUNC_(h5aread_integer_6_c, H5AREAD_INTEGER_6_C) -#define nh5aread_integer_7_c H5_FC_FUNC_(h5aread_integer_7_c, H5AREAD_INTEGER_7_C) -#define nh5aread_real_s_c H5_FC_FUNC_(h5aread_real_s_c, H5AREAD_REAL_S_C) -#define nh5aread_real_1_c H5_FC_FUNC_(h5aread_real_1_c, H5AREAD_REAL_1_C) -#define nh5aread_real_2_c H5_FC_FUNC_(h5aread_real_2_c, H5AREAD_REAL_2_C) -#define nh5aread_real_3_c H5_FC_FUNC_(h5aread_real_3_c, H5AREAD_REAL_3_C) -#define nh5aread_real_4_c H5_FC_FUNC_(h5aread_real_4_c, H5AREAD_REAL_4_C) -#define nh5aread_real_5_c H5_FC_FUNC_(h5aread_real_5_c, H5AREAD_REAL_5_C) -#define nh5aread_real_6_c H5_FC_FUNC_(h5aread_real_6_c, H5AREAD_REAL_6_C) -#define nh5aread_real_7_c H5_FC_FUNC_(h5aread_real_7_c, H5AREAD_REAL_7_C) -#define nh5aread_double_s_c H5_FC_FUNC_(h5aread_double_s_c, H5AREAD_DOUBLE_S_C) -#define nh5aread_double_1_c H5_FC_FUNC_(h5aread_double_1_c, H5AREAD_DOUBLE_1_C) -#define nh5aread_double_2_c H5_FC_FUNC_(h5aread_double_2_c, H5AREAD_DOUBLE_2_C) -#define nh5aread_double_3_c H5_FC_FUNC_(h5aread_double_3_c, H5AREAD_DOUBLE_3_C) -#define nh5aread_double_4_c H5_FC_FUNC_(h5aread_double_4_c, H5AREAD_DOUBLE_4_C) -#define nh5aread_double_5_c H5_FC_FUNC_(h5aread_double_5_c, H5AREAD_DOUBLE_5_C) -#define nh5aread_double_6_c H5_FC_FUNC_(h5aread_double_6_c, H5AREAD_DOUBLE_6_C) -#define nh5aread_double_7_c H5_FC_FUNC_(h5aread_double_7_c, H5AREAD_DOUBLE_7_C) -#define nh5areadc_c H5_FC_FUNC_(h5areadc_c, H5AREADC_C) -#define nh5areadc_s_c H5_FC_FUNC_(h5areadc_s_c, H5AREADC_S_C) -#define nh5areadc_1_c H5_FC_FUNC_(h5areadc_1_c, H5AREADC_1_C) -#define nh5areadc_2_c H5_FC_FUNC_(h5areadc_2_c, H5AREADC_2_C) -#define nh5areadc_3_c H5_FC_FUNC_(h5areadc_3_c, H5AREADC_3_C) -#define nh5areadc_4_c H5_FC_FUNC_(h5areadc_4_c, H5AREADC_4_C) -#define nh5areadc_5_c H5_FC_FUNC_(h5areadc_5_c, H5AREADC_5_C) -#define nh5areadc_6_c H5_FC_FUNC_(h5areadc_6_c, H5AREADC_6_C) -#define nh5areadc_7_c H5_FC_FUNC_(h5areadc_7_c, H5AREADC_7_C) -#define nh5aread_f_c H5_FC_FUNC_(h5aread_f_c, H5AREAD_F_C) -#define nh5aget_name_c H5_FC_FUNC_(h5aget_name_c, H5AGET_NAME_C) -#define nh5aopen_idx_c H5_FC_FUNC_(h5aopen_idx_c, H5AOPEN_IDX_C) -#define nh5aget_space_c H5_FC_FUNC_(h5aget_space_c, H5AGET_SPACE_C) -#define nh5aget_type_c H5_FC_FUNC_(h5aget_type_c, H5AGET_TYPE_C) -#define nh5aget_num_attrs_c H5_FC_FUNC_(h5aget_num_attrs_c, H5AGET_NUM_ATTRS_C) -#define nh5adelete_c H5_FC_FUNC_(h5adelete_c, H5ADELETE_C) -#define nh5aget_storage_size_c H5_FC_FUNC_(h5aget_storage_size_c, H5AGET_STORAGE_SIZE_C) -#define nh5arename_by_name_c H5_FC_FUNC_(h5arename_by_name_c, H5ARENAME_BY_NAME_C) -#define nh5aopen_c H5_FC_FUNC_(h5aopen_c, H5AOPEN_C) -#define nh5adelete_by_name_c H5_FC_FUNC_(h5adelete_by_name_c,H5ADELETE_BY_NAME_C) -#define nh5adelete_by_idx_c H5_FC_FUNC_(h5adelete_by_idx_c,H5ADELETE_BY_IDX_C) -#define nh5aget_name_by_idx_c H5_FC_FUNC_(h5aget_name_by_idx_c,H5AGET_NAME_BY_IDX_C) -#define nh5aget_create_plist_c H5_FC_FUNC_(h5aget_create_plist_c,H5AGET_CREATE_PLIST_C) -#define nh5aopen_by_idx_c H5_FC_FUNC_(h5aopen_by_idx_c,H5AOPEN_BY_IDX_C) -#define nh5aget_info_c H5_FC_FUNC_(h5aget_info_c,H5AGET_INFO_C) -#define nh5aget_info_by_idx_c H5_FC_FUNC_(h5aget_info_by_idx_c,H5AGET_INFO_BY_IDX_C) -#define nh5aget_info_by_name_c H5_FC_FUNC_(h5aget_info_by_name_c,H5AGET_INFO_BY_NAME_C) -#define nh5aget_info_by_name_c H5_FC_FUNC_(h5aget_info_by_name_c,H5AGET_INFO_BY_NAME_C) -#define nh5acreate_by_name_c H5_FC_FUNC_(h5acreate_by_name_c,H5ACREATE_BY_NAME_C) -#define nh5aexists_c H5_FC_FUNC_(h5aexists_c,H5AEXISTS_C) -#define nh5aexists_by_name_c H5_FC_FUNC_(h5aexists_by_name_c,H5AEXISTS_BY_NAME_C) -#define nh5aopen_by_name_c H5_FC_FUNC_(h5aopen_by_name_c,H5AOPEN_BY_NAME_C) -#define nh5arename_c H5_FC_FUNC_(h5arename_c,H5ARENAME_C) - -H5_FCDLL int_f nh5acreate_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *type_id, hid_t_f *space_id, hid_t_f *crt_prp, hid_t_f *aapl, hid_t_f *attr_id); -H5_FCDLL int_f nh5aopen_name_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *attr_id); -H5_FCDLL int_f nh5awritec_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5awritec_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5awritec_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5awritec_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5awritec_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5awritec_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5awritec_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5awritec_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5awritec_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5awrite_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5awrite_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf); -H5_FCDLL int_f nh5areadc_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5areadc_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5areadc_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5areadc_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5areadc_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5areadc_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5areadc_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5areadc_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5areadc_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); -H5_FCDLL int_f nh5aread_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); -H5_FCDLL int_f nh5aread_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf); -H5_FCDLL int_f nh5aclose_c ( hid_t_f *attr_id ); -H5_FCDLL int_f nh5adelete_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen); -H5_FCDLL int_f nh5aopen_idx_c (hid_t_f *obj_id, int_f *idx, hid_t_f *attr_id); -H5_FCDLL int_f nh5aget_space_c (hid_t_f *attr_id, hid_t_f *space_id); -H5_FCDLL int_f nh5aget_type_c (hid_t_f *attr_id, hid_t_f *type_id); -H5_FCDLL int_f nh5aget_num_attrs_c (hid_t_f *obj_id, int_f *attr_num); -H5_FCDLL int_f nh5aget_name_c(hid_t_f *attr_id, size_t_f *size, _fcd buf); -H5_FCDLL int_f nh5aget_storage_size_c ( hid_t_f *attr_id, hsize_t_f *size ); -H5_FCDLL int_f nh5arename_by_name_c ( hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, - _fcd old_attr_name, size_t_f *old_attr_namelen, - _fcd new_attr_name, size_t_f *new_attr_namelen, - hid_t_f *lapl_id ); -H5_FCDLL int_f nh5aopen_c ( hid_t_f *obj_id, _fcd attr_name, size_t_f *attr_namelen, - hid_t_f *aapl_id, hid_t_f *attr_id); -H5_FCDLL int_f nh5adelete_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, - _fcd attr_name, size_t_f *attr_namelen, hid_t_f *lapl_id); -H5_FCDLL int_f nh5adelete_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, - int_f *idx_type, int_f *order, hsize_t_f *n, hid_t_f *lapl_id); -H5_FCDLL int_f nh5aget_name_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, - int_f *idx_type, int_f *order, hsize_t_f *n, _fcd name, - size_t_f *size, hid_t_f *lapl_id); -H5_FCDLL int_f nh5aget_create_plist_c ( hid_t_f *attr_id, hid_t_f *creation_prop_id ); -H5_FCDLL int_f nh5aopen_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, - int_f *idx_type, int_f *order, hsize_t_f *n, hid_t_f *aapl_id, hid_t_f *lapl_id, hid_t_f *attr_id); -H5_FCDLL int_f nh5aget_info_c (hid_t_f *loc_id, int_f *corder_valid, int_f *corder, - int_f *cset, hsize_t_f *data_size ); -H5_FCDLL int_f nh5aget_info_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, - int_f *idx_type, int_f *order, hsize_t_f *n, hid_t_f *lapl_id, - int_f *corder_valid, int_f *corder, - int_f *cset, hsize_t_f *data_size ); -H5_FCDLL int_f nh5aget_info_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, - _fcd attr_name, size_t_f *attr_namelen, hid_t_f *lapl_id, - int_f *corder_valid, int_f *corder, - int_f *cset, hsize_t_f *data_size ); -H5_FCDLL int_f nh5acreate_by_name_c(hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, - _fcd attr_name, size_t_f *attr_namelen, hid_t_f *type_id, - hid_t_f *space_id, hid_t_f *acpl_id, hid_t_f *aapl_id, - hid_t_f *lapl_id, hid_t_f *attr_id ); -H5_FCDLL int_f nh5aexists_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *attr_exists); -H5_FCDLL int_f nh5aexists_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen, - hid_t_f *lapl_id, int_f *attr_exists); -H5_FCDLL int_f nh5aopen_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen, - hid_t_f *aapl_id, hid_t_f *lapl_id, hid_t_f *attr_id); -H5_FCDLL int_f nh5arename_c( hid_t_f *loc_id, - _fcd old_attr_name, size_t_f *old_attr_namelen, - _fcd new_attr_name, size_t_f *new_attr_namelen); - -/* - * Functions form H5Tf.c file - */ -#define nh5topen_c H5_FC_FUNC_(h5topen_c, H5TOPEN_C) -#define nh5tcommit_c H5_FC_FUNC_(h5tcommit_c, H5TCOMMIT_C) -#define nh5tcommitted_c H5_FC_FUNC_(h5tcommitted_c, H5TCOMMITTED_C) -#define nh5tconvert_c H5_FC_FUNC_(h5tconvert_c, H5TCONVERT_C) -#define nh5tclose_c H5_FC_FUNC_(h5tclose_c, H5TCLOSE_C) -#define nh5tcopy_c H5_FC_FUNC_(h5tcopy_c, H5TCOPY_C) -#define nh5tequal_c H5_FC_FUNC_(h5tequal_c, H5TEQUAL_C) -#define nh5tget_class_c H5_FC_FUNC_(h5tget_class_c, H5TGET_CLASS_C) -#define nh5tget_order_c H5_FC_FUNC_(h5tget_order_c, H5TGET_ORDER_C) -#define nh5tset_order_c H5_FC_FUNC_(h5tset_order_c, H5TSET_ORDER_C) -#define nh5tget_size_c H5_FC_FUNC_(h5tget_size_c, H5TGET_SIZE_C) -#define nh5tset_size_c H5_FC_FUNC_(h5tset_size_c, H5TSET_SIZE_C) -#define nh5tget_precision_c H5_FC_FUNC_(h5tget_precision_c, H5TGET_PRECISION_C) -#define nh5tset_precision_c H5_FC_FUNC_(h5tset_precision_c, H5TSET_PRECISION_C) -#define nh5tget_offset_c H5_FC_FUNC_(h5tget_offset_c, H5TGET_OFFSET_C) -#define nh5tset_offset_c H5_FC_FUNC_(h5tset_offset_c, H5TSET_OFFSET_C) -#define nh5tget_pad_c H5_FC_FUNC_(h5tget_pad_c, H5TGET_PAD_C) -#define nh5tset_pad_c H5_FC_FUNC_(h5tset_pad_c, H5TSET_PAD_C) -#define nh5tget_sign_c H5_FC_FUNC_(h5tget_sign_c, H5TGET_SIGN_C) -#define nh5tset_sign_c H5_FC_FUNC_(h5tset_sign_c, H5TSET_SIGN_C) -#define nh5tget_fields_c H5_FC_FUNC_(h5tget_fields_c, H5TGET_FIELDS_C) -#define nh5tset_fields_c H5_FC_FUNC_(h5tset_fields_c, H5TSET_FIELDS_C) -#define nh5tget_ebias_c H5_FC_FUNC_(h5tget_ebias_c, H5TGET_EBIAS_C) -#define nh5tset_ebias_c H5_FC_FUNC_(h5tset_ebias_c, H5TSET_EBIAS_C) -#define nh5tget_norm_c H5_FC_FUNC_(h5tget_norm_c, H5TGET_NORM_C) -#define nh5tset_norm_c H5_FC_FUNC_(h5tset_norm_c, H5TSET_NORM_C) -#define nh5tget_inpad_c H5_FC_FUNC_(h5tget_inpad_c, H5TGET_INPAD_C) -#define nh5tset_inpad_c H5_FC_FUNC_(h5tset_inpad_c, H5TSET_INPAD_C) -#define nh5tget_cset_c H5_FC_FUNC_(h5tget_cset_c, H5TGET_CSET_C) -#define nh5tset_cset_c H5_FC_FUNC_(h5tset_cset_c, H5TSET_CSET_C) -#define nh5tget_strpad_c H5_FC_FUNC_(h5tget_strpad_c, H5TGET_STRPAD_C) -#define nh5tset_strpad_c H5_FC_FUNC_(h5tset_strpad_c, H5TSET_STRPAD_C) -#define nh5tget_nmembers_c H5_FC_FUNC_(h5tget_nmembers_c, H5TGET_NMEMBERS_C) -#define nh5tget_member_name_c H5_FC_FUNC_(h5tget_member_name_c, H5TGET_MEMBER_NAME_C) -#define nh5tget_member_offset_c H5_FC_FUNC_(h5tget_member_offset_c, H5TGET_MEMBER_OFFSET_C) -#define nh5tget_member_dims_c H5_FC_FUNC_(h5tget_member_dims_c, H5TGET_MEMBER_DIMS_C) -#define nh5tget_member_type_c H5_FC_FUNC_(h5tget_member_type_c, H5TGET_MEMBER_TYPE_C) -#define nh5tget_member_index_c H5_FC_FUNC_(h5tget_member_index_c, H5TGET_MEMBER_INDEX_C) -#define nh5tinsert_c H5_FC_FUNC_(h5tinsert_c, H5TINSERT_C) -#define nh5tcreate_c H5_FC_FUNC_(h5tcreate_c, H5TCREATE_C) -#define nh5tpack_c H5_FC_FUNC_(h5tpack_c, H5TPACK_C) -#define nh5tinsert_array_c H5_FC_FUNC_(h5tinsert_array_c, H5TINSERT_ARRAY_C) -#define nh5tinsert_array_c2 H5_FC_FUNC_(h5tinsert_array_c2, H5TINSERT_ARRAY_C2) -#define nh5tenum_create_c H5_FC_FUNC_(h5tenum_create_c, H5TENUM_CREATE_C) -#define nh5tenum_insert_c H5_FC_FUNC_(h5tenum_insert_c, H5TENUM_INSERT_C) -#define nh5tenum_nameof_c H5_FC_FUNC_(h5tenum_nameof_c, H5TENUM_NAMEOF_C) -#define nh5tenum_valueof_c H5_FC_FUNC_(h5tenum_valueof_c, H5TENUM_VALUEOF_C) -#define nh5tget_member_value_c H5_FC_FUNC_(h5tget_member_value_c, H5TGET_MEMBER_VALUE_C) -#define nh5tset_tag_c H5_FC_FUNC_(h5tset_tag_c, H5TSET_TAG_C) -#define nh5tget_tag_c H5_FC_FUNC_(h5tget_tag_c, H5TGET_TAG_C) -#define nh5tarray_create_c H5_FC_FUNC_(h5tarray_create_c, H5TARRAY_CREATE_C) -#define nh5tget_array_ndims_c H5_FC_FUNC_(h5tget_array_ndims_c, H5TGET_ARRAY_NDIMS_C) -#define nh5tget_array_dims_c H5_FC_FUNC_(h5tget_array_dims_c, H5TGET_ARRAY_DIMS_C) -#define nh5tget_super_c H5_FC_FUNC_(h5tget_super_c, H5TGET_SUPER_C) -#define nh5tvlen_create_c H5_FC_FUNC_(h5tvlen_create_c, H5TVLEN_CREATE_C) -#define nh5tis_variable_str_c H5_FC_FUNC_(h5tis_variable_str_c, H5TIS_VARIABLE_STR_C) -#define nh5tget_member_class_c H5_FC_FUNC_(h5tget_member_class_c, H5TGET_MEMBER_CLASS_C) -#define nh5tcommit_anon_c H5_FC_FUNC_(h5tcommit_anon_c, H5TCOMMIT_ANON_C) -#define nh5tdecode_c H5_FC_FUNC_(h5tdecode_c, H5TDECODE_C) -#define nh5tencode_c H5_FC_FUNC_(h5tencode_c, H5TENCODE_C) -#define nh5tget_create_plist_c H5_FC_FUNC_(h5tget_create_plist_c, H5TGET_CREATE_PLIST_C) -#define nh5tcompiler_conv_c H5_FC_FUNC_(h5tcompiler_conv_c, H5TCOMPILER_CONV_C) -#define nh5tget_native_type_c H5_FC_FUNC_(h5tget_native_type_c, H5TGET_NATIVE_TYPE_C ) - -H5_FCDLL int_f nh5tcreate_c(int_f *cls, size_t_f *size, hid_t_f *type_id); -H5_FCDLL int_f nh5topen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *tapl_id ); -H5_FCDLL int_f nh5tcommit_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *lcpl_id, hid_t_f *tcpl_id, hid_t_f *tapl_id); -H5_FCDLL int_f nh5tclose_c ( hid_t_f *type_id ); -H5_FCDLL int_f nh5tequal_c ( hid_t_f *type1_id , hid_t_f *type2_id, int_f *c_flag); -H5_FCDLL int_f nh5tcopy_c ( hid_t_f *type_id , hid_t_f *new_type_id); -H5_FCDLL int_f nh5tget_class_c ( hid_t_f *type_id , int_f *classtype); -H5_FCDLL int_f nh5tget_order_c ( hid_t_f *type_id , int_f *order); -H5_FCDLL int_f nh5tset_order_c ( hid_t_f *type_id , int_f *order); -H5_FCDLL int_f nh5tget_size_c ( hid_t_f *type_id , size_t_f *size); -H5_FCDLL int_f nh5tset_size_c ( hid_t_f *type_id , size_t_f *size); -H5_FCDLL int_f nh5tcommitted_c (hid_t_f *dtype_id); -H5_FCDLL int_f nh5tget_precision_c ( hid_t_f *type_id , size_t_f *precision); -H5_FCDLL int_f nh5tset_precision_c ( hid_t_f *type_id , size_t_f *precision); -H5_FCDLL int_f nh5tget_offset_c ( hid_t_f *type_id , size_t_f *offset); -H5_FCDLL int_f nh5tset_offset_c ( hid_t_f *type_id , size_t_f *offset); -H5_FCDLL int_f nh5tget_pad_c ( hid_t_f *type_id , int_f * lsbpad, int_f * msbpad); -H5_FCDLL int_f nh5tset_pad_c ( hid_t_f *type_id, int_f * lsbpad, int_f * msbpad ); -H5_FCDLL int_f nh5tget_sign_c ( hid_t_f *type_id , int_f* sign); -H5_FCDLL int_f nh5tset_sign_c ( hid_t_f *type_id , int_f *sign); -H5_FCDLL int_f nh5tget_fields_c ( hid_t_f *type_id, size_t_f *spos, size_t_f *epos, size_t_f* esize, size_t_f* mpos, size_t_f* msize); -H5_FCDLL int_f nh5tset_fields_c ( hid_t_f *type_id, size_t_f *spos, size_t_f *epos, size_t_f* esize, size_t_f* mpos, size_t_f* msize); -H5_FCDLL int_f nh5tget_ebias_c ( hid_t_f *type_id , size_t_f *ebias); -H5_FCDLL int_f nh5tset_ebias_c ( hid_t_f *type_id , size_t_f *ebias); -H5_FCDLL int_f nh5tget_norm_c ( hid_t_f *type_id , int_f *norm); -H5_FCDLL int_f nh5tset_norm_c ( hid_t_f *type_id , int_f *norm); -H5_FCDLL int_f nh5tget_inpad_c ( hid_t_f *type_id, int_f * padtype); -H5_FCDLL int_f nh5tset_inpad_c ( hid_t_f *type_id, int_f * padtype); -H5_FCDLL int_f nh5tget_cset_c ( hid_t_f *type_id, int_f * cset); -H5_FCDLL int_f nh5tset_cset_c ( hid_t_f *type_id, int_f * cset); -H5_FCDLL int_f nh5tget_strpad_c ( hid_t_f *type_id, int_f * strpad); -H5_FCDLL int_f nh5tset_strpad_c ( hid_t_f *type_id, int_f * strpad); -H5_FCDLL int_f nh5tget_nmembers_c ( hid_t_f *type_id , int_f * num_members); -H5_FCDLL int_f nh5tget_member_name_c ( hid_t_f *type_id ,int_f* idx, _fcd member_name, int_f *namelen); -H5_FCDLL int_f nh5tget_member_dims_c ( hid_t_f *type_id ,int_f* field_idx, int_f * dims, size_t_f * field_dims, int_f * perm ); -H5_FCDLL int_f nh5tget_member_offset_c ( hid_t_f *type_id ,int_f* member_no, size_t_f* offset); -H5_FCDLL int_f nh5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype); -H5_FCDLL int_f nh5tget_member_index_c ( hid_t_f *type_id ,_fcd name, int_f* namelen, int_f *idx); -H5_FCDLL int_f nh5tinsert_c(hid_t_f *type_id, _fcd name, int_f* namelen, size_t_f *offset, hid_t_f * field_id); -H5_FCDLL int_f nh5tpack_c(hid_t_f * type_id); -H5_FCDLL int_f nh5tinsert_array_c(hid_t_f * parent_id, _fcd name, int_f* namelen, size_t_f* offset, int_f* ndims, size_t_f* dims, hid_t_f* member_id, int_f* perm ); -H5_FCDLL int_f nh5tinsert_array_c2(hid_t_f * parent_id, _fcd name, int_f* namelen, size_t_f* offset, int_f* ndims, size_t_f* dims, hid_t_f* member_id); -H5_FCDLL int_f nh5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id); -H5_FCDLL int_f nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value); -H5_FCDLL int_f nh5tenum_nameof_c(hid_t_f *type_id, int_f* value, _fcd name, size_t_f* namelen); -H5_FCDLL int_f nh5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value); -H5_FCDLL int_f nh5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value); -H5_FCDLL int_f nh5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen); -H5_FCDLL int_f nh5tget_tag_c(hid_t_f* type_id, _fcd tag, size_t_f* tag_size, int_f* namelen); -H5_FCDLL int_f nh5tarray_create_c(hid_t_f * base_id, int_f *rank, hsize_t_f* dims, hid_t_f* type_id); -H5_FCDLL int_f nh5tget_array_dims_c ( hid_t_f *type_id , hsize_t_f * dims); -H5_FCDLL int_f nh5tget_array_ndims_c ( hid_t_f *type_id , int_f * ndims); -H5_FCDLL int_f nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id); -H5_FCDLL int_f nh5tvlen_create_c ( hid_t_f *type_id , hid_t_f *vltype_id); -H5_FCDLL int_f nh5tis_variable_str_c ( hid_t_f *type_id , int_f *flag ); -H5_FCDLL int_f nh5tget_member_class_c ( hid_t_f *type_id , int_f *member_no, int_f *cls ); -H5_FCDLL int_f nh5tcommit_anon_c(hid_t_f *loc_id, hid_t_f *dtype_id, hid_t_f *tcpl_id, hid_t_f *tapl_id); -H5_FCDLL int_f nh5tdecode_c ( _fcd buf, hid_t_f *obj_id ); -H5_FCDLL int_f nh5tencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ); -H5_FCDLL int_f nh5tget_create_plist_c ( hid_t_f *dtype_id, hid_t_f *dtpl_id); -H5_FCDLL int_f nh5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag); -H5_FCDLL int_f nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype_id); -H5_FCDLL int_f nh5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, void *buf, void *background, hid_t_f *plist_id); - - -/* - * Functions from H5Of.c - */ - -#define nh5olink_c H5_FC_FUNC_(h5olink_c, H5OLINK_C) -#define nh5oopen_c H5_FC_FUNC_(h5oopen_c, H5OOPEN_C) -#define nh5oclose_c H5_FC_FUNC_(h5oclose_c, H5OCLOSE_C) -#define nh5ovisit_c H5_FC_FUNC_(h5ovisit_c, H5OVISIT_C) -#define nh5ovisit_by_name_c H5_FC_FUNC_(h5ovisit_by_name_c, H5OVISIT_BY_NAME_C) -#define nh5oget_info_c H5_FC_FUNC_(h5oget_info_c, H5OGET_INFO_C) -#define nh5oget_info_by_idx_c H5_FC_FUNC_(h5oget_info_by_idx_c ,H5OGET_INFO_BY_IDX_C) -#define nh5oget_info_by_name_c H5_FC_FUNC_(h5oget_info_by_name_c ,H5OGET_INFO_BY_NAME_C) -#define nh5oopen_by_addr_c H5_FC_FUNC_(h5oopen_by_addr_c, H5OOPEN_BY_ADDR_C) -#define nh5ocopy_c H5_FC_FUNC_(h5ocopy_c, H5OCOPY_C) -#define nh5odecr_refcount_c H5_FC_FUNC_(h5odecr_refcount_c, H5ODECR_REFCOUNT_C) -#define nh5oincr_refcount_c H5_FC_FUNC_(h5oincr_refcount_c, H5OINCR_REFCOUNT_C) -#define nh5oexists_by_name_c H5_FC_FUNC_(h5oexists_by_name_c, H5OEXISTS_BY_NAME_C) -#define nh5oset_comment_c H5_FC_FUNC_(h5oset_comment_c, H5OSET_COMMENT_C) -#define nh5oset_comment_by_name_c H5_FC_FUNC_(h5oset_comment_by_name_c, H5OSET_COMMENT_BY_NAME_C) -#define nh5oopen_by_idx_c H5_FC_FUNC_(h5oopen_by_idx_c, H5OOPEN_BY_IDX_C) -#define nh5oget_comment_c H5_FC_FUNC_(h5oget_comment_c, H5OGET_COMMENT_C) -#define nh5oget_comment_by_name_c H5_FC_FUNC_(h5oget_comment_by_name_c, H5OGET_COMMENT_BY_NAME_C) - -H5_FCDLL int_f nh5oopen_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, hid_t_f *obj_id); -H5_FCDLL int_f nh5oclose_c (hid_t_f *object_id ); -H5_FCDLL int_f nh5oopen_by_addr_c (hid_t_f *loc_id, haddr_t_f *addr, hid_t_f *obj_id); -H5_FCDLL int_f nh5olink_c (hid_t_f *object_id, hid_t_f *new_loc_id, _fcd name, size_t_f *namelen, - hid_t_f *lcpl_id, hid_t_f *lapl_id); -H5_FCDLL int_f nh5ovisit_c (hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data); -H5_FCDLL int_f nh5ovisit_by_name_c(hid_t_f *loc_id, _fcd object_name, size_t_f *namelen, int_f *index_type, int_f *order, - H5O_iterate_t op, void *op_data, hid_t_f *lapl_id ); -H5_FCDLL int_f nh5oget_info_c (hid_t_f *object_id, H5O_info_t_f *object_info); -H5_FCDLL int_f nh5oget_info_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *namelen, - int_f *index_field, int_f *order, hsize_t_f *n, hid_t_f *lapl_id, H5O_info_t_f *object_info); -H5_FCDLL int_f nh5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, - H5O_info_t_f *object_info); -H5_FCDLL int_f nh5ocopy_c (hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_name_len, - hid_t_f *dst_loc_id, _fcd dst_name, size_t_f *dst_name_len, - hid_t_f *ocpypl_id, hid_t_f *lcpl_id ); -H5_FCDLL int_f nh5odecr_refcount_c (hid_t_f *object_id); -H5_FCDLL int_f nh5oincr_refcount_c (hid_t_f *object_id); -H5_FCDLL int_f nh5oexists_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id); -H5_FCDLL int_f nh5oset_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentlen); -H5_FCDLL int_f nh5oset_comment_by_name_c (hid_t_f *object_id, _fcd name, size_t_f *namelen, _fcd comment, size_t_f *commentlen, hid_t_f *lapl_id); -H5_FCDLL int_f nh5oopen_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, - int_f *index_type, int_f *order, hsize_t_f *n, hid_t_f *obj_id, hid_t_f *lapl_id); -H5_FCDLL int_f nh5oget_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentsize, hssize_t_f *bufsize); -H5_FCDLL int_f nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *name_size, - _fcd comment, size_t_f *commentsize, size_t_f *bufsize, hid_t_f *lapl_id); -/* - * Functions from H5Pf.c - */ -#define nh5pcreate_c H5_FC_FUNC_(h5pcreate_c, H5PCREATE_C) -#define nh5pclose_c H5_FC_FUNC_(h5pclose_c, H5PCLOSE_C) -#define nh5pcopy_c H5_FC_FUNC_(h5pcopy_c, H5PCOPY_C) -#define nh5pequal_c H5_FC_FUNC_(h5pequal_c, H5PEQUAL_C) -#define nh5pget_class_c H5_FC_FUNC_(h5pget_class_c, H5PGET_CLASS_C) -#define nh5pset_deflate_c H5_FC_FUNC_(h5pset_deflate_c, H5PSET_DEFLATE_C) -#define nh5pset_preserve_c H5_FC_FUNC_(h5pset_preserve_c, H5PSET_PRESERVE_C) -#define nh5pget_preserve_c H5_FC_FUNC_(h5pget_preserve_c, H5PGET_PRESERVE_C) -#define nh5pset_chunk_c H5_FC_FUNC_(h5pset_chunk_c, H5PSET_CHUNK_C) -#define nh5pget_chunk_c H5_FC_FUNC_(h5pget_chunk_c, H5PGET_CHUNK_C) -#define nh5pset_fill_valuec_c H5_FC_FUNC_(h5pset_fill_valuec_c, H5PSET_FILL_VALUEC_C) -#define nh5pset_fill_value_c H5_FC_FUNC_(h5pset_fill_value_c, H5PSET_FILL_VALUE_C) -#define nh5pset_fill_value_integer_c H5_FC_FUNC_(h5pset_fill_value_integer_c, H5PSET_FILL_VALUE_INTEGER_C) -#define nh5pset_fill_value_real_c H5_FC_FUNC_(h5pset_fill_value_real_c, H5PSET_FILL_VALUE_REAL_C) -#define nh5pset_fill_value_double_c H5_FC_FUNC_(h5pset_fill_value_double_c, H5PSET_FILL_VALUE_DOUBLE_C) -#define nh5pget_fill_valuec_c H5_FC_FUNC_(h5pget_fill_valuec_c, H5PGET_FILL_VALUEC_C) -#define nh5pget_fill_value_c H5_FC_FUNC_(h5pget_fill_value_c, H5PGET_FILL_VALUE_C) -#define nh5pget_fill_value_integer_c H5_FC_FUNC_(h5pget_fill_value_integer_c, H5PGET_FILL_VALUE_INTEGER_C) -#define nh5pget_fill_value_real_c H5_FC_FUNC_(h5pget_fill_value_real_c, H5PGET_FILL_VALUE_REAL_C) -#define nh5pget_fill_value_double_c H5_FC_FUNC_(h5pget_fill_value_double_c, H5PGET_FILL_VALUE_DOUBLE_C) -#define nh5pget_version_c H5_FC_FUNC_(h5pget_version_c, H5PGET_VERSION_C) -#define nh5pget_userblock_c H5_FC_FUNC_(h5pget_userblock_c, H5PGET_USERBLOCK_C) -#define nh5pset_userblock_c H5_FC_FUNC_(h5pset_userblock_c, H5PSET_USERBLOCK_C) -#define nh5pset_sizes_c H5_FC_FUNC_(h5pset_sizes_c, H5PSET_SIZES_C) -#define nh5pget_sizes_c H5_FC_FUNC_(h5pget_sizes_c, H5PGET_SIZES_C) -#define nh5pget_sym_k_c H5_FC_FUNC_(h5pget_sym_k_c, H5PGET_SYM_K_C) -#define nh5pset_sym_k_c H5_FC_FUNC_(h5pset_sym_k_c, H5PSET_SYM_K_C) -#define nh5pget_istore_k_c H5_FC_FUNC_(h5pget_istore_k_c, H5PGET_ISTORE_K_C) -#define nh5pset_istore_k_c H5_FC_FUNC_(h5pset_istore_k_c, H5PSET_ISTORE_K_C) -#define nh5pget_driver_c H5_FC_FUNC_(h5pget_driver_c, H5PGET_DRIVER_C) -#define nh5pset_fapl_stdio_c H5_FC_FUNC_(h5pset_fapl_stdio_c, H5PSET_FAPL_STDIO_C) -#define nh5pget_fapl_stdio_c H5_FC_FUNC_(h5pget_fapl_stdio_c, H5PGET_FAPL_STDIO_C) -#define nh5pset_fapl_sec2_c H5_FC_FUNC_(h5pset_fapl_sec2_c, H5PSET_FAPL_SEC2_C) -#define nh5pget_fapl_sec2_c H5_FC_FUNC_(h5pget_fapl_sec2_c, H5PGET_FAPL_SEC2_C) -#define nh5pset_alignment_c H5_FC_FUNC_(h5pset_alignment_c, H5PSET_ALIGNMENT_C) -#define nh5pget_alignment_c H5_FC_FUNC_(h5pget_alignment_c, H5PGET_ALIGNMENT_C) -#define nh5pset_fapl_core_c H5_FC_FUNC_(h5pset_fapl_core_c, H5PSET_FAPL_CORE_C) -#define nh5pget_fapl_core_c H5_FC_FUNC_(h5pget_fapl_core_c, H5PGET_FAPL_CORE_C) -#define nh5pset_fapl_family_c H5_FC_FUNC_(h5pset_fapl_family_c, H5PSET_FAPL_FAMILY_C) -#define nh5pget_fapl_family_c H5_FC_FUNC_(h5pget_fapl_family_c, H5PGET_FAPL_FAMILY_C) -#define nh5pset_cache_c H5_FC_FUNC_(h5pset_cache_c, H5PSET_CACHE_C) -#define nh5pget_cache_c H5_FC_FUNC_(h5pget_cache_c, H5PGET_CACHE_C) -#define nh5pset_fapl_split_c H5_FC_FUNC_(h5pset_fapl_split_c, H5PSET_FAPL_SPLIT_C) -#define nh5pget_fapl_split_c H5_FC_FUNC_(h5pget_fapl_split_c, H5PGET_FAPL_SPLIT_C) -#define nh5pset_gc_references_c H5_FC_FUNC_(h5pset_gc_references_c, H5PSET_GC_REFERENCES_C) -#define nh5pget_gc_references_c H5_FC_FUNC_(h5pget_gc_references_c, H5PGET_GC_REFERENCES_C) -#define nh5pset_layout_c H5_FC_FUNC_(h5pset_layout_c, H5PSET_LAYOUT_C) -#define nh5pget_layout_c H5_FC_FUNC_(h5pget_layout_c, H5PGET_LAYOUT_C) -#define nh5pset_filter_c H5_FC_FUNC_(h5pset_filter_c, H5PSET_FILTER_C) -#define nh5premove_filter_c H5_FC_FUNC_(h5premove_filter_c, H5PREMOVE_FILTER_C) -#define nh5pmodify_filter_c H5_FC_FUNC_(h5pmodify_filter_c, H5PMODIFY_FILTER_C) -#define nh5pget_nfilters_c H5_FC_FUNC_(h5pget_nfilters_c, H5PGET_NFILTERS_C) -#define nh5pget_filter_c H5_FC_FUNC_(h5pget_filter_c, H5PGET_FILTER_C) -#define nh5pget_filter_by_id_c H5_FC_FUNC_(h5pget_filter_by_id_c, H5PGET_FILTER_BY_ID_C) -#define nh5pset_external_c H5_FC_FUNC_(h5pset_external_c, H5PSET_EXTERNAL_C) -#define nh5pget_external_count_c H5_FC_FUNC_(h5pget_external_count_c, H5PGET_EXTERNAL_COUNT_C) -#define nh5pget_external_c H5_FC_FUNC_(h5pget_external_c, H5PGET_EXTERNAL_C) -#define nh5pget_btree_ratios_c H5_FC_FUNC_(h5pget_btree_ratios_c, H5PGET_BTREE_RATIOS_C) -#define nh5pset_btree_ratios_c H5_FC_FUNC_(h5pset_btree_ratios_c, H5PSET_BTREE_RATIOS_C) -#define nh5pset_fapl_mpio_c H5_FC_FUNC_(h5pset_fapl_mpio_c, H5PSET_FAPL_MPIO_C) -#define nh5pget_fapl_mpio_c H5_FC_FUNC_(h5pget_fapl_mpio_c, H5PGET_FAPL_MPIO_C) -#define nh5pset_fapl_mpiposix_c H5_FC_FUNC_(h5pset_fapl_mpiposix_c, H5PSET_FAPL_MPIPOSIX_C) -#define nh5pget_fapl_mpiposix_c H5_FC_FUNC_(h5pget_fapl_mpiposix_c, H5PGET_FAPL_MPIPOSIX_C) -#define nh5pset_dxpl_mpio_c H5_FC_FUNC_(h5pset_dxpl_mpio_c, H5PSET_DXPL_MPIO_C) -#define nh5pget_dxpl_mpio_c H5_FC_FUNC_(h5pget_dxpl_mpio_c, H5PGET_DXPL_MPIO_C) -#define nh5pget_fclose_degree_c H5_FC_FUNC_(h5pget_fclose_degree_c, H5PGET_FCLOSE_DEGREE_C) -#define nh5pset_fclose_degree_c H5_FC_FUNC_(h5pset_fclose_degree_c, H5PSET_FCLOSE_DEGREE_C) -#define nh5pset_buffer_c H5_FC_FUNC_(h5pset_buffer_c, H5PSET_BUFFER_C) -#define nh5pget_buffer_c H5_FC_FUNC_(h5pget_buffer_c, H5PGET_BUFFER_C) -#define nh5pfill_value_defined_c H5_FC_FUNC_(h5pfill_value_defined_c, H5PFILL_VALUE_DEFINED_C) -#define nh5pset_alloc_time_c H5_FC_FUNC_(h5pset_alloc_time_c, H5PSET_ALLOC_TIME_C) -#define nh5pget_alloc_time_c H5_FC_FUNC_(h5pget_alloc_time_c, H5PGET_ALLOC_TIME_C) -#define nh5pset_fill_time_c H5_FC_FUNC_(h5pset_fill_time_c, H5PSET_FILL_TIME_C) -#define nh5pget_fill_time_c H5_FC_FUNC_(h5pget_fill_time_c, H5PGET_FILL_TIME_C) -#define nh5pset_meta_block_size_c H5_FC_FUNC_(h5pset_meta_block_size_c, H5PSET_META_BLOCK_SIZE_C) -#define nh5pget_meta_block_size_c H5_FC_FUNC_(h5pget_meta_block_size_c, H5PGET_META_BLOCK_SIZE_C) -#define nh5pset_sieve_buf_size_c H5_FC_FUNC_(h5pset_sieve_buf_size_c, H5PSET_SIEVE_BUF_SIZE_C) -#define nh5pget_sieve_buf_size_c H5_FC_FUNC_(h5pget_sieve_buf_size_c, H5PGET_SIEVE_BUF_SIZE_C) -#define nh5pset_hyper_vector_size_c H5_FC_FUNC_(h5pset_hyper_vector_size_c, H5PSET_HYPER_VECTOR_SIZE_C) -#define nh5pget_hyper_vector_size_c H5_FC_FUNC_(h5pget_hyper_vector_size_c, H5PGET_HYPER_VECTOR_SIZE_C) -#define nh5pset_small_data_block_size_c H5_FC_FUNC_(h5pset_small_data_block_size_c, H5PSET_SMALL_DATA_BLOCK_SIZE_C) -#define nh5pget_small_data_block_size_c H5_FC_FUNC_(h5pget_small_data_block_size_c, H5PGET_SMALL_DATA_BLOCK_SIZE_C) -#define nh5pcreate_class_c H5_FC_FUNC_(h5pcreate_class_c, H5PCREATE_CLASS_C) -#define nh5pregister_c H5_FC_FUNC_(h5pregister_c, H5PREGISTER_C) -#define nh5pregister_integer_c H5_FC_FUNC_(h5pregister_integer_c, H5PREGISTER_INTEGER_C) -#define nh5pregister_real_c H5_FC_FUNC_(h5pregister_real_c, H5PREGISTER_REAL_C) -#define nh5pregister_double_c H5_FC_FUNC_(h5pregister_double_c, H5PREGISTER_DOUBLE_C) -#define nh5pregisterc_c H5_FC_FUNC_(h5pregisterc_c, H5PREGISTERC_C) -#define nh5pinsert_c H5_FC_FUNC_(h5pinsert_c, H5PINSERT_C) -#define nh5pinsert_integer_c H5_FC_FUNC_(h5pinsert_integer_c, H5PINSERT_INTEGER_C) -#define nh5pinsert_real_c H5_FC_FUNC_(h5pinsert_real_c, H5PINSERT_REAL_C) -#define nh5pinsert_double_c H5_FC_FUNC_(h5pinsert_double_c, H5PINSERT_DOUBLE_C) -#define nh5pinsertc_c H5_FC_FUNC_(h5pinsertc_c, H5PINSERTC_C) -#define nh5pset_c H5_FC_FUNC_(h5pset_c, H5PSET_C) -#define nh5pset_integer_c H5_FC_FUNC_(h5pset_integer_c, H5PSET_INTEGER_C) -#define nh5pset_real_c H5_FC_FUNC_(h5pset_real_c, H5PSET_REAL_C) -#define nh5pset_double_c H5_FC_FUNC_(h5pset_double_c, H5PSET_DOUBLE_C) -#define nh5psetc_c H5_FC_FUNC_(h5psetc_c, H5PSETC_C) -#define nh5pget_c H5_FC_FUNC_(h5pget_c, H5PGET_C) -#define nh5pget_integer_c H5_FC_FUNC_(h5pget_integer_c, H5PGET_INTEGER_C) -#define nh5pget_real_c H5_FC_FUNC_(h5pget_real_c, H5PGET_REAL_C) -#define nh5pget_double_c H5_FC_FUNC_(h5pget_double_c, H5PGET_DOUBLE_C) -#define nh5pgetc_c H5_FC_FUNC_(h5pgetc_c, H5PGETC_C) -#define nh5pexist_c H5_FC_FUNC_(h5pexist_c, H5PEXIST_C) -#define nh5pget_size_c H5_FC_FUNC_(h5pget_size_c, H5PGET_SIZE_C) -#define nh5pget_nprops_c H5_FC_FUNC_(h5pget_nprops_c, H5PGET_NPROPS_C) -#define nh5pget_class_parent_c H5_FC_FUNC_(h5pget_class_parent_c, H5PGET_CLASS_PARENT_C) -#define nh5pisa_class_c H5_FC_FUNC_(h5pisa_class_c, H5PISA_CLASS_C) -#define nh5pcopy_prop_c H5_FC_FUNC_(h5pcopy_prop_c, H5PCOPY_PROP_C) -#define nh5premove_c H5_FC_FUNC_(h5premove_c, H5PREMOVE_C) -#define nh5punregister_c H5_FC_FUNC_(h5punregister_c, H5PUNREGISTER_C) -#define nh5pclose_class_c H5_FC_FUNC_(h5pclose_class_c, H5PCLOSE_CLASS_C) -#define nh5pget_class_name_c H5_FC_FUNC_(h5pget_class_name_c, H5PGET_CLASS_NAME_C) -#define nh5pset_shuffle_c H5_FC_FUNC_(h5pset_shuffle_c, H5PSET_SHUFFLE_C) -#define nh5pset_fletcher32_c H5_FC_FUNC_(h5pset_fletcher32_c, H5PSET_FLETCHER32_C) -#define nh5pset_edc_check_c H5_FC_FUNC_(h5pset_edc_check_c, H5PSET_EDC_CHECK_C) -#define nh5pget_edc_check_c H5_FC_FUNC_(h5pget_edc_check_c, H5PGET_EDC_CHECK_C) -#define nh5pset_family_offset_c H5_FC_FUNC_(h5pset_family_offset_c, H5PSET_FAMILY_OFFSET_C) -#define nh5pget_fapl_multi_c H5_FC_FUNC_(h5pget_fapl_multi_c, H5PGET_FAPL_MULTI_C) -#define nh5pset_fapl_multi_c H5_FC_FUNC_(h5pset_fapl_multi_c, H5PSET_FAPL_MULTI_C) -#define nh5pset_fapl_multi_sc H5_FC_FUNC_(h5pset_fapl_multi_sc, H5PSET_FAPL_MULTI_SC) -#define nh5pset_szip_c H5_FC_FUNC_(h5pset_szip_c, H5PSET_SZIP_C) -#define nh5pall_filters_avail_c H5_FC_FUNC_(h5pall_filters_avail_c, H5PALL_FILTERS_AVAIL_C) -#define nh5pget_attr_phase_change_c H5_FC_FUNC_(h5pget_attr_phase_change_c, H5PGET_ATTR_PHASE_CHANGE_C) -#define nh5pset_attr_creation_order_c H5_FC_FUNC_(h5pset_attr_creation_order_c, H5PSET_ATTR_CREATION_ORDER_C) -#define nh5pset_shared_mesg_nindexes_c H5_FC_FUNC_(h5pset_shared_mesg_nindexes_c, H5PSET_SHARED_MESG_NINDEXES_C) -#define nh5pset_shared_mesg_index_c H5_FC_FUNC_(h5pset_shared_mesg_index_c,H5PSET_SHARED_MESG_INDEX_C) -#define nh5pget_attr_creation_order_c H5_FC_FUNC_(h5pget_attr_creation_order_c,H5PGET_ATTR_CREATION_ORDER_C) -#define nh5pset_libver_bounds_c H5_FC_FUNC_(h5pset_libver_bounds_c,H5PSET_LIBVER_BOUNDS_C) -#define nh5pset_link_creation_order_c H5_FC_FUNC_(h5pset_link_creation_order_c, H5PSET_LINK_CREATION_ORDER_C) -#define nh5pget_link_phase_change_c H5_FC_FUNC_(h5pget_link_phase_change_c, H5PGET_LINK_PHASE_CHANGE_C) -#define nh5pget_obj_track_times_c H5_FC_FUNC_(h5pget_obj_track_times_c, H5PGET_OBJ_TRACK_TIMES_C) -#define nh5pset_obj_track_times_c H5_FC_FUNC_(h5pset_obj_track_times_c, H5PSET_OBJ_TRACK_TIMES_C) -#define nh5pset_create_inter_group_c H5_FC_FUNC_(h5pset_create_inter_group_c,H5PSET_CREATE_INTER_GROUP_C) -#define nh5pget_create_inter_group_c H5_FC_FUNC_(h5pget_create_inter_group_c,H5PGET_CREATE_INTER_GROUP_C) -#define nh5pget_link_creation_order_c H5_FC_FUNC_(h5pget_link_creation_order_c,H5PGET_LINK_CREATION_ORDER_C) -#define nh5pset_char_encoding_c H5_FC_FUNC_(h5pset_char_encoding_c, H5PSET_CHAR_ENCODING_C) -#define nh5pget_char_encoding_c H5_FC_FUNC_(h5pget_char_encoding_c, H5PGET_CHAR_ENCODING_C) -#define nh5pset_copy_object_c H5_FC_FUNC_(h5pset_copy_object_c, H5PSET_COPY_OBJECT_C) -#define nh5pget_copy_object_c H5_FC_FUNC_(h5pget_copy_object_c, H5PGET_COPY_OBJECT_C) -#define nh5pget_data_transform_c H5_FC_FUNC_(h5pget_data_transform_c, H5PGET_DATA_TRANSFORM_C) -#define nh5pset_data_transform_c H5_FC_FUNC_(h5pset_data_transform_c, H5PSET_DATA_TRANSFORM_C) -#define nh5pget_local_heap_size_hint_c H5_FC_FUNC_(h5pget_local_heap_size_hint_c, H5PGET_LOCAL_HEAP_SIZE_HINT_C) -#define nh5pget_est_link_info_c H5_FC_FUNC_(h5pget_est_link_info_c,H5PGET_EST_LINK_INFO_C) -#define nh5pset_est_link_info_c H5_FC_FUNC_(h5pset_est_link_info_c,H5PSET_EST_LINK_INFO_C) -#define nh5pset_local_heap_size_hint_c H5_FC_FUNC_(h5pset_local_heap_size_hint_c, H5PSET_LOCAL_HEAP_SIZE_HINT_C) -#define nh5pset_link_phase_change_c H5_FC_FUNC_(h5pset_link_phase_change_c, H5PSET_LINK_PHASE_CHANGE_C) -#define nh5pset_fapl_direct_c H5_FC_FUNC_(h5pset_fapl_direct_c, H5PSET_FAPL_DIRECT_C) -#define nh5pget_fapl_direct_c H5_FC_FUNC_(h5pget_fapl_direct_c, H5PGET_FAPL_DIRECT_C) -#define nh5pset_attr_phase_change_c H5_FC_FUNC_(h5pset_attr_phase_change_c, H5PSET_ATTR_PHASE_CHANGE_C) -#define nh5pset_nbit_c H5_FC_FUNC_(h5pset_nbit_c, H5PSET_NBIT_C) -#define nh5pset_scaleoffset_c H5_FC_FUNC_(h5pset_scaleoffset_c, H5PSET_SCALEOFFSET_C) -#define nh5pset_nlinks_c H5_FC_FUNC_(h5pset_nlinks_c, H5PSET_NLINKS_C) -#define nh5pget_nlinks_c H5_FC_FUNC_(h5pget_nlinks_c, H5PGET_NLINKS_C) -#define nh5pset_chunk_cache_c H5_FC_FUNC_(h5pset_chunk_cache_c, H5PSET_CHUNK_CACHE_C) -#define nh5pget_chunk_cache_c H5_FC_FUNC_(h5pget_chunk_cache_c, H5PGET_CHUNK_CACHE_C) -#define nh5pget_mpio_actual_io_mode_c H5_FC_FUNC_(h5pget_mpio_actual_io_mode_c, H5PGET_MPIO_ACTUAL_IO_MODE_C) - -H5_FCDLL int_f nh5pcreate_c ( hid_t_f *cls, hid_t_f *prp_id ); -H5_FCDLL int_f nh5pclose_c ( hid_t_f *prp_id ); -H5_FCDLL int_f nh5pcopy_c ( hid_t_f *prp_id , hid_t_f *new_prp_id); -H5_FCDLL int_f nh5pequal_c ( hid_t_f *plist1_id , hid_t_f *plist2_id, int_f *c_flag); -H5_FCDLL int_f nh5pget_class_c ( hid_t_f *prp_id , int_f *classtype); -H5_FCDLL int_f nh5pset_deflate_c ( hid_t_f *prp_id , int_f *level); -H5_FCDLL int_f nh5pset_chunk_c ( hid_t_f *prp_id, int_f *rank, hsize_t_f *dims ); -H5_FCDLL int_f nh5pget_chunk_c ( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims ); -H5_FCDLL int_f nh5pset_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue); -H5_FCDLL int_f nh5pset_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); -H5_FCDLL int_f nh5pset_fill_value_integer_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); -H5_FCDLL int_f nh5pset_fill_value_real_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); -H5_FCDLL int_f nh5pset_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); -H5_FCDLL int_f nh5pget_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue); -H5_FCDLL int_f nh5pget_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); -H5_FCDLL int_f nh5pget_fill_value_integer_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); -H5_FCDLL int_f nh5pget_fill_value_real_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); -H5_FCDLL int_f nh5pget_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); -H5_FCDLL int_f nh5pset_preserve_c ( hid_t_f *prp_id , int_f *flag); -H5_FCDLL int_f nh5pget_preserve_c ( hid_t_f *prp_id , int_f *flag); -H5_FCDLL int_f nh5pget_version_c (hid_t_f *prp_id, int_f * boot,int_f * freelist, int_f * stab, int_f *shhdr); -H5_FCDLL int_f nh5pset_userblock_c (hid_t_f *prp_id, hsize_t_f * size); -H5_FCDLL int_f nh5pget_userblock_c (hid_t_f *prp_id, hsize_t_f * size); -H5_FCDLL int_f nh5pget_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size); -H5_FCDLL int_f nh5pset_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size); -H5_FCDLL int_f nh5pset_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk); -H5_FCDLL int_f nh5pget_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk); -H5_FCDLL int_f nh5pset_istore_k_c (hid_t_f *prp_id, int_f* ik); -H5_FCDLL int_f nh5pget_istore_k_c (hid_t_f *prp_id, int_f* ik); -H5_FCDLL int_f nh5pget_driver_c (hid_t_f *prp_id, hid_t_f*driver); -H5_FCDLL int_f nh5pset_fapl_stdio_c (hid_t_f *prp_id); -H5_FCDLL int_f nh5pget_fapl_stdio_c (hid_t_f *prp_id, int_f* io); -H5_FCDLL int_f nh5pset_fapl_sec2_c (hid_t_f *prp_id); -H5_FCDLL int_f nh5pget_fapl_sec2_c (hid_t_f *prp_id, int_f* sec2); -H5_FCDLL int_f nh5pset_alignment_c(hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment); -H5_FCDLL int_f nh5pget_alignment_c(hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment); -H5_FCDLL int_f nh5pget_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag); -H5_FCDLL int_f nh5pset_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag); -H5_FCDLL int_f nh5pset_fapl_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist ); -H5_FCDLL int_f nh5pget_fapl_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist ); -H5_FCDLL int_f nh5pset_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, size_t_f* rdcc_nelmts, size_t_f* rdcc_nbytes, real_f* rdcc_w0); -H5_FCDLL int_f nh5pget_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, size_t_f* rdcc_nelmts, size_t_f* rdcc_nbytes, real_f* rdcc_w0); -H5_FCDLL int_f nh5pget_fapl_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_f* meta_plist, size_t_f* raw_ext_size, _fcd raw_ext, hid_t_f * raw_plist); -H5_FCDLL int_f nh5pset_fapl_split_c(hid_t_f *prp_id, int_f* meta_len, _fcd meta_ext, hid_t_f* meta_plist, int_f* raw_len, _fcd raw_ext, hid_t_f * raw_plist); -H5_FCDLL int_f nh5pset_gc_references_c(hid_t_f *prp_id, int_f* gc_references); -H5_FCDLL int_f nh5pget_gc_references_c(hid_t_f *prp_id, int_f* gc_references); -H5_FCDLL int_f nh5pset_layout_c (hid_t_f *prp_id, int_f* layout); -H5_FCDLL int_f nh5pget_layout_c (hid_t_f *prp_id, int_f* layout); -H5_FCDLL int_f nh5pset_filter_c (hid_t_f *prp_id, int_f* filter, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values ); -H5_FCDLL int_f nh5premove_filter_c (hid_t_f *prp_id, int_f* filter); -H5_FCDLL int_f nh5pmodify_filter_c (hid_t_f *prp_id, int_f* filter, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values ); -H5_FCDLL int_f nh5pget_nfilters_c (hid_t_f *prp_id, int_f* nfilters); -H5_FCDLL int_f nh5pget_filter_c(hid_t_f *prp_id, int_f* filter_number, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values, size_t_f *namelen, _fcd name, int_f* filter_id); -H5_FCDLL int_f nh5pget_filter_by_id_c(hid_t_f *prp_id, int_f* filter_id, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values, size_t_f *namelen, _fcd name); -H5_FCDLL int_f nh5pset_external_c (hid_t_f *prp_id, _fcd name, int_f* namelen, off_t_f* offset, hsize_t_f*bytes); -H5_FCDLL int_f nh5pget_external_count_c (hid_t_f *prp_id, int_f* count); -H5_FCDLL int_f nh5pget_external_c(hid_t_f *prp_id, int_f *idx, size_t_f* name_size, _fcd name, off_t_f* offset, hsize_t_f*bytes); -H5_FCDLL int_f nh5pget_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* right); -H5_FCDLL int_f nh5pset_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* right); -H5_FCDLL int_f nh5pget_fapl_mpio_c(hid_t_f *prp_id, int_f* comm, int_f* info); -H5_FCDLL int_f nh5pset_fapl_mpio_c(hid_t_f *prp_id, int_f* comm, int_f* info); -H5_FCDLL int_f nh5pget_fapl_mpiposix_c(hid_t_f *prp_id, int_f* comm, int_f* flag); -H5_FCDLL int_f nh5pset_fapl_mpiposix_c(hid_t_f *prp_id, int_f* comm, int_f* flag); -H5_FCDLL int_f nh5pget_dxpl_mpio_c(hid_t_f *prp_id, int_f* data_xfer_mode); -H5_FCDLL int_f nh5pset_dxpl_mpio_c(hid_t_f *prp_id, int_f* data_xfer_mode); -H5_FCDLL int_f nh5pset_fclose_degree_c(hid_t_f *fapl, int_f *degree); -H5_FCDLL int_f nh5pget_fclose_degree_c(hid_t_f *fapl, int_f *degree); -H5_FCDLL int_f nh5pget_buffer_c(hid_t_f *plist, hsize_t_f *size); -H5_FCDLL int_f nh5pset_buffer_c(hid_t_f *plist, hsize_t_f *size); -H5_FCDLL int_f nh5pset_alloc_time_c(hid_t_f *plist, int_f *flag); -H5_FCDLL int_f nh5pget_alloc_time_c(hid_t_f *plist, int_f *flag); -H5_FCDLL int_f nh5pset_fill_time_c(hid_t_f *plist, int_f *flag); -H5_FCDLL int_f nh5pget_fill_time_c(hid_t_f *plist, int_f *flag); -H5_FCDLL int_f nh5pset_meta_block_size_c(hid_t_f *plist, hsize_t_f *size); -H5_FCDLL int_f nh5pget_meta_block_size_c(hid_t_f *plist, hsize_t_f *size); -H5_FCDLL int_f nh5pset_sieve_buf_size_c(hid_t_f *plist, size_t_f *size); -H5_FCDLL int_f nh5pget_sieve_buf_size_c(hid_t_f *plist, size_t_f *size); -H5_FCDLL int_f nh5pset_small_data_block_size_c(hid_t_f *plist, hsize_t_f *size); -H5_FCDLL int_f nh5pget_small_data_block_size_c(hid_t_f *plist, hsize_t_f *size); -H5_FCDLL int_f nh5pset_hyper_vector_size_c(hid_t_f *plist, size_t_f *size); -H5_FCDLL int_f nh5pget_hyper_vector_size_c(hid_t_f *plist, size_t_f *size); -H5_FCDLL int_f nh5pcreate_class_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls, - H5P_cls_create_func_t create, void *create_data, - H5P_cls_copy_func_t copy, void *copy_data, - H5P_cls_close_func_t close, void *close_data); -H5_FCDLL int_f nh5pregister_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value); -H5_FCDLL int_f nh5pregister_integer_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value); -H5_FCDLL int_f nh5pregister_real_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value); -H5_FCDLL int_f nh5pregister_double_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value); -H5_FCDLL int_f nh5pregisterc_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, _fcd value, int_f *value_len); -H5_FCDLL int_f nh5pinsert_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); -H5_FCDLL int_f nh5pinsert_integer_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); -H5_FCDLL int_f nh5pinsert_real_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); -H5_FCDLL int_f nh5pinsert_double_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); -H5_FCDLL int_f nh5pinsertc_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, _fcd value, int_f *value_len); -H5_FCDLL int_f nh5pset_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); -H5_FCDLL int_f nh5pset_integer_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); -H5_FCDLL int_f nh5pset_real_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); -H5_FCDLL int_f nh5pset_double_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); -H5_FCDLL int_f nh5psetc_c(hid_t_f *prp_id, _fcd name, int_f *name_len, _fcd value, int_f *value_len); -H5_FCDLL int_f nh5pget_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); -H5_FCDLL int_f nh5pget_double_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); -H5_FCDLL int_f nh5pget_integer_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); -H5_FCDLL int_f nh5pget_real_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); -H5_FCDLL int_f nh5pgetc_c(hid_t_f *prp_id, _fcd name, int_f *name_len, _fcd value, int_f *value_len); -H5_FCDLL int_f nh5pexist_c(hid_t_f *prp_id, _fcd name, int_f *name_len); -H5_FCDLL int_f nh5pget_size_c(hid_t_f *prp_id, _fcd name, int_f *name_len, size_t_f *size); -H5_FCDLL int_f nh5pget_nprops_c(hid_t_f *prp_id, size_t_f *nprops); -H5_FCDLL int_f nh5pget_class_parent_c(hid_t_f *prp_id, hid_t_f *parent_id); -H5_FCDLL int_f nh5pisa_class_c(hid_t_f *plist, hid_t_f *pclass); -H5_FCDLL int_f nh5pcopy_prop_c(hid_t_f *dst_id, hid_t_f *src_id, _fcd name, int_f *name_len); -H5_FCDLL int_f nh5premove_c(hid_t_f *plid, _fcd name, int_f *name_len); -H5_FCDLL int_f nh5punregister_c(hid_t_f *cls, _fcd name, int_f *name_len); -H5_FCDLL int_f nh5pclose_class_c(hid_t_f * cls); -H5_FCDLL int_f nh5pget_class_name_c(hid_t_f *prp_id, _fcd name, int_f *name_len); -H5_FCDLL int_f nh5pset_shuffle_c ( hid_t_f *prp_id); -H5_FCDLL int_f nh5pset_fletcher32_c ( hid_t_f *prp_id ); -H5_FCDLL int_f nh5pset_edc_check_c ( hid_t_f *prp_id, int_f *flag ); -H5_FCDLL int_f nh5pget_edc_check_c ( hid_t_f *prp_id, int_f *flag ); -H5_FCDLL int_f nh5pset_family_offset_c ( hid_t_f *prp_id , hsize_t_f *offset); -H5_FCDLL int_f nh5pget_fapl_multi_c ( hid_t_f *prp_id , int_f *mem_map, hid_t_f *memb_fapl, _fcd memb_name, int_f *len, int_f *lenmax, real_f *memb_addr, int_f *flag, int_f *maxlen_out); -H5_FCDLL int_f nh5pset_fapl_multi_c ( hid_t_f *prp_id , int_f *mem_map, hid_t_f *memb_fapl, _fcd memb_name, int_f *len, int_f *lenmax, real_f *memb_addr, int_f *flag); -H5_FCDLL int_f nh5pset_fapl_multi_sc ( hid_t_f *prp_id , int_f *flag); -H5_FCDLL int_f nh5pset_szip_c ( hid_t_f *prp_id , int_f *options_mask, int_f *pixels_per_block); -H5_FCDLL int_f nh5pall_filters_avail_c ( hid_t_f *prp_id , int_f *status); -H5_FCDLL int_f nh5pfill_value_defined_c ( hid_t_f *prp_id , int_f *flag); -H5_FCDLL int_f nh5pget_attr_phase_change_c (hid_t_f *ocpl_id, int_f *max_compact, int_f *min_dense ); -H5_FCDLL int_f nh5pset_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags ); -H5_FCDLL int_f nh5pset_shared_mesg_nindexes_c(hid_t_f *plist_id, int_f *nindexes ); -H5_FCDLL int_f nh5pset_shared_mesg_index_c(hid_t_f *fcpl_id, int_f *index_num, int_f *mesg_type_flags, int_f *min_mesg_size); -H5_FCDLL int_f nh5pget_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags); -H5_FCDLL int_f nh5pset_libver_bounds_c(hid_t_f *fapl_id, int_f *low, int_f *high); -H5_FCDLL int_f nh5pset_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags); -H5_FCDLL int_f nh5pget_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_dense ); -H5_FCDLL int_f nh5pget_obj_track_times_c(hid_t_f *plist_id, int_f *flag); -H5_FCDLL int_f nh5pset_obj_track_times_c(hid_t_f *plist_id, int_f *flag); -H5_FCDLL int_f nh5pset_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group); -H5_FCDLL int_f nh5pget_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group); -H5_FCDLL int_f nh5pget_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags); -H5_FCDLL int_f nh5pset_char_encoding_c(hid_t_f *plist_id, int_f *encoding); -H5_FCDLL int_f nh5pget_char_encoding_c(hid_t_f *plist_id, int_f *encoding); -H5_FCDLL int_f nh5pset_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options); -H5_FCDLL int_f nh5pget_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options); -H5_FCDLL int_f nh5pget_data_transform_c(hid_t_f *plist_id, _fcd expression, int_f *expression_len, size_t_f *size); -H5_FCDLL int_f nh5pset_data_transform_c(hid_t_f *plist_id, _fcd expression, int_f *expression_len); -H5_FCDLL int_f nh5pget_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint); -H5_FCDLL int_f nh5pget_est_link_info_c(hid_t_f *gcpl_id, int_f *est_num_entries, int_f *est_name_len); -H5_FCDLL int_f nh5pset_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint); -H5_FCDLL int_f nh5pset_est_link_info_c(hid_t_f *gcpl_id, int_f *est_num_entries, int_f *est_name_len); -H5_FCDLL int_f nh5pset_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_dense ); -H5_FCDLL int_f nh5pset_fapl_direct_c(hid_t_f *fapl_id, size_t_f *alignment, size_t_f *block_size, size_t_f *cbuf_size ); -H5_FCDLL int_f nh5pget_fapl_direct_c(hid_t_f *fapl_id, size_t_f *alignment, size_t_f *block_size, size_t_f *cbuf_size ); -H5_FCDLL int_f nh5pset_attr_phase_change_c (hid_t_f *ocpl_id, int_f *max_compact, int_f *min_dense ); -H5_FCDLL int_f nh5pset_nbit_c(hid_t_f *plist_id ); -H5_FCDLL int_f nh5pset_scaleoffset_c(hid_t_f *plist_id, int_f *scale_type, int_f *scale_factor ); -H5_FCDLL int_f nh5pset_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks); -H5_FCDLL int_f nh5pget_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks); -H5_FCDLL int_f nh5pset_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nbytes, real_f *rdcc_w0); -H5_FCDLL int_f nh5pget_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nbytes, real_f *rdcc_w0); -H5_FCDLL int_f nh5pget_mpio_actual_io_mode_c(hid_t_f *dxpl_id, int_f *actual_io_mode); -/* - * Functions frome H5Rf.c - */ -#define nh5rcreate_object_c H5_FC_FUNC_(h5rcreate_object_c, H5RCREATE_OBJECT_C) -#define nh5rcreate_region_c H5_FC_FUNC_(h5rcreate_region_c, H5RCREATE_REGION_C) -#define nh5rcreate_ptr_c H5_FC_FUNC_(h5rcreate_ptr_c, H5RCREATE_PTR_C) -#define nh5rdereference_region_c H5_FC_FUNC_(h5rdereference_region_c, H5RDEREFERENCE_REGION_C) -#define nh5rdereference_object_c H5_FC_FUNC_(h5rdereference_object_c, H5RDEREFERENCE_OBJECT_C) -#define nh5rdereference_ptr_c H5_FC_FUNC_(h5rdereference_ptr_c, H5RDEREFERENCE_PTR_C) -#define nh5rget_region_region_c H5_FC_FUNC_(h5rget_region_region_c, H5RGET_REGION_REGION_C) -#define nh5rget_region_ptr_c H5_FC_FUNC_(h5rget_region_ptr_c, H5RGET_REGION_PTR_C) -#define nh5rget_object_type_obj_c H5_FC_FUNC_(h5rget_object_type_obj_c, H5RGET_OBJECT_TYPE_OBJ_C) -#define nh5rget_name_object_c H5_FC_FUNC_(h5rget_name_object_c, H5RGET_NAME_OBJECT_C) -#define nh5rget_name_region_c H5_FC_FUNC_(h5rget_name_region_c, H5RGET_NAME_REGION_C) -#define nh5rget_name_ptr_c H5_FC_FUNC_(h5rget_name_ptr_c, H5RGET_NAME_PTR_C) -#define nh5rget_obj_type_c H5_FC_FUNC_(h5rget_obj_type_c, H5RGET_OBJ_TYPE_C) - - -H5_FCDLL int_f nh5rcreate_object_c (haddr_t_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen); -H5_FCDLL int_f nh5rcreate_region_c (int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id); -H5_FCDLL int_f nh5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *ref_type, hid_t_f *space_id); -H5_FCDLL int_f nh5rdereference_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id); -H5_FCDLL int_f nh5rdereference_object_c (hid_t_f *dset_id, haddr_t_f *ref, hid_t_f *obj_id); -H5_FCDLL int_f nh5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_obj_id); -H5_FCDLL int_f nh5rget_region_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *space_id); -H5_FCDLL int_f nh5rget_region_ptr_c(hid_t_f *dset_id, void *ref, hid_t_f *space_id); -H5_FCDLL int_f nh5rget_object_type_obj_c (hid_t_f *dset_id, haddr_t_f *ref, int_f *obj_type); -H5_FCDLL int_f nh5rget_name_object_c (hid_t_f *loc_id, haddr_t_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default); -H5_FCDLL int_f nh5rget_name_region_c (hid_t_f *loc_id, int_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default); -H5_FCDLL int_f nh5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size_t_f *name_len, size_t_f *size_default); -H5_FCDLL int_f nh5rget_obj_type_c (hid_t_f *loc_id, int_f *ref_type, void *ref, int_f *obj_type); -/* - * Functions from H5If.c - */ -#define nh5iget_type_c H5_FC_FUNC_(h5iget_type_c, H5IGET_TYPE_C) -#define nh5iget_name_c H5_FC_FUNC_(h5iget_name_c, H5IGET_NAME_C) -#define nh5iinc_ref_c H5_FC_FUNC_(h5iinc_ref_c, H5IINC_REF_C) -#define nh5idec_ref_c H5_FC_FUNC_(h5idec_ref_c, H5IDEC_REF_C) -#define nh5iget_ref_c H5_FC_FUNC_(h5iget_ref_c, H5IGET_REF_C) -#define nh5iget_file_id_c H5_FC_FUNC_(h5iget_file_id_c, H5IGET_FILE_ID_C) -#define nh5iis_valid_c H5_FC_FUNC_(h5iis_valid_c, H5IIS_VALID_C) - -H5_FCDLL int_f nh5iget_type_c(hid_t_f *obj_id, int_f *type); -H5_FCDLL int_f nh5iget_name_c(hid_t_f *obj_id, _fcd buf, size_t_f *buf_size, size_t_f *name_size); -H5_FCDLL int_f nh5iinc_ref_c(hid_t_f *obj_id, int_f *ref_count); -H5_FCDLL int_f nh5idec_ref_c(hid_t_f *obj_id, int_f *ref_count); -H5_FCDLL int_f nh5iget_ref_c(hid_t_f *obj_id, int_f *ref_count); -H5_FCDLL int_f nh5iget_file_id_c(hid_t_f *obj_id, hid_t_f *file_id); -H5_FCDLL int_f nh5iis_valid_c(hid_t_f *obj_id, int_f *c_valid); - -/* - * Functions from H5Ef.c - */ -#define nh5eclear_c H5_FC_FUNC_(h5eclear_c, H5ECLEAR_C) -#define nh5eprint_c1 H5_FC_FUNC_(h5eprint_c1, H5EPRINT_C1) -#define nh5eprint_c2 H5_FC_FUNC_(h5eprint_c2, H5EPRINT_C2) -#define nh5eget_major_c H5_FC_FUNC_(h5eget_major_c, H5EGET_MAJOR_C) -#define nh5eget_minor_c H5_FC_FUNC_(h5eget_minor_c, H5EGET_MINOR_C) -#define nh5eset_auto_c H5_FC_FUNC_(h5eset_auto_c, H5ESET_AUTO_C) -#define nh5eset_auto2_c H5_FC_FUNC_(h5eset_auto2_c, H5ESET_AUTO2_C) -#define nprocess_buffer H5_FC_FUNC_(process_buffer, PROCESS_BUFFER) - - -H5_FCDLL int_f nh5eclear_c(hid_t_f *estack_id); -H5_FCDLL int_f nh5eprint_c1(_fcd name, int_f* namelen); -H5_FCDLL int_f nh5eprint_c2(void); -H5_FCDLL int_f nh5eget_major_c(int_f* error_no, _fcd name, size_t_f* namelen); -H5_FCDLL int_f nh5eget_minor_c(int_f* error_no, _fcd name, size_t_f* namelen); -H5_FCDLL int_f nh5eset_auto_c(int_f* printflag); -H5_FCDLL int_f nh5eset_auto2_c(int_f* printflag, hid_t_f *estack_id, H5E_auto2_t func, void *client_data); -H5_FCDLL int_f nprocess_buffer(hid_t_f *estack_id,void **buffer); - -/* - * Functions from H5f.c - */ -#define nh5open_c H5_FC_FUNC_(h5open_c, H5OPEN_C) -#define nh5close_c H5_FC_FUNC_(h5close_c, H5CLOSE_C) -#define nh5init_types_c H5_FC_FUNC_(h5init_types_c, H5INIT_TYPES_C) -#define nh5close_types_c H5_FC_FUNC_(h5close_types_c, H5CLOSE_TYPES_C) -#define nh5init_flags_c H5_FC_FUNC_(h5init_flags_c, H5INIT_FLAGS_C) -#define nh5init1_flags_c H5_FC_FUNC_(h5init1_flags_c, H5INIT1_FLAGS_C) -#define nh5get_libversion_c H5_FC_FUNC_(h5get_libversion_c, H5GET_LIBVERSION_C) -#define nh5check_version_c H5_FC_FUNC_(h5check_version_c, H5CHECK_VERSION_C) -#define nh5garbage_collect_c H5_FC_FUNC_(h5garbage_collect_c, H5GARBAGE_COLLECT_C) -#define nh5dont_atexit_c H5_FC_FUNC_(h5dont_atexit_c, H5DONT_ATEXIT_C) - - -H5_FCDLL int_f nh5open_c(void); -H5_FCDLL int_f nh5close_c(void); -H5_FCDLL int_f nh5init_types_c(hid_t_f *types, hid_t_f * floatingtypes, hid_t_f * integertypes); -H5_FCDLL int_f nh5close_types_c(hid_t_f *types, int_f *lentypes, hid_t_f * floatingtypes, int_f * floatinglen, hid_t_f * integertypes, int_f * integerlen); -H5_FCDLL int_f nh5init_flags_c(int_f *h5d_flags, int_f *h5e_flags, hid_t_f *h5e_hid_flags, int_f *h5f_flags, - int_f *h5fd_flags, hid_t_f *h5fd_hid_flags, - int_f *h5g_flags, int_f *h5i_flags, int_f *h5l_flags, int_f *h5o_flags, - hid_t_f *h5p_flags, int_f *h5p_flags_int, int_f *h5r_flags, int_f *h5s_flags, - hsize_t_f *h5s_hsize_flags, int_f *h5t_flags, int_f *h5z_flags, int_f *h5_generic_flags); -H5_FCDLL int_f nh5init1_flags_c(int_f *h5lib_flags); -H5_FCDLL int_f nh5get_libversion_c(int_f *majnum, int_f *minnum, int_f *relnum); -H5_FCDLL int_f nh5check_version_c(int_f *majnum, int_f *minnum, int_f *relnum); -H5_FCDLL int_f nh5garbage_collect_c(void); -H5_FCDLL int_f nh5dont_atexit_c(void); - -/* - * Functions from H5Zf.c - */ -#define nh5zunregister_c H5_FC_FUNC_(h5zunregister_c, H5ZUNREGISTER_C) -#define nh5zfilter_avail_c H5_FC_FUNC_(h5zfilter_avail_c, H5ZFILTER_AVAIL_C) -#define nh5zget_filter_info_c H5_FC_FUNC_(h5zget_filter_info_c, H5ZGET_FILTER_INFO_C) - - -H5_FCDLL int_f nh5zunregister_c (int_f *filter); -H5_FCDLL int_f nh5zfilter_avail_c (int_f *filter, int_f *flag); -H5_FCDLL int_f nh5zget_filter_info_c (int_f *filter, int_f *flag); - - -/* - * Functions from H5Lf.c - */ -#define nh5lcopy_c H5_FC_FUNC_(h5lcopy_c, H5LCOPY_C) -#define nh5lcreate_external_c H5_FC_FUNC_(h5lcreate_external_c, H5LCREATE_EXTERNAL_C) -#define nh5lcreate_hard_c H5_FC_FUNC_(h5lcreate_hard_c, H5LCREATE_HARD_C) -#define nh5lcreate_soft_c H5_FC_FUNC_(h5lcreate_soft_c, H5LCREATE_SOFT_C) -#define nh5ldelete_c H5_FC_FUNC_(h5ldelete_c, H5LDELETE_C) -#define nh5ldelete_by_idx_c H5_FC_FUNC_(h5ldelete_by_idx_c, H5LDELETE_BY_IDX_C) -#define nh5lexists_c H5_FC_FUNC_(h5lexists_c, H5LEXISTS_C) -#define nh5lget_info_c H5_FC_FUNC_(h5lget_info_c, H5LGET_INFO_C) -#define nh5lget_info_by_idx_c H5_FC_FUNC_(h5lget_info_by_idx_c, H5LGET_INFO_BY_IDX_C) -#define nh5lis_registered_c H5_FC_FUNC_(h5lis_registered_c, H5LIS_REGISTERED_C) -#define nh5lmove_c H5_FC_FUNC_(h5lmove_c, H5LMOVE_C) -#define nh5lget_name_by_idx_c H5_FC_FUNC_(h5lget_name_by_idx_c, H5LGET_NAME_BY_IDX_C) -#define nh5lget_val_c H5_FC_FUNC_(h5lget_val_c, H5LGET_VAL_C) -#define nh5literate_c H5_FC_FUNC_(h5literate_c, H5LITERATE_C) -#define nh5literate_by_name_c H5_FC_FUNC_(h5literate_by_name_c, H5LITERATE_BY_NAME_C) - -H5_FCDLL int_f nh5lcopy_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id, - _fcd dest_name, size_t_f *dest_namelen, - hid_t_f *lcpl_id, hid_t_f *lapl_id); -H5_FCDLL int_f nh5lcreate_external_c(_fcd file_name, size_t_f *file_namelen, _fcd obj_name, size_t_f *obj_namelen, - hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, - hid_t_f *lcpl_id, hid_t_f *lapl_id); -H5_FCDLL int_f nh5lcreate_hard_c(hid_t_f *obj_loc_id, _fcd obj_name, size_t_f *obj_namelen, - hid_t_f *link_loc_id, - _fcd link_name, size_t_f *link_namelen, - hid_t_f *lcpl_id, hid_t_f *lapl_id ); -H5_FCDLL int_f nh5lcreate_soft_c(_fcd target_path, size_t_f *target_path_len, - hid_t_f *link_loc_id, - _fcd link_name, size_t_f *link_name_len, - hid_t_f *lcpl_id, hid_t_f *lapl_id ); -H5_FCDLL int_f nh5ldelete_c( hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id ); -H5_FCDLL int_f nh5ldelete_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, - int_f *index_field, int_f *order, hsize_t_f *n, hid_t_f *lapl_id); -H5_FCDLL int_f nh5lexists_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, int_f *link_exists); -H5_FCDLL int_f nh5lget_info_c (hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, - int_f *cset, int_f *corder, int_f *corder_valid, int_f *link_type, - haddr_t_f *address, size_t_f *val_size, - hid_t_f *lapl_id); -H5_FCDLL int_f nh5lget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, - int_f *index_field, int_f *order, hsize_t_f *n, - int_f *link_type, int_f *corder_valid, int_f *corder, int_f *cset, haddr_t_f *address, size_t_f *val_size, hid_t_f *lapl_id); -H5_FCDLL int_f nh5lis_registered_c(int_f *link_cls_id); -H5_FCDLL int_f nh5lmove_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id, - _fcd dest_name, size_t_f *dest_namelen, hid_t_f *lcpl_id, hid_t_f *lapl_id); -H5_FCDLL int_f nh5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, - int_f *index_field, int_f *order, hsize_t_f *n, - size_t_f *size, _fcd name, hid_t_f *lapl_id); -H5_FCDLL int_f nh5lget_val_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, size_t_f *size, - void *linkval_buff, hid_t_f *lapl_id) ; - -H5_FCDLL int_f nh5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data ); -H5_FCDLL int_f nh5literate_by_name_c(hid_t_f *loc_id, _fcd name, size_t_f *namelen, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data, hid_t_f *lapl_id); - - -#endif /* _H5f90proto_H */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + +#ifndef _H5f90proto_H +#define _H5f90proto_H + +#include "H5public.h" + +H5_FCDLL char * HD5f2cstring (_fcd fdesc, size_t len); +H5_FCDLL void HD5packFstring(char *src, char *dest, size_t len); + +#ifdef H5_VMS +#define H5_FC_FUNC_(name, NAME) NAME +#endif /*H5_VMS*/ + +/* + * Storage info struct used by H5O_info_t and H5F_info_t + * interoperable with Fortran. + */ +typedef struct H5_ih_info_t_f { + hsize_t index_size; /* btree and/or list */ + hsize_t heap_size; +} H5_ih_info_t_f; + +/* Information struct for object header metadata (for H5Oget_info/H5Oget_info_by_name/H5Oget_info_by_idx) + * interoperable with Fortran. + */ +typedef struct H5O_hdr_info_t_f { + int_f version; /* Version number of header format in file */ + int_f nmesgs; /* Number of object header messages */ + int_f nchunks; /* Number of object header chunks */ + int_f flags; /* Object header status flags */ + struct { + hsize_t total; /* Total space for storing object header in file */ + hsize_t meta; /* Space within header for object header metadata information */ + hsize_t mesg; /* Space within header for actual message information */ + hsize_t free; /* Free space within object header */ + } space; + struct { + uint64_t present; /* Flags to indicate presence of message type in header */ + uint64_t shared; /* Flags to indicate message type is shared in header */ + } mesg; +} H5O_hdr_info_t_f; + +/* Information struct for object (for H5Oget_info/H5Oget_info_by_name/H5Oget_info_by_idx) + * interoperable with Fortran. + */ +typedef struct H5O_info_t_f { + unsigned long fileno; /* File number that object is located in */ + haddr_t_f addr; /* Object address in file */ + int type; /* Basic object type (group, dataset, etc.) */ + int_f rc; /* Reference count of object */ + int_f atime[8]; /* Access time */ + int_f mtime[8]; /* Modification time */ + int_f ctime[8]; /* Change time */ + int_f btime[8]; /* Birth time */ + hsize_t num_attrs; /* # of attributes attached to object */ + H5O_hdr_info_t_f hdr; /* Object header information */ + /* Extra metadata storage for obj & attributes */ + struct { + H5_ih_info_t_f obj; /* v1/v2 B-tree & local/fractal heap for groups, B-tree for chunked datasets */ + H5_ih_info_t_f attr; /* v2 B-tree & heap for attributes */ + } meta_size; +} H5O_info_t_f; + + +/* + * Functions from H5Ff.c + */ +#define nh5fcreate_c H5_FC_FUNC_(h5fcreate_c, H5FCREATE_C) +#define nh5fflush_c H5_FC_FUNC_(h5fflush_c, H5FFLUSH_C) +#define nh5fclose_c H5_FC_FUNC_(h5fclose_c, H5FCLOSE_C) +#define nh5fopen_c H5_FC_FUNC_(h5fopen_c, H5FOPEN_C) +#define nh5fis_hdf5_c H5_FC_FUNC_(h5fis_hdf5_c, H5FIS_HDF5_C) +#define nh5fmount_c H5_FC_FUNC_(h5fmount_c, H5FMOUNT_C) +#define nh5funmount_c H5_FC_FUNC_(h5funmount_c, H5FUNMOUNT_C) +#define nh5freopen_c H5_FC_FUNC_(h5freopen_c, H5FREOPEN_C) +#define nh5fget_create_plist_c H5_FC_FUNC_(h5fget_create_plist_c, H5FGET_CREATE_PLIST_C) +#define nh5fget_access_plist_c H5_FC_FUNC_(h5fget_access_plist_c, H5FGET_ACCESS_PLIST_C) +#define nh5fget_obj_count_c H5_FC_FUNC_(h5fget_obj_count_c, H5FGET_OBJ_COUNT_C) +#define nh5fget_obj_ids_c H5_FC_FUNC_(h5fget_obj_ids_c, H5FGET_OBJ_IDS_C) +#define nh5fget_freespace_c H5_FC_FUNC_(h5fget_freespace_c, H5FGET_FREESPACE_C) +#define nh5fget_file_image_c H5_FC_FUNC_(h5fget_file_image_c, H5FGET_FILE_IMAGE_C) +#define nh5fget_name_c H5_FC_FUNC_(h5fget_name_c, H5FGET_NAME_C) +#define nh5fget_filesize_c H5_FC_FUNC_(h5fget_filesize_c, H5FGET_FILESIZE_C) + +H5_FCDLL int_f nh5fcreate_c (_fcd name, int_f *namelen, int_f *access_flags, hid_t_f *crt_prp, hid_t_f *acc_prp, hid_t_f *file_id); +H5_FCDLL int_f nh5fopen_c (_fcd name, int_f *namelen, int_f *access_flags, hid_t_f *acc_prp, hid_t_f *file_id); +H5_FCDLL int_f nh5fis_hdf5_c (_fcd name, int_f *namelen, int_f *flag); +H5_FCDLL int_f nh5fclose_c (hid_t_f *file_id); +H5_FCDLL int_f nh5fmount_c (hid_t_f *loc_id, _fcd dsetname, int_f *namelen, hid_t_f *file_id, hid_t_f *acc_prp); +H5_FCDLL int_f nh5funmount_c (hid_t_f *loc_id, _fcd dsetname, int_f *namelen); +H5_FCDLL int_f nh5freopen_c (hid_t_f *file_id1, hid_t_f *file_id2); +H5_FCDLL int_f nh5fget_create_plist_c (hid_t_f *file_id, hid_t_f *prop_id); +H5_FCDLL int_f nh5fget_access_plist_c (hid_t_f *file_id, hid_t_f *access_id); +H5_FCDLL int_f nh5fget_obj_count_c (hid_t_f *file_id, int_f *obj_type, size_t_f *obj_count); +H5_FCDLL int_f nh5fget_obj_ids_c (hid_t_f *file_id, int_f *obj_type, size_t_f *max_objs, hid_t_f *obj_ids, size_t_f *num_objs); +H5_FCDLL int_f nh5fget_freespace_c (hid_t_f *file_id, hssize_t_f *free_space); +H5_FCDLL int_f nh5fget_file_image_c(hid_t_f *file_id, void *buf_ptr, size_t_f *buf_len, size_t_f *buf_req); +H5_FCDLL int_f nh5fflush_c (hid_t_f *obj_id, int_f *scope); +H5_FCDLL int_f nh5fget_name_c(hid_t_f *obj_id, size_t_f *size, _fcd buf, size_t_f *buflen); +H5_FCDLL int_f nh5fget_filesize_c(hid_t_f *file_id, hsize_t_f *size); + +/* + * Functions from H5Sf.c + */ +#define nh5screate_simple_c H5_FC_FUNC_(h5screate_simple_c, H5SCREATE_SIMPLE_C) +#define nh5sclose_c H5_FC_FUNC_(h5sclose_c, H5SCLOSE_C) +#define nh5screate_c H5_FC_FUNC_(h5screate_c, H5SCREATE_C) +#define nh5scopy_c H5_FC_FUNC_(h5scopy_c, H5SCOPY_C) +#define nh5sget_select_hyper_nblocks_c H5_FC_FUNC_(h5sget_select_hyper_nblocks_c, H5SGET_SELECT_HYPER_NBLOCKS_C) +#define nh5sget_select_hyper_blocklist_c H5_FC_FUNC_(h5sget_select_hyper_blocklist_c, H5SGET_SELECT_HYPER_BLOCKLIST_C) +#define nh5sget_select_elem_npoints_c H5_FC_FUNC_(h5sget_select_elem_npoints_c, H5SGET_SELECT_ELEM_NPOINTS_C) +#define nh5sget_select_elem_pointlist_c H5_FC_FUNC_(h5sget_select_elem_pointlist_c, H5SGET_SELECT_ELEM_POINTLIST_C) +#define nh5sget_select_bounds_c H5_FC_FUNC_(h5sget_select_bounds_c, H5SGET_SELECT_BOUNDS_C) +#define nh5sselect_all_c H5_FC_FUNC_(h5sselect_all_c, H5SSELECT_ALL_C) +#define nh5sselect_none_c H5_FC_FUNC_(h5sselect_none_c, H5SSELECT_NONE_C) +#define nh5sselect_valid_c H5_FC_FUNC_(h5sselect_valid_c, H5SSELECT_VALID_C) +#define nh5sget_simple_extent_npoints_c H5_FC_FUNC_(h5sget_simple_extent_npoints_c, H5SGET_SIMPLE_EXTENT_NPOINTS_C) +#define nh5sget_select_npoints_c H5_FC_FUNC_(h5sget_select_npoints_c, H5SGET_SELECT_NPOINTS_C) +#define nh5sget_simple_extent_ndims_c H5_FC_FUNC_(h5sget_simple_extent_ndims_c, H5SGET_SIMPLE_EXTENT_NDIMS_C) +#define nh5sget_simple_extent_type_c H5_FC_FUNC_(h5sget_simple_extent_type_c, H5SGET_SIMPLE_EXTENT_TYPE_C) +#define nh5soffset_simple_c H5_FC_FUNC_(h5soffset_simple_c, H5SOFFSET_SIMPLE_C) +#define nh5sset_extent_simple_c H5_FC_FUNC_(h5sset_extent_simple_c, H5SSET_EXTENT_SIMPLE_C) +#define nh5sis_simple_c H5_FC_FUNC_(h5sis_simple_c, H5SIS_SIMPLE_C) +#define nh5sextent_class_c H5_FC_FUNC_(h5sextent_class_c, H5SEXTENT_CLASS_C) +#define nh5sget_simple_extent_dims_c H5_FC_FUNC_(h5sget_simple_extent_dims_c, H5SGET_SIMPLE_EXTENT_DIMS_C) +#define nh5sextent_copy_c H5_FC_FUNC_(h5sextent_copy_c, H5SEXTENT_COPY_C) +#define nh5sset_extent_none_c H5_FC_FUNC_(h5sset_extent_none_c, H5SSET_EXTENT_NONE_C) +#define nh5sselect_hyperslab_c H5_FC_FUNC_(h5sselect_hyperslab_c, H5SSELECT_HYPERSLAB_C) +#define nh5scombine_hyperslab_c H5_FC_FUNC_(h5scombine_hyperslab_c, H5SCOMBINE_HYPERSLAB_C) +#define nh5scombine_select_c H5_FC_FUNC_(h5scombine_select_c, H5SCOMBINE_SELECT_C) +#define nh5sselect_select_c H5_FC_FUNC_(h5sselect_select_c, H5SSELECT_SELECT_C) +#define nh5sget_select_type_c H5_FC_FUNC_(h5sget_select_type_c, H5SGET_SELECT_TYPE_C) +#define nh5sselect_elements_c H5_FC_FUNC_(h5sselect_elements_c, H5SSELECT_ELEMENTS_C) +#define nh5sdecode_c H5_FC_FUNC_(h5sdecode_c, H5SDECODE_C) +#define nh5sencode_c H5_FC_FUNC_(h5sencode_c, H5SENCODE_C) +#define nh5sextent_equal_c H5_FC_FUNC_(h5sextent_equal_c, H5SEXTENT_EQUAL_C) + +H5_FCDLL int_f nh5screate_simple_c ( int_f *rank, hsize_t_f *dims, hsize_t_f *maxdims, hid_t_f *space_id ); +H5_FCDLL int_f nh5sclose_c ( hid_t_f *space_id ); +H5_FCDLL int_f nh5screate_c ( int_f *classtype, hid_t_f *space_id ); +H5_FCDLL int_f nh5scopy_c ( hid_t_f *space_id , hid_t_f *new_space_id); +H5_FCDLL int_f nh5sget_select_hyper_nblocks_c( hid_t_f *space_id , hssize_t_f * num_blocks); +H5_FCDLL int_f nh5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f * startblock, hsize_t_f * num_blocks, hsize_t_f * buf); +H5_FCDLL int_f nh5sget_select_bounds_c( hid_t_f *space_id , hsize_t_f * start, hsize_t_f * end); +H5_FCDLL int_f nh5sget_select_elem_npoints_c( hid_t_f *space_id , hssize_t_f * num_points); +H5_FCDLL int_f nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, hsize_t_f * numpoints, hsize_t_f * buf); +H5_FCDLL int_f nh5sselect_all_c ( hid_t_f *space_id ); +H5_FCDLL int_f nh5sselect_none_c ( hid_t_f *space_id ); +H5_FCDLL int_f nh5sselect_valid_c ( hid_t_f *space_id , int_f *flag ); +H5_FCDLL int_f nh5sget_simple_extent_npoints_c ( hid_t_f *space_id , hsize_t_f *npoints ); +H5_FCDLL int_f nh5sget_select_npoints_c ( hid_t_f *space_id , hssize_t_f *npoints ); +H5_FCDLL int_f nh5sget_simple_extent_ndims_c ( hid_t_f *space_id , int_f *ndims ); +H5_FCDLL int_f nh5sget_simple_extent_type_c ( hid_t_f *space_id , int_f *classtype); +H5_FCDLL int_f nh5soffset_simple_c ( hid_t_f *space_id , hssize_t_f *offset); +H5_FCDLL int_f nh5sset_extent_simple_c ( hid_t_f *space_id , int_f *rank, hsize_t_f * current_size, hsize_t_f *maximum_size); +H5_FCDLL int_f nh5sis_simple_c ( hid_t_f *space_id , int_f *flag ); +H5_FCDLL int_f nh5sextent_class_c ( hid_t_f *space_id , int_f *classtype); +H5_FCDLL int_f nh5sget_simple_extent_dims_c ( hid_t_f *space_id , hsize_t_f *dims, hsize_t_f *maxdims); +H5_FCDLL int_f nh5sextent_copy_c ( hid_t_f *dest_space_id , hid_t_f *source_space_id); +H5_FCDLL int_f nh5sset_extent_none_c ( hid_t_f *space_id ); +H5_FCDLL int_f nh5sselect_hyperslab_c ( hid_t_f *space_id , int_f *op, hsize_t_f *start, hsize_t_f *count, hsize_t_f *stride, hsize_t_f *block); +H5_FCDLL int_f nh5sget_select_type_c ( hid_t_f *space_id , int_f *op); +H5_FCDLL int_f nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hsize_t_f *coord); +H5_FCDLL int_f nh5scombine_hyperslab_c ( hid_t_f *space_id , int_f *op, hsize_t_f *start, hsize_t_f *count, hsize_t_f *stride, hsize_t_f *block, hid_t_f *hyper_id); +H5_FCDLL int_f nh5scombine_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id, hid_t_f *ds_id); +H5_FCDLL int_f nh5sselect_select_c ( hid_t_f *space1_id , int_f *op, hid_t_f *space2_id); +H5_FCDLL int_f nh5sdecode_c ( _fcd buf, hid_t_f *obj_id ); +H5_FCDLL int_f nh5sencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ); +H5_FCDLL int_f nh5sextent_equal_c ( hid_t_f * space1_id, hid_t_f *space2_id, hid_t_f *c_equal); + +/* + * Functions from H5Df.c + */ +#define nh5dcreate_c H5_FC_FUNC_(h5dcreate_c, H5DCREATE_C) +#define nh5dclose_c H5_FC_FUNC_(h5dclose_c, H5DCLOSE_C) +#define nh5dopen_c H5_FC_FUNC_(h5dopen_c, H5DOPEN_C) +#define nh5dwrite_c H5_FC_FUNC_(h5dwrite_c, H5DWRITE_C) +#define nh5dwrite_integer_s_c H5_FC_FUNC_(h5dwrite_integer_s_c, H5DWRITE_INTEGER_S_C) +#define nh5dwrite_integer_1_c H5_FC_FUNC_(h5dwrite_integer_1_c, H5DWRITE_INTEGER_1_C) +#define nh5dwrite_integer_2_c H5_FC_FUNC_(h5dwrite_integer_2_c, H5DWRITE_INTEGER_2_C) +#define nh5dwrite_integer_3_c H5_FC_FUNC_(h5dwrite_integer_3_c, H5DWRITE_INTEGER_3_C) +#define nh5dwrite_integer_4_c H5_FC_FUNC_(h5dwrite_integer_4_c, H5DWRITE_INTEGER_4_C) +#define nh5dwrite_integer_5_c H5_FC_FUNC_(h5dwrite_integer_5_c, H5DWRITE_INTEGER_5_C) +#define nh5dwrite_integer_6_c H5_FC_FUNC_(h5dwrite_integer_6_c, H5DWRITE_INTEGER_6_C) +#define nh5dwrite_integer_7_c H5_FC_FUNC_(h5dwrite_integer_7_c, H5DWRITE_INTEGER_7_C) +#define nh5dwrite_real_s_c H5_FC_FUNC_(h5dwrite_real_s_c, H5DWRITE_REAL_S_C) +#define nh5dwrite_real_1_c H5_FC_FUNC_(h5dwrite_real_1_c, H5DWRITE_REAL_1_C) +#define nh5dwrite_real_2_c H5_FC_FUNC_(h5dwrite_real_2_c, H5DWRITE_REAL_2_C) +#define nh5dwrite_real_3_c H5_FC_FUNC_(h5dwrite_real_3_c, H5DWRITE_REAL_3_C) +#define nh5dwrite_real_4_c H5_FC_FUNC_(h5dwrite_real_4_c, H5DWRITE_REAL_4_C) +#define nh5dwrite_real_5_c H5_FC_FUNC_(h5dwrite_real_5_c, H5DWRITE_REAL_5_C) +#define nh5dwrite_real_6_c H5_FC_FUNC_(h5dwrite_real_6_c, H5DWRITE_REAL_6_C) +#define nh5dwrite_real_7_c H5_FC_FUNC_(h5dwrite_real_7_c, H5DWRITE_REAL_7_C) +#define nh5dwrite_double_s_c H5_FC_FUNC_(h5dwrite_double_s_c, H5DWRITE_DOUBLE_S_C) +#define nh5dwrite_double_1_c H5_FC_FUNC_(h5dwrite_double_1_c, H5DWRITE_DOUBLE_1_C) +#define nh5dwrite_double_2_c H5_FC_FUNC_(h5dwrite_double_2_c, H5DWRITE_DOUBLE_2_C) +#define nh5dwrite_double_3_c H5_FC_FUNC_(h5dwrite_double_3_c, H5DWRITE_DOUBLE_3_C) +#define nh5dwrite_double_4_c H5_FC_FUNC_(h5dwrite_double_4_c, H5DWRITE_DOUBLE_4_C) +#define nh5dwrite_double_5_c H5_FC_FUNC_(h5dwrite_double_5_c, H5DWRITE_DOUBLE_5_C) +#define nh5dwrite_double_6_c H5_FC_FUNC_(h5dwrite_double_6_c, H5DWRITE_DOUBLE_6_C) +#define nh5dwrite_double_7_c H5_FC_FUNC_(h5dwrite_double_7_c, H5DWRITE_DOUBLE_7_C) +#define nh5dwrite_ref_obj_c H5_FC_FUNC_(h5dwrite_ref_obj_c, H5DWRITE_REF_OBJ_C) +#define nh5dwrite_ref_reg_c H5_FC_FUNC_(h5dwrite_ref_reg_c, H5DWRITE_REF_REG_C) +#define nh5dwritec_c H5_FC_FUNC_(h5dwritec_c, H5DWRITEC_C) +#define nh5dwritec_s_c H5_FC_FUNC_(h5dwritec_s_c, H5DWRITEC_S_C) +#define nh5dwritec_1_c H5_FC_FUNC_(h5dwritec_1_c, H5DWRITEC_1_C) +#define nh5dwritec_2_c H5_FC_FUNC_(h5dwritec_2_c, H5DWRITEC_2_C) +#define nh5dwritec_3_c H5_FC_FUNC_(h5dwritec_3_c, H5DWRITEC_3_C) +#define nh5dwritec_4_c H5_FC_FUNC_(h5dwritec_4_c, H5DWRITEC_4_C) +#define nh5dwritec_5_c H5_FC_FUNC_(h5dwritec_5_c, H5DWRITEC_5_C) +#define nh5dwritec_6_c H5_FC_FUNC_(h5dwritec_6_c, H5DWRITEC_6_C) +#define nh5dwritec_7_c H5_FC_FUNC_(h5dwritec_7_c, H5DWRITEC_7_C) +#define nh5dread_c H5_FC_FUNC_(h5dread_c, H5DREAD_C) +#define nh5dread_integer_s_c H5_FC_FUNC_(h5dread_integer_s_c, H5DREAD_INTEGER_S_C) +#define nh5dread_integer_1_c H5_FC_FUNC_(h5dread_integer_1_c, H5DREAD_INTEGER_1_C) +#define nh5dread_integer_2_c H5_FC_FUNC_(h5dread_integer_2_c, H5DREAD_INTEGER_2_C) +#define nh5dread_integer_3_c H5_FC_FUNC_(h5dread_integer_3_c, H5DREAD_INTEGER_3_C) +#define nh5dread_integer_4_c H5_FC_FUNC_(h5dread_integer_4_c, H5DREAD_INTEGER_4_C) +#define nh5dread_integer_5_c H5_FC_FUNC_(h5dread_integer_5_c, H5DREAD_INTEGER_5_C) +#define nh5dread_integer_6_c H5_FC_FUNC_(h5dread_integer_6_c, H5DREAD_INTEGER_6_C) +#define nh5dread_integer_7_c H5_FC_FUNC_(h5dread_integer_7_c, H5DREAD_INTEGER_7_C) +#define nh5dread_real_s_c H5_FC_FUNC_(h5dread_real_s_c, H5DREAD_REAL_S_C) +#define nh5dread_real_1_c H5_FC_FUNC_(h5dread_real_1_c, H5DREAD_REAL_1_C) +#define nh5dread_real_2_c H5_FC_FUNC_(h5dread_real_2_c, H5DREAD_REAL_2_C) +#define nh5dread_real_3_c H5_FC_FUNC_(h5dread_real_3_c, H5DREAD_REAL_3_C) +#define nh5dread_real_4_c H5_FC_FUNC_(h5dread_real_4_c, H5DREAD_REAL_4_C) +#define nh5dread_real_5_c H5_FC_FUNC_(h5dread_real_5_c, H5DREAD_REAL_5_C) +#define nh5dread_real_6_c H5_FC_FUNC_(h5dread_real_6_c, H5DREAD_REAL_6_C) +#define nh5dread_real_7_c H5_FC_FUNC_(h5dread_real_7_c, H5DREAD_REAL_7_C) +#define nh5dread_double_s_c H5_FC_FUNC_(h5dread_double_s_c, H5DREAD_DOUBLE_S_C) +#define nh5dread_double_1_c H5_FC_FUNC_(h5dread_double_1_c, H5DREAD_DOUBLE_1_C) +#define nh5dread_double_2_c H5_FC_FUNC_(h5dread_double_2_c, H5DREAD_DOUBLE_2_C) +#define nh5dread_double_3_c H5_FC_FUNC_(h5dread_double_3_c, H5DREAD_DOUBLE_3_C) +#define nh5dread_double_4_c H5_FC_FUNC_(h5dread_double_4_c, H5DREAD_DOUBLE_4_C) +#define nh5dread_double_5_c H5_FC_FUNC_(h5dread_double_5_c, H5DREAD_DOUBLE_5_C) +#define nh5dread_double_6_c H5_FC_FUNC_(h5dread_double_6_c, H5DREAD_DOUBLE_6_C) +#define nh5dread_double_7_c H5_FC_FUNC_(h5dread_double_7_c, H5DREAD_DOUBLE_7_C) +#define nh5dread_c_b H5_FC_FUNC_(h5dread_c_b, H5DREAD_C_B) +#define nh5dread_ref_reg_c H5_FC_FUNC_(h5dread_ref_reg_c, H5DREAD_REF_REG_C) +#define nh5dread_ref_obj_c H5_FC_FUNC_(h5dread_ref_obj_c, H5DREAD_REF_OBJ_C) +#define nh5dreadc_c H5_FC_FUNC_(h5dreadc_c, H5DREADC_C) +#define nh5dreadc_s_c H5_FC_FUNC_(h5dreadc_s_c, H5DREADC_S_C) +#define nh5dreadc_1_c H5_FC_FUNC_(h5dreadc_1_c, H5DREADC_1_C) +#define nh5dreadc_2_c H5_FC_FUNC_(h5dreadc_2_c, H5DREADC_2_C) +#define nh5dreadc_3_c H5_FC_FUNC_(h5dreadc_3_c, H5DREADC_3_C) +#define nh5dreadc_4_c H5_FC_FUNC_(h5dreadc_4_c, H5DREADC_4_C) +#define nh5dreadc_5_c H5_FC_FUNC_(h5dreadc_5_c, H5DREADC_5_C) +#define nh5dreadc_6_c H5_FC_FUNC_(h5dreadc_6_c, H5DREADC_6_C) +#define nh5dreadc_7_c H5_FC_FUNC_(h5dreadc_7_c, H5DREADC_7_C) +#define nh5dreadc_c_b H5_FC_FUNC_(h5dreadc_c_b, H5DREADC_C_B) +#define nh5dget_space_c H5_FC_FUNC_(h5dget_space_c, H5DGET_SPACE_C) +#define nh5dget_type_c H5_FC_FUNC_(h5dget_type_c, H5DGET_TYPE_C) +#define nh5dget_create_plist_c H5_FC_FUNC_(h5dget_create_plist_c, H5DGET_CREATE_PLIST_C) +#define nh5dset_extent_c H5_FC_FUNC_(h5dset_extent_c, H5DSET_EXTENT_C) +#define nh5dget_storage_size_c H5_FC_FUNC_(h5dget_storage_size_c, H5DGET_STORAGE_SIZE_C) +#define nh5dvlen_get_max_len_c H5_FC_FUNC_(h5dvlen_get_max_len_c, H5DVLEN_GET_MAX_LEN_C) +#define nh5dwrite_vl_integer_c H5_FC_FUNC_(h5dwrite_vl_integer_c, H5DWRITE_VL_INTEGER_C) +#define nh5dread_vl_integer_c H5_FC_FUNC_(h5dread_vl_integer_c, H5DREAD_VL_INTEGER_C) +#define nh5dwrite_vl_real_c H5_FC_FUNC_(h5dwrite_vl_real_c, H5DWRITE_VL_REAL_C) +#define nh5dread_vl_real_c H5_FC_FUNC_(h5dread_vl_real_c, H5DREAD_VL_REAL_C) +#define nh5dwrite_vl_string_c H5_FC_FUNC_(h5dwrite_vl_string_c, H5DWRITE_VL_STRING_C) +#define nh5dread_vl_string_c H5_FC_FUNC_(h5dread_vl_string_c, H5DREAD_VL_STRING_C) +#define nh5dfillc_c H5_FC_FUNC_(h5dfillc_c, H5DFILLC_C) +#define nh5dfill_c H5_FC_FUNC_(h5dfill_c, H5DFILL_C) +#define nh5dfill_integer_c H5_FC_FUNC_(h5dfill_integer_c, H5DFILL_INTEGER_C) +#define nh5dfill_real_c H5_FC_FUNC_(h5dfill_real_c, H5DFILL_REAL_C) +#define nh5dfill_double_c H5_FC_FUNC_(h5dfill_double_c, H5DFILL_DOUBLE_C) +#define nh5dget_space_status_c H5_FC_FUNC_(h5dget_space_status_c, H5DGET_SPACE_STATUS_C) +#define nh5dcreate_anon_c H5_FC_FUNC_(h5dcreate_anon_c, H5DCREATE_ANON_C) +#define nh5dwrite_f_c H5_FC_FUNC_(h5dwrite_f_c, H5DWRITE_F_C) +#define nh5dread_f_c H5_FC_FUNC_(h5dread_f_c, H5DREAD_F_C) +#define nh5dget_access_plist_c H5_FC_FUNC_(h5dget_access_plist_c, H5DGET_ACCESS_PLIST_C) +#define nh5dvlen_reclaim_c H5_FC_FUNC_(h5dvlen_reclaim_c, H5DVLEN_RECLAIM_C) + + +H5_FCDLL int_f nh5dcreate_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *space_id, + hid_t_f *lcpl_id, hid_t_f *dcpl_id, hid_t_f *dapl_id, hid_t_f *dset_id); +H5_FCDLL int_f nh5dopen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *dapl_id, hid_t_f *dset_id); +H5_FCDLL int_f nh5dclose_c ( hid_t_f *dset_id ); +H5_FCDLL int_f nh5dwrite_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_integer_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_integer_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_integer_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_integer_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_integer_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_integer_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_integer_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_integer_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); + +H5_FCDLL int_f nh5dwrite_real_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_real_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_real_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_real_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_real_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_real_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_real_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_real_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); + +H5_FCDLL int_f nh5dwrite_double_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_double_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_double_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_double_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_double_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_double_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_double_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_double_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); + +H5_FCDLL int_f nh5dwrite_vl_integer_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, hsize_t_f *dims, size_t_f *len); +H5_FCDLL int_f nh5dwrite_vl_real_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, real_f *buf, hsize_t_f *dims, size_t_f *len); +H5_FCDLL int_f nh5dwrite_vl_string_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims, size_t_f *len); +H5_FCDLL int_f nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, haddr_t_f *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, hsize_t_f *dims); + +H5_FCDLL int_f nh5dwritec_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); + +H5_FCDLL int_f nh5dwritec_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwritec_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwritec_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwritec_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwritec_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwritec_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwritec_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dwritec_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); + +H5_FCDLL int_f nh5dread_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); + +H5_FCDLL int_f nh5dread_integer_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_integer_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_integer_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_integer_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_integer_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_integer_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_integer_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_integer_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); + +H5_FCDLL int_f nh5dread_real_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_real_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_real_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_real_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_real_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_real_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_real_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_real_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); + +H5_FCDLL int_f nh5dread_double_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_double_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_double_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_double_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_double_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_double_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_double_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_double_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f *dims); + +H5_FCDLL int_f nh5dread_vl_integer_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, hsize_t_f *dims, size_t_f *len); +H5_FCDLL int_f nh5dread_vl_real_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, real_f *buf, hsize_t_f *dims, size_t_f *len); +H5_FCDLL int_f nh5dread_vl_string_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims, size_t_f *len); +H5_FCDLL int_f nh5dread_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, haddr_t_f * buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dread_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f * buf, hsize_t_f *dims); + +H5_FCDLL int_f nh5dreadc_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); + +H5_FCDLL int_f nh5dreadc_s_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dreadc_1_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dreadc_2_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dreadc_3_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dreadc_4_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dreadc_5_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dreadc_6_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dreadc_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, hsize_t_f *dims); +H5_FCDLL int_f nh5dget_access_plist_c (hid_t_f *dset_id, hid_t_f *plist_id); + + +H5_FCDLL int_f nh5dget_space_c ( hid_t_f *dset_id , hid_t_f *space_id); +H5_FCDLL int_f nh5dget_type_c ( hid_t_f *dset_id , hid_t_f *type_id); +H5_FCDLL int_f nh5dget_create_plist_c ( hid_t_f *dset_id , hid_t_f *plist_id); +H5_FCDLL int_f nh5dset_extent_c ( hid_t_f *dset_id , hsize_t_f *dims); +H5_FCDLL int_f nh5dvlen_get_max_len_c(hid_t_f *dataset_id, hid_t_f *type_id, hid_t_f *space_id, size_t_f *len); +H5_FCDLL int_f nh5dget_storage_size_c(hid_t_f *dataset_id, hsize_t_f *size); +H5_FCDLL int_f nh5dfillc_c(_fcd fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, _fcd buf, hid_t_f *mem_type_id); +H5_FCDLL int_f nh5dfill_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); +H5_FCDLL int_f nh5dfill_integer_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); +H5_FCDLL int_f nh5dfill_real_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); +H5_FCDLL int_f nh5dfill_double_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id); +H5_FCDLL int_f nh5dget_space_status_c ( hid_t_f *dset_id, int_f *flag); +H5_FCDLL int_f nh5dcreate_anon_c (hid_t_f *loc_id, hid_t_f *type_id, hid_t_f *space_id, + hid_t_f *dcpl_id, hid_t_f *dapl_id, hid_t_f *dset_id); +H5_FCDLL int_f nh5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, + hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf); +H5_FCDLL int_f nh5dread_f_c ( hid_t_f *dset_id , hid_t_f *mem_type_id, hid_t_f *mem_space_id, + hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf); +H5_FCDLL int_f nh5dvlen_reclaim_c (hid_t_f *type_id , hid_t_f *space_id, hid_t_f *plist_id, void *buf); +/* + * Functions from H5Gf.c + */ +#define nh5gcreate_c H5_FC_FUNC_(h5gcreate_c, H5GCREATE_C) +#define nh5gclose_c H5_FC_FUNC_(h5gclose_c, H5GCLOSE_C) +#define nh5gopen_c H5_FC_FUNC_(h5gopen_c, H5GOPEN_C) +#define nh5gget_obj_info_idx_c H5_FC_FUNC_(h5gget_obj_info_idx_c, H5GGET_OBJ_INFO_IDX_C) +#define nh5gn_members_c H5_FC_FUNC_(h5gn_members_c, H5GN_MEMBERS_C) +#define nh5glink_c H5_FC_FUNC_(h5glink_c, H5GLINK_C) +#define nh5glink2_c H5_FC_FUNC_(h5glink2_c, H5GLINK2_C) +#define nh5gunlink_c H5_FC_FUNC_(h5gunlink_c, H5GUNLINK_C) +#define nh5gmove_c H5_FC_FUNC_(h5gmove_c, H5GMOVE_C) +#define nh5gmove2_c H5_FC_FUNC_(h5gmove2_c, H5GMOVE2_C) +#define nh5gget_linkval_c H5_FC_FUNC_(h5gget_linkval_c, H5GGET_LINKVAL_C) +#define nh5gset_comment_c H5_FC_FUNC_(h5gset_comment_c, H5GSET_COMMENT_C) +#define nh5gget_comment_c H5_FC_FUNC_(h5gget_comment_c, H5GGET_COMMENT_C) +#define nh5gcreate_anon_c H5_FC_FUNC_(h5gcreate_anon_c, H5GCREATE_ANON_C) +#define nh5gget_create_plist_c H5_FC_FUNC_(h5gget_create_plist_c, H5GGET_CREATE_PLIST_C) +#define nh5gget_info_c H5_FC_FUNC_(h5gget_info_c, H5GGET_INFO_C) +#define nh5gget_info_by_idx_c H5_FC_FUNC_(h5gget_info_by_idx_c, H5GGET_INFO_BY_IDX_C) +#define nh5gget_info_by_name_c H5_FC_FUNC_(h5gget_info_by_name_c, H5GGET_INFO_BY_NAME_C) + + +H5_FCDLL int_f nh5gcreate_c (hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size_hint, hid_t_f *grp_id, + hid_t_f *lcpl_id, hid_t_f *gcpl_id, hid_t_f *gapl_id); +H5_FCDLL int_f nh5gopen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *gapl_id, hid_t_f *grp_id); +H5_FCDLL int_f nh5gclose_c ( hid_t_f *grp_id ); +H5_FCDLL int_f nh5gget_obj_info_idx_c (hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *idx, _fcd obj_name, int_f *obj_namelen, int_f *obj_type); +H5_FCDLL int_f nh5gn_members_c (hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *nmembers); +H5_FCDLL int_f nh5glink_c (hid_t_f *loc_id, int_f *link_type, _fcd current_name, int_f *current_namelen, _fcd new_name, int_f *new_namelen); +H5_FCDLL int_f nh5glink2_c (hid_t_f *cur_loc_id, _fcd cur_name, int_f *cur_namelen, int_f *link_type, hid_t_f *new_loc_id, _fcd new_name, int_f *new_namelen); +H5_FCDLL int_f nh5gunlink_c (hid_t_f *loc_id, _fcd name, int_f *namelen); +H5_FCDLL int_f nh5gmove_c (hid_t_f *loc_id, _fcd src_name, int_f *src_namelen, _fcd dst_name, int_f *dst_namelen); +H5_FCDLL int_f nh5gmove2_c (hid_t_f *src_loc_id, _fcd src_name, int_f *src_namelen, hid_t_f *dst_loc_id,_fcd dst_name, int_f *dst_namelen); +H5_FCDLL int_f nh5gget_linkval_c (hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size, _fcd value ); +H5_FCDLL int_f nh5gset_comment_c (hid_t_f *loc_id, _fcd name, int_f *namelen, _fcd comment, int_f *commentlen); +H5_FCDLL int_f nh5gget_comment_c (hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *bufsize, _fcd comment); +H5_FCDLL int_f nh5gcreate_anon_c (hid_t_f *loc_id, hid_t_f *gcpl_id, hid_t_f *gapl_id, hid_t_f *grp_id); +H5_FCDLL int_f nh5gget_create_plist_c(hid_t_f *grp_id, hid_t_f *gcpl_id ); +H5_FCDLL int_f nh5gget_info_c (hid_t_f *group_id, int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted); +H5_FCDLL int_f nh5gget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, + int_f *index_type, int_f *order, hsize_t_f *n, hid_t_f *lapl_id, + int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted); +H5_FCDLL int_f nh5gget_info_by_name_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, hid_t_f *lapl_id, + int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted); + +/* + * Functions from H5Af.c + */ +#define nh5acreate_c H5_FC_FUNC_(h5acreate_c, H5ACREATE_C) +#define nh5aclose_c H5_FC_FUNC_(h5aclose_c, H5ACLOSE_C) +#define nh5aopen_name_c H5_FC_FUNC_(h5aopen_name_c, H5AOPEN_NAME_C) +#define nh5awrite_c H5_FC_FUNC_(h5awrite_c, H5AWRITE_C) +#define nh5awrite_integer_s_c H5_FC_FUNC_(h5awrite_integer_s_c, H5AWRITE_INTEGER_S_C) +#define nh5awrite_integer_1_c H5_FC_FUNC_(h5awrite_integer_1_c, H5AWRITE_INTEGER_1_C) +#define nh5awrite_integer_2_c H5_FC_FUNC_(h5awrite_integer_2_c, H5AWRITE_INTEGER_2_C) +#define nh5awrite_integer_3_c H5_FC_FUNC_(h5awrite_integer_3_c, H5AWRITE_INTEGER_3_C) +#define nh5awrite_integer_4_c H5_FC_FUNC_(h5awrite_integer_4_c, H5AWRITE_INTEGER_4_C) +#define nh5awrite_integer_5_c H5_FC_FUNC_(h5awrite_integer_5_c, H5AWRITE_INTEGER_5_C) +#define nh5awrite_integer_6_c H5_FC_FUNC_(h5awrite_integer_6_c, H5AWRITE_INTEGER_6_C) +#define nh5awrite_integer_7_c H5_FC_FUNC_(h5awrite_integer_7_c, H5AWRITE_INTEGER_7_C) +#define nh5awrite_real_s_c H5_FC_FUNC_(h5awrite_real_s_c, H5AWRITE_REAL_S_C) +#define nh5awrite_real_1_c H5_FC_FUNC_(h5awrite_real_1_c, H5AWRITE_REAL_1_C) +#define nh5awrite_real_2_c H5_FC_FUNC_(h5awrite_real_2_c, H5AWRITE_REAL_2_C) +#define nh5awrite_real_3_c H5_FC_FUNC_(h5awrite_real_3_c, H5AWRITE_REAL_3_C) +#define nh5awrite_real_4_c H5_FC_FUNC_(h5awrite_real_4_c, H5AWRITE_REAL_4_C) +#define nh5awrite_real_5_c H5_FC_FUNC_(h5awrite_real_5_c, H5AWRITE_REAL_5_C) +#define nh5awrite_real_6_c H5_FC_FUNC_(h5awrite_real_6_c, H5AWRITE_REAL_6_C) +#define nh5awrite_real_7_c H5_FC_FUNC_(h5awrite_real_7_c, H5AWRITE_REAL_7_C) +#define nh5awrite_double_s_c H5_FC_FUNC_(h5awrite_double_s_c, H5AWRITE_DOUBLE_S_C) +#define nh5awrite_double_1_c H5_FC_FUNC_(h5awrite_double_1_c, H5AWRITE_DOUBLE_1_C) +#define nh5awrite_double_2_c H5_FC_FUNC_(h5awrite_double_2_c, H5AWRITE_DOUBLE_2_C) +#define nh5awrite_double_3_c H5_FC_FUNC_(h5awrite_double_3_c, H5AWRITE_DOUBLE_3_C) +#define nh5awrite_double_4_c H5_FC_FUNC_(h5awrite_double_4_c, H5AWRITE_DOUBLE_4_C) +#define nh5awrite_double_5_c H5_FC_FUNC_(h5awrite_double_5_c, H5AWRITE_DOUBLE_5_C) +#define nh5awrite_double_6_c H5_FC_FUNC_(h5awrite_double_6_c, H5AWRITE_DOUBLE_6_C) +#define nh5awrite_double_7_c H5_FC_FUNC_(h5awrite_double_7_c, H5AWRITE_DOUBLE_7_C) +#define nh5awritec_c H5_FC_FUNC_(h5awritec_c, H5AWRITEC_C) +#define nh5awritec_s_c H5_FC_FUNC_(h5awritec_s_c, H5AWRITEC_S_C) +#define nh5awritec_1_c H5_FC_FUNC_(h5awritec_1_c, H5AWRITEC_1_C) +#define nh5awritec_2_c H5_FC_FUNC_(h5awritec_2_c, H5AWRITEC_2_C) +#define nh5awritec_3_c H5_FC_FUNC_(h5awritec_3_c, H5AWRITEC_3_C) +#define nh5awritec_4_c H5_FC_FUNC_(h5awritec_4_c, H5AWRITEC_4_C) +#define nh5awritec_5_c H5_FC_FUNC_(h5awritec_5_c, H5AWRITEC_5_C) +#define nh5awritec_6_c H5_FC_FUNC_(h5awritec_6_c, H5AWRITEC_6_C) +#define nh5awritec_7_c H5_FC_FUNC_(h5awritec_7_c, H5AWRITEC_7_C) +#define nh5awrite_f_c H5_FC_FUNC_(h5awrite_f_c, H5AWRITE_F_C) +#define nh5aread_c H5_FC_FUNC_(h5aread_c, H5AREAD_C) +#define nh5aread_integer_s_c H5_FC_FUNC_(h5aread_integer_s_c, H5AREAD_INTEGER_S_C) +#define nh5aread_integer_1_c H5_FC_FUNC_(h5aread_integer_1_c, H5AREAD_INTEGER_1_C) +#define nh5aread_integer_2_c H5_FC_FUNC_(h5aread_integer_2_c, H5AREAD_INTEGER_2_C) +#define nh5aread_integer_3_c H5_FC_FUNC_(h5aread_integer_3_c, H5AREAD_INTEGER_3_C) +#define nh5aread_integer_4_c H5_FC_FUNC_(h5aread_integer_4_c, H5AREAD_INTEGER_4_C) +#define nh5aread_integer_5_c H5_FC_FUNC_(h5aread_integer_5_c, H5AREAD_INTEGER_5_C) +#define nh5aread_integer_6_c H5_FC_FUNC_(h5aread_integer_6_c, H5AREAD_INTEGER_6_C) +#define nh5aread_integer_7_c H5_FC_FUNC_(h5aread_integer_7_c, H5AREAD_INTEGER_7_C) +#define nh5aread_real_s_c H5_FC_FUNC_(h5aread_real_s_c, H5AREAD_REAL_S_C) +#define nh5aread_real_1_c H5_FC_FUNC_(h5aread_real_1_c, H5AREAD_REAL_1_C) +#define nh5aread_real_2_c H5_FC_FUNC_(h5aread_real_2_c, H5AREAD_REAL_2_C) +#define nh5aread_real_3_c H5_FC_FUNC_(h5aread_real_3_c, H5AREAD_REAL_3_C) +#define nh5aread_real_4_c H5_FC_FUNC_(h5aread_real_4_c, H5AREAD_REAL_4_C) +#define nh5aread_real_5_c H5_FC_FUNC_(h5aread_real_5_c, H5AREAD_REAL_5_C) +#define nh5aread_real_6_c H5_FC_FUNC_(h5aread_real_6_c, H5AREAD_REAL_6_C) +#define nh5aread_real_7_c H5_FC_FUNC_(h5aread_real_7_c, H5AREAD_REAL_7_C) +#define nh5aread_double_s_c H5_FC_FUNC_(h5aread_double_s_c, H5AREAD_DOUBLE_S_C) +#define nh5aread_double_1_c H5_FC_FUNC_(h5aread_double_1_c, H5AREAD_DOUBLE_1_C) +#define nh5aread_double_2_c H5_FC_FUNC_(h5aread_double_2_c, H5AREAD_DOUBLE_2_C) +#define nh5aread_double_3_c H5_FC_FUNC_(h5aread_double_3_c, H5AREAD_DOUBLE_3_C) +#define nh5aread_double_4_c H5_FC_FUNC_(h5aread_double_4_c, H5AREAD_DOUBLE_4_C) +#define nh5aread_double_5_c H5_FC_FUNC_(h5aread_double_5_c, H5AREAD_DOUBLE_5_C) +#define nh5aread_double_6_c H5_FC_FUNC_(h5aread_double_6_c, H5AREAD_DOUBLE_6_C) +#define nh5aread_double_7_c H5_FC_FUNC_(h5aread_double_7_c, H5AREAD_DOUBLE_7_C) +#define nh5areadc_c H5_FC_FUNC_(h5areadc_c, H5AREADC_C) +#define nh5areadc_s_c H5_FC_FUNC_(h5areadc_s_c, H5AREADC_S_C) +#define nh5areadc_1_c H5_FC_FUNC_(h5areadc_1_c, H5AREADC_1_C) +#define nh5areadc_2_c H5_FC_FUNC_(h5areadc_2_c, H5AREADC_2_C) +#define nh5areadc_3_c H5_FC_FUNC_(h5areadc_3_c, H5AREADC_3_C) +#define nh5areadc_4_c H5_FC_FUNC_(h5areadc_4_c, H5AREADC_4_C) +#define nh5areadc_5_c H5_FC_FUNC_(h5areadc_5_c, H5AREADC_5_C) +#define nh5areadc_6_c H5_FC_FUNC_(h5areadc_6_c, H5AREADC_6_C) +#define nh5areadc_7_c H5_FC_FUNC_(h5areadc_7_c, H5AREADC_7_C) +#define nh5aread_f_c H5_FC_FUNC_(h5aread_f_c, H5AREAD_F_C) +#define nh5aget_name_c H5_FC_FUNC_(h5aget_name_c, H5AGET_NAME_C) +#define nh5aopen_idx_c H5_FC_FUNC_(h5aopen_idx_c, H5AOPEN_IDX_C) +#define nh5aget_space_c H5_FC_FUNC_(h5aget_space_c, H5AGET_SPACE_C) +#define nh5aget_type_c H5_FC_FUNC_(h5aget_type_c, H5AGET_TYPE_C) +#define nh5aget_num_attrs_c H5_FC_FUNC_(h5aget_num_attrs_c, H5AGET_NUM_ATTRS_C) +#define nh5adelete_c H5_FC_FUNC_(h5adelete_c, H5ADELETE_C) +#define nh5aget_storage_size_c H5_FC_FUNC_(h5aget_storage_size_c, H5AGET_STORAGE_SIZE_C) +#define nh5arename_by_name_c H5_FC_FUNC_(h5arename_by_name_c, H5ARENAME_BY_NAME_C) +#define nh5aopen_c H5_FC_FUNC_(h5aopen_c, H5AOPEN_C) +#define nh5adelete_by_name_c H5_FC_FUNC_(h5adelete_by_name_c,H5ADELETE_BY_NAME_C) +#define nh5adelete_by_idx_c H5_FC_FUNC_(h5adelete_by_idx_c,H5ADELETE_BY_IDX_C) +#define nh5aget_name_by_idx_c H5_FC_FUNC_(h5aget_name_by_idx_c,H5AGET_NAME_BY_IDX_C) +#define nh5aget_create_plist_c H5_FC_FUNC_(h5aget_create_plist_c,H5AGET_CREATE_PLIST_C) +#define nh5aopen_by_idx_c H5_FC_FUNC_(h5aopen_by_idx_c,H5AOPEN_BY_IDX_C) +#define nh5aget_info_c H5_FC_FUNC_(h5aget_info_c,H5AGET_INFO_C) +#define nh5aget_info_by_idx_c H5_FC_FUNC_(h5aget_info_by_idx_c,H5AGET_INFO_BY_IDX_C) +#define nh5aget_info_by_name_c H5_FC_FUNC_(h5aget_info_by_name_c,H5AGET_INFO_BY_NAME_C) +#define nh5aget_info_by_name_c H5_FC_FUNC_(h5aget_info_by_name_c,H5AGET_INFO_BY_NAME_C) +#define nh5acreate_by_name_c H5_FC_FUNC_(h5acreate_by_name_c,H5ACREATE_BY_NAME_C) +#define nh5aexists_c H5_FC_FUNC_(h5aexists_c,H5AEXISTS_C) +#define nh5aexists_by_name_c H5_FC_FUNC_(h5aexists_by_name_c,H5AEXISTS_BY_NAME_C) +#define nh5aopen_by_name_c H5_FC_FUNC_(h5aopen_by_name_c,H5AOPEN_BY_NAME_C) +#define nh5arename_c H5_FC_FUNC_(h5arename_c,H5ARENAME_C) + +H5_FCDLL int_f nh5acreate_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *type_id, hid_t_f *space_id, hid_t_f *crt_prp, hid_t_f *aapl, hid_t_f *attr_id); +H5_FCDLL int_f nh5aopen_name_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *attr_id); +H5_FCDLL int_f nh5awritec_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awritec_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awritec_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awritec_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awritec_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awritec_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awritec_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awritec_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awritec_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5awrite_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5awrite_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf); +H5_FCDLL int_f nh5areadc_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5areadc_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5areadc_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5areadc_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5areadc_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5areadc_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5areadc_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5areadc_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5areadc_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims); +H5_FCDLL int_f nh5aread_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims); +H5_FCDLL int_f nh5aread_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf); +H5_FCDLL int_f nh5aclose_c ( hid_t_f *attr_id ); +H5_FCDLL int_f nh5adelete_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen); +H5_FCDLL int_f nh5aopen_idx_c (hid_t_f *obj_id, int_f *idx, hid_t_f *attr_id); +H5_FCDLL int_f nh5aget_space_c (hid_t_f *attr_id, hid_t_f *space_id); +H5_FCDLL int_f nh5aget_type_c (hid_t_f *attr_id, hid_t_f *type_id); +H5_FCDLL int_f nh5aget_num_attrs_c (hid_t_f *obj_id, int_f *attr_num); +H5_FCDLL int_f nh5aget_name_c(hid_t_f *attr_id, size_t_f *size, _fcd buf); +H5_FCDLL int_f nh5aget_storage_size_c ( hid_t_f *attr_id, hsize_t_f *size ); +H5_FCDLL int_f nh5arename_by_name_c ( hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, + _fcd old_attr_name, size_t_f *old_attr_namelen, + _fcd new_attr_name, size_t_f *new_attr_namelen, + hid_t_f *lapl_id ); +H5_FCDLL int_f nh5aopen_c ( hid_t_f *obj_id, _fcd attr_name, size_t_f *attr_namelen, + hid_t_f *aapl_id, hid_t_f *attr_id); +H5_FCDLL int_f nh5adelete_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, + _fcd attr_name, size_t_f *attr_namelen, hid_t_f *lapl_id); +H5_FCDLL int_f nh5adelete_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, + int_f *idx_type, int_f *order, hsize_t_f *n, hid_t_f *lapl_id); +H5_FCDLL int_f nh5aget_name_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, + int_f *idx_type, int_f *order, hsize_t_f *n, _fcd name, + size_t_f *size, hid_t_f *lapl_id); +H5_FCDLL int_f nh5aget_create_plist_c ( hid_t_f *attr_id, hid_t_f *creation_prop_id ); +H5_FCDLL int_f nh5aopen_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, + int_f *idx_type, int_f *order, hsize_t_f *n, hid_t_f *aapl_id, hid_t_f *lapl_id, hid_t_f *attr_id); +H5_FCDLL int_f nh5aget_info_c (hid_t_f *loc_id, int_f *corder_valid, int_f *corder, + int_f *cset, hsize_t_f *data_size ); +H5_FCDLL int_f nh5aget_info_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, + int_f *idx_type, int_f *order, hsize_t_f *n, hid_t_f *lapl_id, + int_f *corder_valid, int_f *corder, + int_f *cset, hsize_t_f *data_size ); +H5_FCDLL int_f nh5aget_info_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, + _fcd attr_name, size_t_f *attr_namelen, hid_t_f *lapl_id, + int_f *corder_valid, int_f *corder, + int_f *cset, hsize_t_f *data_size ); +H5_FCDLL int_f nh5acreate_by_name_c(hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, + _fcd attr_name, size_t_f *attr_namelen, hid_t_f *type_id, + hid_t_f *space_id, hid_t_f *acpl_id, hid_t_f *aapl_id, + hid_t_f *lapl_id, hid_t_f *attr_id ); +H5_FCDLL int_f nh5aexists_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen, hid_t_f *attr_exists); +H5_FCDLL int_f nh5aexists_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen, + hid_t_f *lapl_id, int_f *attr_exists); +H5_FCDLL int_f nh5aopen_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen, _fcd attr_name, size_t_f *attr_namelen, + hid_t_f *aapl_id, hid_t_f *lapl_id, hid_t_f *attr_id); +H5_FCDLL int_f nh5arename_c( hid_t_f *loc_id, + _fcd old_attr_name, size_t_f *old_attr_namelen, + _fcd new_attr_name, size_t_f *new_attr_namelen); + +/* + * Functions form H5Tf.c file + */ +#define nh5topen_c H5_FC_FUNC_(h5topen_c, H5TOPEN_C) +#define nh5tcommit_c H5_FC_FUNC_(h5tcommit_c, H5TCOMMIT_C) +#define nh5tcommitted_c H5_FC_FUNC_(h5tcommitted_c, H5TCOMMITTED_C) +#define nh5tconvert_c H5_FC_FUNC_(h5tconvert_c, H5TCONVERT_C) +#define nh5tclose_c H5_FC_FUNC_(h5tclose_c, H5TCLOSE_C) +#define nh5tcopy_c H5_FC_FUNC_(h5tcopy_c, H5TCOPY_C) +#define nh5tequal_c H5_FC_FUNC_(h5tequal_c, H5TEQUAL_C) +#define nh5tget_class_c H5_FC_FUNC_(h5tget_class_c, H5TGET_CLASS_C) +#define nh5tget_order_c H5_FC_FUNC_(h5tget_order_c, H5TGET_ORDER_C) +#define nh5tset_order_c H5_FC_FUNC_(h5tset_order_c, H5TSET_ORDER_C) +#define nh5tget_size_c H5_FC_FUNC_(h5tget_size_c, H5TGET_SIZE_C) +#define nh5tset_size_c H5_FC_FUNC_(h5tset_size_c, H5TSET_SIZE_C) +#define nh5tget_precision_c H5_FC_FUNC_(h5tget_precision_c, H5TGET_PRECISION_C) +#define nh5tset_precision_c H5_FC_FUNC_(h5tset_precision_c, H5TSET_PRECISION_C) +#define nh5tget_offset_c H5_FC_FUNC_(h5tget_offset_c, H5TGET_OFFSET_C) +#define nh5tset_offset_c H5_FC_FUNC_(h5tset_offset_c, H5TSET_OFFSET_C) +#define nh5tget_pad_c H5_FC_FUNC_(h5tget_pad_c, H5TGET_PAD_C) +#define nh5tset_pad_c H5_FC_FUNC_(h5tset_pad_c, H5TSET_PAD_C) +#define nh5tget_sign_c H5_FC_FUNC_(h5tget_sign_c, H5TGET_SIGN_C) +#define nh5tset_sign_c H5_FC_FUNC_(h5tset_sign_c, H5TSET_SIGN_C) +#define nh5tget_fields_c H5_FC_FUNC_(h5tget_fields_c, H5TGET_FIELDS_C) +#define nh5tset_fields_c H5_FC_FUNC_(h5tset_fields_c, H5TSET_FIELDS_C) +#define nh5tget_ebias_c H5_FC_FUNC_(h5tget_ebias_c, H5TGET_EBIAS_C) +#define nh5tset_ebias_c H5_FC_FUNC_(h5tset_ebias_c, H5TSET_EBIAS_C) +#define nh5tget_norm_c H5_FC_FUNC_(h5tget_norm_c, H5TGET_NORM_C) +#define nh5tset_norm_c H5_FC_FUNC_(h5tset_norm_c, H5TSET_NORM_C) +#define nh5tget_inpad_c H5_FC_FUNC_(h5tget_inpad_c, H5TGET_INPAD_C) +#define nh5tset_inpad_c H5_FC_FUNC_(h5tset_inpad_c, H5TSET_INPAD_C) +#define nh5tget_cset_c H5_FC_FUNC_(h5tget_cset_c, H5TGET_CSET_C) +#define nh5tset_cset_c H5_FC_FUNC_(h5tset_cset_c, H5TSET_CSET_C) +#define nh5tget_strpad_c H5_FC_FUNC_(h5tget_strpad_c, H5TGET_STRPAD_C) +#define nh5tset_strpad_c H5_FC_FUNC_(h5tset_strpad_c, H5TSET_STRPAD_C) +#define nh5tget_nmembers_c H5_FC_FUNC_(h5tget_nmembers_c, H5TGET_NMEMBERS_C) +#define nh5tget_member_name_c H5_FC_FUNC_(h5tget_member_name_c, H5TGET_MEMBER_NAME_C) +#define nh5tget_member_offset_c H5_FC_FUNC_(h5tget_member_offset_c, H5TGET_MEMBER_OFFSET_C) +#define nh5tget_member_dims_c H5_FC_FUNC_(h5tget_member_dims_c, H5TGET_MEMBER_DIMS_C) +#define nh5tget_member_type_c H5_FC_FUNC_(h5tget_member_type_c, H5TGET_MEMBER_TYPE_C) +#define nh5tget_member_index_c H5_FC_FUNC_(h5tget_member_index_c, H5TGET_MEMBER_INDEX_C) +#define nh5tinsert_c H5_FC_FUNC_(h5tinsert_c, H5TINSERT_C) +#define nh5tcreate_c H5_FC_FUNC_(h5tcreate_c, H5TCREATE_C) +#define nh5tpack_c H5_FC_FUNC_(h5tpack_c, H5TPACK_C) +#define nh5tinsert_array_c H5_FC_FUNC_(h5tinsert_array_c, H5TINSERT_ARRAY_C) +#define nh5tinsert_array_c2 H5_FC_FUNC_(h5tinsert_array_c2, H5TINSERT_ARRAY_C2) +#define nh5tenum_create_c H5_FC_FUNC_(h5tenum_create_c, H5TENUM_CREATE_C) +#define nh5tenum_insert_c H5_FC_FUNC_(h5tenum_insert_c, H5TENUM_INSERT_C) +#define nh5tenum_nameof_c H5_FC_FUNC_(h5tenum_nameof_c, H5TENUM_NAMEOF_C) +#define nh5tenum_valueof_c H5_FC_FUNC_(h5tenum_valueof_c, H5TENUM_VALUEOF_C) +#define nh5tget_member_value_c H5_FC_FUNC_(h5tget_member_value_c, H5TGET_MEMBER_VALUE_C) +#define nh5tset_tag_c H5_FC_FUNC_(h5tset_tag_c, H5TSET_TAG_C) +#define nh5tget_tag_c H5_FC_FUNC_(h5tget_tag_c, H5TGET_TAG_C) +#define nh5tarray_create_c H5_FC_FUNC_(h5tarray_create_c, H5TARRAY_CREATE_C) +#define nh5tget_array_ndims_c H5_FC_FUNC_(h5tget_array_ndims_c, H5TGET_ARRAY_NDIMS_C) +#define nh5tget_array_dims_c H5_FC_FUNC_(h5tget_array_dims_c, H5TGET_ARRAY_DIMS_C) +#define nh5tget_super_c H5_FC_FUNC_(h5tget_super_c, H5TGET_SUPER_C) +#define nh5tvlen_create_c H5_FC_FUNC_(h5tvlen_create_c, H5TVLEN_CREATE_C) +#define nh5tis_variable_str_c H5_FC_FUNC_(h5tis_variable_str_c, H5TIS_VARIABLE_STR_C) +#define nh5tget_member_class_c H5_FC_FUNC_(h5tget_member_class_c, H5TGET_MEMBER_CLASS_C) +#define nh5tcommit_anon_c H5_FC_FUNC_(h5tcommit_anon_c, H5TCOMMIT_ANON_C) +#define nh5tdecode_c H5_FC_FUNC_(h5tdecode_c, H5TDECODE_C) +#define nh5tencode_c H5_FC_FUNC_(h5tencode_c, H5TENCODE_C) +#define nh5tget_create_plist_c H5_FC_FUNC_(h5tget_create_plist_c, H5TGET_CREATE_PLIST_C) +#define nh5tcompiler_conv_c H5_FC_FUNC_(h5tcompiler_conv_c, H5TCOMPILER_CONV_C) +#define nh5tget_native_type_c H5_FC_FUNC_(h5tget_native_type_c, H5TGET_NATIVE_TYPE_C ) + +H5_FCDLL int_f nh5tcreate_c(int_f *cls, size_t_f *size, hid_t_f *type_id); +H5_FCDLL int_f nh5topen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *tapl_id ); +H5_FCDLL int_f nh5tcommit_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *lcpl_id, hid_t_f *tcpl_id, hid_t_f *tapl_id); +H5_FCDLL int_f nh5tclose_c ( hid_t_f *type_id ); +H5_FCDLL int_f nh5tequal_c ( hid_t_f *type1_id , hid_t_f *type2_id, int_f *c_flag); +H5_FCDLL int_f nh5tcopy_c ( hid_t_f *type_id , hid_t_f *new_type_id); +H5_FCDLL int_f nh5tget_class_c ( hid_t_f *type_id , int_f *classtype); +H5_FCDLL int_f nh5tget_order_c ( hid_t_f *type_id , int_f *order); +H5_FCDLL int_f nh5tset_order_c ( hid_t_f *type_id , int_f *order); +H5_FCDLL int_f nh5tget_size_c ( hid_t_f *type_id , size_t_f *size); +H5_FCDLL int_f nh5tset_size_c ( hid_t_f *type_id , size_t_f *size); +H5_FCDLL int_f nh5tcommitted_c (hid_t_f *dtype_id); +H5_FCDLL int_f nh5tget_precision_c ( hid_t_f *type_id , size_t_f *precision); +H5_FCDLL int_f nh5tset_precision_c ( hid_t_f *type_id , size_t_f *precision); +H5_FCDLL int_f nh5tget_offset_c ( hid_t_f *type_id , size_t_f *offset); +H5_FCDLL int_f nh5tset_offset_c ( hid_t_f *type_id , size_t_f *offset); +H5_FCDLL int_f nh5tget_pad_c ( hid_t_f *type_id , int_f * lsbpad, int_f * msbpad); +H5_FCDLL int_f nh5tset_pad_c ( hid_t_f *type_id, int_f * lsbpad, int_f * msbpad ); +H5_FCDLL int_f nh5tget_sign_c ( hid_t_f *type_id , int_f* sign); +H5_FCDLL int_f nh5tset_sign_c ( hid_t_f *type_id , int_f *sign); +H5_FCDLL int_f nh5tget_fields_c ( hid_t_f *type_id, size_t_f *spos, size_t_f *epos, size_t_f* esize, size_t_f* mpos, size_t_f* msize); +H5_FCDLL int_f nh5tset_fields_c ( hid_t_f *type_id, size_t_f *spos, size_t_f *epos, size_t_f* esize, size_t_f* mpos, size_t_f* msize); +H5_FCDLL int_f nh5tget_ebias_c ( hid_t_f *type_id , size_t_f *ebias); +H5_FCDLL int_f nh5tset_ebias_c ( hid_t_f *type_id , size_t_f *ebias); +H5_FCDLL int_f nh5tget_norm_c ( hid_t_f *type_id , int_f *norm); +H5_FCDLL int_f nh5tset_norm_c ( hid_t_f *type_id , int_f *norm); +H5_FCDLL int_f nh5tget_inpad_c ( hid_t_f *type_id, int_f * padtype); +H5_FCDLL int_f nh5tset_inpad_c ( hid_t_f *type_id, int_f * padtype); +H5_FCDLL int_f nh5tget_cset_c ( hid_t_f *type_id, int_f * cset); +H5_FCDLL int_f nh5tset_cset_c ( hid_t_f *type_id, int_f * cset); +H5_FCDLL int_f nh5tget_strpad_c ( hid_t_f *type_id, int_f * strpad); +H5_FCDLL int_f nh5tset_strpad_c ( hid_t_f *type_id, int_f * strpad); +H5_FCDLL int_f nh5tget_nmembers_c ( hid_t_f *type_id , int_f * num_members); +H5_FCDLL int_f nh5tget_member_name_c ( hid_t_f *type_id ,int_f* idx, _fcd member_name, int_f *namelen); +H5_FCDLL int_f nh5tget_member_dims_c ( hid_t_f *type_id ,int_f* field_idx, int_f * dims, size_t_f * field_dims, int_f * perm ); +H5_FCDLL int_f nh5tget_member_offset_c ( hid_t_f *type_id ,int_f* member_no, size_t_f* offset); +H5_FCDLL int_f nh5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype); +H5_FCDLL int_f nh5tget_member_index_c ( hid_t_f *type_id ,_fcd name, int_f* namelen, int_f *idx); +H5_FCDLL int_f nh5tinsert_c(hid_t_f *type_id, _fcd name, int_f* namelen, size_t_f *offset, hid_t_f * field_id); +H5_FCDLL int_f nh5tpack_c(hid_t_f * type_id); +H5_FCDLL int_f nh5tinsert_array_c(hid_t_f * parent_id, _fcd name, int_f* namelen, size_t_f* offset, int_f* ndims, size_t_f* dims, hid_t_f* member_id, int_f* perm ); +H5_FCDLL int_f nh5tinsert_array_c2(hid_t_f * parent_id, _fcd name, int_f* namelen, size_t_f* offset, int_f* ndims, size_t_f* dims, hid_t_f* member_id); +H5_FCDLL int_f nh5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id); +H5_FCDLL int_f nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value); +H5_FCDLL int_f nh5tenum_nameof_c(hid_t_f *type_id, int_f* value, _fcd name, size_t_f* namelen); +H5_FCDLL int_f nh5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value); +H5_FCDLL int_f nh5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value); +H5_FCDLL int_f nh5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen); +H5_FCDLL int_f nh5tget_tag_c(hid_t_f* type_id, _fcd tag, size_t_f* tag_size, int_f* namelen); +H5_FCDLL int_f nh5tarray_create_c(hid_t_f * base_id, int_f *rank, hsize_t_f* dims, hid_t_f* type_id); +H5_FCDLL int_f nh5tget_array_dims_c ( hid_t_f *type_id , hsize_t_f * dims); +H5_FCDLL int_f nh5tget_array_ndims_c ( hid_t_f *type_id , int_f * ndims); +H5_FCDLL int_f nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id); +H5_FCDLL int_f nh5tvlen_create_c ( hid_t_f *type_id , hid_t_f *vltype_id); +H5_FCDLL int_f nh5tis_variable_str_c ( hid_t_f *type_id , int_f *flag ); +H5_FCDLL int_f nh5tget_member_class_c ( hid_t_f *type_id , int_f *member_no, int_f *cls ); +H5_FCDLL int_f nh5tcommit_anon_c(hid_t_f *loc_id, hid_t_f *dtype_id, hid_t_f *tcpl_id, hid_t_f *tapl_id); +H5_FCDLL int_f nh5tdecode_c ( _fcd buf, hid_t_f *obj_id ); +H5_FCDLL int_f nh5tencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc ); +H5_FCDLL int_f nh5tget_create_plist_c ( hid_t_f *dtype_id, hid_t_f *dtpl_id); +H5_FCDLL int_f nh5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag); +H5_FCDLL int_f nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype_id); +H5_FCDLL int_f nh5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, void *buf, void *background, hid_t_f *plist_id); + + +/* + * Functions from H5Of.c + */ + +#define nh5olink_c H5_FC_FUNC_(h5olink_c, H5OLINK_C) +#define nh5oopen_c H5_FC_FUNC_(h5oopen_c, H5OOPEN_C) +#define nh5oclose_c H5_FC_FUNC_(h5oclose_c, H5OCLOSE_C) +#define nh5ovisit_c H5_FC_FUNC_(h5ovisit_c, H5OVISIT_C) +#define nh5ovisit_by_name_c H5_FC_FUNC_(h5ovisit_by_name_c, H5OVISIT_BY_NAME_C) +#define nh5oget_info_c H5_FC_FUNC_(h5oget_info_c, H5OGET_INFO_C) +#define nh5oget_info_by_idx_c H5_FC_FUNC_(h5oget_info_by_idx_c ,H5OGET_INFO_BY_IDX_C) +#define nh5oget_info_by_name_c H5_FC_FUNC_(h5oget_info_by_name_c ,H5OGET_INFO_BY_NAME_C) +#define nh5oopen_by_addr_c H5_FC_FUNC_(h5oopen_by_addr_c, H5OOPEN_BY_ADDR_C) +#define nh5ocopy_c H5_FC_FUNC_(h5ocopy_c, H5OCOPY_C) +#define nh5odecr_refcount_c H5_FC_FUNC_(h5odecr_refcount_c, H5ODECR_REFCOUNT_C) +#define nh5oincr_refcount_c H5_FC_FUNC_(h5oincr_refcount_c, H5OINCR_REFCOUNT_C) +#define nh5oexists_by_name_c H5_FC_FUNC_(h5oexists_by_name_c, H5OEXISTS_BY_NAME_C) +#define nh5oset_comment_c H5_FC_FUNC_(h5oset_comment_c, H5OSET_COMMENT_C) +#define nh5oset_comment_by_name_c H5_FC_FUNC_(h5oset_comment_by_name_c, H5OSET_COMMENT_BY_NAME_C) +#define nh5oopen_by_idx_c H5_FC_FUNC_(h5oopen_by_idx_c, H5OOPEN_BY_IDX_C) +#define nh5oget_comment_c H5_FC_FUNC_(h5oget_comment_c, H5OGET_COMMENT_C) +#define nh5oget_comment_by_name_c H5_FC_FUNC_(h5oget_comment_by_name_c, H5OGET_COMMENT_BY_NAME_C) + +H5_FCDLL int_f nh5oopen_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, hid_t_f *obj_id); +H5_FCDLL int_f nh5oclose_c (hid_t_f *object_id ); +H5_FCDLL int_f nh5oopen_by_addr_c (hid_t_f *loc_id, haddr_t_f *addr, hid_t_f *obj_id); +H5_FCDLL int_f nh5olink_c (hid_t_f *object_id, hid_t_f *new_loc_id, _fcd name, size_t_f *namelen, + hid_t_f *lcpl_id, hid_t_f *lapl_id); +H5_FCDLL int_f nh5ovisit_c (hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data); +H5_FCDLL int_f nh5ovisit_by_name_c(hid_t_f *loc_id, _fcd object_name, size_t_f *namelen, int_f *index_type, int_f *order, + H5O_iterate_t op, void *op_data, hid_t_f *lapl_id ); +H5_FCDLL int_f nh5oget_info_c (hid_t_f *object_id, H5O_info_t_f *object_info); +H5_FCDLL int_f nh5oget_info_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *namelen, + int_f *index_field, int_f *order, hsize_t_f *n, hid_t_f *lapl_id, H5O_info_t_f *object_info); +H5_FCDLL int_f nh5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, + H5O_info_t_f *object_info); +H5_FCDLL int_f nh5ocopy_c (hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_name_len, + hid_t_f *dst_loc_id, _fcd dst_name, size_t_f *dst_name_len, + hid_t_f *ocpypl_id, hid_t_f *lcpl_id ); +H5_FCDLL int_f nh5odecr_refcount_c (hid_t_f *object_id); +H5_FCDLL int_f nh5oincr_refcount_c (hid_t_f *object_id); +H5_FCDLL int_f nh5oexists_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id); +H5_FCDLL int_f nh5oset_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentlen); +H5_FCDLL int_f nh5oset_comment_by_name_c (hid_t_f *object_id, _fcd name, size_t_f *namelen, _fcd comment, size_t_f *commentlen, hid_t_f *lapl_id); +H5_FCDLL int_f nh5oopen_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, + int_f *index_type, int_f *order, hsize_t_f *n, hid_t_f *obj_id, hid_t_f *lapl_id); +H5_FCDLL int_f nh5oget_comment_c (hid_t_f *object_id, _fcd comment, size_t_f *commentsize, hssize_t_f *bufsize); +H5_FCDLL int_f nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *name_size, + _fcd comment, size_t_f *commentsize, size_t_f *bufsize, hid_t_f *lapl_id); +/* + * Functions from H5Pf.c + */ +#define nh5pcreate_c H5_FC_FUNC_(h5pcreate_c, H5PCREATE_C) +#define nh5pclose_c H5_FC_FUNC_(h5pclose_c, H5PCLOSE_C) +#define nh5pcopy_c H5_FC_FUNC_(h5pcopy_c, H5PCOPY_C) +#define nh5pequal_c H5_FC_FUNC_(h5pequal_c, H5PEQUAL_C) +#define nh5pget_class_c H5_FC_FUNC_(h5pget_class_c, H5PGET_CLASS_C) +#define nh5pset_deflate_c H5_FC_FUNC_(h5pset_deflate_c, H5PSET_DEFLATE_C) +#define nh5pset_preserve_c H5_FC_FUNC_(h5pset_preserve_c, H5PSET_PRESERVE_C) +#define nh5pget_preserve_c H5_FC_FUNC_(h5pget_preserve_c, H5PGET_PRESERVE_C) +#define nh5pset_chunk_c H5_FC_FUNC_(h5pset_chunk_c, H5PSET_CHUNK_C) +#define nh5pget_chunk_c H5_FC_FUNC_(h5pget_chunk_c, H5PGET_CHUNK_C) +#define nh5pset_fill_valuec_c H5_FC_FUNC_(h5pset_fill_valuec_c, H5PSET_FILL_VALUEC_C) +#define nh5pset_fill_value_c H5_FC_FUNC_(h5pset_fill_value_c, H5PSET_FILL_VALUE_C) +#define nh5pset_fill_value_integer_c H5_FC_FUNC_(h5pset_fill_value_integer_c, H5PSET_FILL_VALUE_INTEGER_C) +#define nh5pset_fill_value_real_c H5_FC_FUNC_(h5pset_fill_value_real_c, H5PSET_FILL_VALUE_REAL_C) +#define nh5pset_fill_value_double_c H5_FC_FUNC_(h5pset_fill_value_double_c, H5PSET_FILL_VALUE_DOUBLE_C) +#define nh5pget_fill_valuec_c H5_FC_FUNC_(h5pget_fill_valuec_c, H5PGET_FILL_VALUEC_C) +#define nh5pget_fill_value_c H5_FC_FUNC_(h5pget_fill_value_c, H5PGET_FILL_VALUE_C) +#define nh5pget_fill_value_integer_c H5_FC_FUNC_(h5pget_fill_value_integer_c, H5PGET_FILL_VALUE_INTEGER_C) +#define nh5pget_fill_value_real_c H5_FC_FUNC_(h5pget_fill_value_real_c, H5PGET_FILL_VALUE_REAL_C) +#define nh5pget_fill_value_double_c H5_FC_FUNC_(h5pget_fill_value_double_c, H5PGET_FILL_VALUE_DOUBLE_C) +#define nh5pget_version_c H5_FC_FUNC_(h5pget_version_c, H5PGET_VERSION_C) +#define nh5pget_userblock_c H5_FC_FUNC_(h5pget_userblock_c, H5PGET_USERBLOCK_C) +#define nh5pset_userblock_c H5_FC_FUNC_(h5pset_userblock_c, H5PSET_USERBLOCK_C) +#define nh5pset_sizes_c H5_FC_FUNC_(h5pset_sizes_c, H5PSET_SIZES_C) +#define nh5pget_sizes_c H5_FC_FUNC_(h5pget_sizes_c, H5PGET_SIZES_C) +#define nh5pget_sym_k_c H5_FC_FUNC_(h5pget_sym_k_c, H5PGET_SYM_K_C) +#define nh5pset_sym_k_c H5_FC_FUNC_(h5pset_sym_k_c, H5PSET_SYM_K_C) +#define nh5pget_istore_k_c H5_FC_FUNC_(h5pget_istore_k_c, H5PGET_ISTORE_K_C) +#define nh5pset_istore_k_c H5_FC_FUNC_(h5pset_istore_k_c, H5PSET_ISTORE_K_C) +#define nh5pget_driver_c H5_FC_FUNC_(h5pget_driver_c, H5PGET_DRIVER_C) +#define nh5pset_fapl_stdio_c H5_FC_FUNC_(h5pset_fapl_stdio_c, H5PSET_FAPL_STDIO_C) +#define nh5pget_fapl_stdio_c H5_FC_FUNC_(h5pget_fapl_stdio_c, H5PGET_FAPL_STDIO_C) +#define nh5pset_fapl_sec2_c H5_FC_FUNC_(h5pset_fapl_sec2_c, H5PSET_FAPL_SEC2_C) +#define nh5pget_fapl_sec2_c H5_FC_FUNC_(h5pget_fapl_sec2_c, H5PGET_FAPL_SEC2_C) +#define nh5pset_alignment_c H5_FC_FUNC_(h5pset_alignment_c, H5PSET_ALIGNMENT_C) +#define nh5pget_alignment_c H5_FC_FUNC_(h5pget_alignment_c, H5PGET_ALIGNMENT_C) +#define nh5pset_fapl_core_c H5_FC_FUNC_(h5pset_fapl_core_c, H5PSET_FAPL_CORE_C) +#define nh5pget_fapl_core_c H5_FC_FUNC_(h5pget_fapl_core_c, H5PGET_FAPL_CORE_C) +#define nh5pset_fapl_family_c H5_FC_FUNC_(h5pset_fapl_family_c, H5PSET_FAPL_FAMILY_C) +#define nh5pget_fapl_family_c H5_FC_FUNC_(h5pget_fapl_family_c, H5PGET_FAPL_FAMILY_C) +#define nh5pset_cache_c H5_FC_FUNC_(h5pset_cache_c, H5PSET_CACHE_C) +#define nh5pget_cache_c H5_FC_FUNC_(h5pget_cache_c, H5PGET_CACHE_C) +#define nh5pset_fapl_split_c H5_FC_FUNC_(h5pset_fapl_split_c, H5PSET_FAPL_SPLIT_C) +#define nh5pget_fapl_split_c H5_FC_FUNC_(h5pget_fapl_split_c, H5PGET_FAPL_SPLIT_C) +#define nh5pset_gc_references_c H5_FC_FUNC_(h5pset_gc_references_c, H5PSET_GC_REFERENCES_C) +#define nh5pget_gc_references_c H5_FC_FUNC_(h5pget_gc_references_c, H5PGET_GC_REFERENCES_C) +#define nh5pset_layout_c H5_FC_FUNC_(h5pset_layout_c, H5PSET_LAYOUT_C) +#define nh5pget_layout_c H5_FC_FUNC_(h5pget_layout_c, H5PGET_LAYOUT_C) +#define nh5pset_filter_c H5_FC_FUNC_(h5pset_filter_c, H5PSET_FILTER_C) +#define nh5premove_filter_c H5_FC_FUNC_(h5premove_filter_c, H5PREMOVE_FILTER_C) +#define nh5pmodify_filter_c H5_FC_FUNC_(h5pmodify_filter_c, H5PMODIFY_FILTER_C) +#define nh5pget_nfilters_c H5_FC_FUNC_(h5pget_nfilters_c, H5PGET_NFILTERS_C) +#define nh5pget_filter_c H5_FC_FUNC_(h5pget_filter_c, H5PGET_FILTER_C) +#define nh5pget_filter_by_id_c H5_FC_FUNC_(h5pget_filter_by_id_c, H5PGET_FILTER_BY_ID_C) +#define nh5pset_external_c H5_FC_FUNC_(h5pset_external_c, H5PSET_EXTERNAL_C) +#define nh5pget_external_count_c H5_FC_FUNC_(h5pget_external_count_c, H5PGET_EXTERNAL_COUNT_C) +#define nh5pget_external_c H5_FC_FUNC_(h5pget_external_c, H5PGET_EXTERNAL_C) +#define nh5pget_btree_ratios_c H5_FC_FUNC_(h5pget_btree_ratios_c, H5PGET_BTREE_RATIOS_C) +#define nh5pset_btree_ratios_c H5_FC_FUNC_(h5pset_btree_ratios_c, H5PSET_BTREE_RATIOS_C) +#define nh5pset_fapl_mpio_c H5_FC_FUNC_(h5pset_fapl_mpio_c, H5PSET_FAPL_MPIO_C) +#define nh5pget_fapl_mpio_c H5_FC_FUNC_(h5pget_fapl_mpio_c, H5PGET_FAPL_MPIO_C) +#define nh5pset_fapl_mpiposix_c H5_FC_FUNC_(h5pset_fapl_mpiposix_c, H5PSET_FAPL_MPIPOSIX_C) +#define nh5pget_fapl_mpiposix_c H5_FC_FUNC_(h5pget_fapl_mpiposix_c, H5PGET_FAPL_MPIPOSIX_C) +#define nh5pset_dxpl_mpio_c H5_FC_FUNC_(h5pset_dxpl_mpio_c, H5PSET_DXPL_MPIO_C) +#define nh5pget_dxpl_mpio_c H5_FC_FUNC_(h5pget_dxpl_mpio_c, H5PGET_DXPL_MPIO_C) +#define nh5pget_fclose_degree_c H5_FC_FUNC_(h5pget_fclose_degree_c, H5PGET_FCLOSE_DEGREE_C) +#define nh5pset_fclose_degree_c H5_FC_FUNC_(h5pset_fclose_degree_c, H5PSET_FCLOSE_DEGREE_C) +#define nh5pset_buffer_c H5_FC_FUNC_(h5pset_buffer_c, H5PSET_BUFFER_C) +#define nh5pget_buffer_c H5_FC_FUNC_(h5pget_buffer_c, H5PGET_BUFFER_C) +#define nh5pfill_value_defined_c H5_FC_FUNC_(h5pfill_value_defined_c, H5PFILL_VALUE_DEFINED_C) +#define nh5pset_alloc_time_c H5_FC_FUNC_(h5pset_alloc_time_c, H5PSET_ALLOC_TIME_C) +#define nh5pget_alloc_time_c H5_FC_FUNC_(h5pget_alloc_time_c, H5PGET_ALLOC_TIME_C) +#define nh5pset_fill_time_c H5_FC_FUNC_(h5pset_fill_time_c, H5PSET_FILL_TIME_C) +#define nh5pget_fill_time_c H5_FC_FUNC_(h5pget_fill_time_c, H5PGET_FILL_TIME_C) +#define nh5pset_meta_block_size_c H5_FC_FUNC_(h5pset_meta_block_size_c, H5PSET_META_BLOCK_SIZE_C) +#define nh5pget_meta_block_size_c H5_FC_FUNC_(h5pget_meta_block_size_c, H5PGET_META_BLOCK_SIZE_C) +#define nh5pset_sieve_buf_size_c H5_FC_FUNC_(h5pset_sieve_buf_size_c, H5PSET_SIEVE_BUF_SIZE_C) +#define nh5pget_sieve_buf_size_c H5_FC_FUNC_(h5pget_sieve_buf_size_c, H5PGET_SIEVE_BUF_SIZE_C) +#define nh5pset_hyper_vector_size_c H5_FC_FUNC_(h5pset_hyper_vector_size_c, H5PSET_HYPER_VECTOR_SIZE_C) +#define nh5pget_hyper_vector_size_c H5_FC_FUNC_(h5pget_hyper_vector_size_c, H5PGET_HYPER_VECTOR_SIZE_C) +#define nh5pset_small_data_block_size_c H5_FC_FUNC_(h5pset_small_data_block_size_c, H5PSET_SMALL_DATA_BLOCK_SIZE_C) +#define nh5pget_small_data_block_size_c H5_FC_FUNC_(h5pget_small_data_block_size_c, H5PGET_SMALL_DATA_BLOCK_SIZE_C) +#define nh5pcreate_class_c H5_FC_FUNC_(h5pcreate_class_c, H5PCREATE_CLASS_C) +#define nh5pregister_c H5_FC_FUNC_(h5pregister_c, H5PREGISTER_C) +#define nh5pregister_integer_c H5_FC_FUNC_(h5pregister_integer_c, H5PREGISTER_INTEGER_C) +#define nh5pregister_real_c H5_FC_FUNC_(h5pregister_real_c, H5PREGISTER_REAL_C) +#define nh5pregister_double_c H5_FC_FUNC_(h5pregister_double_c, H5PREGISTER_DOUBLE_C) +#define nh5pregisterc_c H5_FC_FUNC_(h5pregisterc_c, H5PREGISTERC_C) +#define nh5pinsert_c H5_FC_FUNC_(h5pinsert_c, H5PINSERT_C) +#define nh5pinsert_integer_c H5_FC_FUNC_(h5pinsert_integer_c, H5PINSERT_INTEGER_C) +#define nh5pinsert_real_c H5_FC_FUNC_(h5pinsert_real_c, H5PINSERT_REAL_C) +#define nh5pinsert_double_c H5_FC_FUNC_(h5pinsert_double_c, H5PINSERT_DOUBLE_C) +#define nh5pinsertc_c H5_FC_FUNC_(h5pinsertc_c, H5PINSERTC_C) +#define nh5pset_c H5_FC_FUNC_(h5pset_c, H5PSET_C) +#define nh5pset_integer_c H5_FC_FUNC_(h5pset_integer_c, H5PSET_INTEGER_C) +#define nh5pset_real_c H5_FC_FUNC_(h5pset_real_c, H5PSET_REAL_C) +#define nh5pset_double_c H5_FC_FUNC_(h5pset_double_c, H5PSET_DOUBLE_C) +#define nh5psetc_c H5_FC_FUNC_(h5psetc_c, H5PSETC_C) +#define nh5pget_c H5_FC_FUNC_(h5pget_c, H5PGET_C) +#define nh5pget_integer_c H5_FC_FUNC_(h5pget_integer_c, H5PGET_INTEGER_C) +#define nh5pget_real_c H5_FC_FUNC_(h5pget_real_c, H5PGET_REAL_C) +#define nh5pget_double_c H5_FC_FUNC_(h5pget_double_c, H5PGET_DOUBLE_C) +#define nh5pgetc_c H5_FC_FUNC_(h5pgetc_c, H5PGETC_C) +#define nh5pexist_c H5_FC_FUNC_(h5pexist_c, H5PEXIST_C) +#define nh5pget_size_c H5_FC_FUNC_(h5pget_size_c, H5PGET_SIZE_C) +#define nh5pget_nprops_c H5_FC_FUNC_(h5pget_nprops_c, H5PGET_NPROPS_C) +#define nh5pget_class_parent_c H5_FC_FUNC_(h5pget_class_parent_c, H5PGET_CLASS_PARENT_C) +#define nh5pisa_class_c H5_FC_FUNC_(h5pisa_class_c, H5PISA_CLASS_C) +#define nh5pcopy_prop_c H5_FC_FUNC_(h5pcopy_prop_c, H5PCOPY_PROP_C) +#define nh5premove_c H5_FC_FUNC_(h5premove_c, H5PREMOVE_C) +#define nh5punregister_c H5_FC_FUNC_(h5punregister_c, H5PUNREGISTER_C) +#define nh5pclose_class_c H5_FC_FUNC_(h5pclose_class_c, H5PCLOSE_CLASS_C) +#define nh5pget_class_name_c H5_FC_FUNC_(h5pget_class_name_c, H5PGET_CLASS_NAME_C) +#define nh5pset_shuffle_c H5_FC_FUNC_(h5pset_shuffle_c, H5PSET_SHUFFLE_C) +#define nh5pset_fletcher32_c H5_FC_FUNC_(h5pset_fletcher32_c, H5PSET_FLETCHER32_C) +#define nh5pset_edc_check_c H5_FC_FUNC_(h5pset_edc_check_c, H5PSET_EDC_CHECK_C) +#define nh5pget_edc_check_c H5_FC_FUNC_(h5pget_edc_check_c, H5PGET_EDC_CHECK_C) +#define nh5pset_family_offset_c H5_FC_FUNC_(h5pset_family_offset_c, H5PSET_FAMILY_OFFSET_C) +#define nh5pget_fapl_multi_c H5_FC_FUNC_(h5pget_fapl_multi_c, H5PGET_FAPL_MULTI_C) +#define nh5pset_fapl_multi_c H5_FC_FUNC_(h5pset_fapl_multi_c, H5PSET_FAPL_MULTI_C) +#define nh5pset_fapl_multi_sc H5_FC_FUNC_(h5pset_fapl_multi_sc, H5PSET_FAPL_MULTI_SC) +#define nh5pset_szip_c H5_FC_FUNC_(h5pset_szip_c, H5PSET_SZIP_C) +#define nh5pall_filters_avail_c H5_FC_FUNC_(h5pall_filters_avail_c, H5PALL_FILTERS_AVAIL_C) +#define nh5pget_attr_phase_change_c H5_FC_FUNC_(h5pget_attr_phase_change_c, H5PGET_ATTR_PHASE_CHANGE_C) +#define nh5pset_attr_creation_order_c H5_FC_FUNC_(h5pset_attr_creation_order_c, H5PSET_ATTR_CREATION_ORDER_C) +#define nh5pset_shared_mesg_nindexes_c H5_FC_FUNC_(h5pset_shared_mesg_nindexes_c, H5PSET_SHARED_MESG_NINDEXES_C) +#define nh5pset_shared_mesg_index_c H5_FC_FUNC_(h5pset_shared_mesg_index_c,H5PSET_SHARED_MESG_INDEX_C) +#define nh5pget_attr_creation_order_c H5_FC_FUNC_(h5pget_attr_creation_order_c,H5PGET_ATTR_CREATION_ORDER_C) +#define nh5pset_libver_bounds_c H5_FC_FUNC_(h5pset_libver_bounds_c,H5PSET_LIBVER_BOUNDS_C) +#define nh5pset_link_creation_order_c H5_FC_FUNC_(h5pset_link_creation_order_c, H5PSET_LINK_CREATION_ORDER_C) +#define nh5pget_link_phase_change_c H5_FC_FUNC_(h5pget_link_phase_change_c, H5PGET_LINK_PHASE_CHANGE_C) +#define nh5pget_obj_track_times_c H5_FC_FUNC_(h5pget_obj_track_times_c, H5PGET_OBJ_TRACK_TIMES_C) +#define nh5pset_obj_track_times_c H5_FC_FUNC_(h5pset_obj_track_times_c, H5PSET_OBJ_TRACK_TIMES_C) +#define nh5pset_create_inter_group_c H5_FC_FUNC_(h5pset_create_inter_group_c,H5PSET_CREATE_INTER_GROUP_C) +#define nh5pget_create_inter_group_c H5_FC_FUNC_(h5pget_create_inter_group_c,H5PGET_CREATE_INTER_GROUP_C) +#define nh5pget_link_creation_order_c H5_FC_FUNC_(h5pget_link_creation_order_c,H5PGET_LINK_CREATION_ORDER_C) +#define nh5pset_char_encoding_c H5_FC_FUNC_(h5pset_char_encoding_c, H5PSET_CHAR_ENCODING_C) +#define nh5pget_char_encoding_c H5_FC_FUNC_(h5pget_char_encoding_c, H5PGET_CHAR_ENCODING_C) +#define nh5pset_copy_object_c H5_FC_FUNC_(h5pset_copy_object_c, H5PSET_COPY_OBJECT_C) +#define nh5pget_copy_object_c H5_FC_FUNC_(h5pget_copy_object_c, H5PGET_COPY_OBJECT_C) +#define nh5pget_data_transform_c H5_FC_FUNC_(h5pget_data_transform_c, H5PGET_DATA_TRANSFORM_C) +#define nh5pset_data_transform_c H5_FC_FUNC_(h5pset_data_transform_c, H5PSET_DATA_TRANSFORM_C) +#define nh5pget_local_heap_size_hint_c H5_FC_FUNC_(h5pget_local_heap_size_hint_c, H5PGET_LOCAL_HEAP_SIZE_HINT_C) +#define nh5pget_est_link_info_c H5_FC_FUNC_(h5pget_est_link_info_c,H5PGET_EST_LINK_INFO_C) +#define nh5pset_est_link_info_c H5_FC_FUNC_(h5pset_est_link_info_c,H5PSET_EST_LINK_INFO_C) +#define nh5pset_local_heap_size_hint_c H5_FC_FUNC_(h5pset_local_heap_size_hint_c, H5PSET_LOCAL_HEAP_SIZE_HINT_C) +#define nh5pset_link_phase_change_c H5_FC_FUNC_(h5pset_link_phase_change_c, H5PSET_LINK_PHASE_CHANGE_C) +#define nh5pset_fapl_direct_c H5_FC_FUNC_(h5pset_fapl_direct_c, H5PSET_FAPL_DIRECT_C) +#define nh5pget_fapl_direct_c H5_FC_FUNC_(h5pget_fapl_direct_c, H5PGET_FAPL_DIRECT_C) +#define nh5pset_attr_phase_change_c H5_FC_FUNC_(h5pset_attr_phase_change_c, H5PSET_ATTR_PHASE_CHANGE_C) +#define nh5pset_nbit_c H5_FC_FUNC_(h5pset_nbit_c, H5PSET_NBIT_C) +#define nh5pset_scaleoffset_c H5_FC_FUNC_(h5pset_scaleoffset_c, H5PSET_SCALEOFFSET_C) +#define nh5pset_nlinks_c H5_FC_FUNC_(h5pset_nlinks_c, H5PSET_NLINKS_C) +#define nh5pget_nlinks_c H5_FC_FUNC_(h5pget_nlinks_c, H5PGET_NLINKS_C) +#define nh5pset_chunk_cache_c H5_FC_FUNC_(h5pset_chunk_cache_c, H5PSET_CHUNK_CACHE_C) +#define nh5pget_chunk_cache_c H5_FC_FUNC_(h5pget_chunk_cache_c, H5PGET_CHUNK_CACHE_C) +#define nh5pget_mpio_actual_io_mode_c H5_FC_FUNC_(h5pget_mpio_actual_io_mode_c, H5PGET_MPIO_ACTUAL_IO_MODE_C) + +H5_FCDLL int_f nh5pcreate_c ( hid_t_f *cls, hid_t_f *prp_id ); +H5_FCDLL int_f nh5pclose_c ( hid_t_f *prp_id ); +H5_FCDLL int_f nh5pcopy_c ( hid_t_f *prp_id , hid_t_f *new_prp_id); +H5_FCDLL int_f nh5pequal_c ( hid_t_f *plist1_id , hid_t_f *plist2_id, int_f *c_flag); +H5_FCDLL int_f nh5pget_class_c ( hid_t_f *prp_id , int_f *classtype); +H5_FCDLL int_f nh5pset_deflate_c ( hid_t_f *prp_id , int_f *level); +H5_FCDLL int_f nh5pset_chunk_c ( hid_t_f *prp_id, int_f *rank, hsize_t_f *dims ); +H5_FCDLL int_f nh5pget_chunk_c ( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims ); +H5_FCDLL int_f nh5pset_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue); +H5_FCDLL int_f nh5pset_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f nh5pset_fill_value_integer_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f nh5pset_fill_value_real_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f nh5pset_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f nh5pget_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue); +H5_FCDLL int_f nh5pget_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f nh5pget_fill_value_integer_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f nh5pget_fill_value_real_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f nh5pget_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue); +H5_FCDLL int_f nh5pset_preserve_c ( hid_t_f *prp_id , int_f *flag); +H5_FCDLL int_f nh5pget_preserve_c ( hid_t_f *prp_id , int_f *flag); +H5_FCDLL int_f nh5pget_version_c (hid_t_f *prp_id, int_f * boot,int_f * freelist, int_f * stab, int_f *shhdr); +H5_FCDLL int_f nh5pset_userblock_c (hid_t_f *prp_id, hsize_t_f * size); +H5_FCDLL int_f nh5pget_userblock_c (hid_t_f *prp_id, hsize_t_f * size); +H5_FCDLL int_f nh5pget_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size); +H5_FCDLL int_f nh5pset_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size); +H5_FCDLL int_f nh5pset_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk); +H5_FCDLL int_f nh5pget_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk); +H5_FCDLL int_f nh5pset_istore_k_c (hid_t_f *prp_id, int_f* ik); +H5_FCDLL int_f nh5pget_istore_k_c (hid_t_f *prp_id, int_f* ik); +H5_FCDLL int_f nh5pget_driver_c (hid_t_f *prp_id, hid_t_f*driver); +H5_FCDLL int_f nh5pset_fapl_stdio_c (hid_t_f *prp_id); +H5_FCDLL int_f nh5pget_fapl_stdio_c (hid_t_f *prp_id, int_f* io); +H5_FCDLL int_f nh5pset_fapl_sec2_c (hid_t_f *prp_id); +H5_FCDLL int_f nh5pget_fapl_sec2_c (hid_t_f *prp_id, int_f* sec2); +H5_FCDLL int_f nh5pset_alignment_c(hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment); +H5_FCDLL int_f nh5pget_alignment_c(hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment); +H5_FCDLL int_f nh5pget_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag); +H5_FCDLL int_f nh5pset_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag); +H5_FCDLL int_f nh5pset_fapl_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist ); +H5_FCDLL int_f nh5pget_fapl_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist ); +H5_FCDLL int_f nh5pset_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, size_t_f* rdcc_nelmts, size_t_f* rdcc_nbytes, real_f* rdcc_w0); +H5_FCDLL int_f nh5pget_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, size_t_f* rdcc_nelmts, size_t_f* rdcc_nbytes, real_f* rdcc_w0); +H5_FCDLL int_f nh5pget_fapl_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_f* meta_plist, size_t_f* raw_ext_size, _fcd raw_ext, hid_t_f * raw_plist); +H5_FCDLL int_f nh5pset_fapl_split_c(hid_t_f *prp_id, int_f* meta_len, _fcd meta_ext, hid_t_f* meta_plist, int_f* raw_len, _fcd raw_ext, hid_t_f * raw_plist); +H5_FCDLL int_f nh5pset_gc_references_c(hid_t_f *prp_id, int_f* gc_references); +H5_FCDLL int_f nh5pget_gc_references_c(hid_t_f *prp_id, int_f* gc_references); +H5_FCDLL int_f nh5pset_layout_c (hid_t_f *prp_id, int_f* layout); +H5_FCDLL int_f nh5pget_layout_c (hid_t_f *prp_id, int_f* layout); +H5_FCDLL int_f nh5pset_filter_c (hid_t_f *prp_id, int_f* filter, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values ); +H5_FCDLL int_f nh5premove_filter_c (hid_t_f *prp_id, int_f* filter); +H5_FCDLL int_f nh5pmodify_filter_c (hid_t_f *prp_id, int_f* filter, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values ); +H5_FCDLL int_f nh5pget_nfilters_c (hid_t_f *prp_id, int_f* nfilters); +H5_FCDLL int_f nh5pget_filter_c(hid_t_f *prp_id, int_f* filter_number, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values, size_t_f *namelen, _fcd name, int_f* filter_id); +H5_FCDLL int_f nh5pget_filter_by_id_c(hid_t_f *prp_id, int_f* filter_id, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values, size_t_f *namelen, _fcd name); +H5_FCDLL int_f nh5pset_external_c (hid_t_f *prp_id, _fcd name, int_f* namelen, off_t_f* offset, hsize_t_f*bytes); +H5_FCDLL int_f nh5pget_external_count_c (hid_t_f *prp_id, int_f* count); +H5_FCDLL int_f nh5pget_external_c(hid_t_f *prp_id, int_f *idx, size_t_f* name_size, _fcd name, off_t_f* offset, hsize_t_f*bytes); +H5_FCDLL int_f nh5pget_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* right); +H5_FCDLL int_f nh5pset_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* right); +H5_FCDLL int_f nh5pget_fapl_mpio_c(hid_t_f *prp_id, int_f* comm, int_f* info); +H5_FCDLL int_f nh5pset_fapl_mpio_c(hid_t_f *prp_id, int_f* comm, int_f* info); +H5_FCDLL int_f nh5pget_fapl_mpiposix_c(hid_t_f *prp_id, int_f* comm, int_f* flag); +H5_FCDLL int_f nh5pset_fapl_mpiposix_c(hid_t_f *prp_id, int_f* comm, int_f* flag); +H5_FCDLL int_f nh5pget_dxpl_mpio_c(hid_t_f *prp_id, int_f* data_xfer_mode); +H5_FCDLL int_f nh5pset_dxpl_mpio_c(hid_t_f *prp_id, int_f* data_xfer_mode); +H5_FCDLL int_f nh5pset_fclose_degree_c(hid_t_f *fapl, int_f *degree); +H5_FCDLL int_f nh5pget_fclose_degree_c(hid_t_f *fapl, int_f *degree); +H5_FCDLL int_f nh5pget_buffer_c(hid_t_f *plist, hsize_t_f *size); +H5_FCDLL int_f nh5pset_buffer_c(hid_t_f *plist, hsize_t_f *size); +H5_FCDLL int_f nh5pset_alloc_time_c(hid_t_f *plist, int_f *flag); +H5_FCDLL int_f nh5pget_alloc_time_c(hid_t_f *plist, int_f *flag); +H5_FCDLL int_f nh5pset_fill_time_c(hid_t_f *plist, int_f *flag); +H5_FCDLL int_f nh5pget_fill_time_c(hid_t_f *plist, int_f *flag); +H5_FCDLL int_f nh5pset_meta_block_size_c(hid_t_f *plist, hsize_t_f *size); +H5_FCDLL int_f nh5pget_meta_block_size_c(hid_t_f *plist, hsize_t_f *size); +H5_FCDLL int_f nh5pset_sieve_buf_size_c(hid_t_f *plist, size_t_f *size); +H5_FCDLL int_f nh5pget_sieve_buf_size_c(hid_t_f *plist, size_t_f *size); +H5_FCDLL int_f nh5pset_small_data_block_size_c(hid_t_f *plist, hsize_t_f *size); +H5_FCDLL int_f nh5pget_small_data_block_size_c(hid_t_f *plist, hsize_t_f *size); +H5_FCDLL int_f nh5pset_hyper_vector_size_c(hid_t_f *plist, size_t_f *size); +H5_FCDLL int_f nh5pget_hyper_vector_size_c(hid_t_f *plist, size_t_f *size); +H5_FCDLL int_f nh5pcreate_class_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls, + H5P_cls_create_func_t create, void *create_data, + H5P_cls_copy_func_t copy, void *copy_data, + H5P_cls_close_func_t close, void *close_data); +H5_FCDLL int_f nh5pregister_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value); +H5_FCDLL int_f nh5pregister_integer_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value); +H5_FCDLL int_f nh5pregister_real_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value); +H5_FCDLL int_f nh5pregister_double_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value); +H5_FCDLL int_f nh5pregisterc_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, _fcd value, int_f *value_len); +H5_FCDLL int_f nh5pinsert_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); +H5_FCDLL int_f nh5pinsert_integer_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); +H5_FCDLL int_f nh5pinsert_real_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); +H5_FCDLL int_f nh5pinsert_double_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void *value); +H5_FCDLL int_f nh5pinsertc_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, _fcd value, int_f *value_len); +H5_FCDLL int_f nh5pset_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f nh5pset_integer_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f nh5pset_real_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f nh5pset_double_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f nh5psetc_c(hid_t_f *prp_id, _fcd name, int_f *name_len, _fcd value, int_f *value_len); +H5_FCDLL int_f nh5pget_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f nh5pget_double_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f nh5pget_integer_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f nh5pget_real_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value); +H5_FCDLL int_f nh5pgetc_c(hid_t_f *prp_id, _fcd name, int_f *name_len, _fcd value, int_f *value_len); +H5_FCDLL int_f nh5pexist_c(hid_t_f *prp_id, _fcd name, int_f *name_len); +H5_FCDLL int_f nh5pget_size_c(hid_t_f *prp_id, _fcd name, int_f *name_len, size_t_f *size); +H5_FCDLL int_f nh5pget_nprops_c(hid_t_f *prp_id, size_t_f *nprops); +H5_FCDLL int_f nh5pget_class_parent_c(hid_t_f *prp_id, hid_t_f *parent_id); +H5_FCDLL int_f nh5pisa_class_c(hid_t_f *plist, hid_t_f *pclass); +H5_FCDLL int_f nh5pcopy_prop_c(hid_t_f *dst_id, hid_t_f *src_id, _fcd name, int_f *name_len); +H5_FCDLL int_f nh5premove_c(hid_t_f *plid, _fcd name, int_f *name_len); +H5_FCDLL int_f nh5punregister_c(hid_t_f *cls, _fcd name, int_f *name_len); +H5_FCDLL int_f nh5pclose_class_c(hid_t_f * cls); +H5_FCDLL int_f nh5pget_class_name_c(hid_t_f *prp_id, _fcd name, int_f *name_len); +H5_FCDLL int_f nh5pset_shuffle_c ( hid_t_f *prp_id); +H5_FCDLL int_f nh5pset_fletcher32_c ( hid_t_f *prp_id ); +H5_FCDLL int_f nh5pset_edc_check_c ( hid_t_f *prp_id, int_f *flag ); +H5_FCDLL int_f nh5pget_edc_check_c ( hid_t_f *prp_id, int_f *flag ); +H5_FCDLL int_f nh5pset_family_offset_c ( hid_t_f *prp_id , hsize_t_f *offset); +H5_FCDLL int_f nh5pget_fapl_multi_c ( hid_t_f *prp_id , int_f *mem_map, hid_t_f *memb_fapl, _fcd memb_name, int_f *len, int_f *lenmax, real_f *memb_addr, int_f *flag, int_f *maxlen_out); +H5_FCDLL int_f nh5pset_fapl_multi_c ( hid_t_f *prp_id , int_f *mem_map, hid_t_f *memb_fapl, _fcd memb_name, int_f *len, int_f *lenmax, real_f *memb_addr, int_f *flag); +H5_FCDLL int_f nh5pset_fapl_multi_sc ( hid_t_f *prp_id , int_f *flag); +H5_FCDLL int_f nh5pset_szip_c ( hid_t_f *prp_id , int_f *options_mask, int_f *pixels_per_block); +H5_FCDLL int_f nh5pall_filters_avail_c ( hid_t_f *prp_id , int_f *status); +H5_FCDLL int_f nh5pfill_value_defined_c ( hid_t_f *prp_id , int_f *flag); +H5_FCDLL int_f nh5pget_attr_phase_change_c (hid_t_f *ocpl_id, int_f *max_compact, int_f *min_dense ); +H5_FCDLL int_f nh5pset_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags ); +H5_FCDLL int_f nh5pset_shared_mesg_nindexes_c(hid_t_f *plist_id, int_f *nindexes ); +H5_FCDLL int_f nh5pset_shared_mesg_index_c(hid_t_f *fcpl_id, int_f *index_num, int_f *mesg_type_flags, int_f *min_mesg_size); +H5_FCDLL int_f nh5pget_attr_creation_order_c(hid_t_f *ocpl_id, int_f *crt_order_flags); +H5_FCDLL int_f nh5pset_libver_bounds_c(hid_t_f *fapl_id, int_f *low, int_f *high); +H5_FCDLL int_f nh5pset_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags); +H5_FCDLL int_f nh5pget_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_dense ); +H5_FCDLL int_f nh5pget_obj_track_times_c(hid_t_f *plist_id, int_f *flag); +H5_FCDLL int_f nh5pset_obj_track_times_c(hid_t_f *plist_id, int_f *flag); +H5_FCDLL int_f nh5pset_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group); +H5_FCDLL int_f nh5pget_create_inter_group_c(hid_t_f *lcpl_id, int_f *crt_intermed_group); +H5_FCDLL int_f nh5pget_link_creation_order_c(hid_t_f *gcpl_id, int_f *crt_order_flags); +H5_FCDLL int_f nh5pset_char_encoding_c(hid_t_f *plist_id, int_f *encoding); +H5_FCDLL int_f nh5pget_char_encoding_c(hid_t_f *plist_id, int_f *encoding); +H5_FCDLL int_f nh5pset_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options); +H5_FCDLL int_f nh5pget_copy_object_c(hid_t_f *ocp_plist_id, int_f *copy_options); +H5_FCDLL int_f nh5pget_data_transform_c(hid_t_f *plist_id, _fcd expression, int_f *expression_len, size_t_f *size); +H5_FCDLL int_f nh5pset_data_transform_c(hid_t_f *plist_id, _fcd expression, int_f *expression_len); +H5_FCDLL int_f nh5pget_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint); +H5_FCDLL int_f nh5pget_est_link_info_c(hid_t_f *gcpl_id, int_f *est_num_entries, int_f *est_name_len); +H5_FCDLL int_f nh5pset_local_heap_size_hint_c(hid_t_f *gcpl_id, size_t_f *size_hint); +H5_FCDLL int_f nh5pset_est_link_info_c(hid_t_f *gcpl_id, int_f *est_num_entries, int_f *est_name_len); +H5_FCDLL int_f nh5pset_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_dense ); +H5_FCDLL int_f nh5pset_fapl_direct_c(hid_t_f *fapl_id, size_t_f *alignment, size_t_f *block_size, size_t_f *cbuf_size ); +H5_FCDLL int_f nh5pget_fapl_direct_c(hid_t_f *fapl_id, size_t_f *alignment, size_t_f *block_size, size_t_f *cbuf_size ); +H5_FCDLL int_f nh5pset_attr_phase_change_c (hid_t_f *ocpl_id, int_f *max_compact, int_f *min_dense ); +H5_FCDLL int_f nh5pset_nbit_c(hid_t_f *plist_id ); +H5_FCDLL int_f nh5pset_scaleoffset_c(hid_t_f *plist_id, int_f *scale_type, int_f *scale_factor ); +H5_FCDLL int_f nh5pset_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks); +H5_FCDLL int_f nh5pget_nlinks_c(hid_t_f *lapl_id, size_t_f *nlinks); +H5_FCDLL int_f nh5pset_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nbytes, real_f *rdcc_w0); +H5_FCDLL int_f nh5pget_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nbytes, real_f *rdcc_w0); +H5_FCDLL int_f nh5pget_mpio_actual_io_mode_c(hid_t_f *dxpl_id, int_f *actual_io_mode); +/* + * Functions frome H5Rf.c + */ +#define nh5rcreate_object_c H5_FC_FUNC_(h5rcreate_object_c, H5RCREATE_OBJECT_C) +#define nh5rcreate_region_c H5_FC_FUNC_(h5rcreate_region_c, H5RCREATE_REGION_C) +#define nh5rcreate_ptr_c H5_FC_FUNC_(h5rcreate_ptr_c, H5RCREATE_PTR_C) +#define nh5rdereference_region_c H5_FC_FUNC_(h5rdereference_region_c, H5RDEREFERENCE_REGION_C) +#define nh5rdereference_object_c H5_FC_FUNC_(h5rdereference_object_c, H5RDEREFERENCE_OBJECT_C) +#define nh5rdereference_ptr_c H5_FC_FUNC_(h5rdereference_ptr_c, H5RDEREFERENCE_PTR_C) +#define nh5rget_region_region_c H5_FC_FUNC_(h5rget_region_region_c, H5RGET_REGION_REGION_C) +#define nh5rget_region_ptr_c H5_FC_FUNC_(h5rget_region_ptr_c, H5RGET_REGION_PTR_C) +#define nh5rget_object_type_obj_c H5_FC_FUNC_(h5rget_object_type_obj_c, H5RGET_OBJECT_TYPE_OBJ_C) +#define nh5rget_name_object_c H5_FC_FUNC_(h5rget_name_object_c, H5RGET_NAME_OBJECT_C) +#define nh5rget_name_region_c H5_FC_FUNC_(h5rget_name_region_c, H5RGET_NAME_REGION_C) +#define nh5rget_name_ptr_c H5_FC_FUNC_(h5rget_name_ptr_c, H5RGET_NAME_PTR_C) +#define nh5rget_obj_type_c H5_FC_FUNC_(h5rget_obj_type_c, H5RGET_OBJ_TYPE_C) + + +H5_FCDLL int_f nh5rcreate_object_c (haddr_t_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen); +H5_FCDLL int_f nh5rcreate_region_c (int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id); +H5_FCDLL int_f nh5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *ref_type, hid_t_f *space_id); +H5_FCDLL int_f nh5rdereference_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id); +H5_FCDLL int_f nh5rdereference_object_c (hid_t_f *dset_id, haddr_t_f *ref, hid_t_f *obj_id); +H5_FCDLL int_f nh5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_obj_id); +H5_FCDLL int_f nh5rget_region_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *space_id); +H5_FCDLL int_f nh5rget_region_ptr_c(hid_t_f *dset_id, void *ref, hid_t_f *space_id); +H5_FCDLL int_f nh5rget_object_type_obj_c (hid_t_f *dset_id, haddr_t_f *ref, int_f *obj_type); +H5_FCDLL int_f nh5rget_name_object_c (hid_t_f *loc_id, haddr_t_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default); +H5_FCDLL int_f nh5rget_name_region_c (hid_t_f *loc_id, int_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default); +H5_FCDLL int_f nh5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size_t_f *name_len, size_t_f *size_default); +H5_FCDLL int_f nh5rget_obj_type_c (hid_t_f *loc_id, int_f *ref_type, void *ref, int_f *obj_type); +/* + * Functions from H5If.c + */ +#define nh5iget_type_c H5_FC_FUNC_(h5iget_type_c, H5IGET_TYPE_C) +#define nh5iget_name_c H5_FC_FUNC_(h5iget_name_c, H5IGET_NAME_C) +#define nh5iinc_ref_c H5_FC_FUNC_(h5iinc_ref_c, H5IINC_REF_C) +#define nh5idec_ref_c H5_FC_FUNC_(h5idec_ref_c, H5IDEC_REF_C) +#define nh5iget_ref_c H5_FC_FUNC_(h5iget_ref_c, H5IGET_REF_C) +#define nh5iget_file_id_c H5_FC_FUNC_(h5iget_file_id_c, H5IGET_FILE_ID_C) +#define nh5iis_valid_c H5_FC_FUNC_(h5iis_valid_c, H5IIS_VALID_C) + +H5_FCDLL int_f nh5iget_type_c(hid_t_f *obj_id, int_f *type); +H5_FCDLL int_f nh5iget_name_c(hid_t_f *obj_id, _fcd buf, size_t_f *buf_size, size_t_f *name_size); +H5_FCDLL int_f nh5iinc_ref_c(hid_t_f *obj_id, int_f *ref_count); +H5_FCDLL int_f nh5idec_ref_c(hid_t_f *obj_id, int_f *ref_count); +H5_FCDLL int_f nh5iget_ref_c(hid_t_f *obj_id, int_f *ref_count); +H5_FCDLL int_f nh5iget_file_id_c(hid_t_f *obj_id, hid_t_f *file_id); +H5_FCDLL int_f nh5iis_valid_c(hid_t_f *obj_id, int_f *c_valid); + +/* + * Functions from H5Ef.c + */ +#define nh5eclear_c H5_FC_FUNC_(h5eclear_c, H5ECLEAR_C) +#define nh5eprint_c1 H5_FC_FUNC_(h5eprint_c1, H5EPRINT_C1) +#define nh5eprint_c2 H5_FC_FUNC_(h5eprint_c2, H5EPRINT_C2) +#define nh5eget_major_c H5_FC_FUNC_(h5eget_major_c, H5EGET_MAJOR_C) +#define nh5eget_minor_c H5_FC_FUNC_(h5eget_minor_c, H5EGET_MINOR_C) +#define nh5eset_auto_c H5_FC_FUNC_(h5eset_auto_c, H5ESET_AUTO_C) +#define nh5eset_auto2_c H5_FC_FUNC_(h5eset_auto2_c, H5ESET_AUTO2_C) +#define nprocess_buffer H5_FC_FUNC_(process_buffer, PROCESS_BUFFER) + + +H5_FCDLL int_f nh5eclear_c(hid_t_f *estack_id); +H5_FCDLL int_f nh5eprint_c1(_fcd name, int_f* namelen); +H5_FCDLL int_f nh5eprint_c2(void); +H5_FCDLL int_f nh5eget_major_c(int_f* error_no, _fcd name, size_t_f* namelen); +H5_FCDLL int_f nh5eget_minor_c(int_f* error_no, _fcd name, size_t_f* namelen); +H5_FCDLL int_f nh5eset_auto_c(int_f* printflag); +H5_FCDLL int_f nh5eset_auto2_c(int_f* printflag, hid_t_f *estack_id, H5E_auto2_t func, void *client_data); +H5_FCDLL int_f nprocess_buffer(hid_t_f *estack_id,void **buffer); + +/* + * Functions from H5f.c + */ +#define nh5open_c H5_FC_FUNC_(h5open_c, H5OPEN_C) +#define nh5close_c H5_FC_FUNC_(h5close_c, H5CLOSE_C) +#define nh5init_types_c H5_FC_FUNC_(h5init_types_c, H5INIT_TYPES_C) +#define nh5close_types_c H5_FC_FUNC_(h5close_types_c, H5CLOSE_TYPES_C) +#define nh5init_flags_c H5_FC_FUNC_(h5init_flags_c, H5INIT_FLAGS_C) +#define nh5init1_flags_c H5_FC_FUNC_(h5init1_flags_c, H5INIT1_FLAGS_C) +#define nh5get_libversion_c H5_FC_FUNC_(h5get_libversion_c, H5GET_LIBVERSION_C) +#define nh5check_version_c H5_FC_FUNC_(h5check_version_c, H5CHECK_VERSION_C) +#define nh5garbage_collect_c H5_FC_FUNC_(h5garbage_collect_c, H5GARBAGE_COLLECT_C) +#define nh5dont_atexit_c H5_FC_FUNC_(h5dont_atexit_c, H5DONT_ATEXIT_C) + + +H5_FCDLL int_f nh5open_c(void); +H5_FCDLL int_f nh5close_c(void); +H5_FCDLL int_f nh5init_types_c(hid_t_f *types, hid_t_f * floatingtypes, hid_t_f * integertypes); +H5_FCDLL int_f nh5close_types_c(hid_t_f *types, int_f *lentypes, hid_t_f * floatingtypes, int_f * floatinglen, hid_t_f * integertypes, int_f * integerlen); +H5_FCDLL int_f nh5init_flags_c(int_f *h5d_flags, int_f *h5e_flags, hid_t_f *h5e_hid_flags, int_f *h5f_flags, + int_f *h5fd_flags, hid_t_f *h5fd_hid_flags, + int_f *h5g_flags, int_f *h5i_flags, int_f *h5l_flags, int_f *h5o_flags, + hid_t_f *h5p_flags, int_f *h5p_flags_int, int_f *h5r_flags, int_f *h5s_flags, + hsize_t_f *h5s_hsize_flags, int_f *h5t_flags, int_f *h5z_flags, int_f *h5_generic_flags); +H5_FCDLL int_f nh5init1_flags_c(int_f *h5lib_flags); +H5_FCDLL int_f nh5get_libversion_c(int_f *majnum, int_f *minnum, int_f *relnum); +H5_FCDLL int_f nh5check_version_c(int_f *majnum, int_f *minnum, int_f *relnum); +H5_FCDLL int_f nh5garbage_collect_c(void); +H5_FCDLL int_f nh5dont_atexit_c(void); + +/* + * Functions from H5Zf.c + */ +#define nh5zunregister_c H5_FC_FUNC_(h5zunregister_c, H5ZUNREGISTER_C) +#define nh5zfilter_avail_c H5_FC_FUNC_(h5zfilter_avail_c, H5ZFILTER_AVAIL_C) +#define nh5zget_filter_info_c H5_FC_FUNC_(h5zget_filter_info_c, H5ZGET_FILTER_INFO_C) + + +H5_FCDLL int_f nh5zunregister_c (int_f *filter); +H5_FCDLL int_f nh5zfilter_avail_c (int_f *filter, int_f *flag); +H5_FCDLL int_f nh5zget_filter_info_c (int_f *filter, int_f *flag); + + +/* + * Functions from H5Lf.c + */ +#define nh5lcopy_c H5_FC_FUNC_(h5lcopy_c, H5LCOPY_C) +#define nh5lcreate_external_c H5_FC_FUNC_(h5lcreate_external_c, H5LCREATE_EXTERNAL_C) +#define nh5lcreate_hard_c H5_FC_FUNC_(h5lcreate_hard_c, H5LCREATE_HARD_C) +#define nh5lcreate_soft_c H5_FC_FUNC_(h5lcreate_soft_c, H5LCREATE_SOFT_C) +#define nh5ldelete_c H5_FC_FUNC_(h5ldelete_c, H5LDELETE_C) +#define nh5ldelete_by_idx_c H5_FC_FUNC_(h5ldelete_by_idx_c, H5LDELETE_BY_IDX_C) +#define nh5lexists_c H5_FC_FUNC_(h5lexists_c, H5LEXISTS_C) +#define nh5lget_info_c H5_FC_FUNC_(h5lget_info_c, H5LGET_INFO_C) +#define nh5lget_info_by_idx_c H5_FC_FUNC_(h5lget_info_by_idx_c, H5LGET_INFO_BY_IDX_C) +#define nh5lis_registered_c H5_FC_FUNC_(h5lis_registered_c, H5LIS_REGISTERED_C) +#define nh5lmove_c H5_FC_FUNC_(h5lmove_c, H5LMOVE_C) +#define nh5lget_name_by_idx_c H5_FC_FUNC_(h5lget_name_by_idx_c, H5LGET_NAME_BY_IDX_C) +#define nh5lget_val_c H5_FC_FUNC_(h5lget_val_c, H5LGET_VAL_C) +#define nh5literate_c H5_FC_FUNC_(h5literate_c, H5LITERATE_C) +#define nh5literate_by_name_c H5_FC_FUNC_(h5literate_by_name_c, H5LITERATE_BY_NAME_C) + +H5_FCDLL int_f nh5lcopy_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id, + _fcd dest_name, size_t_f *dest_namelen, + hid_t_f *lcpl_id, hid_t_f *lapl_id); +H5_FCDLL int_f nh5lcreate_external_c(_fcd file_name, size_t_f *file_namelen, _fcd obj_name, size_t_f *obj_namelen, + hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, + hid_t_f *lcpl_id, hid_t_f *lapl_id); +H5_FCDLL int_f nh5lcreate_hard_c(hid_t_f *obj_loc_id, _fcd obj_name, size_t_f *obj_namelen, + hid_t_f *link_loc_id, + _fcd link_name, size_t_f *link_namelen, + hid_t_f *lcpl_id, hid_t_f *lapl_id ); +H5_FCDLL int_f nh5lcreate_soft_c(_fcd target_path, size_t_f *target_path_len, + hid_t_f *link_loc_id, + _fcd link_name, size_t_f *link_name_len, + hid_t_f *lcpl_id, hid_t_f *lapl_id ); +H5_FCDLL int_f nh5ldelete_c( hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id ); +H5_FCDLL int_f nh5ldelete_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, + int_f *index_field, int_f *order, hsize_t_f *n, hid_t_f *lapl_id); +H5_FCDLL int_f nh5lexists_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, int_f *link_exists); +H5_FCDLL int_f nh5lget_info_c (hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, + int_f *cset, int_f *corder, int_f *corder_valid, int_f *link_type, + haddr_t_f *address, size_t_f *val_size, + hid_t_f *lapl_id); +H5_FCDLL int_f nh5lget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, + int_f *index_field, int_f *order, hsize_t_f *n, + int_f *link_type, int_f *corder_valid, int_f *corder, int_f *cset, haddr_t_f *address, size_t_f *val_size, hid_t_f *lapl_id); +H5_FCDLL int_f nh5lis_registered_c(int_f *link_cls_id); +H5_FCDLL int_f nh5lmove_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id, + _fcd dest_name, size_t_f *dest_namelen, hid_t_f *lcpl_id, hid_t_f *lapl_id); +H5_FCDLL int_f nh5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, + int_f *index_field, int_f *order, hsize_t_f *n, + size_t_f *size, _fcd name, hid_t_f *lapl_id); +H5_FCDLL int_f nh5lget_val_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, size_t_f *size, + void *linkval_buff, hid_t_f *lapl_id) ; + +H5_FCDLL int_f nh5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data ); +H5_FCDLL int_f nh5literate_by_name_c(hid_t_f *loc_id, _fcd name, size_t_f *namelen, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data, hid_t_f *lapl_id); + + +#endif /* _H5f90proto_H */ diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5private.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5private.h index 975c6ab6b3..f828a4680d 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5private.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5private.h @@ -1,2116 +1,2116 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * 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 files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* Programmer: Robb Matzke - * Friday, October 30, 1998 - * - * Purpose: This file is included by all HDF5 library source files to - * define common things which are not defined in the HDF5 API. - * The configuration constants like H5_HAVE_UNISTD_H etc. are - * defined in H5config.h which is included by H5public.h. - * - */ - -#ifndef _H5private_H -#define _H5private_H - -#include "H5public.h" /* Include Public Definitions */ - -/* include the pthread header */ -#ifdef H5_HAVE_THREADSAFE - #ifdef H5_HAVE_WIN32_API - #ifndef H5_HAVE_WIN_THREADS - #ifdef H5_HAVE_PTHREAD_H - #include - #endif /* H5_HAVE_PTHREAD_H */ - #endif /* H5_HAVE_WIN_THREADS */ - #else /* H5_HAVE_WIN32_API */ - #ifdef H5_HAVE_PTHREAD_H - #include - #endif /* H5_HAVE_PTHREAD_H */ - #endif /* H5_HAVE_WIN32_API */ -#endif /* H5_HAVE_THREADSAFE */ - -/* - * Include ANSI-C header files. - */ -#ifdef H5_STDC_HEADERS -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -#endif - -/* - * If _POSIX_VERSION is defined in unistd.h then this system is Posix.1 - * compliant. Otherwise all bets are off. - */ -#ifdef H5_HAVE_UNISTD_H -# include -# include -#endif -#ifdef _POSIX_VERSION -# include -# include -#endif - -/* - * C9x integer types - */ -#ifndef __cplusplus -#ifdef H5_HAVE_STDINT_H -# include -#endif -#endif - -/* - * The `struct stat' data type for stat() and fstat(). This is a Posix file - * but often apears on non-Posix systems also. The `struct stat' is required - * for hdf5 to compile, although only a few fields are actually used. - */ -#ifdef H5_HAVE_SYS_STAT_H -# include -#endif - -/* - * If a program may include both `time.h' and `sys/time.h' then - * TIME_WITH_SYS_TIME is defined (see AC_HEADER_TIME in configure.ac). - * On some older systems, `sys/time.h' includes `time.h' but `time.h' is not - * protected against multiple inclusion, so programs should not explicitly - * include both files. This macro is useful in programs that use, for example, - * `struct timeval' or `struct timezone' as well as `struct tm'. It is best - * used in conjunction with `HAVE_SYS_TIME_H', whose existence is checked - * by `AC_CHECK_HEADERS(sys/time.h)' in configure.ac. - */ -#if defined(H5_TIME_WITH_SYS_TIME) -# include -# include -#elif defined(H5_HAVE_SYS_TIME_H) -# include -#else -# include -#endif - -/* - * Longjumps are used to detect alignment constrants - */ -#ifdef H5_HAVE_SETJMP_H -# include -#endif - -/* - * Resource usage is not Posix.1 but HDF5 uses it anyway for some performance - * and debugging code if available. - */ -#ifdef H5_HAVE_SYS_RESOURCE_H -# include -#endif - -/* - * Unix ioctls. These are used by h5ls (and perhaps others) to determine a - * resonable output width. - */ -#ifdef H5_HAVE_SYS_IOCTL_H -# include -#endif - -/* - * System information. These are needed on the DEC Alpha to turn off fixing - * of unaligned accesses by the operating system during detection of - * alignment constraints in H5detect.c:main(). - */ -#ifdef H5_HAVE_SYS_SYSINFO_H -# include -#endif -#ifdef H5_HAVE_SYS_PROC_H -# include -#endif -#ifdef H5_HAVE_IO_H -# include -#endif - -/* - * Dynamic library handling. These are needed for dynamically loading I/O - * filters and VFDs. - */ -#ifdef H5_HAVE_DLFCN_H -#include -#endif -#ifdef H5_HAVE_DIRENT_H -#include -#endif - - -#ifdef H5_HAVE_WIN32_API -/* The following two defines must be before any windows headers are included */ -#define WIN32_LEAN_AND_MEAN /* Exclude rarely-used stuff from Windows headers */ -#define NOGDI /* Exclude Graphic Display Interface macros */ - -#ifdef H5_HAVE_WINSOCK2_H -#include -#endif - -#ifdef H5_HAVE_THREADSAFE -#include /* For _beginthread() */ -#endif - -#include -#include /* For _getcwd() */ - -#endif /*H5_HAVE_WIN32_API*/ - -/* H5_inline */ -#ifndef H5_inline -#define H5_inline -#endif /* H5_inline */ - - -#ifndef F_OK -# define F_OK 00 -# define W_OK 02 -# define R_OK 04 -#endif - -/* - * MPE Instrumentation support - */ -#ifdef H5_HAVE_MPE -/*------------------------------------------------------------------------ - * Purpose: Begin to collect MPE log information for a function. It should - * be ahead of the actual function's process. - * - * Programmer: Long Wang - * - *------------------------------------------------------------------------ - */ -#include "mpe.h" -/* - * #define eventa(func_name) h5_mpe_ ## func_name ## _a - * #define eventb(func_name) h5_mpe_ ## func_name ## _b - */ -#define eventa(func_name) h5_mpe_eventa -#define eventb(func_name) h5_mpe_eventb -#define MPE_LOG_VARS \ - static int eventa(FUNC) = -1; \ - static int eventb(FUNC) = -1; \ - const char* p_event_start = "start" FUNC; - -/* Hardwire the color to "red", since that's what all the routines are using - * now. In the future, if we want to change that color for a given routine, - * we should define a "FUNC_ENTER_API_COLOR" macro which takes an extra 'color' - * parameter and then make additional FUNC_ENTER__COLOR macros to get that - * color information down to the BEGIN_MPE_LOG macro (which should have a new - * BEGIN_MPE_LOG_COLOR variant). -QAK - */ -#define BEGIN_MPE_LOG \ - if (H5_MPEinit_g){ \ - if (eventa(FUNC) == -1 && eventb(FUNC) == -1) { \ - const char* p_color = "red"; \ - eventa(FUNC)=MPE_Log_get_event_number(); \ - eventb(FUNC)=MPE_Log_get_event_number(); \ - MPE_Describe_state(eventa(FUNC), eventb(FUNC), (char *)FUNC, (char *)p_color); \ - } \ - MPE_Log_event(eventa(FUNC), 0, (char *)p_event_start); \ - } - - -/*------------------------------------------------------------------------ - * Purpose: Finish the collection of MPE log information for a function. - * It should be after the actual function's process. - * - * Programmer: Long Wang - */ -#define FINISH_MPE_LOG \ - if (H5_MPEinit_g) { \ - MPE_Log_event(eventb(FUNC), 0, (char *)FUNC); \ - } - -#else /* H5_HAVE_MPE */ -#define MPE_LOG_VARS /* void */ -#define BEGIN_MPE_LOG /* void */ -#define FINISH_MPE_LOG /* void */ - -#endif /* H5_HAVE_MPE */ - -/* - * dmalloc (debugging malloc) support - */ -#ifdef H5_HAVE_DMALLOC_H -#include "dmalloc.h" -#endif /* H5_HAVE_DMALLOC_H */ - -/* - * NT doesn't define SIGBUS, but since NT only runs on processors - * that do not have alignment constraints a SIGBUS would never be - * raised, so we just replace it with SIGILL (which also should - * never be raised by the hdf5 library). - */ -#ifndef SIGBUS -# define SIGBUS SIGILL -#endif - -/* - * Does the compiler support the __attribute__(()) syntax? This is how gcc - * suppresses warnings about unused function arguments. It's no big deal if - * we don't. - */ -#ifdef __cplusplus -# define __attribute__(X) /*void*/ -# define UNUSED /*void*/ -#else /* __cplusplus */ -#ifdef H5_HAVE_ATTRIBUTE -# define UNUSED __attribute__((unused)) -#else -# define __attribute__(X) /*void*/ -# define UNUSED /*void*/ -#endif -#endif /* __cplusplus */ - -/* - * Status return values for the `herr_t' type. - * Since some unix/c routines use 0 and -1 (or more precisely, non-negative - * vs. negative) as their return code, and some assumption had been made in - * the code about that, it is important to keep these constants the same - * values. When checking the success or failure of an integer-valued - * function, remember to compare against zero and not one of these two - * values. - */ -#define SUCCEED 0 -#define FAIL (-1) -#define UFAIL (unsigned)(-1) - -/* number of members in an array */ -#ifndef NELMTS -# define NELMTS(X) (sizeof(X)/sizeof(X[0])) -#endif - -/* minimum of two, three, or four values */ -#undef MIN -#define MIN(a,b) (((a)<(b)) ? (a) : (b)) -#define MIN2(a,b) MIN(a,b) -#define MIN3(a,b,c) MIN(a,MIN(b,c)) -#define MIN4(a,b,c,d) MIN(MIN(a,b),MIN(c,d)) - -/* maximum of two, three, or four values */ -#undef MAX -#define MAX(a,b) (((a)>(b)) ? (a) : (b)) -#define MAX2(a,b) MAX(a,b) -#define MAX3(a,b,c) MAX(a,MAX(b,c)) -#define MAX4(a,b,c,d) MAX(MAX(a,b),MAX(c,d)) - -/* limit the middle value to be within a range (inclusive) */ -#define RANGE(LO,X,HI) MAX(LO,MIN(X,HI)) - -/* absolute value */ -#ifndef ABS -# define ABS(a) (((a)>=0) ? (a) : -(a)) -#endif - -/* sign of argument */ -#ifndef SIGN -# define SIGN(a) ((a)>0 ? 1 : (a)<0 ? -1 : 0) -#endif - -/* test for number that is a power of 2 */ -/* (from: http://graphics.stanford.edu/~seander/bithacks.html#DetermineIfPowerOf2) */ -# define POWER_OF_TWO(n) (!(n & (n - 1)) && n) - -/* - * HDF Boolean type. - */ -#ifndef FALSE -# define FALSE 0 -#endif -#ifndef TRUE -# define TRUE 1 -#endif - -/* - * Numeric data types. Some of these might be defined in Posix.1g, otherwise - * we define them with the closest available type which is at least as large - * as the number of bits indicated in the type name. The `int8' types *must* - * be exactly one byte wide because we use it for pointer calculations to - * void* memory. - */ -#if H5_SIZEOF_INT8_T==0 - typedef signed char int8_t; -# undef H5_SIZEOF_INT8_T -# define H5_SIZEOF_INT8_T H5_SIZEOF_CHAR -#elif H5_SIZEOF_INT8_T==1 -#else -# error "the int8_t type must be 1 byte wide" -#endif - -#if H5_SIZEOF_UINT8_T==0 - typedef unsigned char uint8_t; -# undef H5_SIZEOF_UINT8_T -# define H5_SIZEOF_UINT8_T H5_SIZEOF_CHAR -#elif H5_SIZEOF_UINT8_T==1 -#else -# error "the uint8_t type must be 1 byte wide" -#endif - -#if H5_SIZEOF_INT16_T>=2 -#elif H5_SIZEOF_SHORT>=2 - typedef short int16_t; -# undef H5_SIZEOF_INT16_T -# define H5_SIZEOF_INT16_T H5_SIZEOF_SHORT -#elif H5_SIZEOF_INT>=2 - typedef int int16_t; -# undef H5_SIZEOF_INT16_T -# define H5_SIZEOF_INT16_T H5_SIZEOF_INT -#else -# error "nothing appropriate for int16_t" -#endif - -#if H5_SIZEOF_UINT16_T>=2 -#elif H5_SIZEOF_SHORT>=2 - typedef unsigned short uint16_t; -# undef H5_SIZEOF_UINT16_T -# define H5_SIZEOF_UINT16_T H5_SIZEOF_SHORT -#elif H5_SIZEOF_INT>=2 - typedef unsigned uint16_t; -# undef H5_SIZEOF_UINT16_T -# define H5_SIZEOF_UINT16_T H5_SIZEOF_INT -#else -# error "nothing appropriate for uint16_t" -#endif - -#if H5_SIZEOF_INT32_T>=4 -#elif H5_SIZEOF_SHORT>=4 - typedef short int32_t; -# undef H5_SIZEOF_INT32_T -# define H5_SIZEOF_INT32_T H5_SIZEOF_SHORT -#elif H5_SIZEOF_INT>=4 - typedef int int32_t; -# undef H5_SIZEOF_INT32_T -# define H5_SIZEOF_INT32_T H5_SIZEOF_INT -#elif H5_SIZEOF_LONG>=4 - typedef long int32_t; -# undef H5_SIZEOF_INT32_T -# define H5_SIZEOF_INT32_T H5_SIZEOF_LONG -#else -# error "nothing appropriate for int32_t" -#endif - -/* - * Maximum and minimum values. These should be defined in for the - * most part. - */ -#ifndef LLONG_MAX -# define LLONG_MAX ((long long)(((unsigned long long)1 \ - <<(8*sizeof(long long)-1))-1)) -# define LLONG_MIN ((long long)(-LLONG_MAX)-1) -#endif -#ifndef ULLONG_MAX -# define ULLONG_MAX ((unsigned long long)((long long)(-1))) -#endif -#ifndef SIZET_MAX -# define SIZET_MAX ((size_t)(ssize_t)(-1)) -# define SSIZET_MAX ((ssize_t)(((size_t)1<<(8*sizeof(ssize_t)-1))-1)) -#endif - -/* - * Maximum & minimum values for our typedefs. - */ -#define HSIZET_MAX ((hsize_t)ULLONG_MAX) -#define HSSIZET_MAX ((hssize_t)LLONG_MAX) -#define HSSIZET_MIN (~(HSSIZET_MAX)) - -/* - * Types and max sizes for POSIX I/O. - * OS X (Darwin) is odd since the max I/O size does not match the types. - */ -#if defined(H5_HAVE_WIN32_API) -# define h5_posix_io_t unsigned int -# define h5_posix_io_ret_t int -# define H5_POSIX_MAX_IO_BYTES INT_MAX -#elif defined(H5_HAVE_DARWIN) -# define h5_posix_io_t size_t -# define h5_posix_io_ret_t ssize_t -# define H5_POSIX_MAX_IO_BYTES INT_MAX -#else -# define h5_posix_io_t size_t -# define h5_posix_io_ret_t ssize_t -# define H5_POSIX_MAX_IO_BYTES SSIZET_MAX -#endif - -/* - * A macro to portably increment enumerated types. - */ -#ifndef H5_INC_ENUM -# define H5_INC_ENUM(TYPE,VAR) (VAR)=((TYPE)((VAR)+1)) -#endif - -/* - * A macro to portably decrement enumerated types. - */ -#ifndef H5_DEC_ENUM -# define H5_DEC_ENUM(TYPE,VAR) (VAR)=((TYPE)((VAR)-1)) -#endif - -/* - * Data types and functions for timing certain parts of the library. - */ -typedef struct { - double utime; /*user time */ - double stime; /*system time */ - double etime; /*elapsed wall-clock time */ -} H5_timer_t; - -H5_DLL void H5_timer_reset (H5_timer_t *timer); -H5_DLL void H5_timer_begin (H5_timer_t *timer); -H5_DLL void H5_timer_end (H5_timer_t *sum/*in,out*/, - H5_timer_t *timer/*in,out*/); -H5_DLL void H5_bandwidth(char *buf/*out*/, double nbytes, double nseconds); -H5_DLL time_t H5_now(void); - -/* Depth of object copy */ -typedef enum { - H5_COPY_SHALLOW, /* Shallow copy from source to destination, just copy field pointers */ - H5_COPY_DEEP /* Deep copy from source to destination, including duplicating fields pointed to */ -} H5_copy_depth_t; - -/* Common object copying udata (right now only used for groups and datasets) */ -typedef struct H5O_copy_file_ud_common_t { - struct H5O_pline_t *src_pline; /* Copy of filter pipeline for object */ -} H5O_copy_file_ud_common_t; - -/* Unique object "position" */ -typedef struct { - unsigned long fileno; /* The unique identifier for the file of the object */ - haddr_t addr; /* The unique address of the object's header in that file */ -} H5_obj_t; - -/* - * Redefine all the POSIX functions. We should never see a POSIX - * function (or any other non-HDF5 function) in the source! - */ - -/* Put all platform-specific definitions in the following file */ -/* so that the following definitions are platform free. */ -#include "H5win32defs.h" /* For Windows-specific definitions */ - -#ifndef HDabort - #define HDabort() abort() -#endif /* HDabort */ -#ifndef HDabs - #define HDabs(X) abs(X) -#endif /* HDabs */ -#ifndef HDaccess - #define HDaccess(F,M) access(F, M) -#endif /* HDaccess */ -#ifndef HDacos - #define HDacos(X) acos(X) -#endif /* HDacos */ -#ifndef HDalarm - #ifdef H5_HAVE_ALARM - #define HDalarm(N) alarm(N) - #else /* H5_HAVE_ALARM */ - #define HDalarm(N) (0) - #endif /* H5_HAVE_ALARM */ -#endif /* HDalarm */ -#ifndef HDasctime - #define HDasctime(T) asctime(T) -#endif /* HDasctime */ -#ifndef HDasin - #define HDasin(X) asin(X) -#endif /* HDasin */ -#ifndef HDassert - #define HDassert(X) assert(X) -#endif /* HDassert */ -#ifndef HDatan - #define HDatan(X) atan(X) -#endif /* HDatan */ -#ifndef HDatan2 - #define HDatan2(X,Y) atan2(X,Y) -#endif /* HDatan2 */ -#ifndef HDatexit - #define HDatexit(F) atexit(F) -#endif /* HDatexit */ -#ifndef HDatof - #define HDatof(S) atof(S) -#endif /* HDatof */ -#ifndef HDatoi - #define HDatoi(S) atoi(S) -#endif /* HDatoi */ -#ifndef HDatol - #define HDatol(S) atol(S) -#endif /* HDatol */ -#ifndef HDBSDgettimeofday - #define HDBSDgettimeofday(S,P) BSDgettimeofday(S,P) -#endif /* HDBSDgettimeofday */ -#ifndef HDbsearch - #define HDbsearch(K,B,N,Z,F) bsearch(K,B,N,Z,F) -#endif /* HDbsearch */ -#ifndef HDcalloc - #define HDcalloc(N,Z) calloc(N,Z) -#endif /* HDcalloc */ -#ifndef HDceil - #define HDceil(X) ceil(X) -#endif /* HDceil */ -#ifndef HDcfgetispeed - #define HDcfgetispeed(T) cfgetispeed(T) -#endif /* HDcfgetispeed */ -#ifndef HDcfgetospeed - #define HDcfgetospeed(T) cfgetospeed(T) -#endif /* HDcfgetospeed */ -#ifndef HDcfsetispeed - #define HDcfsetispeed(T,S) cfsetispeed(T,S) -#endif /* HDcfsetispeed */ -#ifndef HDcfsetospeed - #define HDcfsetospeed(T,S) cfsetospeed(T,S) -#endif /* HDcfsetospeed */ -#ifndef HDchdir - #define HDchdir(S) chdir(S) -#endif /* HDchdir */ -#ifndef HDchmod - #define HDchmod(S,M) chmod(S,M) -#endif /* HDchmod */ -#ifndef HDchown - #define HDchown(S,O,G) chown(S,O,G) -#endif /* HDchown */ -#ifndef HDclearerr - #define HDclearerr(F) clearerr(F) -#endif /* HDclearerr */ -#ifndef HDclock - #define HDclock() clock() -#endif /* HDclock */ -#ifndef HDclose - #define HDclose(F) close(F) -#endif /* HDclose */ -#ifndef HDclosedir - #define HDclosedir(D) closedir(D) -#endif /* HDclosedir */ -#ifndef HDcos - #define HDcos(X) cos(X) -#endif /* HDcos */ -#ifndef HDcosh - #define HDcosh(X) cosh(X) -#endif /* HDcosh */ -#ifndef HDcreat - #define HDcreat(S,M) creat(S,M) -#endif /* HDcreat */ -#ifndef HDctermid - #define HDctermid(S) ctermid(S) -#endif /* HDctermid */ -#ifndef HDctime - #define HDctime(T) ctime(T) -#endif /* HDctime */ -#ifndef HDcuserid - #define HDcuserid(S) cuserid(S) -#endif /* HDcuserid */ -#ifndef HDdifftime - #ifdef H5_HAVE_DIFFTIME - #define HDdifftime(X,Y) difftime(X,Y) - #else /* H5_HAVE_DIFFTIME */ - #define HDdifftime(X,Y) ((double)(X)-(double)(Y)) - #endif /* H5_HAVE_DIFFTIME */ -#endif /* HDdifftime */ -#ifndef HDdiv - #define HDdiv(X,Y) div(X,Y) -#endif /* HDdiv */ -#ifndef HDdup - #define HDdup(F) dup(F) -#endif /* HDdup */ -#ifndef HDdup2 - #define HDdup2(F,I) dup2(F,I) -#endif /* HDdup2 */ -/* execl() variable arguments */ -/* execle() variable arguments */ -/* execlp() variable arguments */ -#ifndef HDexecv - #define HDexecv(S,AV) execv(S,AV) -#endif /* HDexecv */ -#ifndef HDexecve - #define HDexecve(S,AV,E) execve(S,AV,E) -#endif /* HDexecve */ -#ifndef HDexecvp - #define HDexecvp(S,AV) execvp(S,AV) -#endif /* HDexecvp */ -#ifndef HDexit - #define HDexit(N) exit(N) -#endif /* HDexit */ -#ifndef HD_exit - #define HD_exit(N) _exit(N) -#endif /* HD_exit */ -#ifndef HDexp - #define HDexp(X) exp(X) -#endif /* HDexp */ -#ifndef HDfabs - #define HDfabs(X) fabs(X) -#endif /* HDfabs */ -/* use ABS() because fabsf() fabsl() are not common yet. */ -#ifndef HDfabsf - #define HDfabsf(X) ABS(X) -#endif /* HDfabsf */ -#ifndef HDfabsl - #define HDfabsl(X) ABS(X) -#endif /* HDfabsl */ -#ifndef HDfclose - #define HDfclose(F) fclose(F) -#endif /* HDfclose */ -/* fcntl() variable arguments */ -#ifndef HDfdopen - #define HDfdopen(N,S) fdopen(N,S) -#endif /* HDfdopen */ -#ifndef HDfeof - #define HDfeof(F) feof(F) -#endif /* HDfeof */ -#ifndef HDferror - #define HDferror(F) ferror(F) -#endif /* HDferror */ -#ifndef HDfflush - #define HDfflush(F) fflush(F) -#endif /* HDfflush */ -#ifndef HDfgetc - #define HDfgetc(F) fgetc(F) -#endif /* HDfgetc */ -#ifndef HDfgetpos - #define HDfgetpos(F,P) fgetpos(F,P) -#endif /* HDfgetpos */ -#ifndef HDfgets - #define HDfgets(S,N,F) fgets(S,N,F) -#endif /* HDfgets */ -#ifndef HDfileno - #define HDfileno(F) fileno(F) -#endif /* HDfileno */ -#ifndef HDfloor - #define HDfloor(X) floor(X) -#endif /* HDfloor */ -#ifndef HDfmod - #define HDfmod(X,Y) fmod(X,Y) -#endif /* HDfmod */ -#ifndef HDfopen - #define HDfopen(S,M) fopen(S,M) -#endif /* HDfopen */ -#ifndef HDfork - #define HDfork() fork() -#endif /* HDfork */ -#ifndef HDfpathconf - #define HDfpathconf(F,N) fpathconf(F,N) -#endif /* HDfpathconf */ -H5_DLL int HDfprintf (FILE *stream, const char *fmt, ...); -#ifndef HDfputc - #define HDfputc(C,F) fputc(C,F) -#endif /* HDfputc */ -#ifndef HDfputs - #define HDfputs(S,F) fputs(S,F) -#endif /* HDfputs */ -#ifndef HDfread - #define HDfread(M,Z,N,F) fread(M,Z,N,F) -#endif /* HDfread */ -#ifndef HDfree - #define HDfree(M) free(M) -#endif /* HDfree */ -#ifndef HDfreopen - #define HDfreopen(S,M,F) freopen(S,M,F) -#endif /* HDfreopen */ -#ifndef HDfrexp - #define HDfrexp(X,N) frexp(X,N) -#endif /* HDfrexp */ -/* Check for Cray-specific 'frexpf()' and 'frexpl()' routines */ -#ifndef HDfrexpf - #ifdef H5_HAVE_FREXPF - #define HDfrexpf(X,N) frexpf(X,N) - #else /* H5_HAVE_FREXPF */ - #define HDfrexpf(X,N) frexp(X,N) - #endif /* H5_HAVE_FREXPF */ -#endif /* HDfrexpf */ -#ifndef HDfrexpl - #ifdef H5_HAVE_FREXPL - #define HDfrexpl(X,N) frexpl(X,N) - #else /* H5_HAVE_FREXPL */ - #define HDfrexpl(X,N) frexp(X,N) - #endif /* H5_HAVE_FREXPL */ -#endif /* HDfrexpl */ -/* fscanf() variable arguments */ -#ifndef HDfseek - #ifdef H5_HAVE_FSEEKO - #define HDfseek(F,O,W) fseeko(F,O,W) - #else /* H5_HAVE_FSEEKO */ - #define HDfseek(F,O,W) fseek(F,O,W) - #endif /* H5_HAVE_FSEEKO */ -#endif /* HDfseek */ -#ifndef HDfsetpos - #define HDfsetpos(F,P) fsetpos(F,P) -#endif /* HDfsetpos */ -/* definitions related to the file stat utilities. - * For Unix, if off_t is not 64bit big, try use the pseudo-standard - * xxx64 versions if available. - */ -#if !defined(HDfstat) || !defined(HDstat) || !defined(HDlstat) - #if H5_SIZEOF_OFF_T!=8 && H5_SIZEOF_OFF64_T==8 && defined(H5_HAVE_STAT64) - #ifndef HDfstat - #define HDfstat(F,B) fstat64(F,B) - #endif /* HDfstat */ - #ifndef HDlstat - #define HDlstat(S,B) lstat64(S,B) - #endif /* HDlstat */ - #ifndef HDstat - #define HDstat(S,B) stat64(S,B) - #endif /* HDstat */ - typedef struct stat64 h5_stat_t; - typedef off64_t h5_stat_size_t; - #define H5_SIZEOF_H5_STAT_SIZE_T H5_SIZEOF_OFF64_T - #else /* H5_SIZEOF_OFF_T!=8 && ... */ - #ifndef HDfstat - #define HDfstat(F,B) fstat(F,B) - #endif /* HDfstat */ - #ifndef HDlstat - #define HDlstat(S,B) lstat(S,B) - #endif /* HDlstat */ - #ifndef HDstat - #define HDstat(S,B) stat(S,B) - #endif /* HDstat */ - typedef struct stat h5_stat_t; - typedef off_t h5_stat_size_t; - #define H5_SIZEOF_H5_STAT_SIZE_T H5_SIZEOF_OFF_T - #endif /* H5_SIZEOF_OFF_T!=8 && ... */ -#endif /* !defined(HDfstat) || !defined(HDstat) */ - -#ifndef HDftell - #define HDftell(F) ftell(F) -#endif /* HDftell */ -#ifndef HDftruncate - #ifdef H5_HAVE_FTRUNCATE64 - #define HDftruncate(F,L) ftruncate64(F,L) - #else - #define HDftruncate(F,L) ftruncate(F,L) - #endif -#endif /* HDftruncate */ -#ifndef HDfwrite - #define HDfwrite(M,Z,N,F) fwrite(M,Z,N,F) -#endif /* HDfwrite */ -#ifndef HDgetc - #define HDgetc(F) getc(F) -#endif /* HDgetc */ -#ifndef HDgetchar - #define HDgetchar() getchar() -#endif /* HDgetchar */ -#ifndef HDgetcwd - #define HDgetcwd(S,Z) getcwd(S,Z) -#endif /* HDgetcwd */ -#ifndef HDgetdcwd - #define HDgetdcwd(D,S,Z) getcwd(S,Z) -#endif /* HDgetdcwd */ -#ifndef HDgetdrive - #define HDgetdrive() 0 -#endif /* HDgetdrive */ -#ifndef HDgetegid - #define HDgetegid() getegid() -#endif /* HDgetegid() */ -#ifndef HDgetenv - #define HDgetenv(S) getenv(S) -#endif /* HDgetenv */ -#ifndef HDgeteuid - #define HDgeteuid() geteuid() -#endif /* HDgeteuid */ -#ifndef HDgetgid - #define HDgetgid() getgid() -#endif /* HDgetgid */ -#ifndef HDgetgrgid - #define HDgetgrgid(G) getgrgid(G) -#endif /* HDgetgrgid */ -#ifndef HDgetgrnam - #define HDgetgrnam(S) getgrnam(S) -#endif /* HDgetgrnam */ -#ifndef HDgetgroups - #define HDgetgroups(Z,G) getgroups(Z,G) -#endif /* HDgetgroups */ -#ifndef HDgethostname - #define HDgethostname(N,L) gethostname(N,L) -#endif /* HDgetlogin */ -#ifndef HDgetlogin - #define HDgetlogin() getlogin() -#endif /* HDgetlogin */ -#ifndef HDgetpgrp - #define HDgetpgrp() getpgrp() -#endif /* HDgetpgrp */ -#ifndef HDgetpid - #define HDgetpid() getpid() -#endif /* HDgetpid */ -#ifndef HDgetppid - #define HDgetppid() getppid() -#endif /* HDgetppid */ -#ifndef HDgetpwnam - #define HDgetpwnam(S) getpwnam(S) -#endif /* HDgetpwnam */ -#ifndef HDgetpwuid - #define HDgetpwuid(U) getpwuid(U) -#endif /* HDgetpwuid */ -#ifndef HDgetrusage - #define HDgetrusage(X,S) getrusage(X,S) -#endif /* HDgetrusage */ -#ifndef HDgets - #define HDgets(S) gets(S) -#endif /* HDgets */ -#ifndef HDgettimeofday - #define HDgettimeofday(S,P) gettimeofday(S,P) -#endif /* HDgettimeofday */ -#ifndef HDgetuid - #define HDgetuid() getuid() -#endif /* HDgetuid */ -#ifndef HDgmtime - #define HDgmtime(T) gmtime(T) -#endif /* HDgmtime */ -#ifndef HDisalnum - #define HDisalnum(C) isalnum((int)(C)) /*cast for solaris warning*/ -#endif /* HDisalnum */ -#ifndef HDisalpha - #define HDisalpha(C) isalpha((int)(C)) /*cast for solaris warning*/ -#endif /* HDisalpha */ -#ifndef HDisatty - #define HDisatty(F) isatty(F) -#endif /* HDisatty */ -#ifndef HDiscntrl - #define HDiscntrl(C) iscntrl((int)(C)) /*cast for solaris warning*/ -#endif /* HDiscntrl */ -#ifndef HDisdigit - #define HDisdigit(C) isdigit((int)(C)) /*cast for solaris warning*/ -#endif /* HDisdigit */ -#ifndef HDisgraph - #define HDisgraph(C) isgraph((int)(C)) /*cast for solaris warning*/ -#endif /* HDisgraph */ -#ifndef HDislower - #define HDislower(C) islower((int)(C)) /*cast for solaris warning*/ -#endif /* HDislower */ -#ifndef HDisprint - #define HDisprint(C) isprint((int)(C)) /*cast for solaris warning*/ -#endif /* HDisprint */ -#ifndef HDispunct - #define HDispunct(C) ispunct((int)(C)) /*cast for solaris warning*/ -#endif /* HDispunct */ -#ifndef HDisspace - #define HDisspace(C) isspace((int)(C)) /*cast for solaris warning*/ -#endif /* HDisspace */ -#ifndef HDisupper - #define HDisupper(C) isupper((int)(C)) /*cast for solaris warning*/ -#endif /* HDisupper */ -#ifndef HDisxdigit - #define HDisxdigit(C) isxdigit((int)(C)) /*cast for solaris warning*/ -#endif /* HDisxdigit */ -#ifndef HDkill - #define HDkill(P,S) kill(P,S) -#endif /* HDkill */ -#ifndef HDlabs - #define HDlabs(X) labs(X) -#endif /* HDlabs */ -#ifndef HDldexp - #define HDldexp(X,N) ldexp(X,N) -#endif /* HDldexp */ -#ifndef HDldiv - #define HDldiv(X,Y) ldiv(X,Y) -#endif /* HDldiv */ -#ifndef HDlink - #define HDlink(OLD,NEW) link(OLD,NEW) -#endif /* HDlink */ -#ifndef HDlocaleconv - #define HDlocaleconv() localeconv() -#endif /* HDlocaleconv */ -#ifndef HDlocaltime - #define HDlocaltime(T) localtime(T) -#endif /* HDlocaltime */ -#ifndef HDlog - #define HDlog(X) log(X) -#endif /* HDlog */ -#ifndef HDlog10 - #define HDlog10(X) log10(X) -#endif /* HDlog10 */ -#ifndef HDlongjmp - #define HDlongjmp(J,N) longjmp(J,N) -#endif /* HDlongjmp */ -/* HDlseek and HDoff_t must be defined together for consistency. */ -#ifndef HDlseek - #ifdef H5_HAVE_LSEEK64 - #define HDlseek(F,O,W) lseek64(F,O,W) - #define HDoff_t off64_t - #else - #define HDlseek(F,O,W) lseek(F,O,W) - #define HDoff_t off_t - #endif -#endif /* HDlseek */ -#ifndef HDmalloc - #define HDmalloc(Z) malloc(Z) -#endif /* HDmalloc */ -#ifndef HDposix_memalign - #define HDposix_memalign(P,A,Z) posix_memalign(P,A,Z) -#endif /* HDposix_memalign */ -#ifndef HDmblen - #define HDmblen(S,N) mblen(S,N) -#endif /* HDmblen */ -#ifndef HDmbstowcs - #define HDmbstowcs(P,S,Z) mbstowcs(P,S,Z) -#endif /* HDmbstowcs */ -#ifndef HDmbtowc - #define HDmbtowc(P,S,Z) mbtowc(P,S,Z) -#endif /* HDmbtowc */ -#ifndef HDmemchr - #define HDmemchr(S,C,Z) memchr(S,C,Z) -#endif /* HDmemchr */ -#ifndef HDmemcmp - #define HDmemcmp(X,Y,Z) memcmp(X,Y,Z) -#endif /* HDmemcmp */ -/* - * The (char*) casts are required for the DEC when optimizations are turned - * on and the source and/or destination are not aligned. - */ -#ifndef HDmemcpy - #define HDmemcpy(X,Y,Z) memcpy((char*)(X),(const char*)(Y),Z) -#endif /* HDmemcpy */ -#ifndef HDmemmove - #define HDmemmove(X,Y,Z) memmove((char*)(X),(const char*)(Y),Z) -#endif /* HDmemmove */ -#ifndef HDmemset - #define HDmemset(X,C,Z) memset(X,C,Z) -#endif /* HDmemset */ -#ifndef HDmkdir - #define HDmkdir(S,M) mkdir(S,M) -#endif /* HDmkdir */ -#ifndef HDmkfifo - #define HDmkfifo(S,M) mkfifo(S,M) -#endif /* HDmkfifo */ -#ifndef HDmktime - #define HDmktime(T) mktime(T) -#endif /* HDmktime */ -#ifndef HDmodf - #define HDmodf(X,Y) modf(X,Y) -#endif /* HDmodf */ -#ifndef HDopen - #ifdef _O_BINARY - #define HDopen(S,F,M) open(S,F|_O_BINARY,M) - #else - #define HDopen(S,F,M) open(S,F,M) - #endif -#endif /* HDopen */ -#ifndef HDopendir - #define HDopendir(S) opendir(S) -#endif /* HDopendir */ -#ifndef HDpathconf - #define HDpathconf(S,N) pathconf(S,N) -#endif /* HDpathconf */ -#ifndef HDpause - #define HDpause() pause() -#endif /* HDpause */ -#ifndef HDperror - #define HDperror(S) perror(S) -#endif /* HDperror */ -#ifndef HDpipe - #define HDpipe(F) pipe(F) -#endif /* HDpipe */ -#ifndef HDpow - #define HDpow(X,Y) pow(X,Y) -#endif /* HDpow */ -/* printf() variable arguments */ -#ifndef HDputc - #define HDputc(C,F) putc(C,F) -#endif /* HDputc*/ -#ifndef HDputchar - #define HDputchar(C) putchar(C) -#endif /* HDputchar */ -#ifndef HDputs - #define HDputs(S) puts(S) -#endif /* HDputs */ -#ifndef HDqsort - #define HDqsort(M,N,Z,F) qsort(M,N,Z,F) -#endif /* HDqsort*/ -#ifndef HDraise - #define HDraise(N) raise(N) -#endif /* HDraise */ - -#ifdef H5_HAVE_RAND_R - #ifndef HDrandom - #define HDrandom() HDrand() - #endif /* HDrandom */ - H5_DLL int HDrand(void); -#elif H5_HAVE_RANDOM - #ifndef HDrand - #define HDrand() random() - #endif /* HDrand */ - #ifndef HDrandom - #define HDrandom() random() - #endif /* HDrandom */ -#else /* H5_HAVE_RANDOM */ - #ifndef HDrand - #define HDrand() rand() - #endif /* HDrand */ - #ifndef HDrandom - #define HDrandom() rand() - #endif /* HDrandom */ -#endif /* H5_HAVE_RANDOM */ - -#ifndef HDread - #define HDread(F,M,Z) read(F,M,Z) -#endif /* HDread */ -#ifndef HDreaddir - #define HDreaddir(D) readdir(D) -#endif /* HDreaddir */ -#ifndef HDrealloc - #define HDrealloc(M,Z) realloc(M,Z) -#endif /* HDrealloc */ -#ifndef HDrealpath - #define HDrealpath(F1,F2) realpath(F1,F2) -#endif /* HDrealloc */ -#ifdef H5_VMS - #ifdef __cplusplus - extern "C" { - #endif /* __cplusplus */ - int HDremove_all(const char * fname); - #ifdef __cplusplus - } - #endif /* __cplusplus */ - #ifndef HDremove - #define HDremove(S) HDremove_all(S) - #endif /* HDremove */ -#else /* H5_VMS */ - #ifndef HDremove - #define HDremove(S) remove(S) - #endif /* HDremove */ -#endif /*H5_VMS*/ -#ifndef HDrename - #define HDrename(OLD,NEW) rename(OLD,NEW) -#endif /* HDrename */ -#ifndef HDrewind - #define HDrewind(F) rewind(F) -#endif /* HDrewind */ -#ifndef HDrewinddir - #define HDrewinddir(D) rewinddir(D) -#endif /* HDrewinddir */ -#ifndef HDrmdir - #define HDrmdir(S) rmdir(S) -#endif /* HDrmdir */ -/* scanf() variable arguments */ -#ifndef HDsetbuf - #define HDsetbuf(F,S) setbuf(F,S) -#endif /* HDsetbuf */ -#ifndef HDsetgid - #define HDsetgid(G) setgid(G) -#endif /* HDsetgid */ -#ifndef HDsetjmp - #define HDsetjmp(J) setjmp(J) -#endif /* HDsetjmp */ -#ifndef HDsetlocale - #define HDsetlocale(N,S) setlocale(N,S) -#endif /* HDsetlocale */ -#ifndef HDsetpgid - #define HDsetpgid(P,PG) setpgid(P,PG) -#endif /* HDsetpgid */ -#ifndef HDsetsid - #define HDsetsid() setsid() -#endif /* HDsetsid */ -#ifndef HDsetuid - #define HDsetuid(U) setuid(U) -#endif /* HDsetuid */ -#ifndef HDsetvbuf - #define HDsetvbuf(F,S,M,Z) setvbuf(F,S,M,Z) -#endif /* HDsetvbuf */ -#ifndef HDsigaddset - #define HDsigaddset(S,N) sigaddset(S,N) -#endif /* HDsigaddset */ -#ifndef HDsigdelset - #define HDsigdelset(S,N) sigdelset(S,N) -#endif /* HDsigdelset */ -#ifndef HDsigemptyset - #define HDsigemptyset(S) sigemptyset(S) -#endif /* HDsigemptyset */ -#ifndef HDsigfillset - #define HDsigfillset(S) sigfillset(S) -#endif /* HDsigfillset */ -#ifndef HDsigismember - #define HDsigismember(S,N) sigismember(S,N) -#endif /* HDsigismember */ -#ifndef HDsiglongjmp - #define HDsiglongjmp(J,N) siglongjmp(J,N) -#endif /* HDsiglongjmp */ -#ifndef HDsignal - #define HDsignal(N,F) signal(N,F) -#endif /* HDsignal */ -#ifndef HDsigpending - #define HDsigpending(S) sigpending(S) -#endif /* HDsigpending */ -#ifndef HDsigprocmask - #define HDsigprocmask(H,S,O) sigprocmask(H,S,O) -#endif /* HDsigprocmask */ -#ifndef HDsigsetjmp - #define HDsigsetjmp(J,N) sigsetjmp(J,N) -#endif /* HDsigsetjmp */ -#ifndef HDsigsuspend - #define HDsigsuspend(S) sigsuspend(S) -#endif /* HDsigsuspend */ -#ifndef HDsin - #define HDsin(X) sin(X) -#endif /* HDsin */ -#ifndef HDsinh - #define HDsinh(X) sinh(X) -#endif /* HDsinh */ -#ifndef HDsleep - #define HDsleep(N) sleep(N) -#endif /* HDsleep */ -#ifndef HDsnprintf - #define HDsnprintf snprintf /*varargs*/ -#endif /* HDsnprintf */ -/* sprintf() variable arguments */ -#ifndef HDsqrt - #define HDsqrt(X) sqrt(X) -#endif /* HDsqrt */ -#ifdef H5_HAVE_RAND_R - H5_DLL void HDsrand(unsigned int seed); - #ifndef HDsrandom - #define HDsrandom(S) HDsrand(S) - #endif /* HDsrandom */ -#elif H5_HAVE_RANDOM - #ifndef HDsrand - #define HDsrand(S) srandom(S) - #endif /* HDsrand */ - #ifndef HDsrandom - #define HDsrandom(S) srandom(S) - #endif /* HDsrandom */ -#else /* H5_HAVE_RAND_R */ - #ifndef HDsrand - #define HDsrand(S) srand(S) - #endif /* HDsrand */ - #ifndef HDsrandom - #define HDsrandom(S) srand(S) - #endif /* HDsrandom */ -#endif /* H5_HAVE_RAND_R */ -/* sscanf() variable arguments */ - -#ifndef HDstrcat - #define HDstrcat(X,Y) strcat(X,Y) -#endif /* HDstrcat */ -#ifndef HDstrchr - #define HDstrchr(S,C) strchr(S,C) -#endif /* HDstrchr */ -#ifndef HDstrcmp - #define HDstrcmp(X,Y) strcmp(X,Y) -#endif /* HDstrcmp */ -#ifndef HDstrcasecmp - #define HDstrcasecmp(X,Y) strcasecmp(X,Y) -#endif /* HDstrcasecmp */ -#ifndef HDstrcoll - #define HDstrcoll(X,Y) strcoll(X,Y) -#endif /* HDstrcoll */ -#ifndef HDstrcpy - #define HDstrcpy(X,Y) strcpy(X,Y) -#endif /* HDstrcpy */ -#ifndef HDstrcspn - #define HDstrcspn(X,Y) strcspn(X,Y) -#endif /* HDstrcspn */ -#ifndef HDstrerror - #define HDstrerror(N) strerror(N) -#endif /* HDstrerror */ -#ifndef HDstrftime - #define HDstrftime(S,Z,F,T) strftime(S,Z,F,T) -#endif /* HDstrftime */ -#ifndef HDstrlen - #define HDstrlen(S) strlen(S) -#endif /* HDstrlen */ -#ifndef HDstrncat - #define HDstrncat(X,Y,Z) strncat(X,Y,Z) -#endif /* HDstrncat */ -#ifndef HDstrncmp - #define HDstrncmp(X,Y,Z) strncmp(X,Y,Z) -#endif /* HDstrncmp */ -#ifndef HDstrncpy - #define HDstrncpy(X,Y,Z) strncpy(X,Y,Z) -#endif /* HDstrncpy */ -#ifndef HDstrpbrk - #define HDstrpbrk(X,Y) strpbrk(X,Y) -#endif /* HDstrpbrk */ -#ifndef HDstrrchr - #define HDstrrchr(S,C) strrchr(S,C) -#endif /* HDstrrchr */ -#ifndef HDstrspn - #define HDstrspn(X,Y) strspn(X,Y) -#endif /* HDstrspn */ -#ifndef HDstrstr - #define HDstrstr(X,Y) strstr(X,Y) -#endif /* HDstrstr */ -#ifndef HDstrtod - #define HDstrtod(S,R) strtod(S,R) -#endif /* HDstrtod */ -#ifndef HDstrtok - #define HDstrtok(X,Y) strtok(X,Y) -#endif /* HDstrtok */ -#ifndef HDstrtol - #define HDstrtol(S,R,N) strtol(S,R,N) -#endif /* HDstrtol */ -H5_DLL int64_t HDstrtoll (const char *s, const char **rest, int base); -#ifndef HDstrtoul - #define HDstrtoul(S,R,N) strtoul(S,R,N) -#endif /* HDstrtoul */ -#ifndef HDstrtoull - #define HDstrtoull(S,R,N) strtoull(S,R,N) -#endif /* HDstrtoul */ -#ifndef HDstrxfrm - #define HDstrxfrm(X,Y,Z) strxfrm(X,Y,Z) -#endif /* HDstrxfrm */ -#ifdef H5_HAVE_SYMLINK - #ifndef HDsymlink - #define HDsymlink(F1,F2) symlink(F1,F2) - #endif /* HDsymlink */ -#endif /* H5_HAVE_SYMLINK */ -#ifndef HDsysconf - #define HDsysconf(N) sysconf(N) -#endif /* HDsysconf */ -#ifndef HDsystem - #define HDsystem(S) system(S) -#endif /* HDsystem */ -#ifndef HDtan - #define HDtan(X) tan(X) -#endif /* HDtan */ -#ifndef HDtanh - #define HDtanh(X) tanh(X) -#endif /* HDtanh */ -#ifndef HDtcdrain - #define HDtcdrain(F) tcdrain(F) -#endif /* HDtcdrain */ -#ifndef HDtcflow - #define HDtcflow(F,A) tcflow(F,A) -#endif /* HDtcflow */ -#ifndef HDtcflush - #define HDtcflush(F,N) tcflush(F,N) -#endif /* HDtcflush */ -#ifndef HDtcgetattr - #define HDtcgetattr(F,T) tcgetattr(F,T) -#endif /* HDtcgetattr */ -#ifndef HDtcgetpgrp - #define HDtcgetpgrp(F) tcgetpgrp(F) -#endif /* HDtcgetpgrp */ -#ifndef HDtcsendbreak - #define HDtcsendbreak(F,N) tcsendbreak(F,N) -#endif /* HDtcsendbreak */ -#ifndef HDtcsetattr - #define HDtcsetattr(F,O,T) tcsetattr(F,O,T) -#endif /* HDtcsetattr */ -#ifndef HDtcsetpgrp - #define HDtcsetpgrp(F,N) tcsetpgrp(F,N) -#endif /* HDtcsetpgrp */ -#ifndef HDtime - #define HDtime(T) time(T) -#endif /* HDtime */ -#ifndef HDtimes - #define HDtimes(T) times(T) -#endif /* HDtimes*/ -#ifndef HDtmpfile - #define HDtmpfile() tmpfile() -#endif /* HDtmpfile */ -#ifndef HDtmpnam - #define HDtmpnam(S) tmpnam(S) -#endif /* HDtmpnam */ -#ifndef HDtolower - #define HDtolower(C) tolower(C) -#endif /* HDtolower */ -#ifndef HDtoupper - #define HDtoupper(C) toupper(C) -#endif /* HDtoupper */ -#ifndef HDttyname - #define HDttyname(F) ttyname(F) -#endif /* HDttyname */ -#ifndef HDtzset - #define HDtzset() tzset() -#endif /* HDtzset */ -#ifndef HDumask - #define HDumask(N) umask(N) -#endif /* HDumask */ -#ifndef HDuname - #define HDuname(S) uname(S) -#endif /* HDuname */ -#ifndef HDungetc - #define HDungetc(C,F) ungetc(C,F) -#endif /* HDungetc */ -#ifndef HDunlink - #define HDunlink(S) unlink(S) -#endif /* HDunlink */ -#ifndef HDutime - #define HDutime(S,T) utime(S,T) -#endif /* HDutime */ -#ifndef HDva_arg - #define HDva_arg(A,T) va_arg(A,T) -#endif /* HDva_arg */ -#ifndef HDva_end - #define HDva_end(A) va_end(A) -#endif /* HDva_end */ -#ifndef HDva_start - #define HDva_start(A,P) va_start(A,P) -#endif /* HDva_start */ -#ifndef HDvasprintf - #define HDvasprintf(RET,FMT,A) vasprintf(RET,FMT,A) -#endif /* HDvasprintf */ -#ifndef HDvfprintf - #define HDvfprintf(F,FMT,A) vfprintf(F,FMT,A) -#endif /* HDvfprintf */ -#ifndef HDvprintf - #define HDvprintf(FMT,A) vprintf(FMT,A) -#endif /* HDvprintf */ -#ifndef HDvsprintf - #define HDvsprintf(S,FMT,A) vsprintf(S,FMT,A) -#endif /* HDvsprintf */ -#ifndef HDvsnprintf - #define HDvsnprintf(S,N,FMT,A) vsnprintf(S,N,FMT,A) -#endif /* HDvsnprintf */ -#ifndef HDwait - #define HDwait(W) wait(W) -#endif /* HDwait */ -#ifndef HDwaitpid - #define HDwaitpid(P,W,O) waitpid(P,W,O) -#endif /* HDwaitpid */ -#ifndef HDwcstombs - #define HDwcstombs(S,P,Z) wcstombs(S,P,Z) -#endif /* HDwcstombs */ -#ifndef HDwctomb - #define HDwctomb(S,C) wctomb(S,C) -#endif /* HDwctomb */ -#ifndef HDwrite - #define HDwrite(F,M,Z) write(F,M,Z) -#endif /* HDwrite */ - -/* - * And now for a couple non-Posix functions... Watch out for systems that - * define these in terms of macros. - */ -#if !defined strdup && !defined H5_HAVE_STRDUP -extern char *strdup(const char *s); -#endif - -#ifndef HDstrdup - #define HDstrdup(S) strdup(S) -#endif /* HDstrdup */ - -#ifndef HDpthread_self - #define HDpthread_self() pthread_self() -#endif /* HDpthread_self */ - -/* Use this version of pthread_self for printing the thread ID */ -#ifndef HDpthread_self_ulong - #define HDpthread_self_ulong() ((unsigned long)pthread_self()) -#endif /* HDpthread_self_ulong */ - -/* - * A macro for detecting over/under-flow when casting between types - */ -#ifndef NDEBUG -#define H5_CHECK_OVERFLOW(var, vartype, casttype) \ -{ \ - casttype _tmp_overflow = (casttype)(var); \ - assert((var) == (vartype)_tmp_overflow); \ -} -#else /* NDEBUG */ -#define H5_CHECK_OVERFLOW(var, vartype, casttype) -#endif /* NDEBUG */ - -/* - * A macro for detecting over/under-flow when assigning between types - */ -#ifndef NDEBUG -#define ASSIGN_TO_SMALLER_SIZE(dst, dsttype, src, srctype) \ -{ \ - srctype _tmp_src = (srctype)(src); \ - dsttype _tmp_dst = (dsttype)(_tmp_src); \ - assert(_tmp_src == (srctype)_tmp_dst); \ - (dst) = _tmp_dst; \ -} - -#define ASSIGN_TO_LARGER_SIZE_SAME_SIGNED(dst, dsttype, src, srctype) \ - (dst) = (dsttype)(src); - -#define ASSIGN_TO_LARGER_SIZE_SIGNED_TO_UNSIGNED(dst, dsttype, src, srctype) \ -{ \ - srctype _tmp_src = (srctype)(src); \ - dsttype _tmp_dst = (dsttype)(_tmp_src); \ - assert(_tmp_src >= 0); \ - assert(_tmp_src == _tmp_dst); \ - (dst) = _tmp_dst; \ -} - -#define ASSIGN_TO_LARGER_SIZE_UNSIGNED_TO_SIGNED(dst, dsttype, src, srctype) \ - (dst) = (dsttype)(src); - -#define ASSIGN_TO_SAME_SIZE_UNSIGNED_TO_SIGNED(dst, dsttype, src, srctype) \ -{ \ - srctype _tmp_src = (srctype)(src); \ - dsttype _tmp_dst = (dsttype)(_tmp_src); \ - assert(_tmp_dst >= 0); \ - assert(_tmp_src == (srctype)_tmp_dst); \ - (dst) = _tmp_dst; \ -} - -#define ASSIGN_TO_SAME_SIZE_SIGNED_TO_UNSIGNED(dst, dsttype, src, srctype) \ -{ \ - srctype _tmp_src = (srctype)(src); \ - dsttype _tmp_dst = (dsttype)(_tmp_src); \ - assert(_tmp_src >= 0); \ - assert(_tmp_src == (srctype)_tmp_dst); \ - (dst) = _tmp_dst; \ -} - -#define ASSIGN_TO_SAME_SIZE_SAME_SIGNED(dst, dsttype, src, srctype) \ - (dst) = (dsttype)(src); - -/* Include the generated overflow header file */ -#include "H5overflow.h" - -#define H5_ASSIGN_OVERFLOW(dst, src, srctype, dsttype) \ - H5_GLUE4(ASSIGN_,srctype,_TO_,dsttype)(dst,dsttype,src,srctype)\ - -#else /* NDEBUG */ -#define H5_ASSIGN_OVERFLOW(dst, src, srctype, dsttype) \ - (dst) = (dsttype)(src); -#endif /* NDEBUG */ - -#if defined(H5_HAVE_WINDOW_PATH) - -/* directory delimiter for Windows: slash and backslash are acceptable on Windows */ -#define H5_DIR_SLASH_SEPC '/' -#define H5_DIR_SEPC '\\' -#define H5_DIR_SEPS "\\" -#define H5_CHECK_DELIMITER(SS) ((SS == H5_DIR_SEPC) || (SS == H5_DIR_SLASH_SEPC)) -#define H5_CHECK_ABSOLUTE(NAME) ((HDisalpha(NAME[0])) && (NAME[1] == ':') && (H5_CHECK_DELIMITER(NAME[2]))) -#define H5_CHECK_ABS_DRIVE(NAME) ((HDisalpha(NAME[0])) && (NAME[1] == ':')) -#define H5_CHECK_ABS_PATH(NAME) (H5_CHECK_DELIMITER(NAME[0])) - -#define H5_GET_LAST_DELIMITER(NAME, ptr) { \ - char *slash, *backslash; \ - \ - slash = HDstrrchr(NAME, H5_DIR_SLASH_SEPC); \ - backslash = HDstrrchr(NAME, H5_DIR_SEPC); \ - if(backslash > slash) \ - (ptr = backslash); \ - else \ - (ptr = slash); \ -} - -#elif defined(H5_HAVE_VMS_PATH) - -/* OpenVMS pathname: $:[path] - * i.g. SYS$SYSUSERS:[LU.HDF5.SRC]H5system.c */ -#define H5_DIR_SEPC ']' -#define H5_DIR_SEPS "]" -#define H5_CHECK_DELIMITER(SS) (SS == H5_DIR_SEPC) -#define H5_CHECK_ABSOLUTE(NAME) (HDstrrchr(NAME, ':') && HDstrrchr(NAME, '[')) -#define H5_CHECK_ABS_DRIVE(NAME) (0) -#define H5_CHECK_ABS_PATH(NAME) (0) -#define H5_GET_LAST_DELIMITER(NAME, ptr) ptr = HDstrrchr(NAME, H5_DIR_SEPC); - -#else - -#define H5_DIR_SEPC '/' -#define H5_DIR_SEPS "/" -#define H5_CHECK_DELIMITER(SS) (SS == H5_DIR_SEPC) -#define H5_CHECK_ABSOLUTE(NAME) (H5_CHECK_DELIMITER(*NAME)) -#define H5_CHECK_ABS_DRIVE(NAME) (0) -#define H5_CHECK_ABS_PATH(NAME) (0) -#define H5_GET_LAST_DELIMITER(NAME, ptr) ptr = HDstrrchr(NAME, H5_DIR_SEPC); - -#endif - -#define H5_COLON_SEPC ':' - - -/* Use FUNC to safely handle variations of C99 __func__ keyword handling */ -#ifdef H5_HAVE_C99_FUNC -#define FUNC __func__ -#elif defined(H5_HAVE_FUNCTION) -#define FUNC __FUNCTION__ -#else -#error "We need __func__ or __FUNCTION__ to test function names!" -#endif - -/* - * These macros check whether debugging has been requested for a certain - * package at run-time. Code for debugging is conditionally compiled by - * defining constants like `H5X_DEBUG'. In order to see the output though - * the code must be enabled at run-time with an environment variable - * HDF5_DEBUG which is a list of packages to debug. - * - * Note: If you add/remove items from this enum then be sure to update the - * information about the package in H5_init_library(). - */ -typedef enum { - H5_PKG_A, /*Attributes */ - H5_PKG_AC, /*Meta data cache */ - H5_PKG_B, /*B-trees */ - H5_PKG_D, /*Datasets */ - H5_PKG_E, /*Error handling */ - H5_PKG_F, /*Files */ - H5_PKG_G, /*Groups */ - H5_PKG_HG, /*Global heap */ - H5_PKG_HL, /*Local heap */ - H5_PKG_I, /*Interface */ - H5_PKG_MF, /*File memory management */ - H5_PKG_MM, /*Core memory management */ - H5_PKG_O, /*Object headers */ - H5_PKG_P, /*Property lists */ - H5_PKG_S, /*Data spaces */ - H5_PKG_T, /*Data types */ - H5_PKG_V, /*Vector functions */ - H5_PKG_Z, /*Raw data filters */ - H5_NPKGS /*Must be last */ -} H5_pkg_t; - -typedef struct H5_debug_open_stream_t { - FILE *stream; /* Open output stream */ - struct H5_debug_open_stream_t *next; /* Next open output stream */ -} H5_debug_open_stream_t; - -typedef struct H5_debug_t { - FILE *trace; /*API trace output stream */ - hbool_t ttop; /*Show only top-level calls? */ - hbool_t ttimes; /*Show trace event times? */ - struct { - const char *name; /*package name */ - FILE *stream; /*output stream or NULL */ - } pkg[H5_NPKGS]; - H5_debug_open_stream_t *open_stream; /* Stack of open output streams */ -} H5_debug_t; - -extern H5_debug_t H5_debug_g; -#define H5DEBUG(X) (H5_debug_g.pkg[H5_PKG_##X].stream) -/* Do not use const else AIX strings does not show it. */ -extern char H5libhdf5_settings[]; /* embedded library information */ - -/*------------------------------------------------------------------------- - * Purpose: These macros are inserted automatically just after the - * FUNC_ENTER() macro of API functions and are used to trace - * application program execution. Unless H5_DEBUG_API has been - * defined they are no-ops. - * - * Arguments: R - Return type encoded as a string - * T - Argument types encoded as a string - * A0-An - Arguments. The number at the end of the macro name - * indicates the number of arguments. - * - * Programmer: Robb Matzke - * - * Modifications: - *------------------------------------------------------------------------- - */ -#ifdef H5_DEBUG_API -#define H5TRACE_DECL const char *RTYPE=NULL; \ - double CALLTIME; -#define H5TRACE0(R,T) RTYPE=R; \ - CALLTIME=H5_trace(NULL,FUNC,T) -#define H5TRACE1(R,T,A0) RTYPE=R; \ - CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0) -#define H5TRACE2(R,T,A0,A1) RTYPE=R; \ - CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1) -#define H5TRACE3(R,T,A0,A1,A2) RTYPE=R; \ - CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2) -#define H5TRACE4(R,T,A0,A1,A2,A3) RTYPE=R; \ - CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2,#A3,A3) -#define H5TRACE5(R,T,A0,A1,A2,A3,A4) RTYPE=R; \ - CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2,#A3,A3, \ - #A4,A4) -#define H5TRACE6(R,T,A0,A1,A2,A3,A4,A5) RTYPE=R; \ - CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2,#A3,A3, \ - #A4,A4,#A5,A5) -#define H5TRACE7(R,T,A0,A1,A2,A3,A4,A5,A6) RTYPE=R; \ - CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2,#A3,A3, \ - #A4,A4,#A5,A5,#A6,A6) -#define H5TRACE8(R,T,A0,A1,A2,A3,A4,A5,A6,A7) RTYPE=R; \ - CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2,#A3,A3, \ - #A4,A4,#A5,A5,#A6,A6,#A7,A7) -#define H5TRACE9(R,T,A0,A1,A2,A3,A4,A5,A6,A7,A8) RTYPE=R; \ - CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2,#A3,A3, \ - #A4,A4,#A5,A5,#A6,A6,#A7,A7,#A8,A8) -#define H5TRACE10(R,T,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9) RTYPE=R; \ - CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2,#A3,A3, \ - #A4,A4,#A5,A5,#A6,A6,#A7,A7,#A8,A8,#A9,A9) -#define H5TRACE11(R,T,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10) RTYPE=R; \ - CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2,#A3,A3, \ - #A4,A4,#A5,A5,#A6,A6,#A7,A7,#A8,A8,#A9,A9, \ - #A10,A10) -#define H5TRACE_RETURN(V) if (RTYPE) { \ - H5_trace(&CALLTIME,FUNC,RTYPE,NULL,V); \ - RTYPE=NULL; \ - } -#else -#define H5TRACE_DECL /*void*/ -#define H5TRACE0(R,T) /*void*/ -#define H5TRACE1(R,T,A0) /*void*/ -#define H5TRACE2(R,T,A0,A1) /*void*/ -#define H5TRACE3(R,T,A0,A1,A2) /*void*/ -#define H5TRACE4(R,T,A0,A1,A2,A3) /*void*/ -#define H5TRACE5(R,T,A0,A1,A2,A3,A4) /*void*/ -#define H5TRACE6(R,T,A0,A1,A2,A3,A4,A5) /*void*/ -#define H5TRACE7(R,T,A0,A1,A2,A3,A4,A5,A6) /*void*/ -#define H5TRACE8(R,T,A0,A1,A2,A3,A4,A5,A6,A7) /*void*/ -#define H5TRACE9(R,T,A0,A1,A2,A3,A4,A5,A6,A7,A8) /*void*/ -#define H5TRACE10(R,T,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9) /*void*/ -#define H5TRACE11(R,T,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10) /*void*/ -#define H5TRACE_RETURN(V) /*void*/ -#endif - -H5_DLL double H5_trace(const double *calltime, const char *func, const char *type, ...); - - -/*------------------------------------------------------------------------- - * Purpose: Register function entry for library initialization and code - * profiling. - * - * Notes: Every file must have a file-scope variable called - * `initialize_interface_g' of type hbool_t which is initialized - * to FALSE. - * - * Don't use local variable initializers which contain - * calls to other library functions since the initializer - * would happen before the FUNC_ENTER() gets called. Don't - * use initializers that require special cleanup code to - * execute if FUNC_ENTER() fails since a failing FUNC_ENTER() - * returns immediately without branching to the `done' label. - * - * Programmer: Quincey Koziol - * - *------------------------------------------------------------------------- - */ - -/* `S' is the name of a function which is being tested to check if its */ -/* an API function */ -#define H5_IS_API(S) ('_'!=((const char *)S)[2] && '_'!=((const char *)S)[3] && (!((const char *)S)[4] || '_'!=((const char *)S)[4])) - -/* `S' is the name of a function which is being tested to check if it's */ -/* a public API function */ -#define H5_IS_PUB(S) (((HDisdigit(S[1]) || HDisupper(S[1])) && HDislower(S[2])) || \ - ((HDisdigit(S[2]) || HDisupper(S[2])) && HDislower(S[3])) || \ - (!S[4] || ((HDisdigit(S[3]) || HDisupper(S[3])) && HDislower(S[4])))) - -/* `S' is the name of a function which is being tested to check if it's */ -/* a private library function */ -#define H5_IS_PRIV(S) (((HDisdigit(S[1]) || HDisupper(S[1])) && '_' == S[2] && HDislower(S[3])) || \ - ((HDisdigit(S[2]) || HDisupper(S[2])) && '_' == S[3] && HDislower(S[4])) || \ - ((HDisdigit(S[3]) || HDisupper(S[3])) && '_' == S[4] && HDislower(S[5]))) - -/* `S' is the name of a function which is being tested to check if it's */ -/* a package private function */ -#define H5_IS_PKG(S) (((HDisdigit(S[1]) || HDisupper(S[1])) && '_' == S[2] && '_' == S[3] && HDislower(S[4])) || \ - ((HDisdigit(S[2]) || HDisupper(S[2])) && '_' == S[3] && '_' == S[4] && HDislower(S[5])) || \ - ((HDisdigit(S[3]) || HDisupper(S[3])) && '_' == S[4] && '_' == S[5] && HDislower(S[6]))) - -/* global library version information string */ -extern char H5_lib_vers_info_g[]; - -/* Lock headers */ -#ifdef H5_HAVE_THREADSAFE - -/* Include required thread-safety header */ -#include "H5TSprivate.h" - -/* replacement structure for original global variable */ -typedef struct H5_api_struct { - H5TS_mutex_t init_lock; /* API entrance mutex */ - hbool_t H5_libinit_g; /* Has the library been initialized? */ -} H5_api_t; - -/* Macros for accessing the global variables */ -#define H5_INIT_GLOBAL H5_g.H5_libinit_g - -/* Macro for first thread initialization */ -#ifdef H5_HAVE_WIN_THREADS -#define H5_FIRST_THREAD_INIT InitOnceExecuteOnce(&H5TS_first_init_g, H5TS_win32_first_thread_init, NULL, NULL); -#else -#define H5_FIRST_THREAD_INIT pthread_once(&H5TS_first_init_g, H5TS_pthread_first_thread_init); -#endif - -/* Macros for threadsafe HDF-5 Phase I locks */ -#define H5_API_LOCK \ - H5TS_mutex_lock(&H5_g.init_lock); -#define H5_API_UNLOCK \ - H5TS_mutex_unlock(&H5_g.init_lock); - -/* Macros for thread cancellation-safe mechanism */ -#define H5_API_UNSET_CANCEL \ - H5TS_cancel_count_inc(); - -#define H5_API_SET_CANCEL \ - H5TS_cancel_count_dec(); - -extern H5_api_t H5_g; - -#else /* H5_HAVE_THREADSAFE */ - -/* disable any first thread init mechanism */ -#define H5_FIRST_THREAD_INIT - -/* disable locks (sequential version) */ -#define H5_API_LOCK -#define H5_API_UNLOCK - -/* disable cancelability (sequential version) */ -#define H5_API_UNSET_CANCEL -#define H5_API_SET_CANCEL - -/* extern global variables */ -extern hbool_t H5_libinit_g; /* Has the library been initialized? */ - -/* Macros for accessing the global variables */ -#define H5_INIT_GLOBAL H5_libinit_g - -#endif /* H5_HAVE_THREADSAFE */ - -#ifdef H5_HAVE_CODESTACK - -/* Include required function stack header */ -#include "H5CSprivate.h" - -#define H5_PUSH_FUNC H5CS_push(FUNC); -#define H5_POP_FUNC H5CS_pop(); -#else /* H5_HAVE_CODESTACK */ -#define H5_PUSH_FUNC /* void */ -#define H5_POP_FUNC /* void */ -#endif /* H5_HAVE_CODESTACK */ - -#ifdef H5_HAVE_MPE -extern hbool_t H5_MPEinit_g; /* Has the MPE Library been initialized? */ -#endif - -/* Macros for defining interface initialization routines */ -#ifdef H5_INTERFACE_INIT_FUNC -static int H5_interface_initialize_g = 0; -static herr_t H5_INTERFACE_INIT_FUNC(void); -#define H5_INTERFACE_INIT(err) \ - /* Initialize this interface or bust */ \ - if (!H5_interface_initialize_g) { \ - H5_interface_initialize_g = 1; \ - if (H5_INTERFACE_INIT_FUNC()<0) { \ - H5_interface_initialize_g = 0; \ - HGOTO_ERROR (H5E_FUNC, H5E_CANTINIT, err, \ - "interface initialization failed") \ - } \ - } -#else /* H5_INTERFACE_INIT_FUNC */ -#define H5_INTERFACE_INIT(err) -#endif /* H5_INTERFACE_INIT_FUNC */ - - -#ifndef NDEBUG -#define FUNC_ENTER_CHECK_NAME(asrt) \ - { \ - static hbool_t func_check = FALSE; \ - \ - if(!func_check) { \ - /* Check function naming status */ \ - HDassert(asrt); \ - \ - /* Don't check again */ \ - func_check = TRUE; \ - } /* end if */ \ - } /* end scope */ -#else /* NDEBUG */ -#define FUNC_ENTER_CHECK_NAME(asrt) -#endif /* NDEBUG */ - - -#define FUNC_ENTER_COMMON(asrt) \ - hbool_t err_occurred = FALSE; \ - FUNC_ENTER_CHECK_NAME(asrt); - -#define FUNC_ENTER_COMMON_NOERR(asrt) \ - FUNC_ENTER_CHECK_NAME(asrt); - -/* Threadsafety initialization code for API routines */ -#define FUNC_ENTER_API_THREADSAFE \ - /* Initialize the thread-safe code */ \ - H5_FIRST_THREAD_INIT \ - \ - /* Grab the mutex for the library */ \ - H5_API_UNSET_CANCEL \ - H5_API_LOCK - -/* Local variables for API routines */ -#define FUNC_ENTER_API_VARS \ - MPE_LOG_VARS \ - H5TRACE_DECL - -#define FUNC_ENTER_API_COMMON \ - FUNC_ENTER_API_VARS \ - FUNC_ENTER_COMMON(H5_IS_API(FUNC)); \ - FUNC_ENTER_API_THREADSAFE; - -#define FUNC_ENTER_API_INIT(err) \ - /* Initialize the library */ \ - if(!(H5_INIT_GLOBAL)) { \ - H5_INIT_GLOBAL = TRUE; \ - if(H5_init_library() < 0) \ - HGOTO_ERROR(H5E_FUNC, H5E_CANTINIT, err, \ - "library initialization failed") \ - } \ - \ - /* Initialize the interface, if appropriate */ \ - H5_INTERFACE_INIT(err) \ - \ - /* Push the name of this function on the function stack */ \ - H5_PUSH_FUNC \ - \ - BEGIN_MPE_LOG - -/* Use this macro for all "normal" API functions */ -#define FUNC_ENTER_API(err) {{ \ - FUNC_ENTER_API_COMMON \ - FUNC_ENTER_API_INIT(err); \ - /* Clear thread error stack entering public functions */ \ - H5E_clear_stack(NULL); \ - { - -/* - * Use this macro for API functions that shouldn't clear the error stack - * like H5Eprint and H5Ewalk. - */ -#define FUNC_ENTER_API_NOCLEAR(err) {{ \ - FUNC_ENTER_API_COMMON \ - FUNC_ENTER_API_INIT(err); \ - { - -/* - * Use this macro for API functions that shouldn't perform _any_ initialization - * of the library or an interface, just perform tracing, etc. Examples - * are: H5check_version, etc. - * - */ -#define FUNC_ENTER_API_NOINIT {{ \ - FUNC_ENTER_API_COMMON \ - H5_PUSH_FUNC \ - BEGIN_MPE_LOG \ - { - -/* - * Use this macro for API functions that shouldn't perform _any_ initialization - * of the library or an interface or push themselves on the function - * stack, just perform tracing, etc. Examples - * are: H5close, H5check_version, etc. - * - */ -#define FUNC_ENTER_API_NOINIT_NOERR_NOFS {{ \ - FUNC_ENTER_API_VARS \ - FUNC_ENTER_COMMON_NOERR(H5_IS_API(FUNC)); \ - FUNC_ENTER_API_THREADSAFE; \ - BEGIN_MPE_LOG \ - { - -/* Note: this macro only works when there's _no_ interface initialization routine for the module */ -#define FUNC_ENTER_NOAPI_INIT(err) \ - /* Initialize the interface, if appropriate */ \ - H5_INTERFACE_INIT(err) \ - \ - /* Push the name of this function on the function stack */ \ - H5_PUSH_FUNC - -/* Use this macro for all "normal" non-API functions */ -#define FUNC_ENTER_NOAPI(err) { \ - FUNC_ENTER_COMMON(!H5_IS_API(FUNC)); \ - FUNC_ENTER_NOAPI_INIT(err) \ - { - -/* Use this macro for all "normal" package-level functions */ -#define FUNC_ENTER_PACKAGE { \ - FUNC_ENTER_COMMON(H5_IS_PKG(FUNC)); \ - H5_PUSH_FUNC \ - { - -/* Use this macro for package-level functions which propgate errors, but don't issue them */ -#define FUNC_ENTER_PACKAGE_NOERR { \ - FUNC_ENTER_COMMON_NOERR(H5_IS_PKG(FUNC)); \ - H5_PUSH_FUNC \ - { - -/* Use this macro for all "normal" staticly-scoped functions */ -#define FUNC_ENTER_STATIC { \ - FUNC_ENTER_COMMON(H5_IS_PKG(FUNC)); \ - H5_PUSH_FUNC \ - { - -/* Use this macro for staticly-scoped functions which propgate errors, but don't issue them */ -#define FUNC_ENTER_STATIC_NOERR { \ - FUNC_ENTER_COMMON_NOERR(H5_IS_PKG(FUNC)); \ - H5_PUSH_FUNC \ - { - -/* Use this macro for all non-API functions, which propagate errors, but don't issue them */ -#define FUNC_ENTER_NOAPI_NOERR { \ - FUNC_ENTER_COMMON_NOERR(!H5_IS_API(FUNC)); \ - FUNC_ENTER_NOAPI_INIT(-) \ - { - -/* - * Use this macro for non-API functions which fall into these categories: - * - static functions, since they must be called from a function in the - * interface, the library and interface must already be - * initialized. - * - functions which are called during library shutdown, since we don't - * want to re-initialize the library. - */ -#define FUNC_ENTER_NOAPI_NOINIT { \ - FUNC_ENTER_COMMON(!H5_IS_API(FUNC)); \ - H5_PUSH_FUNC \ - { - -/* - * Use this macro for non-API functions which fall into these categories: - * - static functions, since they must be called from a function in the - * interface, the library and interface must already be - * initialized. - * - functions which are called during library shutdown, since we don't - * want to re-initialize the library. - * - functions that propagate, but don't issue errors - */ -#define FUNC_ENTER_NOAPI_NOINIT_NOERR { \ - FUNC_ENTER_COMMON_NOERR(!H5_IS_API(FUNC)); \ - H5_PUSH_FUNC \ - { - -/* - * Use this macro for non-API functions which fall into these categories: - * - functions which shouldn't push their name on the function stack - * (so far, just the H5CS routines themselves) - * - * This macro is used for functions which fit the above categories _and_ - * also don't use the 'FUNC' variable (i.e. don't push errors on the error stack) - * - */ -#define FUNC_ENTER_NOAPI_NOERR_NOFS { \ - FUNC_ENTER_COMMON_NOERR(!H5_IS_API(FUNC)); \ - { - -/*------------------------------------------------------------------------- - * Purpose: Register function exit for code profiling. This should be - * the last statement executed by a function. - * - * Programmer: Quincey Koziol - * - *------------------------------------------------------------------------- - */ -/* Threadsafety termination code for API routines */ -#define FUNC_LEAVE_API_THREADSAFE \ - H5_API_UNLOCK \ - H5_API_SET_CANCEL - -#define FUNC_LEAVE_API(ret_value) \ - FINISH_MPE_LOG \ - H5TRACE_RETURN(ret_value); \ - H5_POP_FUNC \ - if(err_occurred) \ - (void)H5E_dump_api_stack(TRUE); \ - FUNC_LEAVE_API_THREADSAFE \ - return(ret_value); \ - } /*end scope from end of FUNC_ENTER*/ \ -}} /*end scope from beginning of FUNC_ENTER*/ - -/* Use this macro to match the FUNC_ENTER_API_NOFS macro */ -#define FUNC_LEAVE_API_NOFS(ret_value) \ - FINISH_MPE_LOG \ - H5TRACE_RETURN(ret_value); \ - FUNC_LEAVE_API_THREADSAFE \ - return(ret_value); \ - } /*end scope from end of FUNC_ENTER*/ \ -}} /*end scope from beginning of FUNC_ENTER*/ - -#define FUNC_LEAVE_NOAPI(ret_value) \ - H5_POP_FUNC \ - return(ret_value); \ - } /*end scope from end of FUNC_ENTER*/ \ -} /*end scope from beginning of FUNC_ENTER*/ - -#define FUNC_LEAVE_NOAPI_VOID \ - H5_POP_FUNC \ - return; \ - } /*end scope from end of FUNC_ENTER*/ \ -} /*end scope from beginning of FUNC_ENTER*/ - -/* - * Use this macro for non-API functions which fall into these categories: - * - functions which didn't push their name on the function stack - * (so far, just the H5CS routines themselves) - */ -#define FUNC_LEAVE_NOAPI_NOFS(ret_value) \ - return(ret_value); \ - } /*end scope from end of FUNC_ENTER*/ \ -} /*end scope from beginning of FUNC_ENTER*/ - - -/* Macro for "glueing" together items, for re-scanning macros */ -#define H5_GLUE(x,y) x##y -#define H5_GLUE3(x,y,z) x##y##z -#define H5_GLUE4(w,x,y,z) w##x##y##z - -/* Compile-time "assert" macro */ -#define HDcompile_assert(e) ((void)sizeof(char[ !!(e) ? 1 : -1])) -/* Variants that are correct, but generate compile-time warnings in some circumstances: - #define HDcompile_assert(e) do { enum { compile_assert__ = 1 / (e) }; } while(0) - #define HDcompile_assert(e) do { typedef struct { unsigned int b: (e); } x; } while(0) -*/ - -/* Macros for enabling/disabling particular GCC warnings */ -/* (see the following web-sites for more info: - * http://www.dbp-consulting.com/tutorials/SuppressingGCCWarnings.html - * http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas - */ -/* These pragmas are only implemented usefully in gcc 4.6+ */ -#if ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406 - #define GCC_DIAG_STR(s) #s - #define GCC_DIAG_JOINSTR(x,y) GCC_DIAG_STR(x ## y) - #define GCC_DIAG_DO_PRAGMA(x) _Pragma (#x) - #define GCC_DIAG_PRAGMA(x) GCC_DIAG_DO_PRAGMA(GCC diagnostic x) - - #define GCC_DIAG_OFF(x) GCC_DIAG_PRAGMA(push) GCC_DIAG_PRAGMA(ignored GCC_DIAG_JOINSTR(-W,x)) - #define GCC_DIAG_ON(x) GCC_DIAG_PRAGMA(pop) -#else - #define GCC_DIAG_OFF(x) - #define GCC_DIAG_ON(x) -#endif - -/* Private functions, not part of the publicly documented API */ -H5_DLL herr_t H5_init_library(void); -H5_DLL void H5_term_library(void); - -/* Functions to terminate interfaces */ -H5_DLL int H5A_term_interface(void); -H5_DLL int H5AC_term_interface(void); -H5_DLL int H5D_term_interface(void); -H5_DLL int H5E_term_interface(void); -H5_DLL int H5F_term_interface(void); -H5_DLL int H5FS_term_interface(void); -H5_DLL int H5G_term_interface(void); -H5_DLL int H5I_term_interface(void); -H5_DLL int H5L_term_interface(void); -H5_DLL int H5P_term_interface(void); -H5_DLL int H5PL_term_interface(void); -H5_DLL int H5R_term_interface(void); -H5_DLL int H5S_term_interface(void); -H5_DLL int H5T_term_interface(void); -H5_DLL int H5Z_term_interface(void); - -/* Checksum functions */ -H5_DLL uint32_t H5_checksum_fletcher32(const void *data, size_t len); -H5_DLL uint32_t H5_checksum_crc(const void *data, size_t len); -H5_DLL uint32_t H5_checksum_lookup3(const void *data, size_t len, uint32_t initval); -H5_DLL uint32_t H5_checksum_metadata(const void *data, size_t len, uint32_t initval); -H5_DLL uint32_t H5_hash_string(const char *str); - -/* Functions for building paths, etc. */ -H5_DLL herr_t H5_build_extpath(const char *, char ** /*out*/ ); - -/* Functions for debugging */ -H5_DLL herr_t H5_buffer_dump(FILE *stream, int indent, const uint8_t *buf, - const uint8_t *marker, size_t buf_offset, size_t buf_size); - -#endif /* _H5private_H */ - +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* Programmer: Robb Matzke + * Friday, October 30, 1998 + * + * Purpose: This file is included by all HDF5 library source files to + * define common things which are not defined in the HDF5 API. + * The configuration constants like H5_HAVE_UNISTD_H etc. are + * defined in H5config.h which is included by H5public.h. + * + */ + +#ifndef _H5private_H +#define _H5private_H + +#include "H5public.h" /* Include Public Definitions */ + +/* include the pthread header */ +#ifdef H5_HAVE_THREADSAFE + #ifdef H5_HAVE_WIN32_API + #ifndef H5_HAVE_WIN_THREADS + #ifdef H5_HAVE_PTHREAD_H + #include + #endif /* H5_HAVE_PTHREAD_H */ + #endif /* H5_HAVE_WIN_THREADS */ + #else /* H5_HAVE_WIN32_API */ + #ifdef H5_HAVE_PTHREAD_H + #include + #endif /* H5_HAVE_PTHREAD_H */ + #endif /* H5_HAVE_WIN32_API */ +#endif /* H5_HAVE_THREADSAFE */ + +/* + * Include ANSI-C header files. + */ +#ifdef H5_STDC_HEADERS +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +#endif + +/* + * If _POSIX_VERSION is defined in unistd.h then this system is Posix.1 + * compliant. Otherwise all bets are off. + */ +#ifdef H5_HAVE_UNISTD_H +# include +# include +#endif +#ifdef _POSIX_VERSION +# include +# include +#endif + +/* + * C9x integer types + */ +#ifndef __cplusplus +#ifdef H5_HAVE_STDINT_H +# include +#endif +#endif + +/* + * The `struct stat' data type for stat() and fstat(). This is a Posix file + * but often apears on non-Posix systems also. The `struct stat' is required + * for hdf5 to compile, although only a few fields are actually used. + */ +#ifdef H5_HAVE_SYS_STAT_H +# include +#endif + +/* + * If a program may include both `time.h' and `sys/time.h' then + * TIME_WITH_SYS_TIME is defined (see AC_HEADER_TIME in configure.ac). + * On some older systems, `sys/time.h' includes `time.h' but `time.h' is not + * protected against multiple inclusion, so programs should not explicitly + * include both files. This macro is useful in programs that use, for example, + * `struct timeval' or `struct timezone' as well as `struct tm'. It is best + * used in conjunction with `HAVE_SYS_TIME_H', whose existence is checked + * by `AC_CHECK_HEADERS(sys/time.h)' in configure.ac. + */ +#if defined(H5_TIME_WITH_SYS_TIME) +# include +# include +#elif defined(H5_HAVE_SYS_TIME_H) +# include +#else +# include +#endif + +/* + * Longjumps are used to detect alignment constrants + */ +#ifdef H5_HAVE_SETJMP_H +# include +#endif + +/* + * Resource usage is not Posix.1 but HDF5 uses it anyway for some performance + * and debugging code if available. + */ +#ifdef H5_HAVE_SYS_RESOURCE_H +# include +#endif + +/* + * Unix ioctls. These are used by h5ls (and perhaps others) to determine a + * resonable output width. + */ +#ifdef H5_HAVE_SYS_IOCTL_H +# include +#endif + +/* + * System information. These are needed on the DEC Alpha to turn off fixing + * of unaligned accesses by the operating system during detection of + * alignment constraints in H5detect.c:main(). + */ +#ifdef H5_HAVE_SYS_SYSINFO_H +# include +#endif +#ifdef H5_HAVE_SYS_PROC_H +# include +#endif +#ifdef H5_HAVE_IO_H +# include +#endif + +/* + * Dynamic library handling. These are needed for dynamically loading I/O + * filters and VFDs. + */ +#ifdef H5_HAVE_DLFCN_H +#include +#endif +#ifdef H5_HAVE_DIRENT_H +#include +#endif + + +#ifdef H5_HAVE_WIN32_API +/* The following two defines must be before any windows headers are included */ +#define WIN32_LEAN_AND_MEAN /* Exclude rarely-used stuff from Windows headers */ +#define NOGDI /* Exclude Graphic Display Interface macros */ + +#ifdef H5_HAVE_WINSOCK2_H +#include +#endif + +#ifdef H5_HAVE_THREADSAFE +#include /* For _beginthread() */ +#endif + +#include +#include /* For _getcwd() */ + +#endif /*H5_HAVE_WIN32_API*/ + +/* H5_inline */ +#ifndef H5_inline +#define H5_inline +#endif /* H5_inline */ + + +#ifndef F_OK +# define F_OK 00 +# define W_OK 02 +# define R_OK 04 +#endif + +/* + * MPE Instrumentation support + */ +#ifdef H5_HAVE_MPE +/*------------------------------------------------------------------------ + * Purpose: Begin to collect MPE log information for a function. It should + * be ahead of the actual function's process. + * + * Programmer: Long Wang + * + *------------------------------------------------------------------------ + */ +#include "mpe.h" +/* + * #define eventa(func_name) h5_mpe_ ## func_name ## _a + * #define eventb(func_name) h5_mpe_ ## func_name ## _b + */ +#define eventa(func_name) h5_mpe_eventa +#define eventb(func_name) h5_mpe_eventb +#define MPE_LOG_VARS \ + static int eventa(FUNC) = -1; \ + static int eventb(FUNC) = -1; \ + const char* p_event_start = "start" FUNC; + +/* Hardwire the color to "red", since that's what all the routines are using + * now. In the future, if we want to change that color for a given routine, + * we should define a "FUNC_ENTER_API_COLOR" macro which takes an extra 'color' + * parameter and then make additional FUNC_ENTER__COLOR macros to get that + * color information down to the BEGIN_MPE_LOG macro (which should have a new + * BEGIN_MPE_LOG_COLOR variant). -QAK + */ +#define BEGIN_MPE_LOG \ + if (H5_MPEinit_g){ \ + if (eventa(FUNC) == -1 && eventb(FUNC) == -1) { \ + const char* p_color = "red"; \ + eventa(FUNC)=MPE_Log_get_event_number(); \ + eventb(FUNC)=MPE_Log_get_event_number(); \ + MPE_Describe_state(eventa(FUNC), eventb(FUNC), (char *)FUNC, (char *)p_color); \ + } \ + MPE_Log_event(eventa(FUNC), 0, (char *)p_event_start); \ + } + + +/*------------------------------------------------------------------------ + * Purpose: Finish the collection of MPE log information for a function. + * It should be after the actual function's process. + * + * Programmer: Long Wang + */ +#define FINISH_MPE_LOG \ + if (H5_MPEinit_g) { \ + MPE_Log_event(eventb(FUNC), 0, (char *)FUNC); \ + } + +#else /* H5_HAVE_MPE */ +#define MPE_LOG_VARS /* void */ +#define BEGIN_MPE_LOG /* void */ +#define FINISH_MPE_LOG /* void */ + +#endif /* H5_HAVE_MPE */ + +/* + * dmalloc (debugging malloc) support + */ +#ifdef H5_HAVE_DMALLOC_H +#include "dmalloc.h" +#endif /* H5_HAVE_DMALLOC_H */ + +/* + * NT doesn't define SIGBUS, but since NT only runs on processors + * that do not have alignment constraints a SIGBUS would never be + * raised, so we just replace it with SIGILL (which also should + * never be raised by the hdf5 library). + */ +#ifndef SIGBUS +# define SIGBUS SIGILL +#endif + +/* + * Does the compiler support the __attribute__(()) syntax? This is how gcc + * suppresses warnings about unused function arguments. It's no big deal if + * we don't. + */ +#ifdef __cplusplus +# define __attribute__(X) /*void*/ +# define UNUSED /*void*/ +#else /* __cplusplus */ +#ifdef H5_HAVE_ATTRIBUTE +# define UNUSED __attribute__((unused)) +#else +# define __attribute__(X) /*void*/ +# define UNUSED /*void*/ +#endif +#endif /* __cplusplus */ + +/* + * Status return values for the `herr_t' type. + * Since some unix/c routines use 0 and -1 (or more precisely, non-negative + * vs. negative) as their return code, and some assumption had been made in + * the code about that, it is important to keep these constants the same + * values. When checking the success or failure of an integer-valued + * function, remember to compare against zero and not one of these two + * values. + */ +#define SUCCEED 0 +#define FAIL (-1) +#define UFAIL (unsigned)(-1) + +/* number of members in an array */ +#ifndef NELMTS +# define NELMTS(X) (sizeof(X)/sizeof(X[0])) +#endif + +/* minimum of two, three, or four values */ +#undef MIN +#define MIN(a,b) (((a)<(b)) ? (a) : (b)) +#define MIN2(a,b) MIN(a,b) +#define MIN3(a,b,c) MIN(a,MIN(b,c)) +#define MIN4(a,b,c,d) MIN(MIN(a,b),MIN(c,d)) + +/* maximum of two, three, or four values */ +#undef MAX +#define MAX(a,b) (((a)>(b)) ? (a) : (b)) +#define MAX2(a,b) MAX(a,b) +#define MAX3(a,b,c) MAX(a,MAX(b,c)) +#define MAX4(a,b,c,d) MAX(MAX(a,b),MAX(c,d)) + +/* limit the middle value to be within a range (inclusive) */ +#define RANGE(LO,X,HI) MAX(LO,MIN(X,HI)) + +/* absolute value */ +#ifndef ABS +# define ABS(a) (((a)>=0) ? (a) : -(a)) +#endif + +/* sign of argument */ +#ifndef SIGN +# define SIGN(a) ((a)>0 ? 1 : (a)<0 ? -1 : 0) +#endif + +/* test for number that is a power of 2 */ +/* (from: http://graphics.stanford.edu/~seander/bithacks.html#DetermineIfPowerOf2) */ +# define POWER_OF_TWO(n) (!(n & (n - 1)) && n) + +/* + * HDF Boolean type. + */ +#ifndef FALSE +# define FALSE 0 +#endif +#ifndef TRUE +# define TRUE 1 +#endif + +/* + * Numeric data types. Some of these might be defined in Posix.1g, otherwise + * we define them with the closest available type which is at least as large + * as the number of bits indicated in the type name. The `int8' types *must* + * be exactly one byte wide because we use it for pointer calculations to + * void* memory. + */ +#if H5_SIZEOF_INT8_T==0 + typedef signed char int8_t; +# undef H5_SIZEOF_INT8_T +# define H5_SIZEOF_INT8_T H5_SIZEOF_CHAR +#elif H5_SIZEOF_INT8_T==1 +#else +# error "the int8_t type must be 1 byte wide" +#endif + +#if H5_SIZEOF_UINT8_T==0 + typedef unsigned char uint8_t; +# undef H5_SIZEOF_UINT8_T +# define H5_SIZEOF_UINT8_T H5_SIZEOF_CHAR +#elif H5_SIZEOF_UINT8_T==1 +#else +# error "the uint8_t type must be 1 byte wide" +#endif + +#if H5_SIZEOF_INT16_T>=2 +#elif H5_SIZEOF_SHORT>=2 + typedef short int16_t; +# undef H5_SIZEOF_INT16_T +# define H5_SIZEOF_INT16_T H5_SIZEOF_SHORT +#elif H5_SIZEOF_INT>=2 + typedef int int16_t; +# undef H5_SIZEOF_INT16_T +# define H5_SIZEOF_INT16_T H5_SIZEOF_INT +#else +# error "nothing appropriate for int16_t" +#endif + +#if H5_SIZEOF_UINT16_T>=2 +#elif H5_SIZEOF_SHORT>=2 + typedef unsigned short uint16_t; +# undef H5_SIZEOF_UINT16_T +# define H5_SIZEOF_UINT16_T H5_SIZEOF_SHORT +#elif H5_SIZEOF_INT>=2 + typedef unsigned uint16_t; +# undef H5_SIZEOF_UINT16_T +# define H5_SIZEOF_UINT16_T H5_SIZEOF_INT +#else +# error "nothing appropriate for uint16_t" +#endif + +#if H5_SIZEOF_INT32_T>=4 +#elif H5_SIZEOF_SHORT>=4 + typedef short int32_t; +# undef H5_SIZEOF_INT32_T +# define H5_SIZEOF_INT32_T H5_SIZEOF_SHORT +#elif H5_SIZEOF_INT>=4 + typedef int int32_t; +# undef H5_SIZEOF_INT32_T +# define H5_SIZEOF_INT32_T H5_SIZEOF_INT +#elif H5_SIZEOF_LONG>=4 + typedef long int32_t; +# undef H5_SIZEOF_INT32_T +# define H5_SIZEOF_INT32_T H5_SIZEOF_LONG +#else +# error "nothing appropriate for int32_t" +#endif + +/* + * Maximum and minimum values. These should be defined in for the + * most part. + */ +#ifndef LLONG_MAX +# define LLONG_MAX ((long long)(((unsigned long long)1 \ + <<(8*sizeof(long long)-1))-1)) +# define LLONG_MIN ((long long)(-LLONG_MAX)-1) +#endif +#ifndef ULLONG_MAX +# define ULLONG_MAX ((unsigned long long)((long long)(-1))) +#endif +#ifndef SIZET_MAX +# define SIZET_MAX ((size_t)(ssize_t)(-1)) +# define SSIZET_MAX ((ssize_t)(((size_t)1<<(8*sizeof(ssize_t)-1))-1)) +#endif + +/* + * Maximum & minimum values for our typedefs. + */ +#define HSIZET_MAX ((hsize_t)ULLONG_MAX) +#define HSSIZET_MAX ((hssize_t)LLONG_MAX) +#define HSSIZET_MIN (~(HSSIZET_MAX)) + +/* + * Types and max sizes for POSIX I/O. + * OS X (Darwin) is odd since the max I/O size does not match the types. + */ +#if defined(H5_HAVE_WIN32_API) +# define h5_posix_io_t unsigned int +# define h5_posix_io_ret_t int +# define H5_POSIX_MAX_IO_BYTES INT_MAX +#elif defined(H5_HAVE_DARWIN) +# define h5_posix_io_t size_t +# define h5_posix_io_ret_t ssize_t +# define H5_POSIX_MAX_IO_BYTES INT_MAX +#else +# define h5_posix_io_t size_t +# define h5_posix_io_ret_t ssize_t +# define H5_POSIX_MAX_IO_BYTES SSIZET_MAX +#endif + +/* + * A macro to portably increment enumerated types. + */ +#ifndef H5_INC_ENUM +# define H5_INC_ENUM(TYPE,VAR) (VAR)=((TYPE)((VAR)+1)) +#endif + +/* + * A macro to portably decrement enumerated types. + */ +#ifndef H5_DEC_ENUM +# define H5_DEC_ENUM(TYPE,VAR) (VAR)=((TYPE)((VAR)-1)) +#endif + +/* + * Data types and functions for timing certain parts of the library. + */ +typedef struct { + double utime; /*user time */ + double stime; /*system time */ + double etime; /*elapsed wall-clock time */ +} H5_timer_t; + +H5_DLL void H5_timer_reset (H5_timer_t *timer); +H5_DLL void H5_timer_begin (H5_timer_t *timer); +H5_DLL void H5_timer_end (H5_timer_t *sum/*in,out*/, + H5_timer_t *timer/*in,out*/); +H5_DLL void H5_bandwidth(char *buf/*out*/, double nbytes, double nseconds); +H5_DLL time_t H5_now(void); + +/* Depth of object copy */ +typedef enum { + H5_COPY_SHALLOW, /* Shallow copy from source to destination, just copy field pointers */ + H5_COPY_DEEP /* Deep copy from source to destination, including duplicating fields pointed to */ +} H5_copy_depth_t; + +/* Common object copying udata (right now only used for groups and datasets) */ +typedef struct H5O_copy_file_ud_common_t { + struct H5O_pline_t *src_pline; /* Copy of filter pipeline for object */ +} H5O_copy_file_ud_common_t; + +/* Unique object "position" */ +typedef struct { + unsigned long fileno; /* The unique identifier for the file of the object */ + haddr_t addr; /* The unique address of the object's header in that file */ +} H5_obj_t; + +/* + * Redefine all the POSIX functions. We should never see a POSIX + * function (or any other non-HDF5 function) in the source! + */ + +/* Put all platform-specific definitions in the following file */ +/* so that the following definitions are platform free. */ +#include "H5win32defs.h" /* For Windows-specific definitions */ + +#ifndef HDabort + #define HDabort() abort() +#endif /* HDabort */ +#ifndef HDabs + #define HDabs(X) abs(X) +#endif /* HDabs */ +#ifndef HDaccess + #define HDaccess(F,M) access(F, M) +#endif /* HDaccess */ +#ifndef HDacos + #define HDacos(X) acos(X) +#endif /* HDacos */ +#ifndef HDalarm + #ifdef H5_HAVE_ALARM + #define HDalarm(N) alarm(N) + #else /* H5_HAVE_ALARM */ + #define HDalarm(N) (0) + #endif /* H5_HAVE_ALARM */ +#endif /* HDalarm */ +#ifndef HDasctime + #define HDasctime(T) asctime(T) +#endif /* HDasctime */ +#ifndef HDasin + #define HDasin(X) asin(X) +#endif /* HDasin */ +#ifndef HDassert + #define HDassert(X) assert(X) +#endif /* HDassert */ +#ifndef HDatan + #define HDatan(X) atan(X) +#endif /* HDatan */ +#ifndef HDatan2 + #define HDatan2(X,Y) atan2(X,Y) +#endif /* HDatan2 */ +#ifndef HDatexit + #define HDatexit(F) atexit(F) +#endif /* HDatexit */ +#ifndef HDatof + #define HDatof(S) atof(S) +#endif /* HDatof */ +#ifndef HDatoi + #define HDatoi(S) atoi(S) +#endif /* HDatoi */ +#ifndef HDatol + #define HDatol(S) atol(S) +#endif /* HDatol */ +#ifndef HDBSDgettimeofday + #define HDBSDgettimeofday(S,P) BSDgettimeofday(S,P) +#endif /* HDBSDgettimeofday */ +#ifndef HDbsearch + #define HDbsearch(K,B,N,Z,F) bsearch(K,B,N,Z,F) +#endif /* HDbsearch */ +#ifndef HDcalloc + #define HDcalloc(N,Z) calloc(N,Z) +#endif /* HDcalloc */ +#ifndef HDceil + #define HDceil(X) ceil(X) +#endif /* HDceil */ +#ifndef HDcfgetispeed + #define HDcfgetispeed(T) cfgetispeed(T) +#endif /* HDcfgetispeed */ +#ifndef HDcfgetospeed + #define HDcfgetospeed(T) cfgetospeed(T) +#endif /* HDcfgetospeed */ +#ifndef HDcfsetispeed + #define HDcfsetispeed(T,S) cfsetispeed(T,S) +#endif /* HDcfsetispeed */ +#ifndef HDcfsetospeed + #define HDcfsetospeed(T,S) cfsetospeed(T,S) +#endif /* HDcfsetospeed */ +#ifndef HDchdir + #define HDchdir(S) chdir(S) +#endif /* HDchdir */ +#ifndef HDchmod + #define HDchmod(S,M) chmod(S,M) +#endif /* HDchmod */ +#ifndef HDchown + #define HDchown(S,O,G) chown(S,O,G) +#endif /* HDchown */ +#ifndef HDclearerr + #define HDclearerr(F) clearerr(F) +#endif /* HDclearerr */ +#ifndef HDclock + #define HDclock() clock() +#endif /* HDclock */ +#ifndef HDclose + #define HDclose(F) close(F) +#endif /* HDclose */ +#ifndef HDclosedir + #define HDclosedir(D) closedir(D) +#endif /* HDclosedir */ +#ifndef HDcos + #define HDcos(X) cos(X) +#endif /* HDcos */ +#ifndef HDcosh + #define HDcosh(X) cosh(X) +#endif /* HDcosh */ +#ifndef HDcreat + #define HDcreat(S,M) creat(S,M) +#endif /* HDcreat */ +#ifndef HDctermid + #define HDctermid(S) ctermid(S) +#endif /* HDctermid */ +#ifndef HDctime + #define HDctime(T) ctime(T) +#endif /* HDctime */ +#ifndef HDcuserid + #define HDcuserid(S) cuserid(S) +#endif /* HDcuserid */ +#ifndef HDdifftime + #ifdef H5_HAVE_DIFFTIME + #define HDdifftime(X,Y) difftime(X,Y) + #else /* H5_HAVE_DIFFTIME */ + #define HDdifftime(X,Y) ((double)(X)-(double)(Y)) + #endif /* H5_HAVE_DIFFTIME */ +#endif /* HDdifftime */ +#ifndef HDdiv + #define HDdiv(X,Y) div(X,Y) +#endif /* HDdiv */ +#ifndef HDdup + #define HDdup(F) dup(F) +#endif /* HDdup */ +#ifndef HDdup2 + #define HDdup2(F,I) dup2(F,I) +#endif /* HDdup2 */ +/* execl() variable arguments */ +/* execle() variable arguments */ +/* execlp() variable arguments */ +#ifndef HDexecv + #define HDexecv(S,AV) execv(S,AV) +#endif /* HDexecv */ +#ifndef HDexecve + #define HDexecve(S,AV,E) execve(S,AV,E) +#endif /* HDexecve */ +#ifndef HDexecvp + #define HDexecvp(S,AV) execvp(S,AV) +#endif /* HDexecvp */ +#ifndef HDexit + #define HDexit(N) exit(N) +#endif /* HDexit */ +#ifndef HD_exit + #define HD_exit(N) _exit(N) +#endif /* HD_exit */ +#ifndef HDexp + #define HDexp(X) exp(X) +#endif /* HDexp */ +#ifndef HDfabs + #define HDfabs(X) fabs(X) +#endif /* HDfabs */ +/* use ABS() because fabsf() fabsl() are not common yet. */ +#ifndef HDfabsf + #define HDfabsf(X) ABS(X) +#endif /* HDfabsf */ +#ifndef HDfabsl + #define HDfabsl(X) ABS(X) +#endif /* HDfabsl */ +#ifndef HDfclose + #define HDfclose(F) fclose(F) +#endif /* HDfclose */ +/* fcntl() variable arguments */ +#ifndef HDfdopen + #define HDfdopen(N,S) fdopen(N,S) +#endif /* HDfdopen */ +#ifndef HDfeof + #define HDfeof(F) feof(F) +#endif /* HDfeof */ +#ifndef HDferror + #define HDferror(F) ferror(F) +#endif /* HDferror */ +#ifndef HDfflush + #define HDfflush(F) fflush(F) +#endif /* HDfflush */ +#ifndef HDfgetc + #define HDfgetc(F) fgetc(F) +#endif /* HDfgetc */ +#ifndef HDfgetpos + #define HDfgetpos(F,P) fgetpos(F,P) +#endif /* HDfgetpos */ +#ifndef HDfgets + #define HDfgets(S,N,F) fgets(S,N,F) +#endif /* HDfgets */ +#ifndef HDfileno + #define HDfileno(F) fileno(F) +#endif /* HDfileno */ +#ifndef HDfloor + #define HDfloor(X) floor(X) +#endif /* HDfloor */ +#ifndef HDfmod + #define HDfmod(X,Y) fmod(X,Y) +#endif /* HDfmod */ +#ifndef HDfopen + #define HDfopen(S,M) fopen(S,M) +#endif /* HDfopen */ +#ifndef HDfork + #define HDfork() fork() +#endif /* HDfork */ +#ifndef HDfpathconf + #define HDfpathconf(F,N) fpathconf(F,N) +#endif /* HDfpathconf */ +H5_DLL int HDfprintf (FILE *stream, const char *fmt, ...); +#ifndef HDfputc + #define HDfputc(C,F) fputc(C,F) +#endif /* HDfputc */ +#ifndef HDfputs + #define HDfputs(S,F) fputs(S,F) +#endif /* HDfputs */ +#ifndef HDfread + #define HDfread(M,Z,N,F) fread(M,Z,N,F) +#endif /* HDfread */ +#ifndef HDfree + #define HDfree(M) free(M) +#endif /* HDfree */ +#ifndef HDfreopen + #define HDfreopen(S,M,F) freopen(S,M,F) +#endif /* HDfreopen */ +#ifndef HDfrexp + #define HDfrexp(X,N) frexp(X,N) +#endif /* HDfrexp */ +/* Check for Cray-specific 'frexpf()' and 'frexpl()' routines */ +#ifndef HDfrexpf + #ifdef H5_HAVE_FREXPF + #define HDfrexpf(X,N) frexpf(X,N) + #else /* H5_HAVE_FREXPF */ + #define HDfrexpf(X,N) frexp(X,N) + #endif /* H5_HAVE_FREXPF */ +#endif /* HDfrexpf */ +#ifndef HDfrexpl + #ifdef H5_HAVE_FREXPL + #define HDfrexpl(X,N) frexpl(X,N) + #else /* H5_HAVE_FREXPL */ + #define HDfrexpl(X,N) frexp(X,N) + #endif /* H5_HAVE_FREXPL */ +#endif /* HDfrexpl */ +/* fscanf() variable arguments */ +#ifndef HDfseek + #ifdef H5_HAVE_FSEEKO + #define HDfseek(F,O,W) fseeko(F,O,W) + #else /* H5_HAVE_FSEEKO */ + #define HDfseek(F,O,W) fseek(F,O,W) + #endif /* H5_HAVE_FSEEKO */ +#endif /* HDfseek */ +#ifndef HDfsetpos + #define HDfsetpos(F,P) fsetpos(F,P) +#endif /* HDfsetpos */ +/* definitions related to the file stat utilities. + * For Unix, if off_t is not 64bit big, try use the pseudo-standard + * xxx64 versions if available. + */ +#if !defined(HDfstat) || !defined(HDstat) || !defined(HDlstat) + #if H5_SIZEOF_OFF_T!=8 && H5_SIZEOF_OFF64_T==8 && defined(H5_HAVE_STAT64) + #ifndef HDfstat + #define HDfstat(F,B) fstat64(F,B) + #endif /* HDfstat */ + #ifndef HDlstat + #define HDlstat(S,B) lstat64(S,B) + #endif /* HDlstat */ + #ifndef HDstat + #define HDstat(S,B) stat64(S,B) + #endif /* HDstat */ + typedef struct stat64 h5_stat_t; + typedef off64_t h5_stat_size_t; + #define H5_SIZEOF_H5_STAT_SIZE_T H5_SIZEOF_OFF64_T + #else /* H5_SIZEOF_OFF_T!=8 && ... */ + #ifndef HDfstat + #define HDfstat(F,B) fstat(F,B) + #endif /* HDfstat */ + #ifndef HDlstat + #define HDlstat(S,B) lstat(S,B) + #endif /* HDlstat */ + #ifndef HDstat + #define HDstat(S,B) stat(S,B) + #endif /* HDstat */ + typedef struct stat h5_stat_t; + typedef off_t h5_stat_size_t; + #define H5_SIZEOF_H5_STAT_SIZE_T H5_SIZEOF_OFF_T + #endif /* H5_SIZEOF_OFF_T!=8 && ... */ +#endif /* !defined(HDfstat) || !defined(HDstat) */ + +#ifndef HDftell + #define HDftell(F) ftell(F) +#endif /* HDftell */ +#ifndef HDftruncate + #ifdef H5_HAVE_FTRUNCATE64 + #define HDftruncate(F,L) ftruncate64(F,L) + #else + #define HDftruncate(F,L) ftruncate(F,L) + #endif +#endif /* HDftruncate */ +#ifndef HDfwrite + #define HDfwrite(M,Z,N,F) fwrite(M,Z,N,F) +#endif /* HDfwrite */ +#ifndef HDgetc + #define HDgetc(F) getc(F) +#endif /* HDgetc */ +#ifndef HDgetchar + #define HDgetchar() getchar() +#endif /* HDgetchar */ +#ifndef HDgetcwd + #define HDgetcwd(S,Z) getcwd(S,Z) +#endif /* HDgetcwd */ +#ifndef HDgetdcwd + #define HDgetdcwd(D,S,Z) getcwd(S,Z) +#endif /* HDgetdcwd */ +#ifndef HDgetdrive + #define HDgetdrive() 0 +#endif /* HDgetdrive */ +#ifndef HDgetegid + #define HDgetegid() getegid() +#endif /* HDgetegid() */ +#ifndef HDgetenv + #define HDgetenv(S) getenv(S) +#endif /* HDgetenv */ +#ifndef HDgeteuid + #define HDgeteuid() geteuid() +#endif /* HDgeteuid */ +#ifndef HDgetgid + #define HDgetgid() getgid() +#endif /* HDgetgid */ +#ifndef HDgetgrgid + #define HDgetgrgid(G) getgrgid(G) +#endif /* HDgetgrgid */ +#ifndef HDgetgrnam + #define HDgetgrnam(S) getgrnam(S) +#endif /* HDgetgrnam */ +#ifndef HDgetgroups + #define HDgetgroups(Z,G) getgroups(Z,G) +#endif /* HDgetgroups */ +#ifndef HDgethostname + #define HDgethostname(N,L) gethostname(N,L) +#endif /* HDgetlogin */ +#ifndef HDgetlogin + #define HDgetlogin() getlogin() +#endif /* HDgetlogin */ +#ifndef HDgetpgrp + #define HDgetpgrp() getpgrp() +#endif /* HDgetpgrp */ +#ifndef HDgetpid + #define HDgetpid() getpid() +#endif /* HDgetpid */ +#ifndef HDgetppid + #define HDgetppid() getppid() +#endif /* HDgetppid */ +#ifndef HDgetpwnam + #define HDgetpwnam(S) getpwnam(S) +#endif /* HDgetpwnam */ +#ifndef HDgetpwuid + #define HDgetpwuid(U) getpwuid(U) +#endif /* HDgetpwuid */ +#ifndef HDgetrusage + #define HDgetrusage(X,S) getrusage(X,S) +#endif /* HDgetrusage */ +#ifndef HDgets + #define HDgets(S) gets(S) +#endif /* HDgets */ +#ifndef HDgettimeofday + #define HDgettimeofday(S,P) gettimeofday(S,P) +#endif /* HDgettimeofday */ +#ifndef HDgetuid + #define HDgetuid() getuid() +#endif /* HDgetuid */ +#ifndef HDgmtime + #define HDgmtime(T) gmtime(T) +#endif /* HDgmtime */ +#ifndef HDisalnum + #define HDisalnum(C) isalnum((int)(C)) /*cast for solaris warning*/ +#endif /* HDisalnum */ +#ifndef HDisalpha + #define HDisalpha(C) isalpha((int)(C)) /*cast for solaris warning*/ +#endif /* HDisalpha */ +#ifndef HDisatty + #define HDisatty(F) isatty(F) +#endif /* HDisatty */ +#ifndef HDiscntrl + #define HDiscntrl(C) iscntrl((int)(C)) /*cast for solaris warning*/ +#endif /* HDiscntrl */ +#ifndef HDisdigit + #define HDisdigit(C) isdigit((int)(C)) /*cast for solaris warning*/ +#endif /* HDisdigit */ +#ifndef HDisgraph + #define HDisgraph(C) isgraph((int)(C)) /*cast for solaris warning*/ +#endif /* HDisgraph */ +#ifndef HDislower + #define HDislower(C) islower((int)(C)) /*cast for solaris warning*/ +#endif /* HDislower */ +#ifndef HDisprint + #define HDisprint(C) isprint((int)(C)) /*cast for solaris warning*/ +#endif /* HDisprint */ +#ifndef HDispunct + #define HDispunct(C) ispunct((int)(C)) /*cast for solaris warning*/ +#endif /* HDispunct */ +#ifndef HDisspace + #define HDisspace(C) isspace((int)(C)) /*cast for solaris warning*/ +#endif /* HDisspace */ +#ifndef HDisupper + #define HDisupper(C) isupper((int)(C)) /*cast for solaris warning*/ +#endif /* HDisupper */ +#ifndef HDisxdigit + #define HDisxdigit(C) isxdigit((int)(C)) /*cast for solaris warning*/ +#endif /* HDisxdigit */ +#ifndef HDkill + #define HDkill(P,S) kill(P,S) +#endif /* HDkill */ +#ifndef HDlabs + #define HDlabs(X) labs(X) +#endif /* HDlabs */ +#ifndef HDldexp + #define HDldexp(X,N) ldexp(X,N) +#endif /* HDldexp */ +#ifndef HDldiv + #define HDldiv(X,Y) ldiv(X,Y) +#endif /* HDldiv */ +#ifndef HDlink + #define HDlink(OLD,NEW) link(OLD,NEW) +#endif /* HDlink */ +#ifndef HDlocaleconv + #define HDlocaleconv() localeconv() +#endif /* HDlocaleconv */ +#ifndef HDlocaltime + #define HDlocaltime(T) localtime(T) +#endif /* HDlocaltime */ +#ifndef HDlog + #define HDlog(X) log(X) +#endif /* HDlog */ +#ifndef HDlog10 + #define HDlog10(X) log10(X) +#endif /* HDlog10 */ +#ifndef HDlongjmp + #define HDlongjmp(J,N) longjmp(J,N) +#endif /* HDlongjmp */ +/* HDlseek and HDoff_t must be defined together for consistency. */ +#ifndef HDlseek + #ifdef H5_HAVE_LSEEK64 + #define HDlseek(F,O,W) lseek64(F,O,W) + #define HDoff_t off64_t + #else + #define HDlseek(F,O,W) lseek(F,O,W) + #define HDoff_t off_t + #endif +#endif /* HDlseek */ +#ifndef HDmalloc + #define HDmalloc(Z) malloc(Z) +#endif /* HDmalloc */ +#ifndef HDposix_memalign + #define HDposix_memalign(P,A,Z) posix_memalign(P,A,Z) +#endif /* HDposix_memalign */ +#ifndef HDmblen + #define HDmblen(S,N) mblen(S,N) +#endif /* HDmblen */ +#ifndef HDmbstowcs + #define HDmbstowcs(P,S,Z) mbstowcs(P,S,Z) +#endif /* HDmbstowcs */ +#ifndef HDmbtowc + #define HDmbtowc(P,S,Z) mbtowc(P,S,Z) +#endif /* HDmbtowc */ +#ifndef HDmemchr + #define HDmemchr(S,C,Z) memchr(S,C,Z) +#endif /* HDmemchr */ +#ifndef HDmemcmp + #define HDmemcmp(X,Y,Z) memcmp(X,Y,Z) +#endif /* HDmemcmp */ +/* + * The (char*) casts are required for the DEC when optimizations are turned + * on and the source and/or destination are not aligned. + */ +#ifndef HDmemcpy + #define HDmemcpy(X,Y,Z) memcpy((char*)(X),(const char*)(Y),Z) +#endif /* HDmemcpy */ +#ifndef HDmemmove + #define HDmemmove(X,Y,Z) memmove((char*)(X),(const char*)(Y),Z) +#endif /* HDmemmove */ +#ifndef HDmemset + #define HDmemset(X,C,Z) memset(X,C,Z) +#endif /* HDmemset */ +#ifndef HDmkdir + #define HDmkdir(S,M) mkdir(S,M) +#endif /* HDmkdir */ +#ifndef HDmkfifo + #define HDmkfifo(S,M) mkfifo(S,M) +#endif /* HDmkfifo */ +#ifndef HDmktime + #define HDmktime(T) mktime(T) +#endif /* HDmktime */ +#ifndef HDmodf + #define HDmodf(X,Y) modf(X,Y) +#endif /* HDmodf */ +#ifndef HDopen + #ifdef _O_BINARY + #define HDopen(S,F,M) open(S,F|_O_BINARY,M) + #else + #define HDopen(S,F,M) open(S,F,M) + #endif +#endif /* HDopen */ +#ifndef HDopendir + #define HDopendir(S) opendir(S) +#endif /* HDopendir */ +#ifndef HDpathconf + #define HDpathconf(S,N) pathconf(S,N) +#endif /* HDpathconf */ +#ifndef HDpause + #define HDpause() pause() +#endif /* HDpause */ +#ifndef HDperror + #define HDperror(S) perror(S) +#endif /* HDperror */ +#ifndef HDpipe + #define HDpipe(F) pipe(F) +#endif /* HDpipe */ +#ifndef HDpow + #define HDpow(X,Y) pow(X,Y) +#endif /* HDpow */ +/* printf() variable arguments */ +#ifndef HDputc + #define HDputc(C,F) putc(C,F) +#endif /* HDputc*/ +#ifndef HDputchar + #define HDputchar(C) putchar(C) +#endif /* HDputchar */ +#ifndef HDputs + #define HDputs(S) puts(S) +#endif /* HDputs */ +#ifndef HDqsort + #define HDqsort(M,N,Z,F) qsort(M,N,Z,F) +#endif /* HDqsort*/ +#ifndef HDraise + #define HDraise(N) raise(N) +#endif /* HDraise */ + +#ifdef H5_HAVE_RAND_R + #ifndef HDrandom + #define HDrandom() HDrand() + #endif /* HDrandom */ + H5_DLL int HDrand(void); +#elif H5_HAVE_RANDOM + #ifndef HDrand + #define HDrand() random() + #endif /* HDrand */ + #ifndef HDrandom + #define HDrandom() random() + #endif /* HDrandom */ +#else /* H5_HAVE_RANDOM */ + #ifndef HDrand + #define HDrand() rand() + #endif /* HDrand */ + #ifndef HDrandom + #define HDrandom() rand() + #endif /* HDrandom */ +#endif /* H5_HAVE_RANDOM */ + +#ifndef HDread + #define HDread(F,M,Z) read(F,M,Z) +#endif /* HDread */ +#ifndef HDreaddir + #define HDreaddir(D) readdir(D) +#endif /* HDreaddir */ +#ifndef HDrealloc + #define HDrealloc(M,Z) realloc(M,Z) +#endif /* HDrealloc */ +#ifndef HDrealpath + #define HDrealpath(F1,F2) realpath(F1,F2) +#endif /* HDrealloc */ +#ifdef H5_VMS + #ifdef __cplusplus + extern "C" { + #endif /* __cplusplus */ + int HDremove_all(const char * fname); + #ifdef __cplusplus + } + #endif /* __cplusplus */ + #ifndef HDremove + #define HDremove(S) HDremove_all(S) + #endif /* HDremove */ +#else /* H5_VMS */ + #ifndef HDremove + #define HDremove(S) remove(S) + #endif /* HDremove */ +#endif /*H5_VMS*/ +#ifndef HDrename + #define HDrename(OLD,NEW) rename(OLD,NEW) +#endif /* HDrename */ +#ifndef HDrewind + #define HDrewind(F) rewind(F) +#endif /* HDrewind */ +#ifndef HDrewinddir + #define HDrewinddir(D) rewinddir(D) +#endif /* HDrewinddir */ +#ifndef HDrmdir + #define HDrmdir(S) rmdir(S) +#endif /* HDrmdir */ +/* scanf() variable arguments */ +#ifndef HDsetbuf + #define HDsetbuf(F,S) setbuf(F,S) +#endif /* HDsetbuf */ +#ifndef HDsetgid + #define HDsetgid(G) setgid(G) +#endif /* HDsetgid */ +#ifndef HDsetjmp + #define HDsetjmp(J) setjmp(J) +#endif /* HDsetjmp */ +#ifndef HDsetlocale + #define HDsetlocale(N,S) setlocale(N,S) +#endif /* HDsetlocale */ +#ifndef HDsetpgid + #define HDsetpgid(P,PG) setpgid(P,PG) +#endif /* HDsetpgid */ +#ifndef HDsetsid + #define HDsetsid() setsid() +#endif /* HDsetsid */ +#ifndef HDsetuid + #define HDsetuid(U) setuid(U) +#endif /* HDsetuid */ +#ifndef HDsetvbuf + #define HDsetvbuf(F,S,M,Z) setvbuf(F,S,M,Z) +#endif /* HDsetvbuf */ +#ifndef HDsigaddset + #define HDsigaddset(S,N) sigaddset(S,N) +#endif /* HDsigaddset */ +#ifndef HDsigdelset + #define HDsigdelset(S,N) sigdelset(S,N) +#endif /* HDsigdelset */ +#ifndef HDsigemptyset + #define HDsigemptyset(S) sigemptyset(S) +#endif /* HDsigemptyset */ +#ifndef HDsigfillset + #define HDsigfillset(S) sigfillset(S) +#endif /* HDsigfillset */ +#ifndef HDsigismember + #define HDsigismember(S,N) sigismember(S,N) +#endif /* HDsigismember */ +#ifndef HDsiglongjmp + #define HDsiglongjmp(J,N) siglongjmp(J,N) +#endif /* HDsiglongjmp */ +#ifndef HDsignal + #define HDsignal(N,F) signal(N,F) +#endif /* HDsignal */ +#ifndef HDsigpending + #define HDsigpending(S) sigpending(S) +#endif /* HDsigpending */ +#ifndef HDsigprocmask + #define HDsigprocmask(H,S,O) sigprocmask(H,S,O) +#endif /* HDsigprocmask */ +#ifndef HDsigsetjmp + #define HDsigsetjmp(J,N) sigsetjmp(J,N) +#endif /* HDsigsetjmp */ +#ifndef HDsigsuspend + #define HDsigsuspend(S) sigsuspend(S) +#endif /* HDsigsuspend */ +#ifndef HDsin + #define HDsin(X) sin(X) +#endif /* HDsin */ +#ifndef HDsinh + #define HDsinh(X) sinh(X) +#endif /* HDsinh */ +#ifndef HDsleep + #define HDsleep(N) sleep(N) +#endif /* HDsleep */ +#ifndef HDsnprintf + #define HDsnprintf snprintf /*varargs*/ +#endif /* HDsnprintf */ +/* sprintf() variable arguments */ +#ifndef HDsqrt + #define HDsqrt(X) sqrt(X) +#endif /* HDsqrt */ +#ifdef H5_HAVE_RAND_R + H5_DLL void HDsrand(unsigned int seed); + #ifndef HDsrandom + #define HDsrandom(S) HDsrand(S) + #endif /* HDsrandom */ +#elif H5_HAVE_RANDOM + #ifndef HDsrand + #define HDsrand(S) srandom(S) + #endif /* HDsrand */ + #ifndef HDsrandom + #define HDsrandom(S) srandom(S) + #endif /* HDsrandom */ +#else /* H5_HAVE_RAND_R */ + #ifndef HDsrand + #define HDsrand(S) srand(S) + #endif /* HDsrand */ + #ifndef HDsrandom + #define HDsrandom(S) srand(S) + #endif /* HDsrandom */ +#endif /* H5_HAVE_RAND_R */ +/* sscanf() variable arguments */ + +#ifndef HDstrcat + #define HDstrcat(X,Y) strcat(X,Y) +#endif /* HDstrcat */ +#ifndef HDstrchr + #define HDstrchr(S,C) strchr(S,C) +#endif /* HDstrchr */ +#ifndef HDstrcmp + #define HDstrcmp(X,Y) strcmp(X,Y) +#endif /* HDstrcmp */ +#ifndef HDstrcasecmp + #define HDstrcasecmp(X,Y) strcasecmp(X,Y) +#endif /* HDstrcasecmp */ +#ifndef HDstrcoll + #define HDstrcoll(X,Y) strcoll(X,Y) +#endif /* HDstrcoll */ +#ifndef HDstrcpy + #define HDstrcpy(X,Y) strcpy(X,Y) +#endif /* HDstrcpy */ +#ifndef HDstrcspn + #define HDstrcspn(X,Y) strcspn(X,Y) +#endif /* HDstrcspn */ +#ifndef HDstrerror + #define HDstrerror(N) strerror(N) +#endif /* HDstrerror */ +#ifndef HDstrftime + #define HDstrftime(S,Z,F,T) strftime(S,Z,F,T) +#endif /* HDstrftime */ +#ifndef HDstrlen + #define HDstrlen(S) strlen(S) +#endif /* HDstrlen */ +#ifndef HDstrncat + #define HDstrncat(X,Y,Z) strncat(X,Y,Z) +#endif /* HDstrncat */ +#ifndef HDstrncmp + #define HDstrncmp(X,Y,Z) strncmp(X,Y,Z) +#endif /* HDstrncmp */ +#ifndef HDstrncpy + #define HDstrncpy(X,Y,Z) strncpy(X,Y,Z) +#endif /* HDstrncpy */ +#ifndef HDstrpbrk + #define HDstrpbrk(X,Y) strpbrk(X,Y) +#endif /* HDstrpbrk */ +#ifndef HDstrrchr + #define HDstrrchr(S,C) strrchr(S,C) +#endif /* HDstrrchr */ +#ifndef HDstrspn + #define HDstrspn(X,Y) strspn(X,Y) +#endif /* HDstrspn */ +#ifndef HDstrstr + #define HDstrstr(X,Y) strstr(X,Y) +#endif /* HDstrstr */ +#ifndef HDstrtod + #define HDstrtod(S,R) strtod(S,R) +#endif /* HDstrtod */ +#ifndef HDstrtok + #define HDstrtok(X,Y) strtok(X,Y) +#endif /* HDstrtok */ +#ifndef HDstrtol + #define HDstrtol(S,R,N) strtol(S,R,N) +#endif /* HDstrtol */ +H5_DLL int64_t HDstrtoll (const char *s, const char **rest, int base); +#ifndef HDstrtoul + #define HDstrtoul(S,R,N) strtoul(S,R,N) +#endif /* HDstrtoul */ +#ifndef HDstrtoull + #define HDstrtoull(S,R,N) strtoull(S,R,N) +#endif /* HDstrtoul */ +#ifndef HDstrxfrm + #define HDstrxfrm(X,Y,Z) strxfrm(X,Y,Z) +#endif /* HDstrxfrm */ +#ifdef H5_HAVE_SYMLINK + #ifndef HDsymlink + #define HDsymlink(F1,F2) symlink(F1,F2) + #endif /* HDsymlink */ +#endif /* H5_HAVE_SYMLINK */ +#ifndef HDsysconf + #define HDsysconf(N) sysconf(N) +#endif /* HDsysconf */ +#ifndef HDsystem + #define HDsystem(S) system(S) +#endif /* HDsystem */ +#ifndef HDtan + #define HDtan(X) tan(X) +#endif /* HDtan */ +#ifndef HDtanh + #define HDtanh(X) tanh(X) +#endif /* HDtanh */ +#ifndef HDtcdrain + #define HDtcdrain(F) tcdrain(F) +#endif /* HDtcdrain */ +#ifndef HDtcflow + #define HDtcflow(F,A) tcflow(F,A) +#endif /* HDtcflow */ +#ifndef HDtcflush + #define HDtcflush(F,N) tcflush(F,N) +#endif /* HDtcflush */ +#ifndef HDtcgetattr + #define HDtcgetattr(F,T) tcgetattr(F,T) +#endif /* HDtcgetattr */ +#ifndef HDtcgetpgrp + #define HDtcgetpgrp(F) tcgetpgrp(F) +#endif /* HDtcgetpgrp */ +#ifndef HDtcsendbreak + #define HDtcsendbreak(F,N) tcsendbreak(F,N) +#endif /* HDtcsendbreak */ +#ifndef HDtcsetattr + #define HDtcsetattr(F,O,T) tcsetattr(F,O,T) +#endif /* HDtcsetattr */ +#ifndef HDtcsetpgrp + #define HDtcsetpgrp(F,N) tcsetpgrp(F,N) +#endif /* HDtcsetpgrp */ +#ifndef HDtime + #define HDtime(T) time(T) +#endif /* HDtime */ +#ifndef HDtimes + #define HDtimes(T) times(T) +#endif /* HDtimes*/ +#ifndef HDtmpfile + #define HDtmpfile() tmpfile() +#endif /* HDtmpfile */ +#ifndef HDtmpnam + #define HDtmpnam(S) tmpnam(S) +#endif /* HDtmpnam */ +#ifndef HDtolower + #define HDtolower(C) tolower(C) +#endif /* HDtolower */ +#ifndef HDtoupper + #define HDtoupper(C) toupper(C) +#endif /* HDtoupper */ +#ifndef HDttyname + #define HDttyname(F) ttyname(F) +#endif /* HDttyname */ +#ifndef HDtzset + #define HDtzset() tzset() +#endif /* HDtzset */ +#ifndef HDumask + #define HDumask(N) umask(N) +#endif /* HDumask */ +#ifndef HDuname + #define HDuname(S) uname(S) +#endif /* HDuname */ +#ifndef HDungetc + #define HDungetc(C,F) ungetc(C,F) +#endif /* HDungetc */ +#ifndef HDunlink + #define HDunlink(S) unlink(S) +#endif /* HDunlink */ +#ifndef HDutime + #define HDutime(S,T) utime(S,T) +#endif /* HDutime */ +#ifndef HDva_arg + #define HDva_arg(A,T) va_arg(A,T) +#endif /* HDva_arg */ +#ifndef HDva_end + #define HDva_end(A) va_end(A) +#endif /* HDva_end */ +#ifndef HDva_start + #define HDva_start(A,P) va_start(A,P) +#endif /* HDva_start */ +#ifndef HDvasprintf + #define HDvasprintf(RET,FMT,A) vasprintf(RET,FMT,A) +#endif /* HDvasprintf */ +#ifndef HDvfprintf + #define HDvfprintf(F,FMT,A) vfprintf(F,FMT,A) +#endif /* HDvfprintf */ +#ifndef HDvprintf + #define HDvprintf(FMT,A) vprintf(FMT,A) +#endif /* HDvprintf */ +#ifndef HDvsprintf + #define HDvsprintf(S,FMT,A) vsprintf(S,FMT,A) +#endif /* HDvsprintf */ +#ifndef HDvsnprintf + #define HDvsnprintf(S,N,FMT,A) vsnprintf(S,N,FMT,A) +#endif /* HDvsnprintf */ +#ifndef HDwait + #define HDwait(W) wait(W) +#endif /* HDwait */ +#ifndef HDwaitpid + #define HDwaitpid(P,W,O) waitpid(P,W,O) +#endif /* HDwaitpid */ +#ifndef HDwcstombs + #define HDwcstombs(S,P,Z) wcstombs(S,P,Z) +#endif /* HDwcstombs */ +#ifndef HDwctomb + #define HDwctomb(S,C) wctomb(S,C) +#endif /* HDwctomb */ +#ifndef HDwrite + #define HDwrite(F,M,Z) write(F,M,Z) +#endif /* HDwrite */ + +/* + * And now for a couple non-Posix functions... Watch out for systems that + * define these in terms of macros. + */ +#if !defined strdup && !defined H5_HAVE_STRDUP +extern char *strdup(const char *s); +#endif + +#ifndef HDstrdup + #define HDstrdup(S) strdup(S) +#endif /* HDstrdup */ + +#ifndef HDpthread_self + #define HDpthread_self() pthread_self() +#endif /* HDpthread_self */ + +/* Use this version of pthread_self for printing the thread ID */ +#ifndef HDpthread_self_ulong + #define HDpthread_self_ulong() ((unsigned long)pthread_self()) +#endif /* HDpthread_self_ulong */ + +/* + * A macro for detecting over/under-flow when casting between types + */ +#ifndef NDEBUG +#define H5_CHECK_OVERFLOW(var, vartype, casttype) \ +{ \ + casttype _tmp_overflow = (casttype)(var); \ + assert((var) == (vartype)_tmp_overflow); \ +} +#else /* NDEBUG */ +#define H5_CHECK_OVERFLOW(var, vartype, casttype) +#endif /* NDEBUG */ + +/* + * A macro for detecting over/under-flow when assigning between types + */ +#ifndef NDEBUG +#define ASSIGN_TO_SMALLER_SIZE(dst, dsttype, src, srctype) \ +{ \ + srctype _tmp_src = (srctype)(src); \ + dsttype _tmp_dst = (dsttype)(_tmp_src); \ + assert(_tmp_src == (srctype)_tmp_dst); \ + (dst) = _tmp_dst; \ +} + +#define ASSIGN_TO_LARGER_SIZE_SAME_SIGNED(dst, dsttype, src, srctype) \ + (dst) = (dsttype)(src); + +#define ASSIGN_TO_LARGER_SIZE_SIGNED_TO_UNSIGNED(dst, dsttype, src, srctype) \ +{ \ + srctype _tmp_src = (srctype)(src); \ + dsttype _tmp_dst = (dsttype)(_tmp_src); \ + assert(_tmp_src >= 0); \ + assert(_tmp_src == _tmp_dst); \ + (dst) = _tmp_dst; \ +} + +#define ASSIGN_TO_LARGER_SIZE_UNSIGNED_TO_SIGNED(dst, dsttype, src, srctype) \ + (dst) = (dsttype)(src); + +#define ASSIGN_TO_SAME_SIZE_UNSIGNED_TO_SIGNED(dst, dsttype, src, srctype) \ +{ \ + srctype _tmp_src = (srctype)(src); \ + dsttype _tmp_dst = (dsttype)(_tmp_src); \ + assert(_tmp_dst >= 0); \ + assert(_tmp_src == (srctype)_tmp_dst); \ + (dst) = _tmp_dst; \ +} + +#define ASSIGN_TO_SAME_SIZE_SIGNED_TO_UNSIGNED(dst, dsttype, src, srctype) \ +{ \ + srctype _tmp_src = (srctype)(src); \ + dsttype _tmp_dst = (dsttype)(_tmp_src); \ + assert(_tmp_src >= 0); \ + assert(_tmp_src == (srctype)_tmp_dst); \ + (dst) = _tmp_dst; \ +} + +#define ASSIGN_TO_SAME_SIZE_SAME_SIGNED(dst, dsttype, src, srctype) \ + (dst) = (dsttype)(src); + +/* Include the generated overflow header file */ +#include "H5overflow.h" + +#define H5_ASSIGN_OVERFLOW(dst, src, srctype, dsttype) \ + H5_GLUE4(ASSIGN_,srctype,_TO_,dsttype)(dst,dsttype,src,srctype)\ + +#else /* NDEBUG */ +#define H5_ASSIGN_OVERFLOW(dst, src, srctype, dsttype) \ + (dst) = (dsttype)(src); +#endif /* NDEBUG */ + +#if defined(H5_HAVE_WINDOW_PATH) + +/* directory delimiter for Windows: slash and backslash are acceptable on Windows */ +#define H5_DIR_SLASH_SEPC '/' +#define H5_DIR_SEPC '\\' +#define H5_DIR_SEPS "\\" +#define H5_CHECK_DELIMITER(SS) ((SS == H5_DIR_SEPC) || (SS == H5_DIR_SLASH_SEPC)) +#define H5_CHECK_ABSOLUTE(NAME) ((HDisalpha(NAME[0])) && (NAME[1] == ':') && (H5_CHECK_DELIMITER(NAME[2]))) +#define H5_CHECK_ABS_DRIVE(NAME) ((HDisalpha(NAME[0])) && (NAME[1] == ':')) +#define H5_CHECK_ABS_PATH(NAME) (H5_CHECK_DELIMITER(NAME[0])) + +#define H5_GET_LAST_DELIMITER(NAME, ptr) { \ + char *slash, *backslash; \ + \ + slash = HDstrrchr(NAME, H5_DIR_SLASH_SEPC); \ + backslash = HDstrrchr(NAME, H5_DIR_SEPC); \ + if(backslash > slash) \ + (ptr = backslash); \ + else \ + (ptr = slash); \ +} + +#elif defined(H5_HAVE_VMS_PATH) + +/* OpenVMS pathname: $:[path] + * i.g. SYS$SYSUSERS:[LU.HDF5.SRC]H5system.c */ +#define H5_DIR_SEPC ']' +#define H5_DIR_SEPS "]" +#define H5_CHECK_DELIMITER(SS) (SS == H5_DIR_SEPC) +#define H5_CHECK_ABSOLUTE(NAME) (HDstrrchr(NAME, ':') && HDstrrchr(NAME, '[')) +#define H5_CHECK_ABS_DRIVE(NAME) (0) +#define H5_CHECK_ABS_PATH(NAME) (0) +#define H5_GET_LAST_DELIMITER(NAME, ptr) ptr = HDstrrchr(NAME, H5_DIR_SEPC); + +#else + +#define H5_DIR_SEPC '/' +#define H5_DIR_SEPS "/" +#define H5_CHECK_DELIMITER(SS) (SS == H5_DIR_SEPC) +#define H5_CHECK_ABSOLUTE(NAME) (H5_CHECK_DELIMITER(*NAME)) +#define H5_CHECK_ABS_DRIVE(NAME) (0) +#define H5_CHECK_ABS_PATH(NAME) (0) +#define H5_GET_LAST_DELIMITER(NAME, ptr) ptr = HDstrrchr(NAME, H5_DIR_SEPC); + +#endif + +#define H5_COLON_SEPC ':' + + +/* Use FUNC to safely handle variations of C99 __func__ keyword handling */ +#ifdef H5_HAVE_C99_FUNC +#define FUNC __func__ +#elif defined(H5_HAVE_FUNCTION) +#define FUNC __FUNCTION__ +#else +#error "We need __func__ or __FUNCTION__ to test function names!" +#endif + +/* + * These macros check whether debugging has been requested for a certain + * package at run-time. Code for debugging is conditionally compiled by + * defining constants like `H5X_DEBUG'. In order to see the output though + * the code must be enabled at run-time with an environment variable + * HDF5_DEBUG which is a list of packages to debug. + * + * Note: If you add/remove items from this enum then be sure to update the + * information about the package in H5_init_library(). + */ +typedef enum { + H5_PKG_A, /*Attributes */ + H5_PKG_AC, /*Meta data cache */ + H5_PKG_B, /*B-trees */ + H5_PKG_D, /*Datasets */ + H5_PKG_E, /*Error handling */ + H5_PKG_F, /*Files */ + H5_PKG_G, /*Groups */ + H5_PKG_HG, /*Global heap */ + H5_PKG_HL, /*Local heap */ + H5_PKG_I, /*Interface */ + H5_PKG_MF, /*File memory management */ + H5_PKG_MM, /*Core memory management */ + H5_PKG_O, /*Object headers */ + H5_PKG_P, /*Property lists */ + H5_PKG_S, /*Data spaces */ + H5_PKG_T, /*Data types */ + H5_PKG_V, /*Vector functions */ + H5_PKG_Z, /*Raw data filters */ + H5_NPKGS /*Must be last */ +} H5_pkg_t; + +typedef struct H5_debug_open_stream_t { + FILE *stream; /* Open output stream */ + struct H5_debug_open_stream_t *next; /* Next open output stream */ +} H5_debug_open_stream_t; + +typedef struct H5_debug_t { + FILE *trace; /*API trace output stream */ + hbool_t ttop; /*Show only top-level calls? */ + hbool_t ttimes; /*Show trace event times? */ + struct { + const char *name; /*package name */ + FILE *stream; /*output stream or NULL */ + } pkg[H5_NPKGS]; + H5_debug_open_stream_t *open_stream; /* Stack of open output streams */ +} H5_debug_t; + +extern H5_debug_t H5_debug_g; +#define H5DEBUG(X) (H5_debug_g.pkg[H5_PKG_##X].stream) +/* Do not use const else AIX strings does not show it. */ +extern char H5libhdf5_settings[]; /* embedded library information */ + +/*------------------------------------------------------------------------- + * Purpose: These macros are inserted automatically just after the + * FUNC_ENTER() macro of API functions and are used to trace + * application program execution. Unless H5_DEBUG_API has been + * defined they are no-ops. + * + * Arguments: R - Return type encoded as a string + * T - Argument types encoded as a string + * A0-An - Arguments. The number at the end of the macro name + * indicates the number of arguments. + * + * Programmer: Robb Matzke + * + * Modifications: + *------------------------------------------------------------------------- + */ +#ifdef H5_DEBUG_API +#define H5TRACE_DECL const char *RTYPE=NULL; \ + double CALLTIME; +#define H5TRACE0(R,T) RTYPE=R; \ + CALLTIME=H5_trace(NULL,FUNC,T) +#define H5TRACE1(R,T,A0) RTYPE=R; \ + CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0) +#define H5TRACE2(R,T,A0,A1) RTYPE=R; \ + CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1) +#define H5TRACE3(R,T,A0,A1,A2) RTYPE=R; \ + CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2) +#define H5TRACE4(R,T,A0,A1,A2,A3) RTYPE=R; \ + CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2,#A3,A3) +#define H5TRACE5(R,T,A0,A1,A2,A3,A4) RTYPE=R; \ + CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2,#A3,A3, \ + #A4,A4) +#define H5TRACE6(R,T,A0,A1,A2,A3,A4,A5) RTYPE=R; \ + CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2,#A3,A3, \ + #A4,A4,#A5,A5) +#define H5TRACE7(R,T,A0,A1,A2,A3,A4,A5,A6) RTYPE=R; \ + CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2,#A3,A3, \ + #A4,A4,#A5,A5,#A6,A6) +#define H5TRACE8(R,T,A0,A1,A2,A3,A4,A5,A6,A7) RTYPE=R; \ + CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2,#A3,A3, \ + #A4,A4,#A5,A5,#A6,A6,#A7,A7) +#define H5TRACE9(R,T,A0,A1,A2,A3,A4,A5,A6,A7,A8) RTYPE=R; \ + CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2,#A3,A3, \ + #A4,A4,#A5,A5,#A6,A6,#A7,A7,#A8,A8) +#define H5TRACE10(R,T,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9) RTYPE=R; \ + CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2,#A3,A3, \ + #A4,A4,#A5,A5,#A6,A6,#A7,A7,#A8,A8,#A9,A9) +#define H5TRACE11(R,T,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10) RTYPE=R; \ + CALLTIME=H5_trace(NULL,FUNC,T,#A0,A0,#A1,A1,#A2,A2,#A3,A3, \ + #A4,A4,#A5,A5,#A6,A6,#A7,A7,#A8,A8,#A9,A9, \ + #A10,A10) +#define H5TRACE_RETURN(V) if (RTYPE) { \ + H5_trace(&CALLTIME,FUNC,RTYPE,NULL,V); \ + RTYPE=NULL; \ + } +#else +#define H5TRACE_DECL /*void*/ +#define H5TRACE0(R,T) /*void*/ +#define H5TRACE1(R,T,A0) /*void*/ +#define H5TRACE2(R,T,A0,A1) /*void*/ +#define H5TRACE3(R,T,A0,A1,A2) /*void*/ +#define H5TRACE4(R,T,A0,A1,A2,A3) /*void*/ +#define H5TRACE5(R,T,A0,A1,A2,A3,A4) /*void*/ +#define H5TRACE6(R,T,A0,A1,A2,A3,A4,A5) /*void*/ +#define H5TRACE7(R,T,A0,A1,A2,A3,A4,A5,A6) /*void*/ +#define H5TRACE8(R,T,A0,A1,A2,A3,A4,A5,A6,A7) /*void*/ +#define H5TRACE9(R,T,A0,A1,A2,A3,A4,A5,A6,A7,A8) /*void*/ +#define H5TRACE10(R,T,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9) /*void*/ +#define H5TRACE11(R,T,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10) /*void*/ +#define H5TRACE_RETURN(V) /*void*/ +#endif + +H5_DLL double H5_trace(const double *calltime, const char *func, const char *type, ...); + + +/*------------------------------------------------------------------------- + * Purpose: Register function entry for library initialization and code + * profiling. + * + * Notes: Every file must have a file-scope variable called + * `initialize_interface_g' of type hbool_t which is initialized + * to FALSE. + * + * Don't use local variable initializers which contain + * calls to other library functions since the initializer + * would happen before the FUNC_ENTER() gets called. Don't + * use initializers that require special cleanup code to + * execute if FUNC_ENTER() fails since a failing FUNC_ENTER() + * returns immediately without branching to the `done' label. + * + * Programmer: Quincey Koziol + * + *------------------------------------------------------------------------- + */ + +/* `S' is the name of a function which is being tested to check if its */ +/* an API function */ +#define H5_IS_API(S) ('_'!=((const char *)S)[2] && '_'!=((const char *)S)[3] && (!((const char *)S)[4] || '_'!=((const char *)S)[4])) + +/* `S' is the name of a function which is being tested to check if it's */ +/* a public API function */ +#define H5_IS_PUB(S) (((HDisdigit(S[1]) || HDisupper(S[1])) && HDislower(S[2])) || \ + ((HDisdigit(S[2]) || HDisupper(S[2])) && HDislower(S[3])) || \ + (!S[4] || ((HDisdigit(S[3]) || HDisupper(S[3])) && HDislower(S[4])))) + +/* `S' is the name of a function which is being tested to check if it's */ +/* a private library function */ +#define H5_IS_PRIV(S) (((HDisdigit(S[1]) || HDisupper(S[1])) && '_' == S[2] && HDislower(S[3])) || \ + ((HDisdigit(S[2]) || HDisupper(S[2])) && '_' == S[3] && HDislower(S[4])) || \ + ((HDisdigit(S[3]) || HDisupper(S[3])) && '_' == S[4] && HDislower(S[5]))) + +/* `S' is the name of a function which is being tested to check if it's */ +/* a package private function */ +#define H5_IS_PKG(S) (((HDisdigit(S[1]) || HDisupper(S[1])) && '_' == S[2] && '_' == S[3] && HDislower(S[4])) || \ + ((HDisdigit(S[2]) || HDisupper(S[2])) && '_' == S[3] && '_' == S[4] && HDislower(S[5])) || \ + ((HDisdigit(S[3]) || HDisupper(S[3])) && '_' == S[4] && '_' == S[5] && HDislower(S[6]))) + +/* global library version information string */ +extern char H5_lib_vers_info_g[]; + +/* Lock headers */ +#ifdef H5_HAVE_THREADSAFE + +/* Include required thread-safety header */ +#include "H5TSprivate.h" + +/* replacement structure for original global variable */ +typedef struct H5_api_struct { + H5TS_mutex_t init_lock; /* API entrance mutex */ + hbool_t H5_libinit_g; /* Has the library been initialized? */ +} H5_api_t; + +/* Macros for accessing the global variables */ +#define H5_INIT_GLOBAL H5_g.H5_libinit_g + +/* Macro for first thread initialization */ +#ifdef H5_HAVE_WIN_THREADS +#define H5_FIRST_THREAD_INIT InitOnceExecuteOnce(&H5TS_first_init_g, H5TS_win32_first_thread_init, NULL, NULL); +#else +#define H5_FIRST_THREAD_INIT pthread_once(&H5TS_first_init_g, H5TS_pthread_first_thread_init); +#endif + +/* Macros for threadsafe HDF-5 Phase I locks */ +#define H5_API_LOCK \ + H5TS_mutex_lock(&H5_g.init_lock); +#define H5_API_UNLOCK \ + H5TS_mutex_unlock(&H5_g.init_lock); + +/* Macros for thread cancellation-safe mechanism */ +#define H5_API_UNSET_CANCEL \ + H5TS_cancel_count_inc(); + +#define H5_API_SET_CANCEL \ + H5TS_cancel_count_dec(); + +extern H5_api_t H5_g; + +#else /* H5_HAVE_THREADSAFE */ + +/* disable any first thread init mechanism */ +#define H5_FIRST_THREAD_INIT + +/* disable locks (sequential version) */ +#define H5_API_LOCK +#define H5_API_UNLOCK + +/* disable cancelability (sequential version) */ +#define H5_API_UNSET_CANCEL +#define H5_API_SET_CANCEL + +/* extern global variables */ +extern hbool_t H5_libinit_g; /* Has the library been initialized? */ + +/* Macros for accessing the global variables */ +#define H5_INIT_GLOBAL H5_libinit_g + +#endif /* H5_HAVE_THREADSAFE */ + +#ifdef H5_HAVE_CODESTACK + +/* Include required function stack header */ +#include "H5CSprivate.h" + +#define H5_PUSH_FUNC H5CS_push(FUNC); +#define H5_POP_FUNC H5CS_pop(); +#else /* H5_HAVE_CODESTACK */ +#define H5_PUSH_FUNC /* void */ +#define H5_POP_FUNC /* void */ +#endif /* H5_HAVE_CODESTACK */ + +#ifdef H5_HAVE_MPE +extern hbool_t H5_MPEinit_g; /* Has the MPE Library been initialized? */ +#endif + +/* Macros for defining interface initialization routines */ +#ifdef H5_INTERFACE_INIT_FUNC +static int H5_interface_initialize_g = 0; +static herr_t H5_INTERFACE_INIT_FUNC(void); +#define H5_INTERFACE_INIT(err) \ + /* Initialize this interface or bust */ \ + if (!H5_interface_initialize_g) { \ + H5_interface_initialize_g = 1; \ + if (H5_INTERFACE_INIT_FUNC()<0) { \ + H5_interface_initialize_g = 0; \ + HGOTO_ERROR (H5E_FUNC, H5E_CANTINIT, err, \ + "interface initialization failed") \ + } \ + } +#else /* H5_INTERFACE_INIT_FUNC */ +#define H5_INTERFACE_INIT(err) +#endif /* H5_INTERFACE_INIT_FUNC */ + + +#ifndef NDEBUG +#define FUNC_ENTER_CHECK_NAME(asrt) \ + { \ + static hbool_t func_check = FALSE; \ + \ + if(!func_check) { \ + /* Check function naming status */ \ + HDassert(asrt); \ + \ + /* Don't check again */ \ + func_check = TRUE; \ + } /* end if */ \ + } /* end scope */ +#else /* NDEBUG */ +#define FUNC_ENTER_CHECK_NAME(asrt) +#endif /* NDEBUG */ + + +#define FUNC_ENTER_COMMON(asrt) \ + hbool_t err_occurred = FALSE; \ + FUNC_ENTER_CHECK_NAME(asrt); + +#define FUNC_ENTER_COMMON_NOERR(asrt) \ + FUNC_ENTER_CHECK_NAME(asrt); + +/* Threadsafety initialization code for API routines */ +#define FUNC_ENTER_API_THREADSAFE \ + /* Initialize the thread-safe code */ \ + H5_FIRST_THREAD_INIT \ + \ + /* Grab the mutex for the library */ \ + H5_API_UNSET_CANCEL \ + H5_API_LOCK + +/* Local variables for API routines */ +#define FUNC_ENTER_API_VARS \ + MPE_LOG_VARS \ + H5TRACE_DECL + +#define FUNC_ENTER_API_COMMON \ + FUNC_ENTER_API_VARS \ + FUNC_ENTER_COMMON(H5_IS_API(FUNC)); \ + FUNC_ENTER_API_THREADSAFE; + +#define FUNC_ENTER_API_INIT(err) \ + /* Initialize the library */ \ + if(!(H5_INIT_GLOBAL)) { \ + H5_INIT_GLOBAL = TRUE; \ + if(H5_init_library() < 0) \ + HGOTO_ERROR(H5E_FUNC, H5E_CANTINIT, err, \ + "library initialization failed") \ + } \ + \ + /* Initialize the interface, if appropriate */ \ + H5_INTERFACE_INIT(err) \ + \ + /* Push the name of this function on the function stack */ \ + H5_PUSH_FUNC \ + \ + BEGIN_MPE_LOG + +/* Use this macro for all "normal" API functions */ +#define FUNC_ENTER_API(err) {{ \ + FUNC_ENTER_API_COMMON \ + FUNC_ENTER_API_INIT(err); \ + /* Clear thread error stack entering public functions */ \ + H5E_clear_stack(NULL); \ + { + +/* + * Use this macro for API functions that shouldn't clear the error stack + * like H5Eprint and H5Ewalk. + */ +#define FUNC_ENTER_API_NOCLEAR(err) {{ \ + FUNC_ENTER_API_COMMON \ + FUNC_ENTER_API_INIT(err); \ + { + +/* + * Use this macro for API functions that shouldn't perform _any_ initialization + * of the library or an interface, just perform tracing, etc. Examples + * are: H5check_version, etc. + * + */ +#define FUNC_ENTER_API_NOINIT {{ \ + FUNC_ENTER_API_COMMON \ + H5_PUSH_FUNC \ + BEGIN_MPE_LOG \ + { + +/* + * Use this macro for API functions that shouldn't perform _any_ initialization + * of the library or an interface or push themselves on the function + * stack, just perform tracing, etc. Examples + * are: H5close, H5check_version, etc. + * + */ +#define FUNC_ENTER_API_NOINIT_NOERR_NOFS {{ \ + FUNC_ENTER_API_VARS \ + FUNC_ENTER_COMMON_NOERR(H5_IS_API(FUNC)); \ + FUNC_ENTER_API_THREADSAFE; \ + BEGIN_MPE_LOG \ + { + +/* Note: this macro only works when there's _no_ interface initialization routine for the module */ +#define FUNC_ENTER_NOAPI_INIT(err) \ + /* Initialize the interface, if appropriate */ \ + H5_INTERFACE_INIT(err) \ + \ + /* Push the name of this function on the function stack */ \ + H5_PUSH_FUNC + +/* Use this macro for all "normal" non-API functions */ +#define FUNC_ENTER_NOAPI(err) { \ + FUNC_ENTER_COMMON(!H5_IS_API(FUNC)); \ + FUNC_ENTER_NOAPI_INIT(err) \ + { + +/* Use this macro for all "normal" package-level functions */ +#define FUNC_ENTER_PACKAGE { \ + FUNC_ENTER_COMMON(H5_IS_PKG(FUNC)); \ + H5_PUSH_FUNC \ + { + +/* Use this macro for package-level functions which propgate errors, but don't issue them */ +#define FUNC_ENTER_PACKAGE_NOERR { \ + FUNC_ENTER_COMMON_NOERR(H5_IS_PKG(FUNC)); \ + H5_PUSH_FUNC \ + { + +/* Use this macro for all "normal" staticly-scoped functions */ +#define FUNC_ENTER_STATIC { \ + FUNC_ENTER_COMMON(H5_IS_PKG(FUNC)); \ + H5_PUSH_FUNC \ + { + +/* Use this macro for staticly-scoped functions which propgate errors, but don't issue them */ +#define FUNC_ENTER_STATIC_NOERR { \ + FUNC_ENTER_COMMON_NOERR(H5_IS_PKG(FUNC)); \ + H5_PUSH_FUNC \ + { + +/* Use this macro for all non-API functions, which propagate errors, but don't issue them */ +#define FUNC_ENTER_NOAPI_NOERR { \ + FUNC_ENTER_COMMON_NOERR(!H5_IS_API(FUNC)); \ + FUNC_ENTER_NOAPI_INIT(-) \ + { + +/* + * Use this macro for non-API functions which fall into these categories: + * - static functions, since they must be called from a function in the + * interface, the library and interface must already be + * initialized. + * - functions which are called during library shutdown, since we don't + * want to re-initialize the library. + */ +#define FUNC_ENTER_NOAPI_NOINIT { \ + FUNC_ENTER_COMMON(!H5_IS_API(FUNC)); \ + H5_PUSH_FUNC \ + { + +/* + * Use this macro for non-API functions which fall into these categories: + * - static functions, since they must be called from a function in the + * interface, the library and interface must already be + * initialized. + * - functions which are called during library shutdown, since we don't + * want to re-initialize the library. + * - functions that propagate, but don't issue errors + */ +#define FUNC_ENTER_NOAPI_NOINIT_NOERR { \ + FUNC_ENTER_COMMON_NOERR(!H5_IS_API(FUNC)); \ + H5_PUSH_FUNC \ + { + +/* + * Use this macro for non-API functions which fall into these categories: + * - functions which shouldn't push their name on the function stack + * (so far, just the H5CS routines themselves) + * + * This macro is used for functions which fit the above categories _and_ + * also don't use the 'FUNC' variable (i.e. don't push errors on the error stack) + * + */ +#define FUNC_ENTER_NOAPI_NOERR_NOFS { \ + FUNC_ENTER_COMMON_NOERR(!H5_IS_API(FUNC)); \ + { + +/*------------------------------------------------------------------------- + * Purpose: Register function exit for code profiling. This should be + * the last statement executed by a function. + * + * Programmer: Quincey Koziol + * + *------------------------------------------------------------------------- + */ +/* Threadsafety termination code for API routines */ +#define FUNC_LEAVE_API_THREADSAFE \ + H5_API_UNLOCK \ + H5_API_SET_CANCEL + +#define FUNC_LEAVE_API(ret_value) \ + FINISH_MPE_LOG \ + H5TRACE_RETURN(ret_value); \ + H5_POP_FUNC \ + if(err_occurred) \ + (void)H5E_dump_api_stack(TRUE); \ + FUNC_LEAVE_API_THREADSAFE \ + return(ret_value); \ + } /*end scope from end of FUNC_ENTER*/ \ +}} /*end scope from beginning of FUNC_ENTER*/ + +/* Use this macro to match the FUNC_ENTER_API_NOFS macro */ +#define FUNC_LEAVE_API_NOFS(ret_value) \ + FINISH_MPE_LOG \ + H5TRACE_RETURN(ret_value); \ + FUNC_LEAVE_API_THREADSAFE \ + return(ret_value); \ + } /*end scope from end of FUNC_ENTER*/ \ +}} /*end scope from beginning of FUNC_ENTER*/ + +#define FUNC_LEAVE_NOAPI(ret_value) \ + H5_POP_FUNC \ + return(ret_value); \ + } /*end scope from end of FUNC_ENTER*/ \ +} /*end scope from beginning of FUNC_ENTER*/ + +#define FUNC_LEAVE_NOAPI_VOID \ + H5_POP_FUNC \ + return; \ + } /*end scope from end of FUNC_ENTER*/ \ +} /*end scope from beginning of FUNC_ENTER*/ + +/* + * Use this macro for non-API functions which fall into these categories: + * - functions which didn't push their name on the function stack + * (so far, just the H5CS routines themselves) + */ +#define FUNC_LEAVE_NOAPI_NOFS(ret_value) \ + return(ret_value); \ + } /*end scope from end of FUNC_ENTER*/ \ +} /*end scope from beginning of FUNC_ENTER*/ + + +/* Macro for "glueing" together items, for re-scanning macros */ +#define H5_GLUE(x,y) x##y +#define H5_GLUE3(x,y,z) x##y##z +#define H5_GLUE4(w,x,y,z) w##x##y##z + +/* Compile-time "assert" macro */ +#define HDcompile_assert(e) ((void)sizeof(char[ !!(e) ? 1 : -1])) +/* Variants that are correct, but generate compile-time warnings in some circumstances: + #define HDcompile_assert(e) do { enum { compile_assert__ = 1 / (e) }; } while(0) + #define HDcompile_assert(e) do { typedef struct { unsigned int b: (e); } x; } while(0) +*/ + +/* Macros for enabling/disabling particular GCC warnings */ +/* (see the following web-sites for more info: + * http://www.dbp-consulting.com/tutorials/SuppressingGCCWarnings.html + * http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas + */ +/* These pragmas are only implemented usefully in gcc 4.6+ */ +#if ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406 + #define GCC_DIAG_STR(s) #s + #define GCC_DIAG_JOINSTR(x,y) GCC_DIAG_STR(x ## y) + #define GCC_DIAG_DO_PRAGMA(x) _Pragma (#x) + #define GCC_DIAG_PRAGMA(x) GCC_DIAG_DO_PRAGMA(GCC diagnostic x) + + #define GCC_DIAG_OFF(x) GCC_DIAG_PRAGMA(push) GCC_DIAG_PRAGMA(ignored GCC_DIAG_JOINSTR(-W,x)) + #define GCC_DIAG_ON(x) GCC_DIAG_PRAGMA(pop) +#else + #define GCC_DIAG_OFF(x) + #define GCC_DIAG_ON(x) +#endif + +/* Private functions, not part of the publicly documented API */ +H5_DLL herr_t H5_init_library(void); +H5_DLL void H5_term_library(void); + +/* Functions to terminate interfaces */ +H5_DLL int H5A_term_interface(void); +H5_DLL int H5AC_term_interface(void); +H5_DLL int H5D_term_interface(void); +H5_DLL int H5E_term_interface(void); +H5_DLL int H5F_term_interface(void); +H5_DLL int H5FS_term_interface(void); +H5_DLL int H5G_term_interface(void); +H5_DLL int H5I_term_interface(void); +H5_DLL int H5L_term_interface(void); +H5_DLL int H5P_term_interface(void); +H5_DLL int H5PL_term_interface(void); +H5_DLL int H5R_term_interface(void); +H5_DLL int H5S_term_interface(void); +H5_DLL int H5T_term_interface(void); +H5_DLL int H5Z_term_interface(void); + +/* Checksum functions */ +H5_DLL uint32_t H5_checksum_fletcher32(const void *data, size_t len); +H5_DLL uint32_t H5_checksum_crc(const void *data, size_t len); +H5_DLL uint32_t H5_checksum_lookup3(const void *data, size_t len, uint32_t initval); +H5_DLL uint32_t H5_checksum_metadata(const void *data, size_t len, uint32_t initval); +H5_DLL uint32_t H5_hash_string(const char *str); + +/* Functions for building paths, etc. */ +H5_DLL herr_t H5_build_extpath(const char *, char ** /*out*/ ); + +/* Functions for debugging */ +H5_DLL herr_t H5_buffer_dump(FILE *stream, int indent, const uint8_t *buf, + const uint8_t *marker, size_t buf_offset, size_t buf_size); + +#endif /* _H5private_H */ + diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5pubconf.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5pubconf.h index 725b5136f4..488781738c 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5pubconf.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5pubconf.h @@ -1,807 +1,807 @@ -/* H5pubconf.h Generated By CMake during the configuration */ - -#ifndef H5_CONFIG_H_ -#define H5_CONFIG_H_ - -/* Define if the Windows virtual file driver should be compiled */ -#define H5_HAVE_WINDOWS 1 - -/* Define if using MinGW */ -/* #undef H5_HAVE_MINGW */ - -/* Define if on the Windows platform and default WIN32 API */ -#define H5_HAVE_WIN32_API 1 - -/* Define if using a Windows compiler (i.e. Visual Studio) */ -#define H5_HAVE_VISUAL_STUDIO 1 - -/* Defined if HDF5 was built with CMake AND build as a shared library */ -#define H5_BUILT_AS_DYNAMIC_LIB 1 - -/* Defined if HDF5 was built with CMake AND build as a static library */ -/* #undef H5_BUILT_AS_STATIC_LIB */ - -/* Defined if HDF5 CPP was built with CMake AND build as a shared library */ -/* #undef H5_CPP_BUILT_AS_DYNAMIC_LIB */ - -/* Defined if HDF5 CPP was built with CMake AND build as a static library */ -/* #undef H5_CPP_BUILT_AS_STATIC_LIB */ - -/* Defined if HDF5 HL was built with CMake AND build as a shared library */ -/* #undef H5_HL_BUILT_AS_DYNAMIC_LIB */ - -/* Defined if HDF5 HL was built with CMake AND build as a static library */ -/* #undef H5_HL_BUILT_AS_STATIC_LIB */ - -/* Define if building universal (internal helper macro) */ -/* #undef H5_AC_APPLE_UNIVERSAL_BUILD */ - -/* Define if your system generates wrong code for log2 routine. */ -/* #undef H5_BAD_LOG2_CODE_GENERATED */ - -/* Define if the memory buffers being written to disk should be cleared before - writing. */ -#define H5_CLEAR_MEMORY 1 - -/* Define if your system can handle converting denormalized floating-point - values. */ -#define H5_CONVERT_DENORMAL_FLOAT 1 - -/* Define if C++ compiler recognizes offsetof */ -/* #undef H5_CXX_HAVE_OFFSETOF */ - -/* Define the default plugins path to compile */ -#define H5_DEFAULT_PLUGINDIR "%ALLUSERSPROFILE%/hdf5/lib/plugin" - -/* Define the default virtual file driver to compile */ -#define H5_DEFAULT_VFD H5FD_SEC2 - -/* Define if `dev_t' is a scalar */ -/* #undef H5_DEV_T_IS_SCALAR */ - -/* Define to dummy `main' function (if any) required to link to the Fortran - libraries. */ -/* #undef H5_FC_DUMMY_MAIN */ - -/* Define if F77 and FC dummy `main' functions are identical. */ -/* #undef H5_FC_DUMMY_MAIN_EQ_F77 */ - -/* Define to a macro mangling the given C identifier (in lower and upper - case), which must not contain underscores, for linking with Fortran. */ -#define H5_FC_FUNC(name,NAME) NAME - -/* As FC_FUNC, but for C identifiers containing underscores. */ -#define H5_FC_FUNC_(name,NAME) NAME - -/* Define if your system can handle overflow converting floating-point to - integer values. */ -#define H5_FP_TO_INTEGER_OVERFLOW_WORKS 1 - -/* Define if your system roundup accurately converting floating-point to - unsigned long long values. */ -#define H5_FP_TO_ULLONG_ACCURATE 1 - -/* Define if your system has right maximum convert floating-point to unsigned - long long values. */ -/* #undef H5_FP_TO_ULLONG_RIGHT_MAXIMUM */ - -/* Define if gettimeofday() populates the tz pointer passed in */ -#define H5_GETTIMEOFDAY_GIVES_TZ 1 - -/* Define to 1 if you have the `alarm' function. */ -/* #undef H5_HAVE_ALARM */ - -/* Define if the __attribute__(()) extension is present */ -/* #undef H5_HAVE_ATTRIBUTE */ - -/* Define to 1 if you have the `BSDgettimeofday' function. */ -/* #undef H5_HAVE_BSDGETTIMEOFDAY */ - -/* Define if the compiler understands C99 designated initialization of structs - and unions */ -/* #undef H5_HAVE_C99_DESIGNATED_INITIALIZER */ - -/* Define if the compiler understands the __func__ keyword */ -/* #undef H5_HAVE_C99_FUNC */ - -/* Define to 1 if you have the `clock_gettime' function. */ -/* #undef H5_HAVE_CLOCK_GETTIME */ - -/* Define if the function stack tracing code is to be compiled in */ -/* #undef H5_HAVE_CODESTACK */ - -/* Define if Darwin or Mac OS X */ -/* #undef H5_HAVE_DARWIN */ - -/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. - */ -#define H5_HAVE_DECL_TZNAME 1 - -/* Define to 1 if you have the `difftime' function. */ -#define H5_HAVE_DIFFTIME 1 - -/* Define if the direct I/O virtual file driver should be compiled */ -/* #undef H5_HAVE_DIRECT */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_DIRENT_H */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_DLFCN_H */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_DMALLOC_H */ - -/* Define if library information should be embedded in the executables */ -#define H5_HAVE_EMBEDDED_LIBINFO 1 - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_FEATURES_H */ - -/* Define if support for deflate (zlib) filter is enabled */ -#define H5_HAVE_FILTER_DEFLATE 1 - -/* Define if support for Fletcher32 checksum is enabled */ -#define H5_HAVE_FILTER_FLETCHER32 1 - -/* Define if support for nbit filter is enabled */ -#define H5_HAVE_FILTER_NBIT 1 - -/* Define if support for scaleoffset filter is enabled */ -#define H5_HAVE_FILTER_SCALEOFFSET 1 - -/* Define if support for shuffle filter is enabled */ -#define H5_HAVE_FILTER_SHUFFLE 1 - -/* Define if support for szip filter is enabled */ -#define H5_HAVE_FILTER_SZIP 1 - -/* Define to 1 if you have the `fork' function. */ -/* #undef H5_HAVE_FORK */ - -/* Define to 1 if you have the `frexpf' function. */ -/* #undef H5_HAVE_FREXPF */ - -/* Define to 1 if you have the `frexpl' function. */ -/* #undef H5_HAVE_FREXPL */ - -/* Define to 1 if you have the `fseeko' function. */ -/* #undef H5_HAVE_FSEEKO */ - -/* Define to 1 if you have the `fseeko64' function. */ -/* #undef H5_HAVE_FSEEKO64 */ - -/* Define to 1 if you have the `fstat64' function. */ -/* #undef H5_HAVE_FSTAT64 */ - -/* Define to 1 if you have the `ftello' function. */ -/* #undef H5_HAVE_FTELLO */ - -/* Define to 1 if you have the `ftello64' function. */ -/* #undef H5_HAVE_FTELLO64 */ - -/* Define to 1 if you have the `ftruncate64' function. */ -/* #undef H5_HAVE_FTRUNCATE64 */ - -/* Define if the compiler understands the __FUNCTION__ keyword */ -#define H5_HAVE_FUNCTION 1 - -/* Define to 1 if you have the `GetConsoleScreenBufferInfo' function. */ -#define H5_HAVE_GETCONSOLESCREENBUFFERINFO 1 - -/* Define to 1 if you have the `gethostname' function. */ -#define H5_HAVE_GETHOSTNAME 1 - -/* Define to 1 if you have the `getpwuid' function. */ -/* #undef H5_HAVE_GETPWUID */ - -/* Define to 1 if you have the `getrusage' function. */ -/* #undef H5_HAVE_GETRUSAGE */ - -/* Define to 1 if you have the `gettextinfo' function. */ -/* #undef H5_HAVE_GETTEXTINFO */ - -/* Define to 1 if you have the `gettimeofday' function. */ -#define H5_HAVE_GETTIMEOFDAY 1 - -/* Define to 1 if you have the `gettimeofday' function declared in time.h . */ -/* #undef H5_HAVE_TIME_GETTIMEOFDAY */ - -/* Define to 1 if you have the `gettimeofday' function declared in sys/time.h . */ -/* #undef H5_HAVE_SYS_TIME_GETTIMEOFDAY */ - -/* Define to 1 if you have the `get_fpc_csr' function. */ -/* #undef H5_HAVE_GET_FPC_CSR */ - -/* Define if we have GPFS support */ -/* #undef H5_HAVE_GPFS */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_GPFS_H */ - -/* Define if library will contain instrumentation to detect correct - optimization operation */ -/* #undef H5_HAVE_INSTRUMENTED_LIBRARY */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_INTTYPES_H */ - -/* Define to 1 if you have the `ioctl' function. */ -/* #undef H5_HAVE_IOCTL */ - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_IO_H 1 - -/* Define to 1 if you have the `dl' library (-ldl). */ -/* #undef H5_HAVE_LIBDL */ - -/* Define to 1 if you have the `dmalloc' library (-ldmalloc). */ -/* #undef H5_HAVE_LIBDMALLOC */ - -/* Define to 1 if you have the `lmpe' library (-llmpe). */ -/* #undef H5_HAVE_LIBLMPE */ - -/* Define to 1 if you have the `m' library (-lm). */ -#define H5_HAVE_LIBM 1 - -/* Define to 1 if you have the `mpe' library (-lmpe). */ -/* #undef H5_HAVE_LIBMPE */ - -/* Define to 1 if you have the `mpi' library (-lmpi). */ -/* #undef H5_HAVE_LIBMPI */ - -/* Define to 1 if you have the `mpich' library (-lmpich). */ -/* #undef H5_HAVE_LIBMPICH */ - -/* Define to 1 if you have the `mpio' library (-lmpio). */ -/* #undef H5_HAVE_LIBMPIO */ - -/* Define to 1 if you have the `nsl' library (-lnsl). */ -/* #undef H5_HAVE_LIBNSL */ - -/* Define to 1 if you have the `pthread' library (-lpthread). */ -/* #undef H5_HAVE_LIBPTHREAD */ - -/* Define to 1 if you have the `socket' library (-lsocket). */ -/* #undef H5_HAVE_LIBSOCKET */ - -/* Define to 1 if you have the `sz' library (-lsz). */ -#define H5_HAVE_LIBSZ 1 - -/* Define to 1 if you have the `ws2_32' library (-lws2_32). */ -#define H5_HAVE_LIBWS2_32 1 - -/* Define to 1 if you have the `z' library (-lz). */ -#define H5_HAVE_LIBZ 1 - -/* Define to 1 if you have the `longjmp' function. */ -#define H5_HAVE_LONGJMP 1 - -/* Define to 1 if you have the `lseek64' function. */ -/* #undef H5_HAVE_LSEEK64 */ - -/* Define to 1 if you have the `lstat' function. */ -/* #undef H5_HAVE_LSTAT */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_MACH_MACH_TIME_H */ - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_MEMORY_H 1 - -/* Define if we have MPE support */ -/* #undef H5_HAVE_MPE */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_MPE_H */ - -/* Define if MPI_File_get_size works correctly */ -/* #undef H5_HAVE_MPI_GET_SIZE */ - -/* Define if `MPI_Comm_c2f' and `MPI_Comm_f2c' exists */ -/* #undef H5_HAVE_MPI_MULTI_LANG_Comm */ - -/* Define if `MPI_Info_c2f' and `MPI_Info_f2c' exists */ -/* #undef H5_HAVE_MPI_MULTI_LANG_Info */ - -/* Define if we have parallel support */ -/* #undef H5_HAVE_PARALLEL */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_PTHREAD_H */ - -/* Define to 1 if you have the 'InitOnceExecuteOnce' function. */ -/* #undef H5_HAVE_WIN_THREADS */ - -/* Define to 1 if you have the `random' function. */ -/* #undef H5_HAVE_RANDOM */ - -/* Define to 1 if you have the `rand_r' function. */ -/* #undef H5_HAVE_RAND_R */ - -/* Define to 1 if you have the `sigsetjmp' function. */ -#define H5_HAVE_SETJMP 1 - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_SETJMP_H 1 - -/* Define to 1 if you have the `setsysinfo' function. */ -/* #undef H5_HAVE_SETSYSINFO */ - -/* Define to 1 if you have the `sigaction' function. */ -/* #undef H5_HAVE_SIGACTION */ - -/* Define to 1 if you have the `siglongjmp' function. */ -/* #undef H5_HAVE_SIGLONGJMP */ - -/* Define to 1 if you have the `signal' function. */ -#define H5_HAVE_SIGNAL 1 - -/* Define to 1 if you have the `sigprocmask' function. */ -/* #undef H5_HAVE_SIGPROCMASK */ - -/* Define to 1 if you have the `sigsetjmp' function. */ -/* #undef H5_HAVE_SIGSETJMP */ - -/* Define to 1 if you have the `snprintf' function. */ -/* #undef H5_HAVE_SNPRINTF */ - -/* Define to 1 if you have the `srandom' function. */ -/* #undef H5_HAVE_SRANDOM */ - -/* Define to 1 if you have the `stat64' function. */ -/* #undef H5_HAVE_STAT64 */ - -/* Define if `struct stat' has the `st_blocks' field */ -/* #undef H5_HAVE_STAT_ST_BLOCKS */ - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_STDDEF_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_STDINT_H */ - -/* Define to 1 if you have the header file for Cplusplus. */ -/* #undef H5_HAVE_STDINT_H_CXX */ - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_STDLIB_H 1 - -/* Define to 1 if you have the `strdup' function. */ -#define H5_HAVE_STRDUP 1 - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_STRINGS_H */ - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_STRING_H 1 - -/* Define if `struct text_info' is defined */ -/* #undef H5_HAVE_STRUCT_TEXT_INFO */ - -/* Define if `struct timezone' is defined */ -/* #undef H5_HAVE_STRUCT_TIMEZONE */ - -/* Define to 1 if `tm_zone' is a member of `struct tm'. */ -/* #undef H5_HAVE_STRUCT_TM_TM_ZONE */ - -/* Define if `struct videoconfig' is defined */ -/* #undef H5_HAVE_STRUCT_VIDEOCONFIG */ - -/* Define to 1 if you have the `symlink' function. */ -/* #undef H5_HAVE_SYMLINK */ - -/* Define to 1 if you have the `system' function. */ -#define H5_HAVE_SYSTEM 1 - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_SYS_FPU_H */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_SYS_IOCTL_H */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_SYS_PROC_H */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_SYS_RESOURCE_H */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_SYS_SOCKET_H */ - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_SYS_SYSINFO_H */ - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_SYS_TIMEB_H 1 - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_TIME_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_SYS_TIME_H */ - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_SZLIB_H 1 - -/* Define if we have thread safe support */ -/* #undef H5_HAVE_THREADSAFE */ - -/* Define if `timezone' is a global variable */ -#define H5_HAVE_TIMEZONE 1 - -/* Define if the ioctl TIOCGETD is defined */ -/* #undef H5_HAVE_TIOCGETD */ - -/* Define if the ioctl TIOGWINSZ is defined */ -/* #undef H5_HAVE_TIOCGWINSZ */ - -/* Define to 1 if you have the `tmpfile' function. */ -#define H5_HAVE_TMPFILE 1 - -/* Define if `tm_gmtoff' is a member of `struct tm' */ -/* #undef H5_HAVE_TM_GMTOFF */ - -/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE' instead. */ -/* #undef H5_HAVE_TM_ZONE */ - -/* Define to 1 if you don't have `tm_zone' but do have the external array - `tzname'. */ -/* #undef H5_HAVE_TZNAME */ - -/* Define to 1 if you have the header file. */ -/* #undef H5_HAVE_UNISTD_H */ - -/* Define to 1 if you have the `vasprintf' function. */ -/* #undef H5_HAVE_VASPRINTF */ - -/* Define to 1 if you have the `vsnprintf' function. */ -#define H5_HAVE_VSNPRINTF 1 - -/* Define to 1 if you have the `waitpid' function. */ -/* #undef H5_HAVE_WAITPID */ - -/* Define if your system has window style path name. */ -#define H5_HAVE_WINDOW_PATH 1 - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_WINSOCK2_H 1 - -/* Define to 1 if you have the header file. */ -#define H5_HAVE_ZLIB_H 1 - -/* Define to 1 if you have the `_getvideoconfig' function. */ -/* #undef H5_HAVE__GETVIDEOCONFIG */ - -/* Define to 1 if you have the `_scrsize' function. */ -/* #undef H5_HAVE__SCRSIZE */ - -/* Define if `__tm_gmtoff' is a member of `struct tm' */ -/* #undef H5_HAVE___TM_GMTOFF */ - -/* Define if your system can't handle converting floating-point values to long - long. */ -/* #undef H5_HW_FP_TO_LLONG_NOT_WORKS */ - -/* Define if HDF5's high-level library headers should be included in hdf5.h */ -#define H5_INCLUDE_HL 1 - -/* Define if your system can accurately convert from integers to long double - values. */ -#define H5_INTEGER_TO_LDOUBLE_ACCURATE 1 - -/* Define if your system can convert long double to integers accurately. */ -#define H5_LDOUBLE_TO_INTEGER_ACCURATE 1 - -/* Define if your system can convert from long double to integer values. */ -/* #undef H5_LDOUBLE_TO_INTEGER_WORKS */ - -/* Define if your system can convert long double to (unsigned) long long - values correctly. */ -#define H5_LDOUBLE_TO_LLONG_ACCURATE 1 - -/* Define if your system converts long double to (unsigned) long values with - special algorithm. */ -/* #undef H5_LDOUBLE_TO_LONG_SPECIAL */ - -/* Define if your system can convert long double to unsigned int values - correctly. */ -#define H5_LDOUBLE_TO_UINT_ACCURATE 1 - -/* Define if your system can compile long long to floating-point casts. */ -#define H5_LLONG_TO_FP_CAST_WORKS 1 - -/* Define if your system can convert (unsigned) long long to long double - values correctly. */ -#define H5_LLONG_TO_LDOUBLE_CORRECT 1 - -/* Define if your system can convert (unsigned) long to long double values - with special algorithm. */ -/* #undef H5_LONG_TO_LDOUBLE_SPECIAL */ - -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ -/* #undef H5_LT_OBJDIR */ - -/* Define if the metadata trace file code is to be compiled in */ -/* #undef H5_METADATA_TRACE_FILE */ - -/* Define if your system's `MPI_File_set_size' function works for files over - 2GB. */ -/* #undef H5_MPI_FILE_SET_SIZE_BIG */ - -/* Define if we can violate pointer alignment restrictions */ -#define H5_NO_ALIGNMENT_RESTRICTIONS 1 - -/* Define if deprecated public API symbols are disabled */ -/* #undef H5_NO_DEPRECATED_SYMBOLS */ - -/* Define if shared writing must be disabled (CodeWarrior only) */ -/* #undef H5_NO_SHARED_WRITING */ - -/* Name of package */ -#define H5_PACKAGE "hdf5" - -/* Define to the address where bug reports for this package should be sent. */ -#define H5_PACKAGE_BUGREPORT "help@hdfgroup.org" - -/* Define to the full name of this package. */ -#define H5_PACKAGE_NAME "HDF5" - -/* Define to the full name and version of this package. */ -#define H5_PACKAGE_STRING "HDF5 1.8.12" - -/* Define to the one symbol short name of this package. */ -#define H5_PACKAGE_TARNAME "hdf5" - -/* Define to the home page for this package. */ -#define H5_PACKAGE_URL "http://www.hdfgroup.org" - -/* Define to the version of this package. */ -#define H5_PACKAGE_VERSION "1.8.12" - -/* Width for printf() for type `long long' or `__int64', use `ll' */ -#define H5_PRINTF_LL_WIDTH "ll" - -/* The size of `char', as computed by sizeof. */ -#define H5_SIZEOF_CHAR 1 - -/* The size of `double', as computed by sizeof. */ -#define H5_SIZEOF_DOUBLE 8 - -/* The size of `float', as computed by sizeof. */ -#define H5_SIZEOF_FLOAT 4 - -/* The size of `int', as computed by sizeof. */ -#define H5_SIZEOF_INT 4 - -/* The size of `int16_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_INT16_T */ - -/* The size of `int32_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_INT32_T */ - -/* The size of `int64_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_INT64_T */ - -/* The size of `int8_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_INT8_T */ - -/* The size of `int_fast16_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_INT_FAST16_T */ - -/* The size of `int_fast32_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_INT_FAST32_T */ - -/* The size of `int_fast64_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_INT_FAST64_T */ - -/* The size of `int_fast8_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_INT_FAST8_T */ - -/* The size of `int_least16_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_INT_LEAST16_T */ - -/* The size of `int_least32_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_INT_LEAST32_T */ - -/* The size of `int_least64_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_INT_LEAST64_T */ - -/* The size of `int_least8_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_INT_LEAST8_T */ - -#if !defined(__APPLE__) -/* The size of `size_t', as computed by sizeof. */ -#define H5_SIZEOF_SIZE_T 8 - -/* The size of `ssize_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_SSIZE_T */ - -/* The size of `long', as computed by sizeof. */ -#define H5_SIZEOF_LONG 4 - -#else - # if defined(__LP64__) && __LP64__ - #define H5_SIZEOF_LONG 8 - #define H5_SIZEOF_SIZE_T 8 - #define H5_SIZEOF_SSIZE_T 8 - # else - #define H5_SIZEOF_LONG 4 - #define H5_SIZEOF_SIZE_T 4 - #define H5_SIZEOF_SSIZE_T 4 - # endif - -#endif - -/* The size of `long double', as computed by sizeof. */ -#define H5_SIZEOF_LONG_DOUBLE 8 - -/* Define size of long long and/or __int64 bit integer type only if the type - exists. */ -#if !defined(__APPLE__) - #define H5_SIZEOF_LONG_LONG 8 -#else - #define H5_SIZEOF_LONG_LONG 8 -#endif - -/* The size of `off64_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_OFF64_T */ - -/* The size of `off_t', as computed by sizeof. */ -#define H5_SIZEOF_OFF_T 4 - -/* The size of `ptrdiff_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_PTRDIFF_T */ - -/* The size of `short', as computed by sizeof. */ -#define H5_SIZEOF_SHORT 2 - -/* The size of `uint16_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_UINT16_T */ - -/* The size of `uint32_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_UINT32_T */ - -/* The size of `uint64_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_UINT64_T */ - -/* The size of `uint8_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_UINT8_T */ - -/* The size of `uint_fast16_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_UINT_FAST16_T */ - -/* The size of `uint_fast32_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_UINT_FAST32_T */ - -/* The size of `uint_fast64_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_UINT_FAST64_T */ - -/* The size of `uint_fast8_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_UINT_FAST8_T */ - -/* The size of `uint_least16_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_UINT_LEAST16_T */ - -/* The size of `uint_least32_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_UINT_LEAST32_T */ - -/* The size of `uint_least64_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_UINT_LEAST64_T */ - -/* The size of `uint_least8_t', as computed by sizeof. */ -/* #undef H5_SIZEOF_UINT_LEAST8_T */ - -/* The size of `unsigned', as computed by sizeof. */ -#define H5_SIZEOF_UNSIGNED 4 - -/* The size of `__int64', as computed by sizeof. */ -#define H5_SIZEOF___INT64 8 - -/* Define to 1 if you have the ANSI C header files. */ -#define H5_STDC_HEADERS 1 - -/* Define if strict file format checks are enabled */ -/* #undef H5_STRICT_FORMAT_CHECKS */ - -/* Define if your system supports pthread_attr_setscope(&attribute, - PTHREAD_SCOPE_SYSTEM) call. */ -/* #undef H5_SYSTEM_SCOPE_THREADS */ - -/* Define to 1 if you can safely include both and . */ -/* #undef H5_TIME_WITH_SYS_TIME */ - -/* Define to 1 if your declares `struct tm'. */ -/* #undef H5_TM_IN_SYS_TIME */ - -/* Define if your system can compile unsigned long long to floating-point - casts. */ -#define H5_ULLONG_TO_FP_CAST_WORKS 1 - -/* Define if your system can convert unsigned long long to long double with - correct precision. */ -/* #undef H5_ULLONG_TO_LDOUBLE_PRECISION */ - -/* Define if your system accurately converting unsigned long to float values. - */ -#define H5_ULONG_TO_FLOAT_ACCURATE 1 - -/* Define if your system can accurately convert unsigned (long) long values to - floating-point values. */ -#define H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE 1 - -/* Define using v1.6 public API symbols by default */ -/* #undef H5_USE_16_API_DEFAULT */ - -/* Define if a memory checking tool will be used on the library, to cause - library to be very picky about memory operations and also disable the - internal free list manager code. */ -/* #undef H5_USING_MEMCHECKER */ - -/* Version number of package */ -#define H5_VERSION "1.8.12" - -/* Define if vsnprintf() returns the correct value for formatted strings that - don't fit into size allowed */ -/* #undef H5_VSNPRINTF_WORKS */ - -/* Data accuracy is prefered to speed during data conversions */ -#define H5_WANT_DATA_ACCURACY 1 - -/* Check exception handling functions during data conversions */ -#define H5_WANT_DCONV_EXCEPTION 1 - -/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most - significant byte first (like Motorola and SPARC, unlike Intel). */ -#if !defined(__APPLE__) -# ifndef WORDS_BIGENDIAN -# undef WORDS_BIGENDIAN -# endif -#else -# if defined __BIG_ENDIAN__ -# define WORDS_BIGENDIAN 1 -# endif -#endif - -/* #undef WORDS_BIGENDIAN */ - -/* Number of bits in a file offset, on hosts where this is settable. */ -/* #undef H5__FILE_OFFSET_BITS */ - -/* Define for large files, on AIX-style hosts. */ -/* #undef H5__LARGE_FILES */ - -/* Define to empty if `const' does not conform to ANSI C. */ -/* #undef H5_const */ - -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -#define H5_inline __inline -#endif - -/* Define to `long int' if does not define. */ -/* #undef H5_off_t */ - -/* Define to `long' if does not define. */ -/* #undef H5_ptrdiff_t */ - -/* Define to `unsigned long' if does not define. */ -/* #undef H5_size_t */ - -/* Define to `long' if does not define. */ -/* #undef H5_ssize_t */ - -#if defined(__cplusplus) && defined(inline) -#undef inline -#endif - -#endif +/* H5pubconf.h Generated By CMake during the configuration */ + +#ifndef H5_CONFIG_H_ +#define H5_CONFIG_H_ + +/* Define if the Windows virtual file driver should be compiled */ +#define H5_HAVE_WINDOWS 1 + +/* Define if using MinGW */ +/* #undef H5_HAVE_MINGW */ + +/* Define if on the Windows platform and default WIN32 API */ +#define H5_HAVE_WIN32_API 1 + +/* Define if using a Windows compiler (i.e. Visual Studio) */ +#define H5_HAVE_VISUAL_STUDIO 1 + +/* Defined if HDF5 was built with CMake AND build as a shared library */ +#define H5_BUILT_AS_DYNAMIC_LIB 1 + +/* Defined if HDF5 was built with CMake AND build as a static library */ +/* #undef H5_BUILT_AS_STATIC_LIB */ + +/* Defined if HDF5 CPP was built with CMake AND build as a shared library */ +/* #undef H5_CPP_BUILT_AS_DYNAMIC_LIB */ + +/* Defined if HDF5 CPP was built with CMake AND build as a static library */ +/* #undef H5_CPP_BUILT_AS_STATIC_LIB */ + +/* Defined if HDF5 HL was built with CMake AND build as a shared library */ +/* #undef H5_HL_BUILT_AS_DYNAMIC_LIB */ + +/* Defined if HDF5 HL was built with CMake AND build as a static library */ +/* #undef H5_HL_BUILT_AS_STATIC_LIB */ + +/* Define if building universal (internal helper macro) */ +/* #undef H5_AC_APPLE_UNIVERSAL_BUILD */ + +/* Define if your system generates wrong code for log2 routine. */ +/* #undef H5_BAD_LOG2_CODE_GENERATED */ + +/* Define if the memory buffers being written to disk should be cleared before + writing. */ +#define H5_CLEAR_MEMORY 1 + +/* Define if your system can handle converting denormalized floating-point + values. */ +#define H5_CONVERT_DENORMAL_FLOAT 1 + +/* Define if C++ compiler recognizes offsetof */ +/* #undef H5_CXX_HAVE_OFFSETOF */ + +/* Define the default plugins path to compile */ +#define H5_DEFAULT_PLUGINDIR "%ALLUSERSPROFILE%/hdf5/lib/plugin" + +/* Define the default virtual file driver to compile */ +#define H5_DEFAULT_VFD H5FD_SEC2 + +/* Define if `dev_t' is a scalar */ +/* #undef H5_DEV_T_IS_SCALAR */ + +/* Define to dummy `main' function (if any) required to link to the Fortran + libraries. */ +/* #undef H5_FC_DUMMY_MAIN */ + +/* Define if F77 and FC dummy `main' functions are identical. */ +/* #undef H5_FC_DUMMY_MAIN_EQ_F77 */ + +/* Define to a macro mangling the given C identifier (in lower and upper + case), which must not contain underscores, for linking with Fortran. */ +#define H5_FC_FUNC(name,NAME) NAME + +/* As FC_FUNC, but for C identifiers containing underscores. */ +#define H5_FC_FUNC_(name,NAME) NAME + +/* Define if your system can handle overflow converting floating-point to + integer values. */ +#define H5_FP_TO_INTEGER_OVERFLOW_WORKS 1 + +/* Define if your system roundup accurately converting floating-point to + unsigned long long values. */ +#define H5_FP_TO_ULLONG_ACCURATE 1 + +/* Define if your system has right maximum convert floating-point to unsigned + long long values. */ +/* #undef H5_FP_TO_ULLONG_RIGHT_MAXIMUM */ + +/* Define if gettimeofday() populates the tz pointer passed in */ +#define H5_GETTIMEOFDAY_GIVES_TZ 1 + +/* Define to 1 if you have the `alarm' function. */ +/* #undef H5_HAVE_ALARM */ + +/* Define if the __attribute__(()) extension is present */ +/* #undef H5_HAVE_ATTRIBUTE */ + +/* Define to 1 if you have the `BSDgettimeofday' function. */ +/* #undef H5_HAVE_BSDGETTIMEOFDAY */ + +/* Define if the compiler understands C99 designated initialization of structs + and unions */ +/* #undef H5_HAVE_C99_DESIGNATED_INITIALIZER */ + +/* Define if the compiler understands the __func__ keyword */ +/* #undef H5_HAVE_C99_FUNC */ + +/* Define to 1 if you have the `clock_gettime' function. */ +/* #undef H5_HAVE_CLOCK_GETTIME */ + +/* Define if the function stack tracing code is to be compiled in */ +/* #undef H5_HAVE_CODESTACK */ + +/* Define if Darwin or Mac OS X */ +/* #undef H5_HAVE_DARWIN */ + +/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. + */ +#define H5_HAVE_DECL_TZNAME 1 + +/* Define to 1 if you have the `difftime' function. */ +#define H5_HAVE_DIFFTIME 1 + +/* Define if the direct I/O virtual file driver should be compiled */ +/* #undef H5_HAVE_DIRECT */ + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_DIRENT_H */ + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_DLFCN_H */ + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_DMALLOC_H */ + +/* Define if library information should be embedded in the executables */ +#define H5_HAVE_EMBEDDED_LIBINFO 1 + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_FEATURES_H */ + +/* Define if support for deflate (zlib) filter is enabled */ +#define H5_HAVE_FILTER_DEFLATE 1 + +/* Define if support for Fletcher32 checksum is enabled */ +#define H5_HAVE_FILTER_FLETCHER32 1 + +/* Define if support for nbit filter is enabled */ +#define H5_HAVE_FILTER_NBIT 1 + +/* Define if support for scaleoffset filter is enabled */ +#define H5_HAVE_FILTER_SCALEOFFSET 1 + +/* Define if support for shuffle filter is enabled */ +#define H5_HAVE_FILTER_SHUFFLE 1 + +/* Define if support for szip filter is enabled */ +#define H5_HAVE_FILTER_SZIP 1 + +/* Define to 1 if you have the `fork' function. */ +/* #undef H5_HAVE_FORK */ + +/* Define to 1 if you have the `frexpf' function. */ +/* #undef H5_HAVE_FREXPF */ + +/* Define to 1 if you have the `frexpl' function. */ +/* #undef H5_HAVE_FREXPL */ + +/* Define to 1 if you have the `fseeko' function. */ +/* #undef H5_HAVE_FSEEKO */ + +/* Define to 1 if you have the `fseeko64' function. */ +/* #undef H5_HAVE_FSEEKO64 */ + +/* Define to 1 if you have the `fstat64' function. */ +/* #undef H5_HAVE_FSTAT64 */ + +/* Define to 1 if you have the `ftello' function. */ +/* #undef H5_HAVE_FTELLO */ + +/* Define to 1 if you have the `ftello64' function. */ +/* #undef H5_HAVE_FTELLO64 */ + +/* Define to 1 if you have the `ftruncate64' function. */ +/* #undef H5_HAVE_FTRUNCATE64 */ + +/* Define if the compiler understands the __FUNCTION__ keyword */ +#define H5_HAVE_FUNCTION 1 + +/* Define to 1 if you have the `GetConsoleScreenBufferInfo' function. */ +#define H5_HAVE_GETCONSOLESCREENBUFFERINFO 1 + +/* Define to 1 if you have the `gethostname' function. */ +#define H5_HAVE_GETHOSTNAME 1 + +/* Define to 1 if you have the `getpwuid' function. */ +/* #undef H5_HAVE_GETPWUID */ + +/* Define to 1 if you have the `getrusage' function. */ +/* #undef H5_HAVE_GETRUSAGE */ + +/* Define to 1 if you have the `gettextinfo' function. */ +/* #undef H5_HAVE_GETTEXTINFO */ + +/* Define to 1 if you have the `gettimeofday' function. */ +#define H5_HAVE_GETTIMEOFDAY 1 + +/* Define to 1 if you have the `gettimeofday' function declared in time.h . */ +/* #undef H5_HAVE_TIME_GETTIMEOFDAY */ + +/* Define to 1 if you have the `gettimeofday' function declared in sys/time.h . */ +/* #undef H5_HAVE_SYS_TIME_GETTIMEOFDAY */ + +/* Define to 1 if you have the `get_fpc_csr' function. */ +/* #undef H5_HAVE_GET_FPC_CSR */ + +/* Define if we have GPFS support */ +/* #undef H5_HAVE_GPFS */ + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_GPFS_H */ + +/* Define if library will contain instrumentation to detect correct + optimization operation */ +/* #undef H5_HAVE_INSTRUMENTED_LIBRARY */ + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_INTTYPES_H */ + +/* Define to 1 if you have the `ioctl' function. */ +/* #undef H5_HAVE_IOCTL */ + +/* Define to 1 if you have the header file. */ +#define H5_HAVE_IO_H 1 + +/* Define to 1 if you have the `dl' library (-ldl). */ +/* #undef H5_HAVE_LIBDL */ + +/* Define to 1 if you have the `dmalloc' library (-ldmalloc). */ +/* #undef H5_HAVE_LIBDMALLOC */ + +/* Define to 1 if you have the `lmpe' library (-llmpe). */ +/* #undef H5_HAVE_LIBLMPE */ + +/* Define to 1 if you have the `m' library (-lm). */ +#define H5_HAVE_LIBM 1 + +/* Define to 1 if you have the `mpe' library (-lmpe). */ +/* #undef H5_HAVE_LIBMPE */ + +/* Define to 1 if you have the `mpi' library (-lmpi). */ +/* #undef H5_HAVE_LIBMPI */ + +/* Define to 1 if you have the `mpich' library (-lmpich). */ +/* #undef H5_HAVE_LIBMPICH */ + +/* Define to 1 if you have the `mpio' library (-lmpio). */ +/* #undef H5_HAVE_LIBMPIO */ + +/* Define to 1 if you have the `nsl' library (-lnsl). */ +/* #undef H5_HAVE_LIBNSL */ + +/* Define to 1 if you have the `pthread' library (-lpthread). */ +/* #undef H5_HAVE_LIBPTHREAD */ + +/* Define to 1 if you have the `socket' library (-lsocket). */ +/* #undef H5_HAVE_LIBSOCKET */ + +/* Define to 1 if you have the `sz' library (-lsz). */ +#define H5_HAVE_LIBSZ 1 + +/* Define to 1 if you have the `ws2_32' library (-lws2_32). */ +#define H5_HAVE_LIBWS2_32 1 + +/* Define to 1 if you have the `z' library (-lz). */ +#define H5_HAVE_LIBZ 1 + +/* Define to 1 if you have the `longjmp' function. */ +#define H5_HAVE_LONGJMP 1 + +/* Define to 1 if you have the `lseek64' function. */ +/* #undef H5_HAVE_LSEEK64 */ + +/* Define to 1 if you have the `lstat' function. */ +/* #undef H5_HAVE_LSTAT */ + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_MACH_MACH_TIME_H */ + +/* Define to 1 if you have the header file. */ +#define H5_HAVE_MEMORY_H 1 + +/* Define if we have MPE support */ +/* #undef H5_HAVE_MPE */ + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_MPE_H */ + +/* Define if MPI_File_get_size works correctly */ +/* #undef H5_HAVE_MPI_GET_SIZE */ + +/* Define if `MPI_Comm_c2f' and `MPI_Comm_f2c' exists */ +/* #undef H5_HAVE_MPI_MULTI_LANG_Comm */ + +/* Define if `MPI_Info_c2f' and `MPI_Info_f2c' exists */ +/* #undef H5_HAVE_MPI_MULTI_LANG_Info */ + +/* Define if we have parallel support */ +/* #undef H5_HAVE_PARALLEL */ + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_PTHREAD_H */ + +/* Define to 1 if you have the 'InitOnceExecuteOnce' function. */ +/* #undef H5_HAVE_WIN_THREADS */ + +/* Define to 1 if you have the `random' function. */ +/* #undef H5_HAVE_RANDOM */ + +/* Define to 1 if you have the `rand_r' function. */ +/* #undef H5_HAVE_RAND_R */ + +/* Define to 1 if you have the `sigsetjmp' function. */ +#define H5_HAVE_SETJMP 1 + +/* Define to 1 if you have the header file. */ +#define H5_HAVE_SETJMP_H 1 + +/* Define to 1 if you have the `setsysinfo' function. */ +/* #undef H5_HAVE_SETSYSINFO */ + +/* Define to 1 if you have the `sigaction' function. */ +/* #undef H5_HAVE_SIGACTION */ + +/* Define to 1 if you have the `siglongjmp' function. */ +/* #undef H5_HAVE_SIGLONGJMP */ + +/* Define to 1 if you have the `signal' function. */ +#define H5_HAVE_SIGNAL 1 + +/* Define to 1 if you have the `sigprocmask' function. */ +/* #undef H5_HAVE_SIGPROCMASK */ + +/* Define to 1 if you have the `sigsetjmp' function. */ +/* #undef H5_HAVE_SIGSETJMP */ + +/* Define to 1 if you have the `snprintf' function. */ +/* #undef H5_HAVE_SNPRINTF */ + +/* Define to 1 if you have the `srandom' function. */ +/* #undef H5_HAVE_SRANDOM */ + +/* Define to 1 if you have the `stat64' function. */ +/* #undef H5_HAVE_STAT64 */ + +/* Define if `struct stat' has the `st_blocks' field */ +/* #undef H5_HAVE_STAT_ST_BLOCKS */ + +/* Define to 1 if you have the header file. */ +#define H5_HAVE_STDDEF_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_STDINT_H */ + +/* Define to 1 if you have the header file for Cplusplus. */ +/* #undef H5_HAVE_STDINT_H_CXX */ + +/* Define to 1 if you have the header file. */ +#define H5_HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `strdup' function. */ +#define H5_HAVE_STRDUP 1 + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_STRINGS_H */ + +/* Define to 1 if you have the header file. */ +#define H5_HAVE_STRING_H 1 + +/* Define if `struct text_info' is defined */ +/* #undef H5_HAVE_STRUCT_TEXT_INFO */ + +/* Define if `struct timezone' is defined */ +/* #undef H5_HAVE_STRUCT_TIMEZONE */ + +/* Define to 1 if `tm_zone' is a member of `struct tm'. */ +/* #undef H5_HAVE_STRUCT_TM_TM_ZONE */ + +/* Define if `struct videoconfig' is defined */ +/* #undef H5_HAVE_STRUCT_VIDEOCONFIG */ + +/* Define to 1 if you have the `symlink' function. */ +/* #undef H5_HAVE_SYMLINK */ + +/* Define to 1 if you have the `system' function. */ +#define H5_HAVE_SYSTEM 1 + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_SYS_FPU_H */ + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_SYS_IOCTL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_SYS_PROC_H */ + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_SYS_RESOURCE_H */ + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_SYS_SOCKET_H */ + +/* Define to 1 if you have the header file. */ +#define H5_HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_SYS_SYSINFO_H */ + +/* Define to 1 if you have the header file. */ +#define H5_HAVE_SYS_TIMEB_H 1 + +/* Define to 1 if you have the header file. */ +#define H5_HAVE_TIME_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_SYS_TIME_H */ + +/* Define to 1 if you have the header file. */ +#define H5_HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define H5_HAVE_SZLIB_H 1 + +/* Define if we have thread safe support */ +/* #undef H5_HAVE_THREADSAFE */ + +/* Define if `timezone' is a global variable */ +#define H5_HAVE_TIMEZONE 1 + +/* Define if the ioctl TIOCGETD is defined */ +/* #undef H5_HAVE_TIOCGETD */ + +/* Define if the ioctl TIOGWINSZ is defined */ +/* #undef H5_HAVE_TIOCGWINSZ */ + +/* Define to 1 if you have the `tmpfile' function. */ +#define H5_HAVE_TMPFILE 1 + +/* Define if `tm_gmtoff' is a member of `struct tm' */ +/* #undef H5_HAVE_TM_GMTOFF */ + +/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use + `HAVE_STRUCT_TM_TM_ZONE' instead. */ +/* #undef H5_HAVE_TM_ZONE */ + +/* Define to 1 if you don't have `tm_zone' but do have the external array + `tzname'. */ +/* #undef H5_HAVE_TZNAME */ + +/* Define to 1 if you have the header file. */ +/* #undef H5_HAVE_UNISTD_H */ + +/* Define to 1 if you have the `vasprintf' function. */ +/* #undef H5_HAVE_VASPRINTF */ + +/* Define to 1 if you have the `vsnprintf' function. */ +#define H5_HAVE_VSNPRINTF 1 + +/* Define to 1 if you have the `waitpid' function. */ +/* #undef H5_HAVE_WAITPID */ + +/* Define if your system has window style path name. */ +#define H5_HAVE_WINDOW_PATH 1 + +/* Define to 1 if you have the header file. */ +#define H5_HAVE_WINSOCK2_H 1 + +/* Define to 1 if you have the header file. */ +#define H5_HAVE_ZLIB_H 1 + +/* Define to 1 if you have the `_getvideoconfig' function. */ +/* #undef H5_HAVE__GETVIDEOCONFIG */ + +/* Define to 1 if you have the `_scrsize' function. */ +/* #undef H5_HAVE__SCRSIZE */ + +/* Define if `__tm_gmtoff' is a member of `struct tm' */ +/* #undef H5_HAVE___TM_GMTOFF */ + +/* Define if your system can't handle converting floating-point values to long + long. */ +/* #undef H5_HW_FP_TO_LLONG_NOT_WORKS */ + +/* Define if HDF5's high-level library headers should be included in hdf5.h */ +#define H5_INCLUDE_HL 1 + +/* Define if your system can accurately convert from integers to long double + values. */ +#define H5_INTEGER_TO_LDOUBLE_ACCURATE 1 + +/* Define if your system can convert long double to integers accurately. */ +#define H5_LDOUBLE_TO_INTEGER_ACCURATE 1 + +/* Define if your system can convert from long double to integer values. */ +/* #undef H5_LDOUBLE_TO_INTEGER_WORKS */ + +/* Define if your system can convert long double to (unsigned) long long + values correctly. */ +#define H5_LDOUBLE_TO_LLONG_ACCURATE 1 + +/* Define if your system converts long double to (unsigned) long values with + special algorithm. */ +/* #undef H5_LDOUBLE_TO_LONG_SPECIAL */ + +/* Define if your system can convert long double to unsigned int values + correctly. */ +#define H5_LDOUBLE_TO_UINT_ACCURATE 1 + +/* Define if your system can compile long long to floating-point casts. */ +#define H5_LLONG_TO_FP_CAST_WORKS 1 + +/* Define if your system can convert (unsigned) long long to long double + values correctly. */ +#define H5_LLONG_TO_LDOUBLE_CORRECT 1 + +/* Define if your system can convert (unsigned) long to long double values + with special algorithm. */ +/* #undef H5_LONG_TO_LDOUBLE_SPECIAL */ + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +/* #undef H5_LT_OBJDIR */ + +/* Define if the metadata trace file code is to be compiled in */ +/* #undef H5_METADATA_TRACE_FILE */ + +/* Define if your system's `MPI_File_set_size' function works for files over + 2GB. */ +/* #undef H5_MPI_FILE_SET_SIZE_BIG */ + +/* Define if we can violate pointer alignment restrictions */ +#define H5_NO_ALIGNMENT_RESTRICTIONS 1 + +/* Define if deprecated public API symbols are disabled */ +/* #undef H5_NO_DEPRECATED_SYMBOLS */ + +/* Define if shared writing must be disabled (CodeWarrior only) */ +/* #undef H5_NO_SHARED_WRITING */ + +/* Name of package */ +#define H5_PACKAGE "hdf5" + +/* Define to the address where bug reports for this package should be sent. */ +#define H5_PACKAGE_BUGREPORT "help@hdfgroup.org" + +/* Define to the full name of this package. */ +#define H5_PACKAGE_NAME "HDF5" + +/* Define to the full name and version of this package. */ +#define H5_PACKAGE_STRING "HDF5 1.8.12" + +/* Define to the one symbol short name of this package. */ +#define H5_PACKAGE_TARNAME "hdf5" + +/* Define to the home page for this package. */ +#define H5_PACKAGE_URL "http://www.hdfgroup.org" + +/* Define to the version of this package. */ +#define H5_PACKAGE_VERSION "1.8.12" + +/* Width for printf() for type `long long' or `__int64', use `ll' */ +#define H5_PRINTF_LL_WIDTH "ll" + +/* The size of `char', as computed by sizeof. */ +#define H5_SIZEOF_CHAR 1 + +/* The size of `double', as computed by sizeof. */ +#define H5_SIZEOF_DOUBLE 8 + +/* The size of `float', as computed by sizeof. */ +#define H5_SIZEOF_FLOAT 4 + +/* The size of `int', as computed by sizeof. */ +#define H5_SIZEOF_INT 4 + +/* The size of `int16_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_INT16_T */ + +/* The size of `int32_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_INT32_T */ + +/* The size of `int64_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_INT64_T */ + +/* The size of `int8_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_INT8_T */ + +/* The size of `int_fast16_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_INT_FAST16_T */ + +/* The size of `int_fast32_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_INT_FAST32_T */ + +/* The size of `int_fast64_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_INT_FAST64_T */ + +/* The size of `int_fast8_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_INT_FAST8_T */ + +/* The size of `int_least16_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_INT_LEAST16_T */ + +/* The size of `int_least32_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_INT_LEAST32_T */ + +/* The size of `int_least64_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_INT_LEAST64_T */ + +/* The size of `int_least8_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_INT_LEAST8_T */ + +#if !defined(__APPLE__) +/* The size of `size_t', as computed by sizeof. */ +#define H5_SIZEOF_SIZE_T 8 + +/* The size of `ssize_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_SSIZE_T */ + +/* The size of `long', as computed by sizeof. */ +#define H5_SIZEOF_LONG 4 + +#else + # if defined(__LP64__) && __LP64__ + #define H5_SIZEOF_LONG 8 + #define H5_SIZEOF_SIZE_T 8 + #define H5_SIZEOF_SSIZE_T 8 + # else + #define H5_SIZEOF_LONG 4 + #define H5_SIZEOF_SIZE_T 4 + #define H5_SIZEOF_SSIZE_T 4 + # endif + +#endif + +/* The size of `long double', as computed by sizeof. */ +#define H5_SIZEOF_LONG_DOUBLE 8 + +/* Define size of long long and/or __int64 bit integer type only if the type + exists. */ +#if !defined(__APPLE__) + #define H5_SIZEOF_LONG_LONG 8 +#else + #define H5_SIZEOF_LONG_LONG 8 +#endif + +/* The size of `off64_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_OFF64_T */ + +/* The size of `off_t', as computed by sizeof. */ +#define H5_SIZEOF_OFF_T 4 + +/* The size of `ptrdiff_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_PTRDIFF_T */ + +/* The size of `short', as computed by sizeof. */ +#define H5_SIZEOF_SHORT 2 + +/* The size of `uint16_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_UINT16_T */ + +/* The size of `uint32_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_UINT32_T */ + +/* The size of `uint64_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_UINT64_T */ + +/* The size of `uint8_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_UINT8_T */ + +/* The size of `uint_fast16_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_UINT_FAST16_T */ + +/* The size of `uint_fast32_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_UINT_FAST32_T */ + +/* The size of `uint_fast64_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_UINT_FAST64_T */ + +/* The size of `uint_fast8_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_UINT_FAST8_T */ + +/* The size of `uint_least16_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_UINT_LEAST16_T */ + +/* The size of `uint_least32_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_UINT_LEAST32_T */ + +/* The size of `uint_least64_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_UINT_LEAST64_T */ + +/* The size of `uint_least8_t', as computed by sizeof. */ +/* #undef H5_SIZEOF_UINT_LEAST8_T */ + +/* The size of `unsigned', as computed by sizeof. */ +#define H5_SIZEOF_UNSIGNED 4 + +/* The size of `__int64', as computed by sizeof. */ +#define H5_SIZEOF___INT64 8 + +/* Define to 1 if you have the ANSI C header files. */ +#define H5_STDC_HEADERS 1 + +/* Define if strict file format checks are enabled */ +/* #undef H5_STRICT_FORMAT_CHECKS */ + +/* Define if your system supports pthread_attr_setscope(&attribute, + PTHREAD_SCOPE_SYSTEM) call. */ +/* #undef H5_SYSTEM_SCOPE_THREADS */ + +/* Define to 1 if you can safely include both and . */ +/* #undef H5_TIME_WITH_SYS_TIME */ + +/* Define to 1 if your declares `struct tm'. */ +/* #undef H5_TM_IN_SYS_TIME */ + +/* Define if your system can compile unsigned long long to floating-point + casts. */ +#define H5_ULLONG_TO_FP_CAST_WORKS 1 + +/* Define if your system can convert unsigned long long to long double with + correct precision. */ +/* #undef H5_ULLONG_TO_LDOUBLE_PRECISION */ + +/* Define if your system accurately converting unsigned long to float values. + */ +#define H5_ULONG_TO_FLOAT_ACCURATE 1 + +/* Define if your system can accurately convert unsigned (long) long values to + floating-point values. */ +#define H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE 1 + +/* Define using v1.6 public API symbols by default */ +/* #undef H5_USE_16_API_DEFAULT */ + +/* Define if a memory checking tool will be used on the library, to cause + library to be very picky about memory operations and also disable the + internal free list manager code. */ +/* #undef H5_USING_MEMCHECKER */ + +/* Version number of package */ +#define H5_VERSION "1.8.12" + +/* Define if vsnprintf() returns the correct value for formatted strings that + don't fit into size allowed */ +/* #undef H5_VSNPRINTF_WORKS */ + +/* Data accuracy is prefered to speed during data conversions */ +#define H5_WANT_DATA_ACCURACY 1 + +/* Check exception handling functions during data conversions */ +#define H5_WANT_DCONV_EXCEPTION 1 + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if !defined(__APPLE__) +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#else +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#endif + +/* #undef WORDS_BIGENDIAN */ + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef H5__FILE_OFFSET_BITS */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef H5__LARGE_FILES */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef H5_const */ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#define H5_inline __inline +#endif + +/* Define to `long int' if does not define. */ +/* #undef H5_off_t */ + +/* Define to `long' if does not define. */ +/* #undef H5_ptrdiff_t */ + +/* Define to `unsigned long' if does not define. */ +/* #undef H5_size_t */ + +/* Define to `long' if does not define. */ +/* #undef H5_ssize_t */ + +#if defined(__cplusplus) && defined(inline) +#undef inline +#endif + +#endif diff --git a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5public.h b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5public.h index 6682454630..e0b4a589df 100644 --- a/_LowLevelCode/external/HDF5_1.8.12_win/include/H5public.h +++ b/_LowLevelCode/external/HDF5_1.8.12_win/include/H5public.h @@ -1,321 +1,321 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * 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 files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* - * This file contains public declarations for the HDF5 module. - */ -#ifndef _H5public_H -#define _H5public_H - -/* Include files for public use... */ -/* - * Since H5pubconf.h is a generated header file, it is messy to try - * to put a #ifndef _H5pubconf_H ... #endif guard in it. - * HDF5 has set an internal rule that it is being included here. - * Source files should NOT include H5pubconf.h directly but include - * it via H5public.h. The #ifndef _H5public_H guard above would - * prevent repeated include. - */ -#include "H5pubconf.h" /*from configure */ - -/* API Version macro wrapper definitions */ -#include "H5version.h" - -#ifdef H5_HAVE_FEATURES_H -#include /*for setting POSIX, BSD, etc. compatibility */ -#endif -#ifdef H5_HAVE_SYS_TYPES_H -#include -#endif -#ifdef H5_STDC_HEADERS -# include /*for H5T_NATIVE_CHAR defn in H5Tpublic.h */ -#endif -#ifndef __cplusplus -# ifdef H5_HAVE_STDINT_H -# include /*for C9x types */ -# endif -#else -# ifdef H5_HAVE_STDINT_H_CXX -# include /*for C9x types when include from C++ */ -# endif -#endif -#ifdef H5_HAVE_INTTYPES_H -# include /* For uint64_t on some platforms */ -#endif -#ifdef H5_HAVE_STDDEF_H -# include -#endif -#ifdef H5_HAVE_PARALLEL -# include -#ifndef MPI_FILE_NULL /*MPIO may be defined in mpi.h already */ -# include -#endif -#endif - - -/* Include the Windows API adapter header early */ -#include "H5api_adpt.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Version numbers */ -#define H5_VERS_MAJOR 1 /* For major interface/format changes */ -#define H5_VERS_MINOR 8 /* For minor interface/format changes */ -#define H5_VERS_RELEASE 12 /* For tweaks, bug-fixes, or development */ -#define H5_VERS_SUBRELEASE "" /* For pre-releases like snap0 */ - /* Empty string for real releases. */ -#define H5_VERS_INFO "HDF5 library version: 1.8.12" /* Full version string */ - -#define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \ - H5_VERS_RELEASE) - -/* macros for comparing the version */ -#define H5_VERSION_GE(Maj,Min,Rel) \ - (((H5_VERS_MAJOR==Maj) && (H5_VERS_MINOR==Min) && (H5_VERS_RELEASE>=Rel)) || \ - ((H5_VERS_MAJOR==Maj) && (H5_VERS_MINOR>Min)) || \ - (H5_VERS_MAJOR>Maj)) - -#define H5_VERSION_LE(Maj,Min,Rel) \ - (((H5_VERS_MAJOR==Maj) && (H5_VERS_MINOR==Min) && (H5_VERS_RELEASE<=Rel)) || \ - ((H5_VERS_MAJOR==Maj) && (H5_VERS_MINOR0) { - * printf("data type is committed\n"); - * } else if (!retval) { - * printf("data type is not committed\n"); - * } else { - * printf("error determining whether data type is committed\n"); - * } - */ -typedef unsigned int hbool_t; -typedef int htri_t; - -/* Define the ssize_t type if it not is defined */ -#if H5_SIZEOF_SSIZE_T==0 -/* Undefine this size, we will re-define it in one of the sections below */ -#undef H5_SIZEOF_SSIZE_T -#if H5_SIZEOF_SIZE_T==H5_SIZEOF_INT -typedef int ssize_t; -# define H5_SIZEOF_SSIZE_T H5_SIZEOF_INT -#elif H5_SIZEOF_SIZE_T==H5_SIZEOF_LONG -typedef long ssize_t; -# define H5_SIZEOF_SSIZE_T H5_SIZEOF_LONG -#elif H5_SIZEOF_SIZE_T==H5_SIZEOF_LONG_LONG -typedef long long ssize_t; -# define H5_SIZEOF_SSIZE_T H5_SIZEOF_LONG_LONG -#else /* Can't find matching type for ssize_t */ -# error "nothing appropriate for ssize_t" -#endif -#endif - -/* - * The sizes of file objects have their own types defined here, use a 64-bit - * type. - */ -#if H5_SIZEOF_LONG_LONG >= 8 -typedef unsigned long long hsize_t; -typedef signed long long hssize_t; -# define H5_SIZEOF_HSIZE_T H5_SIZEOF_LONG_LONG -# define H5_SIZEOF_HSSIZE_T H5_SIZEOF_LONG_LONG -#else -# error "nothing appropriate for hsize_t" -#endif - -/* - * File addresses have their own types. - */ -#if H5_SIZEOF_INT64_T>=8 - typedef uint64_t haddr_t; -# define HADDR_UNDEF ((haddr_t)(int64_t)(-1)) -# define H5_SIZEOF_HADDR_T H5_SIZEOF_INT64_T -# ifdef H5_HAVE_PARALLEL -# define HADDR_AS_MPI_TYPE MPI_LONG_LONG_INT -# endif /* H5_HAVE_PARALLEL */ -#elif H5_SIZEOF_INT>=8 - typedef unsigned haddr_t; -# define HADDR_UNDEF ((haddr_t)(-1)) -# define H5_SIZEOF_HADDR_T H5_SIZEOF_INT -# ifdef H5_HAVE_PARALLEL -# define HADDR_AS_MPI_TYPE MPI_UNSIGNED -# endif /* H5_HAVE_PARALLEL */ -#elif H5_SIZEOF_LONG>=8 - typedef unsigned long haddr_t; -# define HADDR_UNDEF ((haddr_t)(long)(-1)) -# define H5_SIZEOF_HADDR_T H5_SIZEOF_LONG -# ifdef H5_HAVE_PARALLEL -# define HADDR_AS_MPI_TYPE MPI_UNSIGNED_LONG -# endif /* H5_HAVE_PARALLEL */ -#elif H5_SIZEOF_LONG_LONG>=8 - typedef unsigned long long haddr_t; -# define HADDR_UNDEF ((haddr_t)(long long)(-1)) -# define H5_SIZEOF_HADDR_T H5_SIZEOF_LONG_LONG -# ifdef H5_HAVE_PARALLEL -# define HADDR_AS_MPI_TYPE MPI_LONG_LONG_INT -# endif /* H5_HAVE_PARALLEL */ -#else -# error "nothing appropriate for haddr_t" -#endif -#if H5_SIZEOF_HADDR_T ==H5_SIZEOF_INT -# define H5_PRINTF_HADDR_FMT "%u" -#elif H5_SIZEOF_HADDR_T ==H5_SIZEOF_LONG -# define H5_PRINTF_HADDR_FMT "%lu" -#elif H5_SIZEOF_HADDR_T ==H5_SIZEOF_LONG_LONG -# define H5_PRINTF_HADDR_FMT "%" H5_PRINTF_LL_WIDTH "u" -#else -# error "nothing appropriate for H5_PRINTF_HADDR_FMT" -#endif -#define HADDR_MAX (HADDR_UNDEF-1) - -/* uint32_t type is used for creation order field for messages. It may be - * defined in Posix.1g, otherwise it is defined here. - */ -#if H5_SIZEOF_UINT32_T>=4 -#elif H5_SIZEOF_SHORT>=4 - typedef short uint32_t; -# undef H5_SIZEOF_UINT32_T -# define H5_SIZEOF_UINT32_T H5_SIZEOF_SHORT -#elif H5_SIZEOF_INT>=4 - typedef unsigned int uint32_t; -# undef H5_SIZEOF_UINT32_T -# define H5_SIZEOF_UINT32_T H5_SIZEOF_INT -#elif H5_SIZEOF_LONG>=4 - typedef unsigned long uint32_t; -# undef H5_SIZEOF_UINT32_T -# define H5_SIZEOF_UINT32_T H5_SIZEOF_LONG -#else -# error "nothing appropriate for uint32_t" -#endif - -/* int64_t type is used for creation order field for links. It may be - * defined in Posix.1g, otherwise it is defined here. - */ -#if H5_SIZEOF_INT64_T>=8 -#elif H5_SIZEOF_INT>=8 - typedef int int64_t; -# undef H5_SIZEOF_INT64_T -# define H5_SIZEOF_INT64_T H5_SIZEOF_INT -#elif H5_SIZEOF_LONG>=8 - typedef long int64_t; -# undef H5_SIZEOF_INT64_T -# define H5_SIZEOF_INT64_T H5_SIZEOF_LONG -#elif H5_SIZEOF_LONG_LONG>=8 - typedef long long int64_t; -# undef H5_SIZEOF_INT64_T -# define H5_SIZEOF_INT64_T H5_SIZEOF_LONG_LONG -#else -# error "nothing appropriate for int64_t" -#endif - -/* uint64_t type is used for fields for H5O_info_t. It may be - * defined in Posix.1g, otherwise it is defined here. - */ -#if H5_SIZEOF_UINT64_T>=8 -#elif H5_SIZEOF_INT>=8 - typedef unsigned uint64_t; -# undef H5_SIZEOF_UINT64_T -# define H5_SIZEOF_UINT64_T H5_SIZEOF_INT -#elif H5_SIZEOF_LONG>=8 - typedef unsigned long uint64_t; -# undef H5_SIZEOF_UINT64_T -# define H5_SIZEOF_UINT64_T H5_SIZEOF_LONG -#elif H5_SIZEOF_LONG_LONG>=8 - typedef unsigned long long uint64_t; -# undef H5_SIZEOF_UINT64_T -# define H5_SIZEOF_UINT64_T H5_SIZEOF_LONG_LONG -#else -# error "nothing appropriate for uint64_t" -#endif - -/* Default value for all property list classes */ -#define H5P_DEFAULT 0 - -/* Common iteration orders */ -typedef enum { - H5_ITER_UNKNOWN = -1, /* Unknown order */ - H5_ITER_INC, /* Increasing order */ - H5_ITER_DEC, /* Decreasing order */ - H5_ITER_NATIVE, /* No particular order, whatever is fastest */ - H5_ITER_N /* Number of iteration orders */ -} H5_iter_order_t; - -/* Iteration callback values */ -/* (Actually, any postive value will cause the iterator to stop and pass back - * that positive value to the function that called the iterator) - */ -#define H5_ITER_ERROR (-1) -#define H5_ITER_CONT (0) -#define H5_ITER_STOP (1) - -/* - * The types of indices on links in groups/attributes on objects. - * Primarily used for " by index" routines and for iterating over - * links in groups/attributes on objects. - */ -typedef enum H5_index_t { - H5_INDEX_UNKNOWN = -1, /* Unknown index type */ - H5_INDEX_NAME, /* Index on names */ - H5_INDEX_CRT_ORDER, /* Index on creation order */ - H5_INDEX_N /* Number of indices defined */ -} H5_index_t; - -/* - * Storage info struct used by H5O_info_t and H5F_info_t - */ -typedef struct H5_ih_info_t { - hsize_t index_size; /* btree and/or list */ - hsize_t heap_size; -} H5_ih_info_t; - -/* Functions in H5.c */ -H5_DLL herr_t H5open(void); -H5_DLL herr_t H5close(void); -H5_DLL herr_t H5dont_atexit(void); -H5_DLL herr_t H5garbage_collect(void); -H5_DLL herr_t H5set_free_list_limits (int reg_global_lim, int reg_list_lim, - int arr_global_lim, int arr_list_lim, int blk_global_lim, - int blk_list_lim); -H5_DLL herr_t H5get_libversion(unsigned *majnum, unsigned *minnum, - unsigned *relnum); -H5_DLL herr_t H5check_version(unsigned majnum, unsigned minnum, - unsigned relnum); - -#ifdef __cplusplus -} -#endif -#endif - +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * This file contains public declarations for the HDF5 module. + */ +#ifndef _H5public_H +#define _H5public_H + +/* Include files for public use... */ +/* + * Since H5pubconf.h is a generated header file, it is messy to try + * to put a #ifndef _H5pubconf_H ... #endif guard in it. + * HDF5 has set an internal rule that it is being included here. + * Source files should NOT include H5pubconf.h directly but include + * it via H5public.h. The #ifndef _H5public_H guard above would + * prevent repeated include. + */ +#include "H5pubconf.h" /*from configure */ + +/* API Version macro wrapper definitions */ +#include "H5version.h" + +#ifdef H5_HAVE_FEATURES_H +#include /*for setting POSIX, BSD, etc. compatibility */ +#endif +#ifdef H5_HAVE_SYS_TYPES_H +#include +#endif +#ifdef H5_STDC_HEADERS +# include /*for H5T_NATIVE_CHAR defn in H5Tpublic.h */ +#endif +#ifndef __cplusplus +# ifdef H5_HAVE_STDINT_H +# include /*for C9x types */ +# endif +#else +# ifdef H5_HAVE_STDINT_H_CXX +# include /*for C9x types when include from C++ */ +# endif +#endif +#ifdef H5_HAVE_INTTYPES_H +# include /* For uint64_t on some platforms */ +#endif +#ifdef H5_HAVE_STDDEF_H +# include +#endif +#ifdef H5_HAVE_PARALLEL +# include +#ifndef MPI_FILE_NULL /*MPIO may be defined in mpi.h already */ +# include +#endif +#endif + + +/* Include the Windows API adapter header early */ +#include "H5api_adpt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Version numbers */ +#define H5_VERS_MAJOR 1 /* For major interface/format changes */ +#define H5_VERS_MINOR 8 /* For minor interface/format changes */ +#define H5_VERS_RELEASE 12 /* For tweaks, bug-fixes, or development */ +#define H5_VERS_SUBRELEASE "" /* For pre-releases like snap0 */ + /* Empty string for real releases. */ +#define H5_VERS_INFO "HDF5 library version: 1.8.12" /* Full version string */ + +#define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \ + H5_VERS_RELEASE) + +/* macros for comparing the version */ +#define H5_VERSION_GE(Maj,Min,Rel) \ + (((H5_VERS_MAJOR==Maj) && (H5_VERS_MINOR==Min) && (H5_VERS_RELEASE>=Rel)) || \ + ((H5_VERS_MAJOR==Maj) && (H5_VERS_MINOR>Min)) || \ + (H5_VERS_MAJOR>Maj)) + +#define H5_VERSION_LE(Maj,Min,Rel) \ + (((H5_VERS_MAJOR==Maj) && (H5_VERS_MINOR==Min) && (H5_VERS_RELEASE<=Rel)) || \ + ((H5_VERS_MAJOR==Maj) && (H5_VERS_MINOR0) { + * printf("data type is committed\n"); + * } else if (!retval) { + * printf("data type is not committed\n"); + * } else { + * printf("error determining whether data type is committed\n"); + * } + */ +typedef unsigned int hbool_t; +typedef int htri_t; + +/* Define the ssize_t type if it not is defined */ +#if H5_SIZEOF_SSIZE_T==0 +/* Undefine this size, we will re-define it in one of the sections below */ +#undef H5_SIZEOF_SSIZE_T +#if H5_SIZEOF_SIZE_T==H5_SIZEOF_INT +typedef int ssize_t; +# define H5_SIZEOF_SSIZE_T H5_SIZEOF_INT +#elif H5_SIZEOF_SIZE_T==H5_SIZEOF_LONG +typedef long ssize_t; +# define H5_SIZEOF_SSIZE_T H5_SIZEOF_LONG +#elif H5_SIZEOF_SIZE_T==H5_SIZEOF_LONG_LONG +typedef long long ssize_t; +# define H5_SIZEOF_SSIZE_T H5_SIZEOF_LONG_LONG +#else /* Can't find matching type for ssize_t */ +# error "nothing appropriate for ssize_t" +#endif +#endif + +/* + * The sizes of file objects have their own types defined here, use a 64-bit + * type. + */ +#if H5_SIZEOF_LONG_LONG >= 8 +typedef unsigned long long hsize_t; +typedef signed long long hssize_t; +# define H5_SIZEOF_HSIZE_T H5_SIZEOF_LONG_LONG +# define H5_SIZEOF_HSSIZE_T H5_SIZEOF_LONG_LONG +#else +# error "nothing appropriate for hsize_t" +#endif + +/* + * File addresses have their own types. + */ +#if H5_SIZEOF_INT64_T>=8 + typedef uint64_t haddr_t; +# define HADDR_UNDEF ((haddr_t)(int64_t)(-1)) +# define H5_SIZEOF_HADDR_T H5_SIZEOF_INT64_T +# ifdef H5_HAVE_PARALLEL +# define HADDR_AS_MPI_TYPE MPI_LONG_LONG_INT +# endif /* H5_HAVE_PARALLEL */ +#elif H5_SIZEOF_INT>=8 + typedef unsigned haddr_t; +# define HADDR_UNDEF ((haddr_t)(-1)) +# define H5_SIZEOF_HADDR_T H5_SIZEOF_INT +# ifdef H5_HAVE_PARALLEL +# define HADDR_AS_MPI_TYPE MPI_UNSIGNED +# endif /* H5_HAVE_PARALLEL */ +#elif H5_SIZEOF_LONG>=8 + typedef unsigned long haddr_t; +# define HADDR_UNDEF ((haddr_t)(long)(-1)) +# define H5_SIZEOF_HADDR_T H5_SIZEOF_LONG +# ifdef H5_HAVE_PARALLEL +# define HADDR_AS_MPI_TYPE MPI_UNSIGNED_LONG +# endif /* H5_HAVE_PARALLEL */ +#elif H5_SIZEOF_LONG_LONG>=8 + typedef unsigned long long haddr_t; +# define HADDR_UNDEF ((haddr_t)(long long)(-1)) +# define H5_SIZEOF_HADDR_T H5_SIZEOF_LONG_LONG +# ifdef H5_HAVE_PARALLEL +# define HADDR_AS_MPI_TYPE MPI_LONG_LONG_INT +# endif /* H5_HAVE_PARALLEL */ +#else +# error "nothing appropriate for haddr_t" +#endif +#if H5_SIZEOF_HADDR_T ==H5_SIZEOF_INT +# define H5_PRINTF_HADDR_FMT "%u" +#elif H5_SIZEOF_HADDR_T ==H5_SIZEOF_LONG +# define H5_PRINTF_HADDR_FMT "%lu" +#elif H5_SIZEOF_HADDR_T ==H5_SIZEOF_LONG_LONG +# define H5_PRINTF_HADDR_FMT "%" H5_PRINTF_LL_WIDTH "u" +#else +# error "nothing appropriate for H5_PRINTF_HADDR_FMT" +#endif +#define HADDR_MAX (HADDR_UNDEF-1) + +/* uint32_t type is used for creation order field for messages. It may be + * defined in Posix.1g, otherwise it is defined here. + */ +#if H5_SIZEOF_UINT32_T>=4 +#elif H5_SIZEOF_SHORT>=4 + typedef short uint32_t; +# undef H5_SIZEOF_UINT32_T +# define H5_SIZEOF_UINT32_T H5_SIZEOF_SHORT +#elif H5_SIZEOF_INT>=4 + typedef unsigned int uint32_t; +# undef H5_SIZEOF_UINT32_T +# define H5_SIZEOF_UINT32_T H5_SIZEOF_INT +#elif H5_SIZEOF_LONG>=4 + typedef unsigned long uint32_t; +# undef H5_SIZEOF_UINT32_T +# define H5_SIZEOF_UINT32_T H5_SIZEOF_LONG +#else +# error "nothing appropriate for uint32_t" +#endif + +/* int64_t type is used for creation order field for links. It may be + * defined in Posix.1g, otherwise it is defined here. + */ +#if H5_SIZEOF_INT64_T>=8 +#elif H5_SIZEOF_INT>=8 + typedef int int64_t; +# undef H5_SIZEOF_INT64_T +# define H5_SIZEOF_INT64_T H5_SIZEOF_INT +#elif H5_SIZEOF_LONG>=8 + typedef long int64_t; +# undef H5_SIZEOF_INT64_T +# define H5_SIZEOF_INT64_T H5_SIZEOF_LONG +#elif H5_SIZEOF_LONG_LONG>=8 + typedef long long int64_t; +# undef H5_SIZEOF_INT64_T +# define H5_SIZEOF_INT64_T H5_SIZEOF_LONG_LONG +#else +# error "nothing appropriate for int64_t" +#endif + +/* uint64_t type is used for fields for H5O_info_t. It may be + * defined in Posix.1g, otherwise it is defined here. + */ +#if H5_SIZEOF_UINT64_T>=8 +#elif H5_SIZEOF_INT>=8 + typedef unsigned uint64_t; +# undef H5_SIZEOF_UINT64_T +# define H5_SIZEOF_UINT64_T H5_SIZEOF_INT +#elif H5_SIZEOF_LONG>=8 + typedef unsigned long uint64_t; +# undef H5_SIZEOF_UINT64_T +# define H5_SIZEOF_UINT64_T H5_SIZEOF_LONG +#elif H5_SIZEOF_LONG_LONG>=8 + typedef unsigned long long uint64_t; +# undef H5_SIZEOF_UINT64_T +# define H5_SIZEOF_UINT64_T H5_SIZEOF_LONG_LONG +#else +# error "nothing appropriate for uint64_t" +#endif + +/* Default value for all property list classes */ +#define H5P_DEFAULT 0 + +/* Common iteration orders */ +typedef enum { + H5_ITER_UNKNOWN = -1, /* Unknown order */ + H5_ITER_INC, /* Increasing order */ + H5_ITER_DEC, /* Decreasing order */ + H5_ITER_NATIVE, /* No particular order, whatever is fastest */ + H5_ITER_N /* Number of iteration orders */ +} H5_iter_order_t; + +/* Iteration callback values */ +/* (Actually, any postive value will cause the iterator to stop and pass back + * that positive value to the function that called the iterator) + */ +#define H5_ITER_ERROR (-1) +#define H5_ITER_CONT (0) +#define H5_ITER_STOP (1) + +/* + * The types of indices on links in groups/attributes on objects. + * Primarily used for " by index" routines and for iterating over + * links in groups/attributes on objects. + */ +typedef enum H5_index_t { + H5_INDEX_UNKNOWN = -1, /* Unknown index type */ + H5_INDEX_NAME, /* Index on names */ + H5_INDEX_CRT_ORDER, /* Index on creation order */ + H5_INDEX_N /* Number of indices defined */ +} H5_index_t; + +/* + * Storage info struct used by H5O_info_t and H5F_info_t + */ +typedef struct H5_ih_info_t { + hsize_t index_size; /* btree and/or list */ + hsize_t heap_size; +} H5_ih_info_t; + +/* Functions in H5.c */ +H5_DLL herr_t H5open(void); +H5_DLL herr_t H5close(void); +H5_DLL herr_t H5dont_atexit(void); +H5_DLL herr_t H5garbage_collect(void); +H5_DLL herr_t H5set_free_list_limits (int reg_global_lim, int reg_list_lim, + int arr_global_lim, int arr_list_lim, int blk_global_lim, + int blk_list_lim); +H5_DLL herr_t H5get_libversion(unsigned *majnum, unsigned *minnum, + unsigned *relnum); +H5_DLL herr_t H5check_version(unsigned majnum, unsigned minnum, + unsigned relnum); + +#ifdef __cplusplus +} +#endif +#endif +