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__) 
   95#ifdef CONFIG_ASSERT_TEST 
   96#define __ASSERT_UNREACHABLE 
   98#define __ASSERT_UNREACHABLE CODE_UNREACHABLE 
  105#define __ASSERT_NO_MSG(test)                                             \ 
  108                        __ASSERT_LOC(test);                               \ 
  109                        __ASSERT_POST_ACTION();                           \ 
  110                        __ASSERT_UNREACHABLE;                             \ 
  114#define __ASSERT(test, fmt, ...)                                          \ 
  117                        __ASSERT_LOC(test);                               \ 
  118                        __ASSERT_MSG_INFO(fmt, ##__VA_ARGS__);            \ 
  119                        __ASSERT_POST_ACTION();                           \ 
  120                        __ASSERT_UNREACHABLE;                             \ 
  124#define __ASSERT_EVAL(expr1, expr2, test, fmt, ...)                \ 
  127                __ASSERT(test, fmt, ##__VA_ARGS__);                \ 
  130#if (__ASSERT_ON == 1) 
  131#warning "__ASSERT() statements are ENABLED" 
  134#define __ASSERT(test, fmt, ...) { } 
  135#define __ASSERT_EVAL(expr1, expr2, test, fmt, ...) expr1 
  136#define __ASSERT_NO_MSG(test) { } 
  137#define __ASSERT_POST_ACTION() { } 
  140#define __ASSERT(test, fmt, ...) { } 
  141#define __ASSERT_EVAL(expr1, expr2, test, fmt, ...) expr1 
  142#define __ASSERT_NO_MSG(test) { } 
  143#define __ASSERT_POST_ACTION() { } 
void assert_print(const char *fmt,...)
 
void assert_post_action(const char *file, unsigned int line)
Definition: spinlock_error_case.c:57