Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
9p.h
Go to the documentation of this file.
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM 9p
3 
4 #if !defined(_TRACE_9P_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_9P_H
6 
7 #include <linux/tracepoint.h>
8 
9 #define show_9p_op(type) \
10  __print_symbolic(type, \
11  { P9_TLERROR, "P9_TLERROR" }, \
12  { P9_RLERROR, "P9_RLERROR" }, \
13  { P9_TSTATFS, "P9_TSTATFS" }, \
14  { P9_RSTATFS, "P9_RSTATFS" }, \
15  { P9_TLOPEN, "P9_TLOPEN" }, \
16  { P9_RLOPEN, "P9_RLOPEN" }, \
17  { P9_TLCREATE, "P9_TLCREATE" }, \
18  { P9_RLCREATE, "P9_RLCREATE" }, \
19  { P9_TSYMLINK, "P9_TSYMLINK" }, \
20  { P9_RSYMLINK, "P9_RSYMLINK" }, \
21  { P9_TMKNOD, "P9_TMKNOD" }, \
22  { P9_RMKNOD, "P9_RMKNOD" }, \
23  { P9_TRENAME, "P9_TRENAME" }, \
24  { P9_RRENAME, "P9_RRENAME" }, \
25  { P9_TREADLINK, "P9_TREADLINK" }, \
26  { P9_RREADLINK, "P9_RREADLINK" }, \
27  { P9_TGETATTR, "P9_TGETATTR" }, \
28  { P9_RGETATTR, "P9_RGETATTR" }, \
29  { P9_TSETATTR, "P9_TSETATTR" }, \
30  { P9_RSETATTR, "P9_RSETATTR" }, \
31  { P9_TXATTRWALK, "P9_TXATTRWALK" }, \
32  { P9_RXATTRWALK, "P9_RXATTRWALK" }, \
33  { P9_TXATTRCREATE, "P9_TXATTRCREATE" }, \
34  { P9_RXATTRCREATE, "P9_RXATTRCREATE" }, \
35  { P9_TREADDIR, "P9_TREADDIR" }, \
36  { P9_RREADDIR, "P9_RREADDIR" }, \
37  { P9_TFSYNC, "P9_TFSYNC" }, \
38  { P9_RFSYNC, "P9_RFSYNC" }, \
39  { P9_TLOCK, "P9_TLOCK" }, \
40  { P9_RLOCK, "P9_RLOCK" }, \
41  { P9_TGETLOCK, "P9_TGETLOCK" }, \
42  { P9_RGETLOCK, "P9_RGETLOCK" }, \
43  { P9_TLINK, "P9_TLINK" }, \
44  { P9_RLINK, "P9_RLINK" }, \
45  { P9_TMKDIR, "P9_TMKDIR" }, \
46  { P9_RMKDIR, "P9_RMKDIR" }, \
47  { P9_TRENAMEAT, "P9_TRENAMEAT" }, \
48  { P9_RRENAMEAT, "P9_RRENAMEAT" }, \
49  { P9_TUNLINKAT, "P9_TUNLINKAT" }, \
50  { P9_RUNLINKAT, "P9_RUNLINKAT" }, \
51  { P9_TVERSION, "P9_TVERSION" }, \
52  { P9_RVERSION, "P9_RVERSION" }, \
53  { P9_TAUTH, "P9_TAUTH" }, \
54  { P9_RAUTH, "P9_RAUTH" }, \
55  { P9_TATTACH, "P9_TATTACH" }, \
56  { P9_RATTACH, "P9_RATTACH" }, \
57  { P9_TERROR, "P9_TERROR" }, \
58  { P9_RERROR, "P9_RERROR" }, \
59  { P9_TFLUSH, "P9_TFLUSH" }, \
60  { P9_RFLUSH, "P9_RFLUSH" }, \
61  { P9_TWALK, "P9_TWALK" }, \
62  { P9_RWALK, "P9_RWALK" }, \
63  { P9_TOPEN, "P9_TOPEN" }, \
64  { P9_ROPEN, "P9_ROPEN" }, \
65  { P9_TCREATE, "P9_TCREATE" }, \
66  { P9_RCREATE, "P9_RCREATE" }, \
67  { P9_TREAD, "P9_TREAD" }, \
68  { P9_RREAD, "P9_RREAD" }, \
69  { P9_TWRITE, "P9_TWRITE" }, \
70  { P9_RWRITE, "P9_RWRITE" }, \
71  { P9_TCLUNK, "P9_TCLUNK" }, \
72  { P9_RCLUNK, "P9_RCLUNK" }, \
73  { P9_TREMOVE, "P9_TREMOVE" }, \
74  { P9_RREMOVE, "P9_RREMOVE" }, \
75  { P9_TSTAT, "P9_TSTAT" }, \
76  { P9_RSTAT, "P9_RSTAT" }, \
77  { P9_TWSTAT, "P9_TWSTAT" }, \
78  { P9_RWSTAT, "P9_RWSTAT" })
79 
80 TRACE_EVENT(9p_client_req,
81  TP_PROTO(struct p9_client *clnt, int8_t type, int tag),
82 
83  TP_ARGS(clnt, type, tag),
84 
86  __field( void *, clnt )
87  __field( __u8, type )
88  __field( __u32, tag )
89  ),
90 
92  __entry->clnt = clnt;
93  __entry->type = type;
94  __entry->tag = tag;
95  ),
96 
97  TP_printk("client %lu request %s tag %d",
98  (long)__entry->clnt, show_9p_op(__entry->type),
99  __entry->tag)
100  );
101 
102 TRACE_EVENT(9p_client_res,
103  TP_PROTO(struct p9_client *clnt, int8_t type, int tag, int err),
104 
105  TP_ARGS(clnt, type, tag, err),
106 
108  __field( void *, clnt )
109  __field( __u8, type )
110  __field( __u32, tag )
111  __field( __u32, err )
112  ),
113 
115  __entry->clnt = clnt;
116  __entry->type = type;
117  __entry->tag = tag;
118  __entry->err = err;
119  ),
120 
121  TP_printk("client %lu response %s tag %d err %d",
122  (long)__entry->clnt, show_9p_op(__entry->type),
123  __entry->tag, __entry->err)
124 );
125 
126 /* dump 32 bytes of protocol data */
127 #define P9_PROTO_DUMP_SZ 32
128 TRACE_EVENT(9p_protocol_dump,
129  TP_PROTO(struct p9_client *clnt, struct p9_fcall *pdu),
130 
131  TP_ARGS(clnt, pdu),
132 
134  __field( void *, clnt )
135  __field( __u8, type )
136  __field( __u16, tag )
137  __array( unsigned char, line, P9_PROTO_DUMP_SZ )
138  ),
139 
141  __entry->clnt = clnt;
142  __entry->type = pdu->id;
143  __entry->tag = pdu->tag;
144  memcpy(__entry->line, pdu->sdata, P9_PROTO_DUMP_SZ);
145  ),
146  TP_printk("clnt %lu %s(tag = %d)\n%.3x: "
147  "%02x %02x %02x %02x %02x %02x %02x %02x "
148  "%02x %02x %02x %02x %02x %02x %02x %02x\n"
149  "%.3x: "
150  "%02x %02x %02x %02x %02x %02x %02x %02x "
151  "%02x %02x %02x %02x %02x %02x %02x %02x\n",
152  (long)__entry->clnt, show_9p_op(__entry->type),
153  __entry->tag, 0,
154  __entry->line[0], __entry->line[1],
155  __entry->line[2], __entry->line[3],
156  __entry->line[4], __entry->line[5],
157  __entry->line[6], __entry->line[7],
158  __entry->line[8], __entry->line[9],
159  __entry->line[10], __entry->line[11],
160  __entry->line[12], __entry->line[13],
161  __entry->line[14], __entry->line[15],
162  16,
163  __entry->line[16], __entry->line[17],
164  __entry->line[18], __entry->line[19],
165  __entry->line[20], __entry->line[21],
166  __entry->line[22], __entry->line[23],
167  __entry->line[24], __entry->line[25],
168  __entry->line[26], __entry->line[27],
169  __entry->line[28], __entry->line[29],
170  __entry->line[30], __entry->line[31])
171  );
172 
173 #endif /* _TRACE_9P_H */
174 
175 /* This part must be outside protection */
176 #include <trace/define_trace.h>