4 * Author: Dave Jiang <djiang@mvista.com>
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
12 #ifndef _LINUX_EDAC_H_
13 #define _LINUX_EDAC_H_
15 #include <linux/atomic.h>
16 #include <linux/sysdev.h>
18 #define EDAC_OPSTATE_INVAL -1
19 #define EDAC_OPSTATE_POLL 0
20 #define EDAC_OPSTATE_NMI 1
21 #define EDAC_OPSTATE_INT 2
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
;
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);
33 static inline void opstate_init(void)
35 switch (edac_op_state
) {
36 case EDAC_OPSTATE_POLL
:
37 case EDAC_OPSTATE_NMI
:
40 edac_op_state
= EDAC_OPSTATE_POLL
;