xref: /haiku/src/add-ons/kernel/drivers/midi/mpu401/debug.h (revision 344ded80d400028c8f561b4b876257b94c12db4a)
1 /*
2  * BeOS Driver for Intel ICH AC'97 Link interface
3  *
4  * Copyright (c) 2002, Marcus Overhagen <marcus@overhagen.de>
5  *
6  * All rights reserved.
7  * Redistribution and use in source and binary forms, with or without modification,
8  * are permitted provided that the following conditions are met:
9  *
10  * - Redistributions of source code must retain the above copyright notice,
11  *   this list of conditions and the following disclaimer.
12  * - Redistributions in binary form must reproduce the above copyright notice,
13  *   this list of conditions and the following disclaimer in the documentation
14  *   and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
20  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
22  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
25  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  *
27  */
28 #ifndef _DEBUG_H_
29 #define _DEBUG_H_
30 
31 /*
32  * PRINT() executes dprintf if DEBUG = 0 (disabled), or expands to LOG() when DEBUG > 0
33  * TRACE() executes dprintf if DEBUG > 0
34  * LOG()   executes dprintf and writes to the logfile if DEBUG > 0
35  */
36 
37 /* DEBUG == 0, no debugging, PRINT writes to syslog
38  * DEBUG == 1, TRACE & LOG, PRINT
39  * DEBUG == 2, TRACE & LOG, PRINT with snooze()
40  */
41 #ifndef DEBUG
42 	#define DEBUG 0
43 #endif
44 
45 #undef PRINT
46 #undef TRACE
47 #undef ASSERT
48 
49 void debug_printf(const char *text,...);
50 
51 #if DEBUG > 0
52 	#define PRINT(a)		log_printf a
53 	#define TRACE(a) 		debug_printf a
54 	#define LOG(a)			log_printf a
55 	#define LOG_CREATE()	log_create()
56 	#define DEBUG_ONLY(a)	a
57 	#define ASSERT(a)		if (a) {} else LOG(("ASSERT failed! file = %s, line = %d\n",__FILE__,__LINE__))
58 	void log_create(void);
59 	void log_printf(const char *text,...);
60 #else
61 	#define PRINT(a)	debug_printf a
62 	#define TRACE(a)	((void)(0))
63 	#define ASSERT(a)	((void)(0))
64 	#define LOG(a)		((void)(0))
65 	#define LOG_CREATE()
66 	#define DEBUG_ONLY(a)
67 #endif
68 
69 #endif
70