aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/trace/trace.h')
-rw-r--r--kernel/trace/trace.h18
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
18enum trace_type { 22enum 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"
214extern int process_new_ksym_entry(char *ksymname, int op, unsigned long addr);
215
216struct 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);
559extern int trace_selftest_startup_hw_branches(struct tracer *trace, 575extern int trace_selftest_startup_hw_branches(struct tracer *trace,
560 struct trace_array *tr); 576 struct trace_array *tr);
577extern 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
563extern void *head_page(struct trace_array_cpu *data); 581extern void *head_page(struct trace_array_cpu *data);