blob: 5712f06905a92432ab09959762452ae662c9678f [file] [log] [blame]
Anton Blanchard1bf4af12009-10-26 18:47:42 +00001#undef TRACE_SYSTEM
2#define TRACE_SYSTEM powerpc
3
4#if !defined(_TRACE_POWERPC_H) || defined(TRACE_HEADER_MULTI_READ)
5#define _TRACE_POWERPC_H
6
7#include <linux/tracepoint.h>
8
9struct pt_regs;
10
Anton Blanchardd136e272012-05-22 18:47:48 +000011DECLARE_EVENT_CLASS(ppc64_interrupt_class,
Anton Blanchard1bf4af12009-10-26 18:47:42 +000012
13 TP_PROTO(struct pt_regs *regs),
14
15 TP_ARGS(regs),
16
17 TP_STRUCT__entry(
18 __field(struct pt_regs *, regs)
19 ),
20
21 TP_fast_assign(
22 __entry->regs = regs;
23 ),
24
25 TP_printk("pt_regs=%p", __entry->regs)
26);
27
Anton Blanchardd136e272012-05-22 18:47:48 +000028DEFINE_EVENT(ppc64_interrupt_class, irq_entry,
Anton Blanchard1bf4af12009-10-26 18:47:42 +000029
30 TP_PROTO(struct pt_regs *regs),
31
Anton Blanchardd136e272012-05-22 18:47:48 +000032 TP_ARGS(regs)
Anton Blanchard1bf4af12009-10-26 18:47:42 +000033);
34
Anton Blanchardd136e272012-05-22 18:47:48 +000035DEFINE_EVENT(ppc64_interrupt_class, irq_exit,
Anton Blanchard6795b852009-10-26 18:49:14 +000036
37 TP_PROTO(struct pt_regs *regs),
38
Anton Blanchardd136e272012-05-22 18:47:48 +000039 TP_ARGS(regs)
Anton Blanchard6795b852009-10-26 18:49:14 +000040);
41
Anton Blanchardd136e272012-05-22 18:47:48 +000042DEFINE_EVENT(ppc64_interrupt_class, timer_interrupt_entry,
Anton Blanchard6795b852009-10-26 18:49:14 +000043
44 TP_PROTO(struct pt_regs *regs),
45
Anton Blanchardd136e272012-05-22 18:47:48 +000046 TP_ARGS(regs)
47);
Anton Blanchard6795b852009-10-26 18:49:14 +000048
Anton Blanchardd136e272012-05-22 18:47:48 +000049DEFINE_EVENT(ppc64_interrupt_class, timer_interrupt_exit,
Anton Blanchard6795b852009-10-26 18:49:14 +000050
Anton Blanchardd136e272012-05-22 18:47:48 +000051 TP_PROTO(struct pt_regs *regs),
Anton Blanchard6795b852009-10-26 18:49:14 +000052
Anton Blanchardd136e272012-05-22 18:47:48 +000053 TP_ARGS(regs)
Anton Blanchard6795b852009-10-26 18:49:14 +000054);
55
Anton Blanchardc8cd0932009-10-26 18:50:29 +000056#ifdef CONFIG_PPC_PSERIES
57extern void hcall_tracepoint_regfunc(void);
58extern void hcall_tracepoint_unregfunc(void);
59
60TRACE_EVENT_FN(hcall_entry,
61
Anton Blanchard6f263532009-10-26 18:51:09 +000062 TP_PROTO(unsigned long opcode, unsigned long *args),
Anton Blanchardc8cd0932009-10-26 18:50:29 +000063
Anton Blanchard6f263532009-10-26 18:51:09 +000064 TP_ARGS(opcode, args),
Anton Blanchardc8cd0932009-10-26 18:50:29 +000065
66 TP_STRUCT__entry(
67 __field(unsigned long, opcode)
68 ),
69
70 TP_fast_assign(
71 __entry->opcode = opcode;
72 ),
73
74 TP_printk("opcode=%lu", __entry->opcode),
75
76 hcall_tracepoint_regfunc, hcall_tracepoint_unregfunc
77);
78
79TRACE_EVENT_FN(hcall_exit,
80
Anton Blanchard6f263532009-10-26 18:51:09 +000081 TP_PROTO(unsigned long opcode, unsigned long retval,
82 unsigned long *retbuf),
Anton Blanchardc8cd0932009-10-26 18:50:29 +000083
Anton Blanchard6f263532009-10-26 18:51:09 +000084 TP_ARGS(opcode, retval, retbuf),
Anton Blanchardc8cd0932009-10-26 18:50:29 +000085
86 TP_STRUCT__entry(
87 __field(unsigned long, opcode)
88 __field(unsigned long, retval)
89 ),
90
91 TP_fast_assign(
92 __entry->opcode = opcode;
93 __entry->retval = retval;
94 ),
95
96 TP_printk("opcode=%lu retval=%lu", __entry->opcode, __entry->retval),
97
98 hcall_tracepoint_regfunc, hcall_tracepoint_unregfunc
99);
100#endif
101
Anton Blanchard1bf4af12009-10-26 18:47:42 +0000102#endif /* _TRACE_POWERPC_H */
103
104#undef TRACE_INCLUDE_PATH
105#undef TRACE_INCLUDE_FILE
106
107#define TRACE_INCLUDE_PATH asm
108#define TRACE_INCLUDE_FILE trace
109
110#include <trace/define_trace.h>