]> bbs.cooldavid.org Git - net-next-2.6.git/blame - arch/powerpc/include/asm/trace.h
powerpc: tracing: Add hypervisor call tracepoints
[net-next-2.6.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
11TRACE_EVENT(irq_entry,
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
28TRACE_EVENT(irq_exit,
29
30 TP_PROTO(struct pt_regs *regs),
31
32 TP_ARGS(regs),
33
34 TP_STRUCT__entry(
35 __field(struct pt_regs *, regs)
36 ),
37
38 TP_fast_assign(
39 __entry->regs = regs;
40 ),
41
42 TP_printk("pt_regs=%p", __entry->regs)
43);
44
6795b85c
AB
45TRACE_EVENT(timer_interrupt_entry,
46
47 TP_PROTO(struct pt_regs *regs),
48
49 TP_ARGS(regs),
50
51 TP_STRUCT__entry(
52 __field(struct pt_regs *, regs)
53 ),
54
55 TP_fast_assign(
56 __entry->regs = regs;
57 ),
58
59 TP_printk("pt_regs=%p", __entry->regs)
60);
61
62TRACE_EVENT(timer_interrupt_exit,
63
64 TP_PROTO(struct pt_regs *regs),
65
66 TP_ARGS(regs),
67
68 TP_STRUCT__entry(
69 __field(struct pt_regs *, regs)
70 ),
71
72 TP_fast_assign(
73 __entry->regs = regs;
74 ),
75
76 TP_printk("pt_regs=%p", __entry->regs)
77);
78
c8cd093a
AB
79#ifdef CONFIG_PPC_PSERIES
80extern void hcall_tracepoint_regfunc(void);
81extern void hcall_tracepoint_unregfunc(void);
82
83TRACE_EVENT_FN(hcall_entry,
84
85 TP_PROTO(unsigned long opcode),
86
87 TP_ARGS(opcode),
88
89 TP_STRUCT__entry(
90 __field(unsigned long, opcode)
91 ),
92
93 TP_fast_assign(
94 __entry->opcode = opcode;
95 ),
96
97 TP_printk("opcode=%lu", __entry->opcode),
98
99 hcall_tracepoint_regfunc, hcall_tracepoint_unregfunc
100);
101
102TRACE_EVENT_FN(hcall_exit,
103
104 TP_PROTO(unsigned long opcode, unsigned long retval),
105
106 TP_ARGS(opcode, retval),
107
108 TP_STRUCT__entry(
109 __field(unsigned long, opcode)
110 __field(unsigned long, retval)
111 ),
112
113 TP_fast_assign(
114 __entry->opcode = opcode;
115 __entry->retval = retval;
116 ),
117
118 TP_printk("opcode=%lu retval=%lu", __entry->opcode, __entry->retval),
119
120 hcall_tracepoint_regfunc, hcall_tracepoint_unregfunc
121);
122#endif
123
1bf4af16
AB
124#endif /* _TRACE_POWERPC_H */
125
126#undef TRACE_INCLUDE_PATH
127#undef TRACE_INCLUDE_FILE
128
129#define TRACE_INCLUDE_PATH asm
130#define TRACE_INCLUDE_FILE trace
131
132#include <trace/define_trace.h>