1 /******************************************************************************* 2 *Copyright (c) 2014 PMC-Sierra, Inc. All rights reserved. 3 * 4 *Redistribution and use in source and binary forms, with or without modification, are permitted provided 5 *that the following conditions are met: 6 *1. Redistributions of source code must retain the above copyright notice, this list of conditions and the 7 *following disclaimer. 8 *2. Redistributions in binary form must reproduce the above copyright notice, 9 *this list of conditions and the following disclaimer in the documentation and/or other materials provided 10 *with the distribution. 11 * 12 *THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED 13 *WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 14 *FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 15 *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16 *NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 17 *BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 18 *LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 19 *SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE 20 * 21 * $FreeBSD$ 22 * 23 *******************************************************************************/ 24 /*************************************************************************** 25 26 Version Control Information: 27 28 $RCSfile: osdebug.h,v $ 29 $Revision: 114125 $ 30 31 Note: 32 ***************************************************************************/ 33 34 #ifndef __OSDEBUG_H__ 35 #define __OSDEBUG_H__ 36 37 #ifdef AGTIAPI_KDB_ENABLE 38 #include <linux/kdb.h> 39 #endif 40 41 /*************************************************************************** 42 OS_ASSERT : This macro is used when an internal error is detected. 43 ***************************************************************************/ 44 #ifdef AGTIAPI_KDB_ENABLE 45 #define OS_ASSERT(expr, message) \ 46 do { \ 47 if (!(expr)) \ 48 { \ 49 printf("ASSERT: %s", message); \ 50 printf(" - file %s, line %d\n", __FILE__, __LINE__); \ 51 BUG_ON(1); \ 52 KDB_ENTER(); \ 53 } \ 54 } while (0) 55 #else 56 #define OS_ASSERT(expr, message) \ 57 do { \ 58 if (!(expr)) \ 59 { \ 60 printf("ASSERT: %s", message); \ 61 printf(" - file %s, line %d\n", __FILE__, __LINE__); \ 62 } \ 63 } while (0) 64 #endif 65 66 #define AG_ERROR_MSG(mask, val, format) \ 67 do { \ 68 if (mask) \ 69 { \ 70 if (mask >= val) \ 71 printf format; \ 72 } \ 73 else \ 74 printf format; \ 75 } while (0) 76 77 #ifdef TD_DEBUG_ENABLE 78 #define TIDEBUG_MSG(mask, val, format) \ 79 do { \ 80 if (mask) \ 81 { \ 82 if (!val) \ 83 printf format ; \ 84 else \ 85 if (!(mask & 0x80000000)) \ 86 { \ 87 if (mask >= val) \ 88 printf format ; \ 89 } \ 90 else \ 91 { \ 92 if (mask & val) \ 93 printf format ; \ 94 } \ 95 } \ 96 } while (0) 97 98 #define TIDEBUG_MSG0(format) \ 99 do { \ 100 printf format ; \ 101 } while (0) 102 #else 103 #define TIDEBUG_MSG(mask, val, format) 104 #define TIDEBUG_MSG0(format) 105 #endif 106 107 /*************************************************************************** 108 FC debug - The following is used for FC specific debug. 109 **************************************************************************/ 110 #ifdef AG_PROTOCOL_FC 111 #ifndef fcEnableTraceFunctions 112 #define fcEnableTraceFunctions 1 113 #endif 114 #else 115 #ifndef fcEnableTraceFunctions 116 #define fcEnableTraceFunctions 0 117 #endif 118 119 #endif /* AG_PROTOCOL_FC */ 120 121 #endif /* #ifndef __OSDEBUG_H__ */ 122 123