]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blame - arch/powerpc/include/asm/trace.h
Merge tag 'powerpc-4.5-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc...
[mirror_ubuntu-zesty-kernel.git] / arch / powerpc / include / asm / trace.h
CommitLineData
1bf4af16
AB
1#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
d136e273 11DECLARE_EVENT_CLASS(ppc64_interrupt_class,
1bf4af16
AB
12
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
d136e273 28DEFINE_EVENT(ppc64_interrupt_class, irq_entry,
1bf4af16
AB
29
30 TP_PROTO(struct pt_regs *regs),
31
d136e273 32 TP_ARGS(regs)
1bf4af16
AB
33);
34
d136e273 35DEFINE_EVENT(ppc64_interrupt_class, irq_exit,
6795b85c
AB
36
37 TP_PROTO(struct pt_regs *regs),
38
d136e273 39 TP_ARGS(regs)
6795b85c
AB
40);
41
d136e273 42DEFINE_EVENT(ppc64_interrupt_class, timer_interrupt_entry,
6795b85c
AB
43
44 TP_PROTO(struct pt_regs *regs),
45
d136e273
AB
46 TP_ARGS(regs)
47);
6795b85c 48
d136e273 49DEFINE_EVENT(ppc64_interrupt_class, timer_interrupt_exit,
6795b85c 50
d136e273 51 TP_PROTO(struct pt_regs *regs),
6795b85c 52
d136e273 53 TP_ARGS(regs)
6795b85c
AB
54);
55
c8cd093a
AB
56#ifdef CONFIG_PPC_PSERIES
57extern void hcall_tracepoint_regfunc(void);
58extern void hcall_tracepoint_unregfunc(void);
59
126df08c 60TRACE_EVENT_FN_COND(hcall_entry,
c8cd093a 61
6f26353c 62 TP_PROTO(unsigned long opcode, unsigned long *args),
c8cd093a 63
6f26353c 64 TP_ARGS(opcode, args),
c8cd093a 65
126df08c
DK
66 TP_CONDITION(cpu_online(raw_smp_processor_id())),
67
c8cd093a
AB
68 TP_STRUCT__entry(
69 __field(unsigned long, opcode)
70 ),
71
72 TP_fast_assign(
73 __entry->opcode = opcode;
74 ),
75
76 TP_printk("opcode=%lu", __entry->opcode),
77
78 hcall_tracepoint_regfunc, hcall_tracepoint_unregfunc
79);
80
126df08c 81TRACE_EVENT_FN_COND(hcall_exit,
c8cd093a 82
6f26353c
AB
83 TP_PROTO(unsigned long opcode, unsigned long retval,
84 unsigned long *retbuf),
c8cd093a 85
6f26353c 86 TP_ARGS(opcode, retval, retbuf),
c8cd093a 87
126df08c
DK
88 TP_CONDITION(cpu_online(raw_smp_processor_id())),
89
c8cd093a
AB
90 TP_STRUCT__entry(
91 __field(unsigned long, opcode)
92 __field(unsigned long, retval)
93 ),
94
95 TP_fast_assign(
96 __entry->opcode = opcode;
97 __entry->retval = retval;
98 ),
99
100 TP_printk("opcode=%lu retval=%lu", __entry->opcode, __entry->retval),
101
102 hcall_tracepoint_regfunc, hcall_tracepoint_unregfunc
103);
104#endif
105
c49f6353
AB
106#ifdef CONFIG_PPC_POWERNV
107extern void opal_tracepoint_regfunc(void);
108extern void opal_tracepoint_unregfunc(void);
109
110TRACE_EVENT_FN(opal_entry,
111
112 TP_PROTO(unsigned long opcode, unsigned long *args),
113
114 TP_ARGS(opcode, args),
115
116 TP_STRUCT__entry(
117 __field(unsigned long, opcode)
118 ),
119
120 TP_fast_assign(
121 __entry->opcode = opcode;
122 ),
123
124 TP_printk("opcode=%lu", __entry->opcode),
125
126 opal_tracepoint_regfunc, opal_tracepoint_unregfunc
127);
128
129TRACE_EVENT_FN(opal_exit,
130
131 TP_PROTO(unsigned long opcode, unsigned long retval),
132
133 TP_ARGS(opcode, retval),
134
135 TP_STRUCT__entry(
136 __field(unsigned long, opcode)
137 __field(unsigned long, retval)
138 ),
139
140 TP_fast_assign(
141 __entry->opcode = opcode;
142 __entry->retval = retval;
143 ),
144
145 TP_printk("opcode=%lu retval=%lu", __entry->opcode, __entry->retval),
146
147 opal_tracepoint_regfunc, opal_tracepoint_unregfunc
148);
149#endif
150
cfcb3d80
AK
151TRACE_EVENT(hash_fault,
152
153 TP_PROTO(unsigned long addr, unsigned long access, unsigned long trap),
154 TP_ARGS(addr, access, trap),
155 TP_STRUCT__entry(
156 __field(unsigned long, addr)
157 __field(unsigned long, access)
158 __field(unsigned long, trap)
159 ),
160
161 TP_fast_assign(
162 __entry->addr = addr;
163 __entry->access = access;
164 __entry->trap = trap;
165 ),
166
167 TP_printk("hash fault with addr 0x%lx and access = 0x%lx trap = 0x%lx",
168 __entry->addr, __entry->access, __entry->trap)
169);
170
1bf4af16
AB
171#endif /* _TRACE_POWERPC_H */
172
173#undef TRACE_INCLUDE_PATH
174#undef TRACE_INCLUDE_FILE
175
176#define TRACE_INCLUDE_PATH asm
177#define TRACE_INCLUDE_FILE trace
178
179#include <trace/define_trace.h>