2007-07-19 16:49:46 +08:00
|
|
|
/*
|
|
|
|
* Generic EDAC defs
|
|
|
|
*
|
|
|
|
* Author: Dave Jiang <djiang@mvista.com>
|
|
|
|
*
|
2008-04-29 16:03:18 +08:00
|
|
|
* 2006-2008 (c) MontaVista Software, Inc. This file is licensed under
|
2007-07-19 16:49:46 +08:00
|
|
|
* the terms of the GNU General Public License version 2. This program
|
|
|
|
* is licensed "as is" without any warranty of any kind, whether express
|
|
|
|
* or implied.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
#ifndef _LINUX_EDAC_H_
|
|
|
|
#define _LINUX_EDAC_H_
|
|
|
|
|
2011-07-27 07:09:06 +08:00
|
|
|
#include <linux/atomic.h>
|
2010-09-02 23:26:48 +08:00
|
|
|
#include <linux/sysdev.h>
|
2007-07-19 16:49:46 +08:00
|
|
|
|
|
|
|
#define EDAC_OPSTATE_INVAL -1
|
|
|
|
#define EDAC_OPSTATE_POLL 0
|
|
|
|
#define EDAC_OPSTATE_NMI 1
|
|
|
|
#define EDAC_OPSTATE_INT 2
|
|
|
|
|
|
|
|
extern int edac_op_state;
|
2007-07-19 16:49:54 +08:00
|
|
|
extern int edac_err_assert;
|
2007-07-19 16:49:46 +08:00
|
|
|
extern atomic_t edac_handlers;
|
2010-09-02 23:26:48 +08:00
|
|
|
extern struct sysdev_class edac_class;
|
2007-07-19 16:49:46 +08:00
|
|
|
|
|
|
|
extern int edac_handler_set(void);
|
|
|
|
extern void edac_atomic_assert_error(void);
|
2010-09-02 23:26:48 +08:00
|
|
|
extern struct sysdev_class *edac_get_sysfs_class(void);
|
|
|
|
extern void edac_put_sysfs_class(void);
|
2007-07-19 16:49:46 +08:00
|
|
|
|
2008-04-29 16:03:18 +08:00
|
|
|
static inline void opstate_init(void)
|
|
|
|
{
|
|
|
|
switch (edac_op_state) {
|
|
|
|
case EDAC_OPSTATE_POLL:
|
|
|
|
case EDAC_OPSTATE_NMI:
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
edac_op_state = EDAC_OPSTATE_POLL;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2007-07-19 16:49:46 +08:00
|
|
|
#endif
|