M4PSW_DebugTrace.c revision 855ec7c4be7ad642721909d5837a8d25a117c22f
1855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi/*
2855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * Copyright (C) 2004-2011 NXP Software
3855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * Copyright (C) 2011 The Android Open Source Project
4855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi *
5855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * Licensed under the Apache License, Version 2.0 (the "License");
6855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * you may not use this file except in compliance with the License.
7855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * You may obtain a copy of the License at
8855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi *
9855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi *      http://www.apache.org/licenses/LICENSE-2.0
10855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi *
11855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * Unless required by applicable law or agreed to in writing, software
12855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * distributed under the License is distributed on an "AS IS" BASIS,
13855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * See the License for the specific language governing permissions and
15855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * limitations under the License.
16855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi */
17855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi/**
18855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi ************************************************************************
19855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @file       M4PSW_DebugTrace.c
20855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @brief      Default trace function for debugging macros
21855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @note       This file gives the default implementation of the trace function
22855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi *             used in the debug instrumentation macros, based on printf.
23855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi *             Application writers are strongly encouraged to implement their
24855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi *             own "M4OSA_DebugTrace".
25855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi ************************************************************************
26855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi*/
27855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi
28855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi
29855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#include <stdio.h> /*for printf */
30855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi
31855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#include "M4OSA_Types.h"
32855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#include "M4OSA_Error.h"
33855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi
34855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi/*#define NO_FILE */ /* suppresses the file name print out */
35855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi
36855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi
37855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi/**
38855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi ************************************************************************
39855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * void M4OSA_DebugTrace(M4OSA_Int32 line, char* file, M4OSA_Int32 level,
40855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi *                       M4OSA_Char* cond, char* msg, M4OSA_ERR err)
41855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @brief    This function implements the trace for debug tests
42855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @note    This function is to be called in the debug macros only.
43855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi *            This implementation uses printf.
44855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @param    line (IN): the line number in the source file
45855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @param    file (IN): the source file name
46855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @param    level (IN): the debug level
47855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @param    msg (IN): the error message
48855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @param    err (IN): the return value (error code)
49855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @return    none
50855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi ************************************************************************
51855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi*/
52855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi
53855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray KundargiM4OSAL_TRACE_EXPORT_TYPE void M4OSA_DebugTrace(M4OSA_Int32 line,
54855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi                                               M4OSA_Char* file,
55855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi                                               M4OSA_Int32 level,
56855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi                                               M4OSA_Char* cond,
57855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi                                               M4OSA_Char* msg,
58855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi                                               M4OSA_ERR err)
59855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi{
60855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi    M4OSA_Int32 i;
61855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi
62855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi    /* try to "indent" the resulting traces depending on the level */
63855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi    for (i =0 ; i < level; i ++)
64855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi    {
65855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi        printf(" ");
66855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi    }
67855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi
68855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#ifdef NO_FILE
69855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi    printf("Error: %li, on %s: %s\n",err,cond,msg);
70855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#else /* NO_FILE     */
71855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi    printf("Error: %li, on %s: %s Line %lu in: %s\n",err,cond,msg,line,file);
72855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#endif /* NO_FILE     */
73855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi
74855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi}
75855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi
76855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray KundargiM4OSAL_TRACE_EXPORT_TYPE M4OSA_Void M4OSA_DEBUG_traceFunction(M4OSA_UInt32 line,
77855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi                                                              M4OSA_Char* fileName,
78855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi                                                              M4OSA_UInt32 level,
79855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi                                                              M4OSA_Char* stringCondition,
80855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi                                                              M4OSA_Char* message,
81855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi                                                              M4OSA_ERR returnedError)
82855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi{
83855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi    M4OSA_DebugTrace(line, fileName, level, stringCondition, message, returnedError);
84855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi}
85855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi
86