Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.10.11.
 1/* SPDX-License-Identifier: GPL-2.0 */
 2#ifndef _ASM_GENERIC_ERROR_INJECTION_H
 3#define _ASM_GENERIC_ERROR_INJECTION_H
 4
 5#if defined(__KERNEL__) && !defined(__ASSEMBLY__)
 6enum {
 7	EI_ETYPE_NONE,		/* Dummy value for undefined case */
 8	EI_ETYPE_NULL,		/* Return NULL if failure */
 9	EI_ETYPE_ERRNO,		/* Return -ERRNO if failure */
10	EI_ETYPE_ERRNO_NULL,	/* Return -ERRNO or NULL if failure */
11};
12
13struct error_injection_entry {
14	unsigned long	addr;
15	int		etype;
16};
17
18#ifdef CONFIG_FUNCTION_ERROR_INJECTION
19/*
20 * Whitelist ganerating macro. Specify functions which can be
21 * error-injectable using this macro.
22 */
23#define ALLOW_ERROR_INJECTION(fname, _etype)				\
24static struct error_injection_entry __used				\
25	__attribute__((__section__("_error_injection_whitelist")))	\
26	_eil_addr_##fname = {						\
27		.addr = (unsigned long)fname,				\
28		.etype = EI_ETYPE_##_etype,				\
29	};
30#else
31#define ALLOW_ERROR_INJECTION(fname, _etype)
32#endif
33#endif
34
35#endif /* _ASM_GENERIC_ERROR_INJECTION_H */