FreeBSD kernel pms device code
osdebug.h
Go to the documentation of this file.
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
26Version Control Information:
27
28$RCSfile: osdebug.h,v $
29$Revision: 114125 $
30
31Note:
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/***************************************************************************
42OS_ASSERT : This macro is used when an internal error is detected.
43***************************************************************************/
44#ifdef AGTIAPI_KDB_ENABLE
45#define OS_ASSERT(expr, message) \
46do { \
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) \
57do { \
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) \
67do { \
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) \
79do { \
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) \
99do { \
100 printf format ; \
101} while (0)
102#else
103#define TIDEBUG_MSG(mask, val, format)
104#define TIDEBUG_MSG0(format)
105#endif
106
107/***************************************************************************
108FC 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