aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/ftrace_event.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/ftrace_event.h')
-rw-r--r--include/linux/ftrace_event.h23
1 files changed, 12 insertions, 11 deletions
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h
index dc7fc646fa2e..ee8a8411b055 100644
--- a/include/linux/ftrace_event.h
+++ b/include/linux/ftrace_event.h
@@ -180,7 +180,10 @@ struct ftrace_event_call {
180 */ 180 */
181 unsigned int flags; 181 unsigned int flags;
182 182
183#ifdef CONFIG_PERF_EVENTS
183 int perf_refcount; 184 int perf_refcount;
185 struct hlist_head *perf_events;
186#endif
184}; 187};
185 188
186#define PERF_MAX_TRACE_SIZE 2048 189#define PERF_MAX_TRACE_SIZE 2048
@@ -237,24 +240,22 @@ struct perf_event;
237 240
238DECLARE_PER_CPU(struct pt_regs, perf_trace_regs); 241DECLARE_PER_CPU(struct pt_regs, perf_trace_regs);
239 242
240extern int perf_trace_enable(int event_id); 243extern int perf_trace_init(struct perf_event *event);
241extern void perf_trace_disable(int event_id); 244extern void perf_trace_destroy(struct perf_event *event);
242extern int ftrace_profile_set_filter(struct perf_event *event, int event_id, 245extern int perf_trace_enable(struct perf_event *event);
246extern void perf_trace_disable(struct perf_event *event);
247extern int ftrace_profile_set_filter(struct perf_event *event, int event_id,
243 char *filter_str); 248 char *filter_str);
244extern void ftrace_profile_free_filter(struct perf_event *event); 249extern void ftrace_profile_free_filter(struct perf_event *event);
245extern void * 250extern void *perf_trace_buf_prepare(int size, unsigned short type,
246perf_trace_buf_prepare(int size, unsigned short type, int *rctxp, 251 struct pt_regs *regs, int *rctxp);
247 unsigned long *irq_flags);
248 252
249static inline void 253static inline void
250perf_trace_buf_submit(void *raw_data, int size, int rctx, u64 addr, 254perf_trace_buf_submit(void *raw_data, int size, int rctx, u64 addr,
251 u64 count, unsigned long irq_flags, struct pt_regs *regs) 255 u64 count, struct pt_regs *regs, void *head)
252{ 256{
253 struct trace_entry *entry = raw_data; 257 perf_tp_event(addr, count, raw_data, size, regs, head);
254
255 perf_tp_event(entry->type, addr, count, raw_data, size, regs);
256 perf_swevent_put_recursion_context(rctx); 258 perf_swevent_put_recursion_context(rctx);
257 local_irq_restore(irq_flags);
258} 259}
259#endif 260#endif
260 261