7#ifndef ZEPHYR_INCLUDE_SYS___ASSERT_H_
8#define ZEPHYR_INCLUDE_SYS___ASSERT_H_
15#define __ASSERT_ON CONFIG_ASSERT_LEVEL
19#ifdef CONFIG_FORCE_NO_ASSERT
35#if defined(CONFIG_ASSERT_VERBOSE)
36#define __ASSERT_PRINT(fmt, ...) assert_print(fmt, ##__VA_ARGS__)
38#define __ASSERT_PRINT(fmt, ...)
41#ifdef CONFIG_ASSERT_NO_MSG_INFO
42#define __ASSERT_MSG_INFO(fmt, ...)
44#define __ASSERT_MSG_INFO(fmt, ...) __ASSERT_PRINT("\t" fmt "\n", ##__VA_ARGS__)
47#if !defined(CONFIG_ASSERT_NO_COND_INFO) && !defined(CONFIG_ASSERT_NO_FILE_INFO)
48#define __ASSERT_LOC(test) \
49 __ASSERT_PRINT("ASSERTION FAIL [%s] @ %s:%d\n", \
54#if defined(CONFIG_ASSERT_NO_COND_INFO) && !defined(CONFIG_ASSERT_NO_FILE_INFO)
55#define __ASSERT_LOC(test) \
56 __ASSERT_PRINT("ASSERTION FAIL @ %s:%d\n", \
60#if !defined(CONFIG_ASSERT_NO_COND_INFO) && defined(CONFIG_ASSERT_NO_FILE_INFO)
61#define __ASSERT_LOC(test) \
62 __ASSERT_PRINT("ASSERTION FAIL [%s]\n", \
66#if defined(CONFIG_ASSERT_NO_COND_INFO) && defined(CONFIG_ASSERT_NO_FILE_INFO)
67#define __ASSERT_LOC(test) \
68 __ASSERT_PRINT("ASSERTION FAIL\n")
72#if (__ASSERT_ON < 0) || (__ASSERT_ON > 2)
73#error "Invalid __ASSERT() level: must be between 0 and 2"
82#ifdef CONFIG_ASSERT_NO_FILE_INFO
84#define __ASSERT_POST_ACTION() assert_post_action()
87#define __ASSERT_POST_ACTION() assert_post_action(__FILE__, __LINE__)
94#define __ASSERT_NO_MSG(test) \
98 __ASSERT_POST_ACTION(); \
102#define __ASSERT(test, fmt, ...) \
105 __ASSERT_LOC(test); \
106 __ASSERT_MSG_INFO(fmt, ##__VA_ARGS__); \
107 __ASSERT_POST_ACTION(); \
111#define __ASSERT_EVAL(expr1, expr2, test, fmt, ...) \
114 __ASSERT(test, fmt, ##__VA_ARGS__); \
117#if (__ASSERT_ON == 1)
118#warning "__ASSERT() statements are ENABLED"
121#define __ASSERT(test, fmt, ...) { }
122#define __ASSERT_EVAL(expr1, expr2, test, fmt, ...) expr1
123#define __ASSERT_NO_MSG(test) { }
126#define __ASSERT(test, fmt, ...) { }
127#define __ASSERT_EVAL(expr1, expr2, test, fmt, ...) expr1
128#define __ASSERT_NO_MSG(test) { }
void assert_print(const char *fmt,...)
void assert_post_action(const char *file, unsigned int line)
Definition: spinlock_error_case.c:33