1  /*
   2   * \brief  Assertion macro
   3   * \author Christian Helmuth
   4   * \date   2008-11-04
   5   */

   6  
   7  /*
   8   * Copyright (C) 2008-2013 Genode Labs GmbH
   9   *
  10   * This file is part of the Genode OS framework, which is distributed
  11   * under the terms of the GNU General Public License version 2.
  12   */

  13  
  14  #ifndef _INCLUDE__DDE_KIT__ASSERT_H_
  15  #define _INCLUDE__DDE_KIT__ASSERT_H_
  16  
  17  #include <dde_kit/printf.h>
  18  #include <dde_kit/panic.h>
  19  
  20  /**
  21   * Assert a condition
  22   *
  23   * \param expr  expression that must be true
  24   *
  25   * If the expression is not true, dde_kit_panic() is called.
  26   */

  27  #define dde_kit_assert(expr)                                       \
  28     do {                                                           \
  29        if (!(expr)) {                                             \
  30           dde_kit_print("Assertion failed: "#expr"\n");          \
  31           dde_kit_printf("  File: %s:%d\n", __FILE__, __LINE__); \
  32           dde_kit_printf("  Function: %s()\n", __FUNCTION__);    \
  33           dde_kit_panic("Assertion failed.");                    \
  34        }                                                          \
  35     } while (0);

  36  
  37  #endif /* _INCLUDE__DDE_KIT__ASSERT_H_ */