mikroSDK Reference Manual
lv_assert.h
Go to the documentation of this file.
1
6
#ifndef LV_ASSERT_H
7
#define LV_ASSERT_H
8
9
#ifdef __cplusplus
10
extern
"C"
{
11
#endif
12
13
/*********************
14
* INCLUDES
15
*********************/
16
#include "
../lv_conf_internal.h
"
17
#include "
lv_log.h
"
18
#include "
lv_mem.h
"
19
#include LV_ASSERT_HANDLER_INCLUDE
20
21
/*********************
22
* DEFINES
23
*********************/
24
25
/**********************
26
* TYPEDEFS
27
**********************/
28
29
/**********************
30
* GLOBAL PROTOTYPES
31
**********************/
32
33
/**********************
34
* MACROS
35
**********************/
36
37
#define LV_ASSERT(expr) \
38
do { \
39
if(!(expr)) { \
40
LV_LOG_ERROR("Asserted at expression: %s", #expr); \
41
LV_ASSERT_HANDLER \
42
} \
43
} while(0)
44
45
#define LV_ASSERT_MSG(expr, msg) \
46
do { \
47
if(!(expr)) { \
48
LV_LOG_ERROR("Asserted at expression: %s (%s)", #expr, msg); \
49
LV_ASSERT_HANDLER \
50
} \
51
} while(0)
52
53
/*-----------------
54
* ASSERTS
55
*-----------------*/
56
57
#if LV_USE_ASSERT_NULL
58
# define LV_ASSERT_NULL(p) LV_ASSERT_MSG(p != NULL, "NULL pointer");
59
#else
60
# define LV_ASSERT_NULL(p)
61
#endif
62
63
#if LV_USE_ASSERT_MALLOC
64
# define LV_ASSERT_MALLOC(p) LV_ASSERT_MSG(p != NULL, "Out of memory");
65
#else
66
# define LV_ASSERT_MALLOC(p)
67
#endif
68
69
#if LV_USE_ASSERT_MEM_INTEGRITY
70
# define LV_ASSERT_MEM_INTEGRITY() LV_ASSERT_MSG(lv_mem_test() == LV_RES_OK, "Memory integrity error");
71
#else
72
# define LV_ASSERT_MEM_INTEGRITY()
73
#endif
74
75
#ifdef __cplusplus
76
}
/*extern "C"*/
77
#endif
78
79
#endif
/*LV_ASSERT_H*/
lv_conf_internal.h
lv_log.h
lv_mem.h