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