12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- /*
- * @file hv_vos_Assert.h
- * @brief Header file of vos Assert.
- *
- * @verbatim
- * ==============================================================================
- * ##### How to use #####
- * ==============================================================================
- * (+) Use ()
- *
- * @endverbatim
- * @author HiView SoC Software Team
- * @version 1.0.0
- * @date 2023-03-01
- */
- #ifndef _HV_VOS_ASSERT_H
- #define _HV_VOS_ASSERT_H
- #include "hv_vos_Types.h"
- VOS_EXTERN_C_BEGIN
- #define HV_MSG_NOT_IMPL "not implemented"
- #define HV_MSG_NOT_READY "not ready"
- #define HV_MSG_INV_ARG "invalid argument"
- #define HV_MSG_OUT_OF_MEMORY "out of memory"
- #define HV_MSG_OUT_OF_BOUNDS "out of bounds"
- /// assert report routine
- void Hv_Vos_Assert_Report(const char *condition, int line,
- const char *function, const char *message);
- /// HS portable assertion
- /// @param cond logical condition
- #define HV_ASSERT(cond) HV_ASSERT_IMPL((cond), __LINE__, __FUNCTION__, NULL)
- /// simple way to assert HV_RESULT
- #define HV_ASSERT_RESULT(result) HV_ASSERT(result >= 0)
- /// HS portable assertion implementation
- #define HV_ASSERT_IMPL(cond, line, function, msg) \
- do { \
- if (!(cond)) { \
- Hv_Vos_Assert_Report(#cond, line, function, msg); \
- } \
- } while (0)
- /// assert for arguement checking
- #define HV_ASSERT_CHK_ARG(cond) \
- HV_ASSERT_IMPL((cond), __LINE__, __FUNCTION__, HV_MSG_INV_ARG)
- /// assert for not implemented function
- #define HV_ASSERT_NOT_IMPL() \
- HV_ASSERT_IMPL(0, __LINE__, __FUNCTION__, HV_MSG_NOT_IMPL)
- #define HV_ASSERT_OUT_OF_MEMORY() \
- HV_ASSERT_IMPL(0, __LINE__, __FUNCTION__, HV_MSG_OUT_OF_MEMORY)
- /** @} */
- VOS_EXTERN_C_END
- #endif
|