Deleted Added
full compact
xge-debug.h (171095) xge-debug.h (173139)
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 unchanged lines hidden (view full) ---

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 *
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 unchanged lines hidden (view full) ---

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 $
26 * $FreeBSD: head/sys/dev/nxge/include/xge-debug.h 173139 2007-10-29 14:19:32Z rwatson $
27 */
28
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/*

--- 4 unchanged lines hidden (view full) ---

49#ifndef __func__
50#ifdef __FUNCTION__
51#define __func__ __FUNCTION__
52#endif
53#endif
54
55
56#ifdef XGE_DEBUG_FP
29#ifndef XGE_DEBUG_H
30#define XGE_DEBUG_H
31
32#include <dev/nxge/include/xge-os-pal.h>
33
34__EXTERN_BEGIN_DECLS
35
36/*

--- 4 unchanged lines hidden (view full) ---

41#ifndef __func__
42#ifdef __FUNCTION__
43#define __func__ __FUNCTION__
44#endif
45#endif
46
47
48#ifdef XGE_DEBUG_FP
57#define XGE_DEBUG_FP_DEVICE 0x1
49#define XGE_DEBUG_FP_DEVICE 0x1
58#define XGE_DEBUG_FP_CHANNEL 0x2
50#define XGE_DEBUG_FP_CHANNEL 0x2
59#define XGE_DEBUG_FP_FIFO 0x4
60#define XGE_DEBUG_FP_RING 0x8
51#define XGE_DEBUG_FP_FIFO 0x4
52#define XGE_DEBUG_FP_RING 0x8
53#define XGE_DEBUG_FP_ALL 0xff
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.

--- 51 unchanged lines hidden (view full) ---

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
54#endif
55
56/**
57 * enum xge_debug_level_e
58 * @XGE_NONE: debug disabled
59 * @XGE_ERR: all errors going to be logged out
60 * @XGE_TRACE: all errors plus all kind of verbose tracing print outs
61 * going to be logged out. Very noisy.

--- 51 unchanged lines hidden (view full) ---

113#define XGE_COMPONENT_HAL_FIFO 0x00000002
114#define XGE_COMPONENT_HAL_RING 0x00000004
115#define XGE_COMPONENT_HAL_CHANNEL 0x00000008
116#define XGE_COMPONENT_HAL_DEVICE 0x00000010
117#define XGE_COMPONENT_HAL_MM 0x00000020
118#define XGE_COMPONENT_HAL_QUEUE 0x00000040
119#define XGE_COMPONENT_HAL_INTERRUPT 0x00000080
120#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
121
122 /* space for CORE_XXX */
123#define XGE_COMPONENT_OSDEP 0x10000000
124#define XGE_COMPONENT_LL 0x20000000
125#define XGE_COMPONENT_ALL 0xffffffff
126
127#ifndef XGE_DEBUG_MODULE_MASK
128#error "XGE_DEBUG_MODULE_MASK macro must be defined for DEBUG mode..."
129#endif
130
131#ifndef __GNUC__
132#ifdef XGE_TRACE_INTO_CIRCULAR_ARR
149 #define xge_trace_aux(fmt) xge_os_vatrace(g_xge_os_tracebuf, fmt)
133 #define xge_trace_aux(fmt) xge_os_vatrace(g_xge_os_tracebuf, fmt)
150#else
134#else
151 #define xge_trace_aux(fmt) xge_os_vaprintf(fmt)
135 #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)) || \
136#endif
137
138/**
139 * xge_debug
140 * @level: level of debug verbosity.
141 * @fmt: printf like format string
142 *
143 * Provides logging facilities. Can be customized on per-module
144 * basis or/and with debug levels. Input parameters, except
145 * module and level, are the same as posix printf. This function
146 * may be compiled out if DEBUG macro was never defined.
147 * See also: xge_debug_level_e{}.
148 */
149#define xge_debug(module, level, fmt) { \
150if (((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); \
151 (level >= XGE_ERR && ((module & XGE_DEBUG_ERR_MASK) == module))) && \
152 level >= *g_level && module & *(unsigned int *)g_module_mask) { \
153 xge_trace_aux(fmt); \
170 } \
171}
172#else /* __GNUC__ */
173
174#ifdef XGE_TRACE_INTO_CIRCULAR_ARR
154 } \
155}
156#else /* __GNUC__ */
157
158#ifdef XGE_TRACE_INTO_CIRCULAR_ARR
175 #define xge_trace_aux(fmt...) xge_os_trace(g_xge_os_tracebuf, fmt)
159 #define xge_trace_aux(fmt...) xge_os_trace(g_xge_os_tracebuf, fmt)
176#else
160#else
177 #define xge_trace_aux(fmt...) xge_os_printf(fmt)
161 #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)) || \
162#endif
163
164#define xge_debug(module, level, fmt...) { \
165if (((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); \
166 (level >= XGE_ERR && ((module & XGE_DEBUG_ERR_MASK) == module))) && \
167 level >= *g_level && module & *(unsigned int *)g_module_mask) { \
168 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;

--- 155 unchanged lines hidden (view full) ---

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
169 } \
170}
171#endif /* __GNUC__ */
172
173#if (XGE_COMPONENT_HAL_STATS & XGE_DEBUG_MODULE_MASK)
174#ifndef __GNUC__
175static inline void xge_debug_stats(xge_debug_level_e level, char *fmt, ...) {
176 u32 module = XGE_COMPONENT_HAL_STATS;

--- 155 unchanged lines hidden (view full) ---

332#else
333#ifndef __GNUC__
334static inline void xge_debug_device(xge_debug_level_e level, char *fmt, ...) {}
335#else /* __GNUC__ */
336#define xge_debug_device(level, fmt...)
337#endif /* __GNUC__ */
338#endif
339
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...) \

