1 /* --COPYRIGHT--,BSD 2 * Copyright (c) 2017, Texas Instruments Incorporated 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * * Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 12 * * Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * * Neither the name of Texas Instruments Incorporated nor the names of 17 * its contributors may be used to endorse or promote products derived 18 * from this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 22 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 27 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 * --/COPYRIGHT--*/ 32 #ifndef __DEBUG_H__ 33 #define __DEBUG_H__ 34 35 //***************************************************************************** 36 // 37 // Prototype for the function that is called when an invalid argument is passed 38 // to an API. This is only used when doing a DEBUG build. 39 // 40 //***************************************************************************** 41 extern void __error__(char *pcFilename, unsigned long line); 42 43 //***************************************************************************** 44 // 45 // The ASSERT macro, which does the actual assertion checking. Typically, this 46 // will be for procedure arguments. 47 // 48 //***************************************************************************** 49 #ifdef DEBUG 50 #define ASSERT(expr) { \ 51 if(!(expr)) \ 52 { \ 53 __error__(__FILE__, __LINE__); \ 54 } \ 55 } 56 #else 57 #define ASSERT(expr) 58 #endif 59 60 #ifdef DEBUG 61 #define assert(expr) { \ 62 if(!(expr)) \ 63 { \ 64 __error__(__FILE__, __LINE__); \ 65 } \ 66 } 67 #else 68 #define assert(expr) 69 #endif 70 71 #endif // __DEBUG_H__ 72