1 //------------------------------------------------------------------------------ 2 // Copyright (c) 2004-2010 Atheros Communications Inc. 3 // All rights reserved. 4 // 5 // 6 // 7 // Permission to use, copy, modify, and/or distribute this software for any 8 // purpose with or without fee is hereby granted, provided that the above 9 // copyright notice and this permission notice appear in all copies. 10 // 11 // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 12 // WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 13 // MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 14 // ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 15 // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 16 // ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 17 // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 18 // 19 // 20 // 21 // Author(s): ="Atheros" 22 //------------------------------------------------------------------------------ 23 24 #ifndef _DEBUG_LINUX_H_ 25 #define _DEBUG_LINUX_H_ 26 27 /* macro to remove parens */ 28 #define ATH_PRINTX_ARG(arg...) arg 29 30 #ifdef DEBUG 31 /* NOTE: the AR_DEBUG_PRINTF macro is defined here to handle special handling of variable arg macros 32 * which may be compiler dependent. */ 33 #define AR_DEBUG_PRINTF(mask, args) do { \ 34 if (GET_ATH_MODULE_DEBUG_VAR_MASK(ATH_MODULE_NAME) & (mask)) { \ 35 A_LOGGER(mask, ATH_MODULE_NAME, ATH_PRINTX_ARG args); \ 36 } \ 37 } while (0) 38 #else 39 /* on non-debug builds, keep in error and warning messages in the driver, all other 40 * message tracing will get compiled out */ 41 #define AR_DEBUG_PRINTF(mask, args) \ 42 if ((mask) & (ATH_DEBUG_ERR | ATH_DEBUG_WARN)) { A_PRINTF(ATH_PRINTX_ARG args); } 43 44 #endif 45 46 /* compile specific macro to get the function name string */ 47 #define _A_FUNCNAME_ __func__ 48 49 50 #endif /* _DEBUG_LINUX_H_ */ 51