xref: /openbmc/linux/include/trace/events/skb.h (revision ad8d75fff811a6a230f7f43b05a6483099349533)
1*ad8d75ffSSteven Rostedt #if !defined(_TRACE_SKB_H) || defined(TRACE_HEADER_MULTI_READ)
2*ad8d75ffSSteven Rostedt #define _TRACE_SKB_H
3*ad8d75ffSSteven Rostedt 
4*ad8d75ffSSteven Rostedt #include <linux/skbuff.h>
5*ad8d75ffSSteven Rostedt #include <linux/tracepoint.h>
6*ad8d75ffSSteven Rostedt 
7*ad8d75ffSSteven Rostedt #undef TRACE_SYSTEM
8*ad8d75ffSSteven Rostedt #define TRACE_SYSTEM skb
9*ad8d75ffSSteven Rostedt 
10*ad8d75ffSSteven Rostedt /*
11*ad8d75ffSSteven Rostedt  * Tracepoint for free an sk_buff:
12*ad8d75ffSSteven Rostedt  */
13*ad8d75ffSSteven Rostedt TRACE_EVENT(kfree_skb,
14*ad8d75ffSSteven Rostedt 
15*ad8d75ffSSteven Rostedt 	TP_PROTO(struct sk_buff *skb, void *location),
16*ad8d75ffSSteven Rostedt 
17*ad8d75ffSSteven Rostedt 	TP_ARGS(skb, location),
18*ad8d75ffSSteven Rostedt 
19*ad8d75ffSSteven Rostedt 	TP_STRUCT__entry(
20*ad8d75ffSSteven Rostedt 		__field(	void *,		skbaddr		)
21*ad8d75ffSSteven Rostedt 		__field(	unsigned short,	protocol	)
22*ad8d75ffSSteven Rostedt 		__field(	void *,		location	)
23*ad8d75ffSSteven Rostedt 	),
24*ad8d75ffSSteven Rostedt 
25*ad8d75ffSSteven Rostedt 	TP_fast_assign(
26*ad8d75ffSSteven Rostedt 		__entry->skbaddr = skb;
27*ad8d75ffSSteven Rostedt 		if (skb) {
28*ad8d75ffSSteven Rostedt 			__entry->protocol = ntohs(skb->protocol);
29*ad8d75ffSSteven Rostedt 		}
30*ad8d75ffSSteven Rostedt 		__entry->location = location;
31*ad8d75ffSSteven Rostedt 	),
32*ad8d75ffSSteven Rostedt 
33*ad8d75ffSSteven Rostedt 	TP_printk("skbaddr=%p protocol=%u location=%p",
34*ad8d75ffSSteven Rostedt 		__entry->skbaddr, __entry->protocol, __entry->location)
35*ad8d75ffSSteven Rostedt );
36*ad8d75ffSSteven Rostedt 
37*ad8d75ffSSteven Rostedt #endif /* _TRACE_SKB_H */
38*ad8d75ffSSteven Rostedt 
39*ad8d75ffSSteven Rostedt /* This part must be outside protection */
40*ad8d75ffSSteven Rostedt #include <trace/define_trace.h>
41