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