OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [include/] [linux/] [fault-inject.h] - Blame information for rev 81

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
#ifndef _LINUX_FAULT_INJECT_H
2
#define _LINUX_FAULT_INJECT_H
3
 
4
#ifdef CONFIG_FAULT_INJECTION
5
 
6
#include <linux/types.h>
7
#include <linux/debugfs.h>
8
#include <asm/atomic.h>
9
 
10
/*
11
 * For explanation of the elements of this struct, see
12
 * Documentation/fault-injection/fault-injection.txt
13
 */
14
struct fault_attr {
15
        unsigned long probability;
16
        unsigned long interval;
17
        atomic_t times;
18
        atomic_t space;
19
        unsigned long verbose;
20
        u32 task_filter;
21
        unsigned long stacktrace_depth;
22
        unsigned long require_start;
23
        unsigned long require_end;
24
        unsigned long reject_start;
25
        unsigned long reject_end;
26
 
27
        unsigned long count;
28
 
29
#ifdef CONFIG_FAULT_INJECTION_DEBUG_FS
30
 
31
        struct {
32
                struct dentry *dir;
33
 
34
                struct dentry *probability_file;
35
                struct dentry *interval_file;
36
                struct dentry *times_file;
37
                struct dentry *space_file;
38
                struct dentry *verbose_file;
39
                struct dentry *task_filter_file;
40
                struct dentry *stacktrace_depth_file;
41
                struct dentry *require_start_file;
42
                struct dentry *require_end_file;
43
                struct dentry *reject_start_file;
44
                struct dentry *reject_end_file;
45
        } dentries;
46
 
47
#endif
48
};
49
 
50
#define FAULT_ATTR_INITIALIZER {                                \
51
                .interval = 1,                                  \
52
                .times = ATOMIC_INIT(1),                        \
53
                .require_end = ULONG_MAX,                       \
54
                .stacktrace_depth = 32,                         \
55
                .verbose = 2,                                   \
56
        }
57
 
58
#define DECLARE_FAULT_ATTR(name) struct fault_attr name = FAULT_ATTR_INITIALIZER
59
int setup_fault_attr(struct fault_attr *attr, char *str);
60
void should_fail_srandom(unsigned long entropy);
61
bool should_fail(struct fault_attr *attr, ssize_t size);
62
 
63
#ifdef CONFIG_FAULT_INJECTION_DEBUG_FS
64
 
65
int init_fault_attr_dentries(struct fault_attr *attr, const char *name);
66
void cleanup_fault_attr_dentries(struct fault_attr *attr);
67
 
68
#else /* CONFIG_FAULT_INJECTION_DEBUG_FS */
69
 
70
static inline int init_fault_attr_dentries(struct fault_attr *attr,
71
                                          const char *name)
72
{
73
        return -ENODEV;
74
}
75
 
76
static inline void cleanup_fault_attr_dentries(struct fault_attr *attr)
77
{
78
}
79
 
80
#endif /* CONFIG_FAULT_INJECTION_DEBUG_FS */
81
 
82
#endif /* CONFIG_FAULT_INJECTION */
83
 
84
#endif /* _LINUX_FAULT_INJECT_H */

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.