Commit | Line | Data |
---|---|---|
ea20d929 | 1 | #if !defined(_TRACE_IRQ_H) || defined(TRACE_HEADER_MULTI_READ) |
af39241b JB |
2 | #define _TRACE_IRQ_H |
3 | ||
af39241b | 4 | #include <linux/tracepoint.h> |
ea20d929 SR |
5 | #include <linux/interrupt.h> |
6 | ||
7 | #undef TRACE_SYSTEM | |
8 | #define TRACE_SYSTEM irq | |
9 | ||
10 | /* | |
11 | * Tracepoint for entry of interrupt handler: | |
12 | */ | |
13 | TRACE_FORMAT(irq_handler_entry, | |
14 | TP_PROTO(int irq, struct irqaction *action), | |
15 | TP_ARGS(irq, action), | |
16 | TP_FMT("irq=%d handler=%s", irq, action->name) | |
17 | ); | |
18 | ||
19 | /* | |
20 | * Tracepoint for return of an interrupt handler: | |
21 | */ | |
22 | TRACE_EVENT(irq_handler_exit, | |
23 | ||
24 | TP_PROTO(int irq, struct irqaction *action, int ret), | |
25 | ||
26 | TP_ARGS(irq, action, ret), | |
27 | ||
28 | TP_STRUCT__entry( | |
29 | __field( int, irq ) | |
30 | __field( int, ret ) | |
31 | ), | |
32 | ||
33 | TP_fast_assign( | |
34 | __entry->irq = irq; | |
35 | __entry->ret = ret; | |
36 | ), | |
37 | ||
38 | TP_printk("irq=%d return=%s", | |
39 | __entry->irq, __entry->ret ? "handled" : "unhandled") | |
40 | ); | |
41 | ||
42 | TRACE_FORMAT(softirq_entry, | |
43 | TP_PROTO(struct softirq_action *h, struct softirq_action *vec), | |
44 | TP_ARGS(h, vec), | |
45 | TP_FMT("softirq=%d action=%s", (int)(h - vec), softirq_to_name[h-vec]) | |
46 | ); | |
af39241b | 47 | |
ea20d929 SR |
48 | TRACE_FORMAT(softirq_exit, |
49 | TP_PROTO(struct softirq_action *h, struct softirq_action *vec), | |
50 | TP_ARGS(h, vec), | |
51 | TP_FMT("softirq=%d action=%s", (int)(h - vec), softirq_to_name[h-vec]) | |
52 | ); | |
af39241b | 53 | |
a8d154b0 SR |
54 | #endif /* _TRACE_IRQ_H */ |
55 | ||
56 | /* This part must be outside protection */ | |
57 | #include <trace/define_trace.h> |