Home | History | Annotate | Download | only in inc
      1 /*
      2  * dspbridge/mpu_api/inc/dbg.h
      3  *
      4  * DSP-BIOS Bridge driver support functions for TI OMAP processors.
      5  *
      6  * Copyright (C) 2007 Texas Instruments, Inc.
      7  *
      8  * This program is free software; you can redistribute it and/or modify it
      9  * under the terms of the GNU Lesser General Public License as published
     10  * by the Free Software Foundation version 2.1 of the License.
     11  *
     12  * This program is distributed .as is. WITHOUT ANY WARRANTY of any kind,
     13  * whether express or implied; without even the implied warranty of
     14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     15  * Lesser General Public License for more details.
     16  */
     17 
     18 
     19 /*
     20  *  ======== dbg.h ========
     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