1 /*
2  * Generic EDAC defs
3  *
4  * Author: Dave Jiang <djiang@mvista.com>
5  *
6  * 2006-2008 (c) MontaVista Software, Inc. This file is licensed under
7  * the terms of the GNU General Public License version 2. This program
8  * is licensed "as is" without any warranty of any kind, whether express
9  * or implied.
10  *
11  */
12 #ifndef _LINUX_EDAC_H_
13 #define _LINUX_EDAC_H_
14 
15 #include <asm/atomic.h>
16 #include <linux/sysdev.h>
17 
18 #define EDAC_OPSTATE_INVAL	-1
19 #define EDAC_OPSTATE_POLL	0
20 #define EDAC_OPSTATE_NMI	1
21 #define EDAC_OPSTATE_INT	2
22 
23 extern int edac_op_state;
24 extern int edac_err_assert;
25 extern atomic_t edac_handlers;
26 extern struct sysdev_class edac_class;
27 
28 extern int edac_handler_set(void);
29 extern void edac_atomic_assert_error(void);
30 extern struct sysdev_class *edac_get_sysfs_class(void);
31 extern void edac_put_sysfs_class(void);
32 
opstate_init(void)33 static inline void opstate_init(void)
34 {
35 	switch (edac_op_state) {
36 	case EDAC_OPSTATE_POLL:
37 	case EDAC_OPSTATE_NMI:
38 		break;
39 	default:
40 		edac_op_state = EDAC_OPSTATE_POLL;
41 	}
42 	return;
43 }
44 
45 #endif
46