Linux-libre 2.6.32.42-gnu1
[librecmc/linux-libre.git] / drivers / scsi / bfa / include / cs / bfa_debug.h
1 /*
2  * Copyright (c) 2005-2009 Brocade Communications Systems, Inc.
3  * All rights reserved
4  * www.brocade.com
5  *
6  * Linux driver for Brocade Fibre Channel Host Bus Adapter.
7  *
8  * This program is free software; you can redistribute it and/or modify it
9  * under the terms of the GNU General Public License (GPL) Version 2 as
10  * published by the Free Software Foundation
11  *
12  * This program is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * General Public License for more details.
16  */
17
18 /**
19  *  bfa_debug.h BFA debug interfaces
20  */
21
22 #ifndef __BFA_DEBUG_H__
23 #define __BFA_DEBUG_H__
24
25 #define bfa_assert(__cond)      do {                                    \
26         if (!(__cond))                                                  \
27                 bfa_panic(__LINE__, __FILE__, #__cond);      \
28 } while (0)
29
30 #define bfa_sm_fault(__mod, __event)    do {                            \
31         bfa_sm_panic((__mod)->logm, __LINE__, __FILE__, __event);      \
32 } while (0)
33
34 #ifndef BFA_PERF_BUILD
35 #define bfa_assert_fp(__cond)   bfa_assert(__cond)
36 #else
37 #define bfa_assert_fp(__cond)
38 #endif
39
40 struct bfa_log_mod_s;
41 void bfa_panic(int line, char *file, char *panicstr);
42 void bfa_sm_panic(struct bfa_log_mod_s *logm, int line, char *file, int event);
43
44 #endif /* __BFA_DEBUG_H__ */