xref: /linux/lib/notifier-error-inject.h (revision b2441318)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
28d438288SAkinobu Mita #include <linux/atomic.h>
38d438288SAkinobu Mita #include <linux/debugfs.h>
48d438288SAkinobu Mita #include <linux/notifier.h>
58d438288SAkinobu Mita 
68d438288SAkinobu Mita struct notifier_err_inject_action {
78d438288SAkinobu Mita 	unsigned long val;
88d438288SAkinobu Mita 	int error;
98d438288SAkinobu Mita 	const char *name;
108d438288SAkinobu Mita };
118d438288SAkinobu Mita 
128d438288SAkinobu Mita #define NOTIFIER_ERR_INJECT_ACTION(action)	\
138d438288SAkinobu Mita 	.name = #action, .val = (action),
148d438288SAkinobu Mita 
158d438288SAkinobu Mita struct notifier_err_inject {
168d438288SAkinobu Mita 	struct notifier_block nb;
178d438288SAkinobu Mita 	struct notifier_err_inject_action actions[];
188d438288SAkinobu Mita 	/* The last slot must be terminated with zero sentinel */
198d438288SAkinobu Mita };
208d438288SAkinobu Mita 
218d438288SAkinobu Mita extern struct dentry *notifier_err_inject_dir;
228d438288SAkinobu Mita 
238d438288SAkinobu Mita extern struct dentry *notifier_err_inject_init(const char *name,
248d438288SAkinobu Mita 		struct dentry *parent, struct notifier_err_inject *err_inject,
258d438288SAkinobu Mita 		int priority);
26