mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 05:14:38 +00:00 
			
		
		
		
	 30e1f7a812
			
		
	
	
		30e1f7a812
		
	
	
	
	
		
			
			Move toplevel sysfs class to the stub and make it available to non-modularized code too. Add proper refcounting of its users and move the registration functionality into the reference counting routines. Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
		
			
				
	
	
		
			46 lines
		
	
	
		
			1014 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1014 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Generic EDAC defs
 | |
|  *
 | |
|  * Author: Dave Jiang <djiang@mvista.com>
 | |
|  *
 | |
|  * 2006-2008 (c) MontaVista Software, Inc. This file is licensed under
 | |
|  * 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_
 | |
| 
 | |
| #include <asm/atomic.h>
 | |
| #include <linux/sysdev.h>
 | |
| 
 | |
| #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;
 | |
| extern int edac_err_assert;
 | |
| extern atomic_t edac_handlers;
 | |
| extern struct sysdev_class edac_class;
 | |
| 
 | |
| extern int edac_handler_set(void);
 | |
| extern void edac_atomic_assert_error(void);
 | |
| extern struct sysdev_class *edac_get_sysfs_class(void);
 | |
| extern void edac_put_sysfs_class(void);
 | |
| 
 | |
| 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;
 | |
| }
 | |
| 
 | |
| #endif
 |