/*
 * Copyright 2010 Trident Microsystems (Far East) Ltd. All rights reserved.
 * All prior copyright rights in this work and the accompanying software
 * products transferred to Trident Microsystems (Far East) Ltd. by written
 * agreement.
 */
/*****************************************************************************/
/* Copyright (c) 2010 NXP B.V.  All rights are reserved.                     */
/*                                                                           */
/* Redistribution and use in source and binary forms, with or without        */
/* modification, are permitted provided that the following conditions        */
/* are met:                                                                  */
/*                                                                           */
/* Redistributions of source code must retain the above copyright            */
/* notice, this list of conditions and the following disclaimer.             */
/*                                                                           */
/* Redistributions in binary form must reproduce the above copyright         */
/* notice, this list of conditions and the following disclaimer in the       */
/* documentation and/or other materials provided with the distribution.      */
/*                                                                           */
/* Neither the name of NXP nor the names of its                              */
/* contributors may be used to endorse or promote products derived from      */
/* this software without specific prior written permission.                  */
/*                                                                           */
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS       */
/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT         */
/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR     */
/* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT      */
/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,     */
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT          */
/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,     */
/* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY     */
/* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT       */
/* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE         */
/* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH          */
/* DAMAGE.                                                                   */
/*                                                                           */
/*****************************************************************************/
//-----------------------------------------------------------------------------
// FILENAME:     tmDebug.h
//
// DESCRIPTION:  This header file contains standard debug printf/assert macros
//               using the OSAL functions.
//
// DOCUMENT REF: DVP Software Coding Guidelines
//               DVP Build Process Specification
//
// NOTES:        For debug builds of component libraries, the debug output
//               device selector used with these macros should be implemented
//               as a component specific global variable that is defined in
//               the component's configuration file but only for a debug build.
//               The default value for the variable (the default debug output
//               device) should be defined in the component's configuration
//               source file and overridden by the tmSysCfg.h file.  An example
//               is shown below:
//
// tm<layer><Component>Cfg.c Configuration File
// --------------------------------------------
//
// #if     (TMFL_REL == TMFL_REL_DEBUG)    // Debug builds
//
// #ifndef  TM<LAYER>_<COMPONENT>_CFG_DBG_DEV
// #define  TM<LAYER>_<COMPONENT>_CFG_DBG_DEV   tmosalDebugMsgToStdout
// #endif
//
// UInt32   gtm<layer><Component>DbgDev = TM<LAYER>_<COMPONENT>_CFG_DBG_DEV;
//
// #endif // TMFL_REL
//
//
// tm<layer><Component>.c Source File
// ----------------------------------
// #if     (TMFL_REL == TMFL_REL_DEBUG)    // Debug builds
//
// extern  UInt32   gtm<layer><Component>DbgDev;
//
// #endif // TMFL_REL
//
// Void
// tmSomeFunction (
//     )
// {
//     DBG_ASSERT (<TrueCondition>, <ERROR_CODE>, gtm<layer><Component>DbgDev);
//     DBG_PRINTF (gtm<layer><Component>DbgDev, "Some message string");
//
//     return;
//
// } // tmSomeFunction
//-----------------------------------------------------------------------------
//
#ifndef TMDEBUG_H //--------------------
#define TMDEBUG_H

//-----------------------------------------------------------------------------
// Standard include files:
//-----------------------------------------------------------------------------
//
#include <tmNxTypes.h>                    // DVP standard types/defines

//-----------------------------------------------------------------------------
// Project include files:
//-----------------------------------------------------------------------------
//
#include <tmFlags.h>                    // DVP common build control flags

#ifdef __cplusplus
extern "C"
{
#endif

//-----------------------------------------------------------------------------
// Types and defines:
//-----------------------------------------------------------------------------
//

//
// DBG_ASSERT should be used like the standard tmosalAssert function; the only
//  difference is that no code is generated for a retail (non-debug) build.
// DBG_PRINTF should be used like the standard tmosalPrintf function; the only
//  difference is that no code is generated for a retail (non-debug) build.
//

#define DBG_ASSERT(expr, errorCode, sel)
#define DBG_PRINTF


#ifdef __cplusplus
}
#endif

#endif // TMDEBUG_H //------------------
