Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp
[pandora-kernel.git] / include / linux / edac.h
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
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