Linux-libre 5.4.48-gnu
[librecmc/linux-libre.git] / include / trace / events / vsock_virtio_transport_common.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM vsock
4
5 #if !defined(_TRACE_VSOCK_VIRTIO_TRANSPORT_COMMON_H) || \
6     defined(TRACE_HEADER_MULTI_READ)
7 #define _TRACE_VSOCK_VIRTIO_TRANSPORT_COMMON_H
8
9 #include <linux/tracepoint.h>
10
11 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_TYPE_STREAM);
12
13 #define show_type(val) \
14         __print_symbolic(val, { VIRTIO_VSOCK_TYPE_STREAM, "STREAM" })
15
16 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_INVALID);
17 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_REQUEST);
18 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_RESPONSE);
19 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_RST);
20 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_SHUTDOWN);
21 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_RW);
22 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_CREDIT_UPDATE);
23 TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_CREDIT_REQUEST);
24
25 #define show_op(val) \
26         __print_symbolic(val, \
27                          { VIRTIO_VSOCK_OP_INVALID, "INVALID" }, \
28                          { VIRTIO_VSOCK_OP_REQUEST, "REQUEST" }, \
29                          { VIRTIO_VSOCK_OP_RESPONSE, "RESPONSE" }, \
30                          { VIRTIO_VSOCK_OP_RST, "RST" }, \
31                          { VIRTIO_VSOCK_OP_SHUTDOWN, "SHUTDOWN" }, \
32                          { VIRTIO_VSOCK_OP_RW, "RW" }, \
33                          { VIRTIO_VSOCK_OP_CREDIT_UPDATE, "CREDIT_UPDATE" }, \
34                          { VIRTIO_VSOCK_OP_CREDIT_REQUEST, "CREDIT_REQUEST" })
35
36 TRACE_EVENT(virtio_transport_alloc_pkt,
37         TP_PROTO(
38                  __u32 src_cid, __u32 src_port,
39                  __u32 dst_cid, __u32 dst_port,
40                  __u32 len,
41                  __u16 type,
42                  __u16 op,
43                  __u32 flags
44         ),
45         TP_ARGS(
46                 src_cid, src_port,
47                 dst_cid, dst_port,
48                 len,
49                 type,
50                 op,
51                 flags
52         ),
53         TP_STRUCT__entry(
54                 __field(__u32, src_cid)
55                 __field(__u32, src_port)
56                 __field(__u32, dst_cid)
57                 __field(__u32, dst_port)
58                 __field(__u32, len)
59                 __field(__u16, type)
60                 __field(__u16, op)
61                 __field(__u32, flags)
62         ),
63         TP_fast_assign(
64                 __entry->src_cid = src_cid;
65                 __entry->src_port = src_port;
66                 __entry->dst_cid = dst_cid;
67                 __entry->dst_port = dst_port;
68                 __entry->len = len;
69                 __entry->type = type;
70                 __entry->op = op;
71                 __entry->flags = flags;
72         ),
73         TP_printk("%u:%u -> %u:%u len=%u type=%s op=%s flags=%#x",
74                   __entry->src_cid, __entry->src_port,
75                   __entry->dst_cid, __entry->dst_port,
76                   __entry->len,
77                   show_type(__entry->type),
78                   show_op(__entry->op),
79                   __entry->flags)
80 );
81
82 TRACE_EVENT(virtio_transport_recv_pkt,
83         TP_PROTO(
84                  __u32 src_cid, __u32 src_port,
85                  __u32 dst_cid, __u32 dst_port,
86                  __u32 len,
87                  __u16 type,
88                  __u16 op,
89                  __u32 flags,
90                  __u32 buf_alloc,
91                  __u32 fwd_cnt
92         ),
93         TP_ARGS(
94                 src_cid, src_port,
95                 dst_cid, dst_port,
96                 len,
97                 type,
98                 op,
99                 flags,
100                 buf_alloc,
101                 fwd_cnt
102         ),
103         TP_STRUCT__entry(
104                 __field(__u32, src_cid)
105                 __field(__u32, src_port)
106                 __field(__u32, dst_cid)
107                 __field(__u32, dst_port)
108                 __field(__u32, len)
109                 __field(__u16, type)
110                 __field(__u16, op)
111                 __field(__u32, flags)
112                 __field(__u32, buf_alloc)
113                 __field(__u32, fwd_cnt)
114         ),
115         TP_fast_assign(
116                 __entry->src_cid = src_cid;
117                 __entry->src_port = src_port;
118                 __entry->dst_cid = dst_cid;
119                 __entry->dst_port = dst_port;
120                 __entry->len = len;
121                 __entry->type = type;
122                 __entry->op = op;
123                 __entry->flags = flags;
124                 __entry->buf_alloc = buf_alloc;
125                 __entry->fwd_cnt = fwd_cnt;
126         ),
127         TP_printk("%u:%u -> %u:%u len=%u type=%s op=%s flags=%#x "
128                   "buf_alloc=%u fwd_cnt=%u",
129                   __entry->src_cid, __entry->src_port,
130                   __entry->dst_cid, __entry->dst_port,
131                   __entry->len,
132                   show_type(__entry->type),
133                   show_op(__entry->op),
134                   __entry->flags,
135                   __entry->buf_alloc,
136                   __entry->fwd_cnt)
137 );
138
139 #endif /* _TRACE_VSOCK_VIRTIO_TRANSPORT_COMMON_H */
140
141 #undef TRACE_INCLUDE_FILE
142 #define TRACE_INCLUDE_FILE vsock_virtio_transport_common
143
144 /* This part must be outside protection */
145 #include <trace/define_trace.h>