diff options
Diffstat (limited to 'src/include/ipxe/fault.h')
| -rw-r--r-- | src/include/ipxe/fault.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/include/ipxe/fault.h b/src/include/ipxe/fault.h new file mode 100644 index 000000000..32aa06484 --- /dev/null +++ b/src/include/ipxe/fault.h @@ -0,0 +1,32 @@ +#ifndef _IPXE_FAULT_H +#define _IPXE_FAULT_H + +/** @file + * + * Fault injection + * + */ + +FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); + +#include <config/fault.h> + +extern int inject_fault_nonzero ( unsigned int rate ); + +/** + * Inject fault with a specified probability + * + * @v rate Reciprocal of fault probability (zero for no faults) + * @ret rc Return status code + */ +static inline __attribute__ (( always_inline )) int +inject_fault ( unsigned int rate ) { + + /* Force dead code elimination in non-fault-injecting builds */ + if ( rate == 0 ) + return 0; + + return inject_fault_nonzero ( rate ); +} + +#endif /* _IPXE_FAULT_H */ |
