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