xge-debug.h revision 171095
1/*- 2 * Copyright (c) 2002-2007 Neterion, Inc. 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 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * 26 * $FreeBSD: head/sys/dev/nxge/include/xge-debug.h 171095 2007-06-29 22:47:18Z sam $ 27 */ 28 29/* 30 * FileName : xge-debug.h 31 * 32 * Description: debug facilities 33 * 34 * Created: 6 May 2004 35 */ 36 37#ifndef XGE_DEBUG_H 38#define XGE_DEBUG_H 39 40#include <dev/nxge/include/xge-os-pal.h> 41 42__EXTERN_BEGIN_DECLS 43 44/* 45 * __FUNCTION__ is, together with __PRETTY_FUNCTION__ or something similar, 46 * a gcc extension. we'll have to #ifdef around that, and provide some 47 * meaningful replacement for those, so to make some gcc versions happier 48 */ 49#ifndef __func__ 50#ifdef __FUNCTION__ 51#define __func__ __FUNCTION__ 52#endif 53#endif 54 55 56#ifdef XGE_DEBUG_FP 57#define XGE_DEBUG_FP_DEVICE 0x1 58#define XGE_DEBUG_FP_CHANNEL 0x2 59#define XGE_DEBUG_FP_FIFO 0x4 60#define XGE_DEBUG_FP_RING 0x8 61#endif 62 63/** 64 * enum xge_debug_level_e 65 * @XGE_NONE: debug disabled 66 * @XGE_ERR: all errors going to be logged out 67 * @XGE_TRACE: all errors plus all kind of verbose tracing print outs 68 * going to be logged out. Very noisy. 69 * 70 * This enumeration going to be used to switch between different 71 * debug levels during runtime if DEBUG macro defined during 72 * compilation. If DEBUG macro not defined than code will be 73 * compiled out. 74 */ 75typedef enum xge_debug_level_e { 76 XGE_NONE = 0, 77 XGE_TRACE = 1, 78 XGE_ERR = 2, 79} xge_debug_level_e; 80 81#define XGE_DEBUG_MODULE_MASK_DEF 0x30000030 82#define XGE_DEBUG_LEVEL_DEF XGE_ERR 83 84#if defined(XGE_DEBUG_TRACE_MASK) || defined(XGE_DEBUG_ERR_MASK) 85 86extern unsigned long *g_module_mask; 87extern int *g_level; 88 89#ifndef XGE_DEBUG_TRACE_MASK 90#define XGE_DEBUG_TRACE_MASK 0 91#endif 92 93#ifndef XGE_DEBUG_ERR_MASK 94#define XGE_DEBUG_ERR_MASK 0 95#endif 96 97/* 98 * @XGE_COMPONENT_HAL_CONFIG: do debug for xge core config module 99 * @XGE_COMPONENT_HAL_FIFO: do debug for xge core fifo module 100 * @XGE_COMPONENT_HAL_RING: do debug for xge core ring module 101 * @XGE_COMPONENT_HAL_CHANNEL: do debug for xge core channel module 102 * @XGE_COMPONENT_HAL_DEVICE: do debug for xge core device module 103 * @XGE_COMPONENT_HAL_DMQ: do debug for xge core DMQ module 104 * @XGE_COMPONENT_HAL_UMQ: do debug for xge core UMQ module 105 * @XGE_COMPONENT_HAL_SQ: do debug for xge core SQ module 106 * @XGE_COMPONENT_HAL_SRQ: do debug for xge core SRQ module 107 * @XGE_COMPONENT_HAL_CQRQ: do debug for xge core CRQ module 108 * @XGE_COMPONENT_HAL_POOL: do debug for xge core memory pool module 109 * @XGE_COMPONENT_HAL_BITMAP: do debug for xge core BITMAP module 110 * @XGE_COMPONENT_CORE: do debug for xge KMA core module 111 * @XGE_COMPONENT_OSDEP: do debug for xge KMA os dependent parts 112 * @XGE_COMPONENT_LL: do debug for xge link layer module 113 * @XGE_COMPONENT_ALL: activate debug for all modules with no exceptions 114 * 115 * This enumeration going to be used to distinguish modules 116 * or libraries during compilation and runtime. Makefile must declare 117 * XGE_DEBUG_MODULE_MASK macro and set it to proper value. 118 */ 119#define XGE_COMPONENT_HAL_CONFIG 0x00000001 120#define XGE_COMPONENT_HAL_FIFO 0x00000002 121#define XGE_COMPONENT_HAL_RING 0x00000004 122#define XGE_COMPONENT_HAL_CHANNEL 0x00000008 123#define XGE_COMPONENT_HAL_DEVICE 0x00000010 124#define XGE_COMPONENT_HAL_MM 0x00000020 125#define XGE_COMPONENT_HAL_QUEUE 0x00000040 126#define XGE_COMPONENT_HAL_INTERRUPT 0x00000080 127#define XGE_COMPONENT_HAL_STATS 0x00000100 128#ifdef XGEHAL_RNIC 129#define XGE_COMPONENT_HAL_DMQ 0x00000200 130#define XGE_COMPONENT_HAL_UMQ 0x00000400 131#define XGE_COMPONENT_HAL_SQ 0x00000800 132#define XGE_COMPONENT_HAL_SRQ 0x00001000 133#define XGE_COMPONENT_HAL_CQRQ 0x00002000 134#define XGE_COMPONENT_HAL_POOL 0x00004000 135#define XGE_COMPONENT_HAL_BITMAP 0x00008000 136#endif 137 138 /* space for CORE_XXX */ 139#define XGE_COMPONENT_OSDEP 0x10000000 140#define XGE_COMPONENT_LL 0x20000000 141#define XGE_COMPONENT_ALL 0xffffffff 142 143#ifndef XGE_DEBUG_MODULE_MASK 144#error "XGE_DEBUG_MODULE_MASK macro must be defined for DEBUG mode..." 145#endif 146 147#ifndef __GNUC__ 148#ifdef XGE_TRACE_INTO_CIRCULAR_ARR 149 #define xge_trace_aux(fmt) xge_os_vatrace(g_xge_os_tracebuf, fmt) 150#else 151 #define xge_trace_aux(fmt) xge_os_vaprintf(fmt) 152#endif 153 154/** 155 * xge_debug 156 * @level: level of debug verbosity. 157 * @fmt: printf like format string 158 * 159 * Provides logging facilities. Can be customized on per-module 160 * basis or/and with debug levels. Input parameters, except 161 * module and level, are the same as posix printf. This function 162 * may be compiled out if DEBUG macro was never defined. 163 * See also: xge_debug_level_e{}. 164 */ 165#define xge_debug(module, level, fmt) { \ 166if (((level >= XGE_TRACE && ((module & XGE_DEBUG_TRACE_MASK) == module)) || \ 167 (level >= XGE_ERR && ((module & XGE_DEBUG_ERR_MASK) == module))) && \ 168 level >= *g_level && module & *(unsigned int *)g_module_mask) { \ 169 xge_trace_aux(fmt); \ 170 } \ 171} 172#else /* __GNUC__ */ 173 174#ifdef XGE_TRACE_INTO_CIRCULAR_ARR 175 #define xge_trace_aux(fmt...) xge_os_trace(g_xge_os_tracebuf, fmt) 176#else 177 #define xge_trace_aux(fmt...) xge_os_printf(fmt) 178#endif 179 180#define xge_debug(module, level, fmt...) { \ 181if (((level >= XGE_TRACE && ((module & XGE_DEBUG_TRACE_MASK) == module)) || \ 182 (level >= XGE_ERR && ((module & XGE_DEBUG_ERR_MASK) == module))) && \ 183 level >= *g_level && module & *(unsigned int *)g_module_mask) { \ 184 xge_trace_aux(fmt); \ 185 } \ 186} 187#endif /* __GNUC__ */ 188 189#if (XGE_COMPONENT_HAL_STATS & XGE_DEBUG_MODULE_MASK) 190#ifndef __GNUC__ 191static inline void xge_debug_stats(xge_debug_level_e level, char *fmt, ...) { 192 u32 module = XGE_COMPONENT_HAL_STATS; 193 xge_debug(module, level, fmt); 194} 195#else /* __GNUC__ */ 196#define xge_debug_stats(level, fmt...) \ 197 xge_debug(XGE_COMPONENT_HAL_STATS, level, fmt) 198#endif /* __GNUC__ */ 199#else 200#ifndef __GNUC__ 201static inline void xge_debug_stats(xge_debug_level_e level, char *fmt, ...) {} 202#else /* __GNUC__ */ 203#define xge_debug_stats(level, fmt...) 204#endif /* __GNUC__ */ 205#endif 206 207/* Interrupt Related */ 208#if (XGE_COMPONENT_HAL_INTERRUPT & XGE_DEBUG_MODULE_MASK) 209#ifndef __GNUC__ 210static inline void xge_debug_interrupt(xge_debug_level_e level, char *fmt, ...) { 211 u32 module = XGE_COMPONENT_HAL_INTERRUPT; 212 xge_debug(module, level, fmt); 213} 214#else /* __GNUC__ */ 215#define xge_debug_interrupt(level, fmt...) \ 216 xge_debug(XGE_COMPONENT_HAL_INTERRUPT, level, fmt) 217#endif /* __GNUC__ */ 218#else 219#ifndef __GNUC__ 220static inline void xge_debug_interrupt(xge_debug_level_e level, char *fmt, ...) {} 221#else /* __GNUC__ */ 222#define xge_debug_interrupt(level, fmt...) 223#endif /* __GNUC__ */ 224#endif 225 226#if (XGE_COMPONENT_HAL_QUEUE & XGE_DEBUG_MODULE_MASK) 227#ifndef __GNUC__ 228static inline void xge_debug_queue(xge_debug_level_e level, char *fmt, ...) { 229 u32 module = XGE_COMPONENT_HAL_QUEUE; 230 xge_debug(module, level, fmt); 231} 232#else /* __GNUC__ */ 233#define xge_debug_queue(level, fmt...) \ 234 xge_debug(XGE_COMPONENT_HAL_QUEUE, level, fmt) 235#endif /* __GNUC__ */ 236#else 237#ifndef __GNUC__ 238static inline void xge_debug_queue(xge_debug_level_e level, char *fmt, 239...) {} 240#else /* __GNUC__ */ 241#define xge_debug_queue(level, fmt...) 242#endif /* __GNUC__ */ 243#endif 244 245#if (XGE_COMPONENT_HAL_MM & XGE_DEBUG_MODULE_MASK) 246#ifndef __GNUC__ 247static inline void xge_debug_mm(xge_debug_level_e level, char *fmt, ...) 248{ 249 u32 module = XGE_COMPONENT_HAL_MM; 250 xge_debug(module, level, fmt); 251} 252#else /* __GNUC__ */ 253#define xge_debug_mm(level, fmt...) \ 254 xge_debug(XGE_COMPONENT_HAL_MM, level, fmt) 255#endif /* __GNUC__ */ 256#else 257#ifndef __GNUC__ 258static inline void xge_debug_mm(xge_debug_level_e level, char *fmt, ...) 259{} 260#else /* __GNUC__ */ 261#define xge_debug_mm(level, fmt...) 262#endif /* __GNUC__ */ 263#endif 264 265#if (XGE_COMPONENT_HAL_CONFIG & XGE_DEBUG_MODULE_MASK) 266#ifndef __GNUC__ 267static inline void xge_debug_config(xge_debug_level_e level, char *fmt, ...) { 268 u32 module = XGE_COMPONENT_HAL_CONFIG; 269 xge_debug(module, level, fmt); 270} 271#else /* __GNUC__ */ 272#define xge_debug_config(level, fmt...) \ 273 xge_debug(XGE_COMPONENT_HAL_CONFIG, level, fmt) 274#endif /* __GNUC__ */ 275#else 276#ifndef __GNUC__ 277static inline void xge_debug_config(xge_debug_level_e level, char *fmt, 278...) {} 279#else /* __GNUC__ */ 280#define xge_debug_config(level, fmt...) 281#endif /* __GNUC__ */ 282#endif 283 284#if (XGE_COMPONENT_HAL_FIFO & XGE_DEBUG_MODULE_MASK) 285#ifndef __GNUC__ 286static inline void xge_debug_fifo(xge_debug_level_e level, char *fmt, ...) { 287 u32 module = XGE_COMPONENT_HAL_FIFO; 288 xge_debug(module, level, fmt); 289} 290#else /* __GNUC__ */ 291#define xge_debug_fifo(level, fmt...) \ 292 xge_debug(XGE_COMPONENT_HAL_FIFO, level, fmt) 293#endif /* __GNUC__ */ 294#else 295#ifndef __GNUC__ 296static inline void xge_debug_fifo(xge_debug_level_e level, char *fmt, ...) {} 297#else /* __GNUC__ */ 298#define xge_debug_fifo(level, fmt...) 299#endif /* __GNUC__ */ 300#endif 301 302#if (XGE_COMPONENT_HAL_RING & XGE_DEBUG_MODULE_MASK) 303#ifndef __GNUC__ 304static inline void xge_debug_ring(xge_debug_level_e level, char *fmt, ...) { 305 u32 module = XGE_COMPONENT_HAL_RING; 306 xge_debug(module, level, fmt); 307} 308#else /* __GNUC__ */ 309#define xge_debug_ring(level, fmt...) \ 310 xge_debug(XGE_COMPONENT_HAL_RING, level, fmt) 311#endif /* __GNUC__ */ 312#else 313#ifndef __GNUC__ 314static inline void xge_debug_ring(xge_debug_level_e level, char *fmt, ...) {} 315#else /* __GNUC__ */ 316#define xge_debug_ring(level, fmt...) 317#endif /* __GNUC__ */ 318#endif 319 320#if (XGE_COMPONENT_HAL_CHANNEL & XGE_DEBUG_MODULE_MASK) 321#ifndef __GNUC__ 322static inline void xge_debug_channel(xge_debug_level_e level, char *fmt, ...) { 323 u32 module = XGE_COMPONENT_HAL_CHANNEL; 324 xge_debug(module, level, fmt); 325} 326#else /* __GNUC__ */ 327#define xge_debug_channel(level, fmt...) \ 328 xge_debug(XGE_COMPONENT_HAL_CHANNEL, level, fmt) 329#endif /* __GNUC__ */ 330#else 331#ifndef __GNUC__ 332static inline void xge_debug_channel(xge_debug_level_e level, char *fmt, ...) {} 333#else /* __GNUC__ */ 334#define xge_debug_channel(level, fmt...) 335#endif /* __GNUC__ */ 336#endif 337 338#if (XGE_COMPONENT_HAL_DEVICE & XGE_DEBUG_MODULE_MASK) 339#ifndef __GNUC__ 340static inline void xge_debug_device(xge_debug_level_e level, char *fmt, ...) { 341 u32 module = XGE_COMPONENT_HAL_DEVICE; 342 xge_debug(module, level, fmt); 343} 344#else /* __GNUC__ */ 345#define xge_debug_device(level, fmt...) \ 346 xge_debug(XGE_COMPONENT_HAL_DEVICE, level, fmt) 347#endif /* __GNUC__ */ 348#else 349#ifndef __GNUC__ 350static inline void xge_debug_device(xge_debug_level_e level, char *fmt, ...) {} 351#else /* __GNUC__ */ 352#define xge_debug_device(level, fmt...) 353#endif /* __GNUC__ */ 354#endif 355 356#ifdef XGEHAL_RNIC 357 358#if (XGE_COMPONENT_HAL_DMQ & XGE_DEBUG_MODULE_MASK) 359#ifndef __GNUC__ 360static inline void xge_debug_dmq(xge_debug_level_e level, char *fmt, ...) { 361 u32 module = XGE_COMPONENT_HAL_DMQ; 362 xge_debug(module, level, fmt); 363} 364#else /* __GNUC__ */ 365#define xge_debug_dmq(level, fmt...) \ 366 xge_debug(XGE_COMPONENT_HAL_DMQ, level, fmt) 367#endif /* __GNUC__ */ 368#else 369#ifndef __GNUC__ 370static inline void xge_debug_dmq(xge_debug_level_e level, char *fmt, ...) {} 371#else /* __GNUC__ */ 372#define xge_debug_dmq(level, fmt...) 373#endif /* __GNUC__ */ 374#endif 375 376#if (XGE_COMPONENT_HAL_UMQ & XGE_DEBUG_MODULE_MASK) 377#ifndef __GNUC__ 378static inline void xge_debug_umq(xge_debug_level_e level, char *fmt, ...) { 379 u32 module = XGE_COMPONENT_HAL_UMQ; 380 xge_debug(module, level, fmt); 381} 382#else /* __GNUC__ */ 383#define xge_debug_umq(level, fmt...) \ 384 xge_debug(XGE_COMPONENT_HAL_UMQ, level, fmt) 385#endif /* __GNUC__ */ 386#else 387#ifndef __GNUC__ 388static inline void xge_debug_umq(xge_debug_level_e level, char *fmt, ...) {} 389#else /* __GNUC__ */ 390#define xge_debug_umq(level, fmt...) 391#endif /* __GNUC__ */ 392#endif 393 394#if (XGE_COMPONENT_HAL_SQ & XGE_DEBUG_MODULE_MASK) 395#ifndef __GNUC__ 396static inline void xge_debug_sq(xge_debug_level_e level, char *fmt, ...) { 397 u32 module = XGE_COMPONENT_HAL_SQ; 398 xge_debug(module, level, fmt); 399} 400#else /* __GNUC__ */ 401#define xge_debug_sq(level, fmt...) \ 402 xge_debug(XGE_COMPONENT_HAL_SQ, level, fmt) 403#endif /* __GNUC__ */ 404#else 405#ifndef __GNUC__ 406static inline void xge_debug_sq(xge_debug_level_e level, char *fmt, ...) {} 407#else /* __GNUC__ */ 408#define xge_debug_sq(level, fmt...) 409#endif /* __GNUC__ */ 410#endif 411 412#if (XGE_COMPONENT_HAL_SRQ & XGE_DEBUG_MODULE_MASK) 413#ifndef __GNUC__ 414static inline void xge_debug_srq(xge_debug_level_e level, char *fmt, ...) { 415 u32 module = XGE_COMPONENT_HAL_SRQ; 416 xge_debug(module, level, fmt); 417} 418#else /* __GNUC__ */ 419#define xge_debug_srq(level, fmt...) \ 420 xge_debug(XGE_COMPONENT_HAL_SRQ, level, fmt) 421#endif /* __GNUC__ */ 422#else 423#ifndef __GNUC__ 424static inline void xge_debug_srq(xge_debug_level_e level, char *fmt, ...) {} 425#else /* __GNUC__ */ 426#define xge_debug_srq(level, fmt...) 427#endif /* __GNUC__ */ 428#endif 429 430#if (XGE_COMPONENT_HAL_CQRQ & XGE_DEBUG_MODULE_MASK) 431#ifndef __GNUC__ 432static inline void xge_debug_cqrq(xge_debug_level_e level, char *fmt, ...) { 433 u32 module = XGE_COMPONENT_HAL_CQRQ; 434 xge_debug(module, level, fmt); 435} 436#else /* __GNUC__ */ 437#define xge_debug_cqrq(level, fmt...) \ 438 xge_debug(XGE_COMPONENT_HAL_CQRQ, level, fmt) 439#endif /* __GNUC__ */ 440#else 441#ifndef __GNUC__ 442static inline void xge_debug_cqrq(xge_debug_level_e level, char *fmt, ...) {} 443#else /* __GNUC__ */ 444#define xge_debug_cqrq(level, fmt...) 445#endif /* __GNUC__ */ 446#endif 447 448#if (XGE_COMPONENT_HAL_POOL & XGE_DEBUG_MODULE_MASK) 449#ifndef __GNUC__ 450static inline void xge_debug_pool(xge_debug_level_e level, char *fmt, ...) { 451 u32 module = XGE_COMPONENT_HAL_POOL; 452 xge_debug(module, level, fmt); 453} 454#else /* __GNUC__ */ 455#define xge_debug_pool(level, fmt...) \ 456 xge_debug(XGE_COMPONENT_HAL_POOL, level, fmt) 457#endif /* __GNUC__ */ 458#else 459#ifndef __GNUC__ 460static inline void xge_debug_pool(xge_debug_level_e level, char *fmt, ...) {} 461#else /* __GNUC__ */ 462#define xge_debug_pool(level, fmt...) 463#endif /* __GNUC__ */ 464#endif 465 466#if (XGE_COMPONENT_HAL_BITMAP & XGE_DEBUG_MODULE_MASK) 467#ifndef __GNUC__ 468static inline void xge_debug_bitmap(xge_debug_level_e level, char *fmt, ...) { 469 u32 module = XGE_COMPONENT_HAL_BITMAP; 470 xge_debug(module, level, fmt); 471} 472#else /* __GNUC__ */ 473#define xge_debug_bitmap(level, fmt...) \ 474 xge_debug(XGE_COMPONENT_HAL_BITMAP, level, fmt) 475#endif /* __GNUC__ */ 476#else 477#ifndef __GNUC__ 478static inline void xge_debug_bitmap(xge_debug_level_e level, char *fmt, ...) {} 479#else /* __GNUC__ */ 480#define xge_debug_bitmap(level, fmt...) 481#endif /* __GNUC__ */ 482#endif 483 484#endif 485 486#if (XGE_COMPONENT_OSDEP & XGE_DEBUG_MODULE_MASK) 487#ifndef __GNUC__ 488static inline void xge_debug_osdep(xge_debug_level_e level, char *fmt, ...) { 489 u32 module = XGE_COMPONENT_OSDEP; 490 xge_debug(module, level, fmt); 491} 492#else /* __GNUC__ */ 493#define xge_debug_osdep(level, fmt...) \ 494 xge_debug(XGE_COMPONENT_OSDEP, level, fmt) 495#endif /* __GNUC__ */ 496#else 497#ifndef __GNUC__ 498static inline void xge_debug_osdep(xge_debug_level_e level, char *fmt, ...) {} 499#else /* __GNUC__ */ 500#define xge_debug_osdep(level, fmt...) 501#endif /* __GNUC__ */ 502#endif 503 504#if (XGE_COMPONENT_LL & XGE_DEBUG_MODULE_MASK) 505#ifndef __GNUC__ 506static inline void xge_debug_ll(xge_debug_level_e level, char *fmt, ...) 507{ 508 u32 module = XGE_COMPONENT_LL; 509 xge_debug(module, level, fmt); 510} 511#else /* __GNUC__ */ 512#define xge_debug_ll(level, fmt...) \ 513 xge_debug(XGE_COMPONENT_LL, level, fmt) 514#endif /* __GNUC__ */ 515#else 516#ifndef __GNUC__ 517static inline void xge_debug_ll(xge_debug_level_e level, char *fmt, ...) {} 518#else /* __GNUC__ */ 519#define xge_debug_ll(level, fmt...) 520#endif /* __GNUC__ */ 521#endif 522 523#else 524 525static inline void xge_debug_interrupt(xge_debug_level_e level, char *fmt, ...) {} 526static inline void xge_debug_stats(xge_debug_level_e level, char *fmt, ...) {} 527static inline void xge_debug_queue(xge_debug_level_e level, char *fmt, ...) {} 528static inline void xge_debug_mm(xge_debug_level_e level, char *fmt, ...) {} 529static inline void xge_debug_config(xge_debug_level_e level, char *fmt, ...) {} 530static inline void xge_debug_fifo(xge_debug_level_e level, char *fmt, ...) {} 531static inline void xge_debug_ring(xge_debug_level_e level, char *fmt, ...) {} 532static inline void xge_debug_channel(xge_debug_level_e level, char *fmt, ...) {} 533static inline void xge_debug_device(xge_debug_level_e level, char *fmt, ...) {} 534static inline void xge_debug_dmq(xge_debug_level_e level, char *fmt, ...) {} 535static inline void xge_debug_umq(xge_debug_level_e level, char *fmt, ...) {} 536static inline void xge_debug_sq(xge_debug_level_e level, char *fmt, ...) {} 537static inline void xge_debug_srq(xge_debug_level_e level, char *fmt, ...) {} 538static inline void xge_debug_cqrq(xge_debug_level_e level, char *fmt, ...) {} 539static inline void xge_debug_pool(xge_debug_level_e level, char *fmt, ...) {} 540static inline void xge_debug_bitmap(xge_debug_level_e level, char *fmt, ...) {} 541static inline void xge_debug_hal(xge_debug_level_e level, char *fmt, ...) {} 542static inline void xge_debug_osdep(xge_debug_level_e level, char *fmt, ...) {} 543static inline void xge_debug_ll(xge_debug_level_e level, char *fmt, ...) {} 544 545#endif /* end of XGE_DEBUG_*_MASK */ 546 547#ifdef XGE_DEBUG_ASSERT 548 549/** 550 * xge_assert 551 * @test: C-condition to check 552 * @fmt: printf like format string 553 * 554 * This function implements traditional assert. By default assertions 555 * are enabled. It can be disabled by defining XGE_DEBUG_ASSERT macro in 556 * compilation 557 * time. 558 */ 559#define xge_assert(test) { \ 560 if (!(test)) xge_os_bug("bad cond: "#test" at %s:%d\n", \ 561 __FILE__, __LINE__); } 562#else 563#define xge_assert(test) 564#endif /* end of XGE_DEBUG_ASSERT */ 565 566__EXTERN_END_DECLS 567 568#endif /* XGE_DEBUG_H */ 569