25 lines
		
	
	
	
		
			614 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			25 lines
		
	
	
	
		
			614 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | #include <linux/atomic.h>
 | ||
|  | #include <linux/debugfs.h>
 | ||
|  | #include <linux/notifier.h>
 | ||
|  | 
 | ||
|  | struct notifier_err_inject_action { | ||
|  | 	unsigned long val; | ||
|  | 	int error; | ||
|  | 	const char *name; | ||
|  | }; | ||
|  | 
 | ||
|  | #define NOTIFIER_ERR_INJECT_ACTION(action)	\
 | ||
|  | 	.name = #action, .val = (action), | ||
|  | 
 | ||
|  | struct notifier_err_inject { | ||
|  | 	struct notifier_block nb; | ||
|  | 	struct notifier_err_inject_action actions[]; | ||
|  | 	/* The last slot must be terminated with zero sentinel */ | ||
|  | }; | ||
|  | 
 | ||
|  | extern struct dentry *notifier_err_inject_dir; | ||
|  | 
 | ||
|  | extern struct dentry *notifier_err_inject_init(const char *name, | ||
|  | 		struct dentry *parent, struct notifier_err_inject *err_inject, | ||
|  | 		int priority); |