* <!--
* Copyright 2003,2004 Develer S.r.l. (http://www.develer.com/)
* Copyright 2000,2001,2002 Bernardo Innocenti <bernie@codewiz.org>
- * All Rights Reserved.
+ * This file is part of DevLib - See devlib/README for information.
* -->
*
* \brief Definition of handy debug macros. These macros are no-ops
* \author Bernardo Innocenti <bernie@develer.com>
*/
-/*
- * $Log$
- * Revision 1.2 2004/05/23 18:21:53 bernie
- * Trim CVS logs and cleanup header info.
- *
- * Revision 1.1 2004/05/23 18:10:11 bernie
- * Import drv/ modules.
- *
- */
+/*#*
+ *#* $Log$
+ *#* Revision 1.6 2004/08/25 14:12:08 rasky
+ *#* Aggiornato il comment block dei log RCS
+ *#*
+ *#* Revision 1.5 2004/08/24 16:19:08 bernie
+ *#* kputchar(): New public function; Add missing dummy inlines for \!_DEBUG.
+ *#*
+ *#* Revision 1.4 2004/07/30 14:26:33 rasky
+ *#* Semplificato l'output dell'ASSERT
+ *#* Aggiunta ASSERT2 con stringa di help opzionalmente disattivabile
+ *#*
+ *#* Revision 1.3 2004/06/03 11:27:09 bernie
+ *#* Add dual-license information.
+ *#*
+ *#* Revision 1.2 2004/05/23 18:21:53 bernie
+ *#* Trim CVS logs and cleanup header info.
+ *#*
+ *#* Revision 1.1 2004/05/23 18:10:11 bernie
+ *#* Import drv/ modules.
+ *#*
+ *#*/
#ifndef KDEBUG_H
#define KDEBUG_H
#if defined(_DEBUG)
void kdbg_init(void);
+ void kputchar(char c);
void kdump(const void *buf, size_t len);
#ifdef __AVR__
void __init_wall(long *wall, int size);
int __check_wall(long *wall, int size, const char *name, const char *file, int line);
- #define THIS_FILE __FILE__
- #define ASSERT(x) ((x) ? 0 : __assert(#x, THIS_FILE, __LINE__))
+ #define THIS_FILE __FILE__
+ #ifndef CONFIG_KDEBUG_ASSERT_NO_TEXT
+ #define ASSERT(x) ((x) ? 0 : __assert(#x, THIS_FILE, __LINE__))
+ #define ASSERT2(x, help) ((x) ? 0 : __assert(help " (" #x ")", THIS_FILE, __LINE__))
+ #else
+ #define ASSERT(x) ((x) ? 0 : __assert("", THIS_FILE, __LINE__))
+ #define ASSERT2(x, help) ASSERT(x)
+ #endif
+
#define ASSERT_VALID_PTR(p) ((p >= 0x200) ? 0 : __invalid_ptr(p, #p, THIS_FILE, __LINE__))
#define ASSERT_VALID_PTR_OR_NULL(p) (((p == NULL) || (p >= 0x200)) ? 0 : __invalid_ptr(p, #p, THIS_FILE, __LINE__))
#define TRACE kprintf("%s()\n", __FUNCTION__)
#else /* !_DEBUG */
- #define ASSERT(x)
- #define ASSERT_VALID_PTR(p)
- #define ASSERT_VALID_PTR_OR_NULL(p)
- #define TRACE do {} while(0)
- #define TRACEMSG(x,...) do {} while(0)
- #define DB(x)
+ #define ASSERT(x) do {} while(0)
+ #define ASSERT2(x, help) do {} while(0)
+ #define ASSERT_VALID_PTR(p) do {} while(0)
+ #define ASSERT_VALID_PTR_OR_NULL(p) do {} while(0)
+ #define TRACE do {} while(0)
+ #define TRACEMSG(x,...) do {} while(0)
+ #define DB(x) /* nothing */
#define DECLARE_WALL(name, size)
#define INIT_WALL(name)
#define CHECK_WALL(name)
+ INLINE void kdbg_init(void) { /*nop*/ }
+ INLINE void kputchar(UNUSED(char, c)) { /*nop*/ }
+ INLINE void kputs(UNUSED(const char*, str)) { /*nop*/ }
+ INLINE void kprintf(UNUSED(const char*, fmt), ...) { /*nop*/ }
+
#endif /* !_DEBUG */
#endif /* KDEBUG_H */