]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - sys/dev/pms/freebsd/driver/common/osdebug.h
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / sys / dev / pms / freebsd / driver / common / osdebug.h
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