blob: 4a73257b47d0cca22e1f33cdb47a8075eb1a358c [file] [log] [blame]
Dave Jiangc0d12172007-07-19 01:49:46 -07001/*
2 * Generic EDAC defs
3 *
4 * Author: Dave Jiang <djiang@mvista.com>
5 *
Hitoshi Mitakec3c52bc2008-04-29 01:03:18 -07006 * 2006-2008 (c) MontaVista Software, Inc. This file is licensed under
Dave Jiangc0d12172007-07-19 01:49:46 -07007 * 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
Arun Sharma600634972011-07-26 16:09:06 -070015#include <linux/atomic.h>
Borislav Petkov30e1f7a2010-09-02 17:26:48 +020016#include <linux/sysdev.h>
Dave Jiangc0d12172007-07-19 01:49:46 -070017
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
23extern int edac_op_state;
Dave Jiang66ee2f92007-07-19 01:49:54 -070024extern int edac_err_assert;
Dave Jiangc0d12172007-07-19 01:49:46 -070025extern atomic_t edac_handlers;
Borislav Petkov30e1f7a2010-09-02 17:26:48 +020026extern struct sysdev_class edac_class;
Dave Jiangc0d12172007-07-19 01:49:46 -070027
28extern int edac_handler_set(void);
29extern void edac_atomic_assert_error(void);
Borislav Petkov30e1f7a2010-09-02 17:26:48 +020030extern struct sysdev_class *edac_get_sysfs_class(void);
31extern void edac_put_sysfs_class(void);
Dave Jiangc0d12172007-07-19 01:49:46 -070032
Hitoshi Mitakec3c52bc2008-04-29 01:03:18 -070033static 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
Dave Jiangc0d12172007-07-19 01:49:46 -070045#endif