Spelling/grammar fixes.
[bertos.git] / drv / kdebug.h
index 3777d3ef974db3cabf66335401418c48dc7e7aa6..18405e5876fd48105f18aa6ad83332b9ea064495 100755 (executable)
@@ -1,9 +1,9 @@
-/*
+/*!
  * \file
  * <!--
  * 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.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
 
@@ -32,6 +48,7 @@
 
 #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 */