• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2011 The Android Open Source Project
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  * @file       M4PSW_DebugTrace.c
19  * @brief      Default trace function for debugging macros
20  * @note       This file gives the default implementation of the trace function
21  *             used in the debug instrumentation macros, based on printf.
22  *             Application writers are strongly encouraged to implement their
23  *             own "M4OSA_DebugTrace".
24  ************************************************************************
25 */
26 
27 
28 #include <stdio.h> /*for printf */
29 
30 #include "M4OSA_Types.h"
31 #include "M4OSA_Error.h"
32 
33 /*#define NO_FILE */ /* suppresses the file name print out */
34 
35 
36 /**
37  ************************************************************************
38  * void M4OSA_DebugTrace(M4OSA_Int32 line, char* file, M4OSA_Int32 level,
39  *                       M4OSA_Char* cond, char* msg, M4OSA_ERR err)
40  * @brief    This function implements the trace for debug tests
41  * @note    This function is to be called in the debug macros only.
42  *            This implementation uses printf.
43  * @param    line (IN): the line number in the source file
44  * @param    file (IN): the source file name
45  * @param    level (IN): the debug level
46  * @param    msg (IN): the error message
47  * @param    err (IN): the return value (error code)
48  * @return    none
49  ************************************************************************
50 */
51 
M4OSA_DebugTrace(M4OSA_Int32 line,M4OSA_Char * file,M4OSA_Int32 level,M4OSA_Char * cond,M4OSA_Char * msg,M4OSA_ERR err)52 M4OSAL_TRACE_EXPORT_TYPE void M4OSA_DebugTrace(M4OSA_Int32 line,
53                                                M4OSA_Char* file,
54                                                M4OSA_Int32 level,
55                                                M4OSA_Char* cond,
56                                                M4OSA_Char* msg,
57                                                M4OSA_ERR err)
58 {
59     M4OSA_Int32 i;
60 
61     /* try to "indent" the resulting traces depending on the level */
62     for (i =0 ; i < level; i ++)
63     {
64         printf(" ");
65     }
66 
67 #ifdef NO_FILE
68     printf("Error: %li, on %s: %s\n",err,cond,msg);
69 #else /* NO_FILE     */
70     printf("Error: %li, on %s: %s Line %lu in: %s\n",err,cond,msg,line,file);
71 #endif /* NO_FILE     */
72 
73 }
74 
M4OSA_DEBUG_traceFunction(M4OSA_UInt32 line,M4OSA_Char * fileName,M4OSA_UInt32 level,M4OSA_Char * stringCondition,M4OSA_Char * message,M4OSA_ERR returnedError)75 M4OSAL_TRACE_EXPORT_TYPE M4OSA_Void M4OSA_DEBUG_traceFunction(M4OSA_UInt32 line,
76                                                               M4OSA_Char* fileName,
77                                                               M4OSA_UInt32 level,
78                                                               M4OSA_Char* stringCondition,
79                                                               M4OSA_Char* message,
80                                                               M4OSA_ERR returnedError)
81 {
82     M4OSA_DebugTrace(line, fileName, level, stringCondition, message, returnedError);
83 }
84 
85