This driver can be loaded as an overlay on top of a real block device, and can then be used to generate block-level failures for certain transfer requests. Specifically, a rule-based system allows the user to introduce (overt and silent) data corruption and errors. It exposes itself through /dev/fbd, and a file system can be mounted on top of it. The new fbdctl(8) tool can be used to control the driver; see ``man fbdctl'' for details. It also comes with a test set, located in test/fbdtest.
12 lines
408 B
C
12 lines
408 B
C
#ifndef _FBD_ACTION_H
|
|
#define _FBD_ACTION_H
|
|
|
|
extern int action_mask(struct fbd_rule *rule);
|
|
|
|
extern void action_pre_hook(struct fbd_rule *rule, iovec_t *iov,
|
|
unsigned *count, size_t *size, u64_t *pos);
|
|
extern void action_io_hook(struct fbd_rule *rule, char *buf, size_t size,
|
|
u64_t pos, int flag);
|
|
extern void action_post_hook(struct fbd_rule *rule, size_t osize, int *result);
|
|
|
|
#endif /* _FBD_ACTION_H */
|