80 lines
2.0 KiB
C
80 lines
2.0 KiB
C
/**
|
|
* @file lv_assert.h
|
|
*
|
|
*/
|
|
|
|
#ifndef LV_ASSERT_H
|
|
#define LV_ASSERT_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*********************
|
|
* INCLUDES
|
|
*********************/
|
|
#include "../lv_conf_internal.h"
|
|
#include "lv_log.h"
|
|
#include "lv_mem.h"
|
|
#include LV_ASSERT_HANDLER_INCLUDE
|
|
|
|
/*********************
|
|
* DEFINES
|
|
*********************/
|
|
|
|
/**********************
|
|
* TYPEDEFS
|
|
**********************/
|
|
|
|
/**********************
|
|
* GLOBAL PROTOTYPES
|
|
**********************/
|
|
|
|
/**********************
|
|
* MACROS
|
|
**********************/
|
|
|
|
#define LV_ASSERT(expr) \
|
|
do { \
|
|
if(!(expr)) { \
|
|
LV_LOG_ERROR("Asserted at expression: %s", #expr); \
|
|
LV_ASSERT_HANDLER \
|
|
} \
|
|
} while(0)
|
|
|
|
#define LV_ASSERT_MSG(expr, msg) \
|
|
do { \
|
|
if(!(expr)) { \
|
|
LV_LOG_ERROR("Asserted at expression: %s (%s)", #expr, msg); \
|
|
LV_ASSERT_HANDLER \
|
|
} \
|
|
} while(0)
|
|
|
|
/*-----------------
|
|
* ASSERTS
|
|
*-----------------*/
|
|
|
|
#if LV_USE_ASSERT_NULL
|
|
# define LV_ASSERT_NULL(p) LV_ASSERT_MSG(p != NULL, "NULL pointer");
|
|
#else
|
|
# define LV_ASSERT_NULL(p)
|
|
#endif
|
|
|
|
#if LV_USE_ASSERT_MALLOC
|
|
# define LV_ASSERT_MALLOC(p) LV_ASSERT_MSG(p != NULL, "Out of memory");
|
|
#else
|
|
# define LV_ASSERT_MALLOC(p)
|
|
#endif
|
|
|
|
#if LV_USE_ASSERT_MEM_INTEGRITY
|
|
# define LV_ASSERT_MEM_INTEGRITY() LV_ASSERT_MSG(lv_mem_test() == LV_RES_OK, "Memory integrity error");
|
|
#else
|
|
# define LV_ASSERT_MEM_INTEGRITY()
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
} /*extern "C"*/
|
|
#endif
|
|
|
|
#endif /*LV_ASSERT_H*/
|