diff options
Diffstat (limited to 'include/linux/mmiotrace.h')
-rw-r--r-- | include/linux/mmiotrace.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/include/linux/mmiotrace.h b/include/linux/mmiotrace.h index 6ec288f1fe24..d87a6cd8b686 100644 --- a/include/linux/mmiotrace.h +++ b/include/linux/mmiotrace.h | |||
@@ -3,6 +3,44 @@ | |||
3 | 3 | ||
4 | #include <asm/types.h> | 4 | #include <asm/types.h> |
5 | 5 | ||
6 | #ifdef __KERNEL__ | ||
7 | |||
8 | #include <linux/list.h> | ||
9 | |||
10 | struct kmmio_probe; | ||
11 | struct pt_regs; | ||
12 | |||
13 | typedef void (*kmmio_pre_handler_t)(struct kmmio_probe *, | ||
14 | struct pt_regs *, unsigned long addr); | ||
15 | typedef void (*kmmio_post_handler_t)(struct kmmio_probe *, | ||
16 | unsigned long condition, struct pt_regs *); | ||
17 | |||
18 | struct kmmio_probe { | ||
19 | struct list_head list; | ||
20 | unsigned long addr; /* start location of the probe point */ | ||
21 | unsigned long len; /* length of the probe region */ | ||
22 | kmmio_pre_handler_t pre_handler; /* Called before addr is executed. */ | ||
23 | kmmio_post_handler_t post_handler; /* Called after addr is executed */ | ||
24 | }; | ||
25 | |||
26 | /* kmmio is active by some kmmio_probes? */ | ||
27 | static inline int is_kmmio_active(void) | ||
28 | { | ||
29 | extern unsigned int kmmio_count; | ||
30 | return kmmio_count; | ||
31 | } | ||
32 | |||
33 | extern void reference_kmmio(void); | ||
34 | extern void unreference_kmmio(void); | ||
35 | extern int register_kmmio_probe(struct kmmio_probe *p); | ||
36 | extern void unregister_kmmio_probe(struct kmmio_probe *p); | ||
37 | |||
38 | /* Called from page fault handler. */ | ||
39 | extern int kmmio_handler(struct pt_regs *regs, unsigned long addr); | ||
40 | |||
41 | #endif /* __KERNEL__ */ | ||
42 | |||
43 | |||
6 | /* | 44 | /* |
7 | * If you change anything here, you must bump MMIO_VERSION. | 45 | * If you change anything here, you must bump MMIO_VERSION. |
8 | * This is the relay data format for user space. | 46 | * This is the relay data format for user space. |