1 /* 2 * common EDAC components that must be in kernel 3 * 4 * Author: Dave Jiang <djiang@mvista.com> 5 * 6 * 2007 (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 #include <linux/module.h> 13 #include <linux/edac.h> 14 #include <asm/atomic.h> 15 #include <asm/edac.h> 16 17 int edac_op_state = EDAC_OPSTATE_INVAL; 18 EXPORT_SYMBOL_GPL(edac_op_state); 19 20 atomic_t edac_handlers = ATOMIC_INIT(0); 21 EXPORT_SYMBOL_GPL(edac_handlers); 22 23 int edac_err_assert = 0; 24 EXPORT_SYMBOL_GPL(edac_err_assert); 25 26 /* 27 * called to determine if there is an EDAC driver interested in 28 * knowing an event (such as NMI) occurred 29 */ edac_handler_set(void)30int edac_handler_set(void) 31 { 32 if (edac_op_state == EDAC_OPSTATE_POLL) 33 return 0; 34 35 return atomic_read(&edac_handlers); 36 } 37 EXPORT_SYMBOL_GPL(edac_handler_set); 38 39 /* 40 * handler for NMI type of interrupts to assert error 41 */ edac_atomic_assert_error(void)42void edac_atomic_assert_error(void) 43 { 44 edac_err_assert++; 45 } 46 EXPORT_SYMBOL_GPL(edac_atomic_assert_error); 47