Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

gpp/inc/dbc.h

Go to the documentation of this file.
00001 /** ============================================================================
00002  *  @file   dbc.h
00003  *
00004  *  @path   $(DSPLINK)/gpp/inc/usr/
00005  *
00006  *  @brief  Design by Contract
00007  *
00008  *  @ver    1.65.00.03
00009  *  ============================================================================
00010  *  @copyright Copyright (C) 2002-2009, Texas Instruments Incorporated -
00011  *  http://www.ti.com/
00012  *
00013  *  Redistribution and use in source and binary forms, with or without
00014  *  modification, are permitted provided that the following conditions
00015  *  are met:
00016  *  
00017  *  *  Redistributions of source code must retain the above copyright
00018  *     notice, this list of conditions and the following disclaimer.
00019  *  
00020  *  *  Redistributions in binary form must reproduce the above copyright
00021  *     notice, this list of conditions and the following disclaimer in the
00022  *     documentation and/or other materials provided with the distribution.
00023  *  
00024  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00025  *     its contributors may be used to endorse or promote products derived
00026  *     from this software without specific prior written permission.
00027  *  
00028  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00029  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00030  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00031  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00032  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00033  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00034  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00035  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00036  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00037  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00038  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00039  *  ============================================================================
00040  */
00041 
00042 
00043 #if !defined (DBC_H)
00044 #define DBC_H
00045 
00046 
00047 /*  ----------------------------------- DSP/BIOS Link                   */
00048 #include <dsplink.h>
00049 
00050 
00051 #if defined (__cplusplus)
00052 extern "C" {
00053 #endif /* defined (__cplusplus) */
00054 
00055 
00056 /*  ============================================================================
00057  *  @macro  DBC_PRINTF
00058  *
00059  *  @brief  This macro expands to the print function. It makes the DBC
00060  *          macros portable across OSes.
00061  *  ============================================================================
00062  */
00063 #define  DBC_PRINTF     PRINT_Printf
00064 
00065 
00066 #if defined (DDSP_DEBUG)
00067 
00068 /** ============================================================================
00069  *  @macro  DBC_Assert
00070  *
00071  *  @brief  Assert on expression.
00072  *  ============================================================================
00073  */
00074 #define DBC_Assert(exp)                                                        \
00075         if (!(exp)) {                                                          \
00076             DBC_PRINTF ("Assertion failed ("#exp"). File : "__FILE__           \
00077                         " Line : %d\n", __LINE__) ;                            \
00078         }
00079 
00080 /** ============================================================================
00081  *  @macro  DBC_Require
00082  *
00083  *  @brief  Function Precondition.
00084  *  ============================================================================
00085  */
00086 #define DBC_Require    DBC_Assert
00087 
00088 /** ============================================================================
00089  *  @macro  DBC_Ensure
00090  *
00091  *  @brief  Function Postcondition.
00092  *  ============================================================================
00093  */
00094 #define DBC_Ensure     DBC_Assert
00095 
00096 #else /* defined (DDSP_DEBUG) */
00097 
00098 /*  ============================================================================
00099  *  @macro  DBC_Assert/DBC_Require/DBC_Ensure
00100  *
00101  *  @brief  Asserts defined out.
00102  *  ============================================================================
00103  */
00104 #define DBC_Assert(exp)
00105 #define DBC_Require(exp)
00106 #define DBC_Ensure(exp)
00107 
00108 #endif /* defined (DDSP_DEBUG) */
00109 
00110 
00111 #if defined (__cplusplus)
00112 }
00113 #endif /* defined (__cplusplus) */
00114 
00115 
00116 #endif  /* !defined (DBC_H) */

Generated on Fri Jul 16 14:34:01 2010 for DSP/BIOSLink by  doxygen 1.4.4