/* ############################################################################## # # Copyright by The HDF Group. # All rights reserved. # # This file is part of the hl_region High-Level HDF5 APIs. The full copyright # notice, including terms governing use, modification, and redistribution, # is contained in the file COPYING, which can be found at the root of the # source code distribution tree and in the documentation directory (doc/html/). # If you do not have access to this file, you may request a copy of # "the hl_region High-Level HDF5 APIs copyright and license statement" from # help@hdfgroup.org. # ############################################################################## */ #ifndef _hl_region_H5HLerror_H #define _hl_region_H5HLerror_H #include "h5hl_api.h" /* Private header files needed */ /* When this header is included from a private header, don't make calls to H5open() */ #undef H5OPEN #ifndef _hl_region_H5HLprivate2_H #define H5OPEN H5HLopen(), #else /* _hl_region_H5private_H */ #define H5OPEN #endif /* _hl_region_H5private_H */ /* High-Level HDF5 API error class */ #define H5HL_ERR_CLS (H5OPEN H5HL_ERR_CLS_g) H5_HLRDLLVAR hid_t H5HL_ERR_CLS_g; /*********************/ /* Major error codes */ /*********************/ #define H5E_HL (H5OPEN H5E_HL_g) H5_HLRDLLVAR hid_t H5E_HL_g; /* HDF5 High Level */ /*********************/ /* Minor error codes */ /*********************/ /* */ /* The following is copied from src/H5Eprivate.h */ /* * HERROR macro, used to facilitate error reporting between a FUNC_ENTER() * and a FUNC_LEAVE() within a function body. The arguments are the major * error number, the minor error number, and a description of the error. */ #define HERROR(maj_id, min_id, str) H5Epush2(H5E_DEFAULT, __FILE__, FUNC, __LINE__, H5HL_ERR_CLS_g, maj_id, min_id, str) /* * HCOMMON_ERROR macro, used by HDONE_ERROR and HGOTO_ERROR * (Shouldn't need to be used outside this header file) */ #define HCOMMON_ERROR(maj, min, str) \ HERROR(maj, min, str); \ (void)H5HLE_dump_api_stack((hbool_t)H5_IS_PUB(FUNC)); /* * HGOTO_ERROR macro, used to facilitate error reporting between a * FUNC_ENTER() and a FUNC_LEAVE() within a function body. The arguments are * the major error number, the minor error number, the return value, and an * error string. The return value is assigned to a variable `ret_value' and * control branches to the `done' label. */ #define HGOTO_ERROR(maj, min, ret_val, str) { \ HCOMMON_ERROR(maj, min, str); \ HGOTO_DONE(ret_val) \ } /* * HGOTO_DONE macro, used to facilitate normal return between a FUNC_ENTER() * and a FUNC_LEAVE() within a function body. The argument is the return * value which is assigned to the `ret_value' variable. Control branches to * the `done' label. */ #define HGOTO_DONE(ret_val) {ret_value = ret_val; goto done;} /* Private routines */ herr_t H5HLE_dump_api_stack(hbool_t is_api); #endif /* _hl_region_H5HLerror_H */