diff options
Diffstat (limited to 'kernel/trace/trace.h')
-rw-r--r-- | kernel/trace/trace.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index fa1dccb579d5..ea7e0bcbd539 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h | |||
@@ -15,6 +15,10 @@ | |||
15 | #include <linux/trace_seq.h> | 15 | #include <linux/trace_seq.h> |
16 | #include <linux/ftrace_event.h> | 16 | #include <linux/ftrace_event.h> |
17 | 17 | ||
18 | #ifdef CONFIG_KSYM_TRACER | ||
19 | #include <asm/hw_breakpoint.h> | ||
20 | #endif | ||
21 | |||
18 | enum trace_type { | 22 | enum trace_type { |
19 | __TRACE_FIRST_TYPE = 0, | 23 | __TRACE_FIRST_TYPE = 0, |
20 | 24 | ||
@@ -38,6 +42,7 @@ enum trace_type { | |||
38 | TRACE_KMEM_FREE, | 42 | TRACE_KMEM_FREE, |
39 | TRACE_POWER, | 43 | TRACE_POWER, |
40 | TRACE_BLK, | 44 | TRACE_BLK, |
45 | TRACE_KSYM, | ||
41 | 46 | ||
42 | __TRACE_LAST_TYPE, | 47 | __TRACE_LAST_TYPE, |
43 | }; | 48 | }; |
@@ -205,6 +210,16 @@ struct syscall_trace_exit { | |||
205 | unsigned long ret; | 210 | unsigned long ret; |
206 | }; | 211 | }; |
207 | 212 | ||
213 | #define KSYM_SELFTEST_ENTRY "ksym_selftest_dummy" | ||
214 | extern int process_new_ksym_entry(char *ksymname, int op, unsigned long addr); | ||
215 | |||
216 | struct ksym_trace_entry { | ||
217 | struct trace_entry ent; | ||
218 | unsigned long ip; | ||
219 | unsigned char type; | ||
220 | char ksym_name[KSYM_NAME_LEN]; | ||
221 | char cmd[TASK_COMM_LEN]; | ||
222 | }; | ||
208 | 223 | ||
209 | /* | 224 | /* |
210 | * trace_flag_type is an enumeration that holds different | 225 | * trace_flag_type is an enumeration that holds different |
@@ -315,6 +330,7 @@ extern void __ftrace_bad_type(void); | |||
315 | TRACE_KMEM_ALLOC); \ | 330 | TRACE_KMEM_ALLOC); \ |
316 | IF_ASSIGN(var, ent, struct kmemtrace_free_entry, \ | 331 | IF_ASSIGN(var, ent, struct kmemtrace_free_entry, \ |
317 | TRACE_KMEM_FREE); \ | 332 | TRACE_KMEM_FREE); \ |
333 | IF_ASSIGN(var, ent, struct ksym_trace_entry, TRACE_KSYM);\ | ||
318 | __ftrace_bad_type(); \ | 334 | __ftrace_bad_type(); \ |
319 | } while (0) | 335 | } while (0) |
320 | 336 | ||
@@ -558,6 +574,8 @@ extern int trace_selftest_startup_branch(struct tracer *trace, | |||
558 | struct trace_array *tr); | 574 | struct trace_array *tr); |
559 | extern int trace_selftest_startup_hw_branches(struct tracer *trace, | 575 | extern int trace_selftest_startup_hw_branches(struct tracer *trace, |
560 | struct trace_array *tr); | 576 | struct trace_array *tr); |
577 | extern int trace_selftest_startup_ksym(struct tracer *trace, | ||
578 | struct trace_array *tr); | ||
561 | #endif /* CONFIG_FTRACE_STARTUP_TEST */ | 579 | #endif /* CONFIG_FTRACE_STARTUP_TEST */ |
562 | 580 | ||
563 | extern void *head_page(struct trace_array_cpu *data); | 581 | extern void *head_page(struct trace_array_cpu *data); |