1 /*
2  *  Copyright 2001-2008 Texas Instruments - http://www.ti.com/
3  *
4  *  Licensed under the Apache License, Version 2.0 (the "License");
5  *  you may not use this file except in compliance with the License.
6  *  You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *  Unless required by applicable law or agreed to in writing, software
11  *  distributed under the License is distributed on an "AS IS" BASIS,
12  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *  See the License for the specific language governing permissions and
14  *  limitations under the License.
15  */
16 
17 
18 /*
19  *  ======== dbg.h ========
20  *  DSP-BIOS Bridge driver support functions for TI OMAP processors.
21  *  Purpose:
22  *      Provide debugging services for 'Bridge Mini Drivers.
23  *
24  *  Public Functions:
25  *      DBG_Exit
26  *      DBG_Init
27  *      DBG_Printf
28  *      DBG_Trace
29  *
30  *  Notes:
31  *      WMD's must not call DBG_Init or DBG_Exit.
32  *
33  *! Revision History:
34  *! ================
35  *! 03-Feb-2000 rr: DBG Levels redefined.
36  *! 29-Oct-1999 kc: Cleaned up for code review.
37  *! 10-Oct-1997 cr: Added DBG_Printf service.
38  *! 29-May-1996 gp: Removed WCD_ prefix.
39  *! 15-May-1996 gp: Created.
40  */
41 
42 #ifndef DBG_
43 #define DBG_
44 
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48 
49 #include <dspapi.h>
50 
51 /* Levels of trace debug messages: */
52 #ifndef LINUX			/* No DEBUGZONE in Linux, DBG mask == GT mask */
53 #define DBG_ENTER   (BYTE)(0x01 & DEBUGZONE(0))	/* Function entry point. */
54 #define DBG_LEVEL1  (BYTE)(0x02 & DEBUGZONE(1))	/* Display debugging state/varibles */
55 #define DBG_LEVEL2  (BYTE)(0x04 & DEBUGZONE(2))	/* Display debugging state/varibles */
56 #define DBG_LEVEL3  (BYTE)(0x08 & DEBUGZONE(3))	/* Display debugging state/varibles */
57 #define DBG_LEVEL4  (BYTE)(0x10 & DEBUGZONE(4))	/* Display debugging state/varibles */
58 #define DBG_LEVEL5  (BYTE)(0x20 & DEBUGZONE(5))	/* Module Init, Exit */
59 #define DBG_LEVEL6  (BYTE)(0x40 & DEBUGZONE(6))	/* Warn SERVICES Failures */
60 #define DBG_LEVEL7  (BYTE)(0x80 & DEBUGZONE(7))	/* Warn Critical Errors */
61 #else
62 #define DBG_ENTER   (BYTE)(0x01)	/* Function entry point. */
63 #define DBG_LEVEL1  (BYTE)(0x02)	/* Display debugging state/varibles */
64 #define DBG_LEVEL2  (BYTE)(0x04)	/* Display debugging state/varibles */
65 #define DBG_LEVEL3  (BYTE)(0x08)	/* Display debugging state/varibles */
66 #define DBG_LEVEL4  (BYTE)(0x10)	/* Display debugging state/varibles */
67 #define DBG_LEVEL5  (BYTE)(0x20)	/* Module Init, Exit */
68 #define DBG_LEVEL6  (BYTE)(0x40)	/* Warn SERVICES Failures */
69 #define DBG_LEVEL7  (BYTE)(0x80)	/* Warn Critical Errors */
70 #endif
71 
72 #if ((defined DEBUG) || (defined DDSP_DEBUG_PRODUCT)) && GT_TRACE
73 
74 /*
75  *  ======== DBG_Exit ========
76  *  Purpose:
77  *      Discontinue usage of module; free resources when reference count
78  *      reaches 0.
79  *  Parameters:
80  *  Returns:
81  *  Requires:
82  *      DBG initialized.
83  *  Ensures:
84  *      Resources used by module are freed when cRef reaches zero.
85  */
86 	extern VOID DBG_Exit();
87 
88 /*
89  *  ======== DBG_Init ========
90  *  Purpose:
91  *      Initializes private state of DBG module.
92  *  Parameters:
93  *  Returns:
94  *      TRUE if initialized; FALSE if error occured.
95  *  Requires:
96  *  Ensures:
97  */
98 	extern bool DBG_Init();
99 
100 #ifndef LINUX
101 /*
102  *  ======== DBG_Printf ========
103  *  Purpose:
104  *      Output a formatted string to the debugger.
105  *  Parameters:
106  *      pstrFormat: sprintf-style format string.
107  *      ...:        Arguments for format string.
108  *  Returns:
109  *      DSP_SOK:    Success, or trace level masked.
110  *      DSP_EFAIL:  On Error.
111  *  Requires:
112  *      DBG initialized.
113  *  Ensures:
114  */
115 	extern DSP_STATUS DBG_Printf(IN PSTR pstrFormat, ...);
116 #endif				// LINUX
117 
118 /*
119  *  ======== DBG_Trace ========
120  *  Purpose:
121  *      Output a trace message to the debugger, if the given trace level
122  *      is unmasked.
123  *  Parameters:
124  *      bLevel:         Trace level.
125  *      pstrFormat:     sprintf-style format string.
126  *      ...:            Arguments for format string.
127  *  Returns:
128  *      DSP_SOK:        Success, or trace level masked.
129  *      DSP_EFAIL:      On Error.
130  *  Requires:
131  *      DBG initialized.
132  *  Ensures:
133  *      Debug message is printed to debugger output window, if trace level
134  *      is unmasked.
135  */
136 	extern DSP_STATUS DBG_Trace(IN BYTE bLevel, IN PSTR pstrFormat, ...);
137 #else
138 
139 #define DBG_Exit()
140 #define DBG_Init() TRUE
141 #define DBG_Trace(bLevel, pstrFormat, args...)
142 
143 #endif				// ((defined DEBUG) || (defined DDSP_DEBUG_PRODUCT)) && GT_TRACE
144 
145 #ifdef __cplusplus
146 }
147 #endif
148 #endif				/* DBG_ */
149