1 #if !defined(_TRACE_IRQ_H) || defined(TRACE_HEADER_MULTI_READ)
4 #include <linux/tracepoint.h>
5 #include <linux/interrupt.h>
8 #define TRACE_SYSTEM irq
11 * Tracepoint for entry of interrupt handler:
13 TRACE_EVENT(irq_handler_entry,
15 TP_PROTO(int irq, struct irqaction *action),
21 __string( name, action->name )
26 __assign_str(name, action->name);
29 TP_printk("irq=%d handler=%s", __entry->irq, __get_str(name))
33 * Tracepoint for return of an interrupt handler:
35 TRACE_EVENT(irq_handler_exit,
37 TP_PROTO(int irq, struct irqaction *action, int ret),
39 TP_ARGS(irq, action, ret),
51 TP_printk("irq=%d return=%s",
52 __entry->irq, __entry->ret ? "handled" : "unhandled")
55 TRACE_EVENT(softirq_entry,
57 TP_PROTO(struct softirq_action *h, struct softirq_action *vec),
63 __string( name, softirq_to_name[h-vec] )
67 __entry->vec = (int)(h - vec);
68 __assign_str(name, softirq_to_name[h-vec]);
71 TP_printk("softirq=%d action=%s", __entry->vec, __get_str(name))
74 TRACE_EVENT(softirq_exit,
76 TP_PROTO(struct softirq_action *h, struct softirq_action *vec),
82 __string( name, softirq_to_name[h-vec] )
86 __entry->vec = (int)(h - vec);
87 __assign_str(name, softirq_to_name[h-vec]);
90 TP_printk("softirq=%d action=%s", __entry->vec, __get_str(name))
93 #endif /* _TRACE_IRQ_H */
95 /* This part must be outside protection */
96 #include <trace/define_trace.h>