--- 32 unchanged lines hidden (view full) ---

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, ...) {}
340#if (XGE_COMPONENT_OSDEP & XGE_DEBUG_MODULE_MASK)
341#ifndef __GNUC__
342static inline void xge_debug_osdep(xge_debug_level_e level, char *fmt, ...) {
343 u32 module = XGE_COMPONENT_OSDEP;
344 xge_debug(module, level, fmt);
345}
346#else /* __GNUC__ */
347#define xge_debug_osdep(level, fmt...) \

--- 32 unchanged lines hidden (view full) ---

380static inline void xge_debug_stats(xge_debug_level_e level, char *fmt, ...) {}
381static inline void xge_debug_queue(xge_debug_level_e level, char *fmt, ...) {}
382static inline void xge_debug_mm(xge_debug_level_e level, char *fmt, ...) {}
383static inline void xge_debug_config(xge_debug_level_e level, char *fmt, ...) {}
384static inline void xge_debug_fifo(xge_debug_level_e level, char *fmt, ...) {}
385static inline void xge_debug_ring(xge_debug_level_e level, char *fmt, ...) {}
386static inline void xge_debug_channel(xge_debug_level_e level, char *fmt, ...) {}
387static 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) { \
388static inline void xge_debug_hal(xge_debug_level_e level, char *fmt, ...) {}
389static inline void xge_debug_osdep(xge_debug_level_e level, char *fmt, ...) {}
390static inline void xge_debug_ll(xge_debug_level_e level, char *fmt, ...) {}
391
392#endif /* end of XGE_DEBUG_*_MASK */
393
394#ifdef XGE_DEBUG_ASSERT
395
396/**
397 * xge_assert
398 * @test: C-condition to check
399 * @fmt: printf like format string
400 *
401 * This function implements traditional assert. By default assertions
402 * are enabled. It can be disabled by defining XGE_DEBUG_ASSERT macro in
403 * compilation
404 * time.
405 */
406#define xge_assert(test) { \
560 if (!(test)) xge_os_bug("bad cond: "#test" at %s:%d\n", \
407 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 */
408 __FILE__, __LINE__); }
409#else
410#define xge_assert(test)
411#endif /* end of XGE_DEBUG_ASSERT */
412
413__EXTERN_END_DECLS
414
415#endif /* XGE_DEBUG_H */