Commit | Line | Data |
---|---|---|
6fa3eb70 S |
1 | |
2 | #undef TRACE_SYSTEM | |
3 | #define TRACE_SYSTEM met_bio | |
4 | ||
5 | #if !defined(__TRACE_MET_FTRACE_BIO_H__) || defined(TRACE_HEADER_MULTI_READ) | |
6 | #define __TRACE_MET_FTRACE_BIO_H__ | |
7 | ||
8 | #include <linux/tracepoint.h> | |
9 | ||
10 | #include <linux/met_drv.h> | |
11 | #include <linux/mmc/host.h> | |
12 | ||
13 | DECLARE_EVENT_CLASS(met_mmc_async_req_template, | |
14 | TP_PROTO(struct mmc_blk_data *md, struct mmc_async_req *areq, char type), | |
15 | ||
16 | TP_ARGS(md, areq, type), | |
17 | ||
18 | TP_STRUCT__entry( | |
19 | __field(int, major) | |
20 | __field(int, minor) | |
21 | __array(char, lba_dir, 2) | |
22 | __field(unsigned int, start_lba) | |
23 | __field(unsigned int, lba_len) | |
24 | __array(char, comm, TASK_COMM_LEN) | |
25 | ), | |
26 | ||
27 | TP_fast_assign( | |
28 | memset(__entry->lba_dir, 0, sizeof(__entry->lba_dir)); | |
29 | __entry->major = md->disk->major; | |
30 | __entry->minor = md->disk->first_minor; | |
31 | memcpy(__entry->lba_dir, &type, sizeof(char)); | |
32 | __entry->start_lba = areq->mrq->cmd->arg; | |
33 | __entry->lba_len = areq->mrq->data->blocks; | |
34 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); | |
35 | ), | |
36 | ||
37 | TP_printk("%d,%d %s %d + %d [%s]", | |
38 | __entry->major, __entry->minor, __entry->lba_dir, | |
39 | __entry->start_lba, __entry->lba_len, __entry->comm) | |
40 | ); | |
41 | ||
42 | DECLARE_EVENT_CLASS(met_mmc_dma_async_req_template, | |
43 | TP_PROTO(struct mmc_blk_data *md, struct mmc_async_req *areq, char type, unsigned int bd_num), | |
44 | ||
45 | TP_ARGS(md, areq, type, bd_num), | |
46 | ||
47 | TP_STRUCT__entry( | |
48 | __field(int, major) | |
49 | __field(int, minor) | |
50 | __array(char, lba_dir, 2) | |
51 | __field(unsigned int, start_lba) | |
52 | __field(unsigned int, lba_len) | |
53 | __field(unsigned int, bdnum) | |
54 | __array(char, comm, TASK_COMM_LEN) | |
55 | ), | |
56 | ||
57 | TP_fast_assign( | |
58 | memset(__entry->lba_dir, 0, sizeof(__entry->lba_dir)); | |
59 | __entry->major = md->disk->major; | |
60 | __entry->minor = md->disk->first_minor; | |
61 | memcpy(__entry->lba_dir, &type, sizeof(char)); | |
62 | __entry->start_lba = areq->mrq->cmd->arg; | |
63 | __entry->lba_len = areq->mrq->data->blocks; | |
64 | __entry->bdnum = bd_num; | |
65 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); | |
66 | ), | |
67 | ||
68 | TP_printk("%d,%d %s %d %d + %d [%s]", | |
69 | __entry->major, __entry->minor, __entry->lba_dir, __entry->bdnum, | |
70 | __entry->start_lba, __entry->lba_len, __entry->comm) | |
71 | ); | |
72 | ||
73 | DECLARE_EVENT_CLASS(met_mmc_req_template, | |
74 | TP_PROTO(struct mmc_blk_data *md, struct mmc_request *req, char type), | |
75 | ||
76 | TP_ARGS(md, req, type), | |
77 | ||
78 | TP_STRUCT__entry( | |
79 | __field(int, major) | |
80 | __field(int, minor) | |
81 | __array(char, lba_dir, 2) | |
82 | __field(unsigned int, start_lba) | |
83 | __field(unsigned int, lba_len) | |
84 | __array(char, comm, TASK_COMM_LEN) | |
85 | ), | |
86 | ||
87 | TP_fast_assign( | |
88 | memset(__entry->lba_dir, 0, sizeof(__entry->lba_dir)); | |
89 | __entry->major = md->disk->major; | |
90 | __entry->minor = md->disk->first_minor; | |
91 | memcpy(__entry->lba_dir, &type, sizeof(char)); | |
92 | __entry->start_lba = req->cmd->arg; | |
93 | __entry->lba_len = req->data->blocks; | |
94 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); | |
95 | ), | |
96 | ||
97 | TP_printk("%d,%d %s %d + %d [%s]", | |
98 | __entry->major, __entry->minor, __entry->lba_dir, | |
99 | __entry->start_lba, __entry->lba_len, __entry->comm) | |
100 | ); | |
101 | ||
102 | #if 0 | |
103 | DECLARE_EVENT_CLASS(met_mmc_dma_req_template, | |
104 | TP_PROTO(struct mmc_blk_data *md, struct mmc_request *req, char type, unsigned int bd_num), | |
105 | ||
106 | TP_ARGS(md, req, type, bd_num), | |
107 | ||
108 | TP_STRUCT__entry( | |
109 | __field(int, major) | |
110 | __field(int, minor) | |
111 | __array(char, lba_dir, 2) | |
112 | __field(unsigned int, start_lba) | |
113 | __field(unsigned int, lba_len) | |
114 | __field(unsigned int, bdnum) | |
115 | __array(char, comm, TASK_COMM_LEN) | |
116 | ), | |
117 | ||
118 | TP_fast_assign( | |
119 | memset(__entry->lba_dir, 0, sizeof(__entry->lba_dir)); | |
120 | __entry->major = md->disk->major; | |
121 | __entry->minor = md->disk->first_minor; | |
122 | memcpy(__entry->lba_dir, &type, sizeof(char)); | |
123 | __entry->start_lba = req->cmd->arg; | |
124 | __entry->lba_len = req->data->blocks; | |
125 | __entry->bdnum = bd_num; | |
126 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); | |
127 | ), | |
128 | ||
129 | TP_printk("%d,%d %s %d %d + %d [%s]", | |
130 | __entry->major, __entry->minor, __entry->lba_dir, __entry->bdnum, | |
131 | __entry->start_lba, __entry->lba_len, __entry->comm) | |
132 | ); | |
133 | #endif | |
134 | ||
135 | /* | |
136 | * Tracepoint for met_mmc_insert | |
137 | */ | |
138 | DEFINE_EVENT(met_mmc_async_req_template, met_mmc_insert, | |
139 | TP_PROTO(struct mmc_blk_data *md, struct mmc_async_req *areq, char type), | |
140 | TP_ARGS(md, areq, type)); | |
141 | ||
142 | /* | |
143 | * Tracepoint for met_mmc_dma_map | |
144 | */ | |
145 | DEFINE_EVENT(met_mmc_async_req_template, met_mmc_dma_map, | |
146 | TP_PROTO(struct mmc_blk_data *md, struct mmc_async_req *areq, char type), | |
147 | TP_ARGS(md, areq, type)); | |
148 | ||
149 | #if 0 | |
150 | /* | |
151 | * Tracepoint for met_mmc_issue | |
152 | */ | |
153 | DEFINE_EVENT(met_mmc_async_req_template, met_mmc_issue, | |
154 | TP_PROTO(struct mmc_blk_data *md, struct mmc_async_req *areq, char type), | |
155 | TP_ARGS(md, areq, type)); | |
156 | #endif | |
157 | ||
158 | /* | |
159 | * Tracepoint for met_mmc_issue | |
160 | */ | |
161 | DEFINE_EVENT(met_mmc_req_template, met_mmc_issue, | |
162 | TP_PROTO(struct mmc_blk_data *md, struct mmc_request *req, char type), | |
163 | TP_ARGS(md, req, type)); | |
164 | ||
165 | /* | |
166 | * Tracepoint for met_mmc_complete | |
167 | */ | |
168 | DEFINE_EVENT(met_mmc_async_req_template, met_mmc_complete, | |
169 | TP_PROTO(struct mmc_blk_data *md, struct mmc_async_req *areq, char type), | |
170 | TP_ARGS(md, areq, type)); | |
171 | ||
172 | /* | |
173 | * Tracepoint for met_mmc_dma_unmap_start | |
174 | */ | |
175 | DEFINE_EVENT(met_mmc_async_req_template, met_mmc_dma_unmap_start, | |
176 | TP_PROTO(struct mmc_blk_data *md, struct mmc_async_req *areq, char type), | |
177 | TP_ARGS(md, areq, type)); | |
178 | ||
179 | /* | |
180 | * Tracepoint for met_mmc_dma_unmap_stop | |
181 | */ | |
182 | DEFINE_EVENT(met_mmc_async_req_template, met_mmc_dma_unmap_stop, | |
183 | TP_PROTO(struct mmc_blk_data *md, struct mmc_async_req *areq, char type), | |
184 | TP_ARGS(md, areq, type)); | |
185 | ||
186 | /* | |
187 | * Tracepoint for met_mmc_continue_req_end | |
188 | */ | |
189 | DEFINE_EVENT(met_mmc_async_req_template, met_mmc_continue_req_end, | |
190 | TP_PROTO(struct mmc_blk_data *md, struct mmc_async_req *areq, char type), | |
191 | TP_ARGS(md, areq, type)); | |
192 | ||
193 | /* | |
194 | * Tracepoint for met_mmc_dma_stop | |
195 | */ | |
196 | DEFINE_EVENT(met_mmc_dma_async_req_template, met_mmc_dma_stop, | |
197 | TP_PROTO(struct mmc_blk_data *md, struct mmc_async_req *areq, char type, unsigned int bd_num), | |
198 | TP_ARGS(md, areq, type, bd_num)); | |
199 | ||
200 | #if 0 | |
201 | /* | |
202 | * Tracepoint for met_testevent | |
203 | */ | |
204 | TRACE_EVENT(met_testevent, | |
205 | ||
206 | TP_PROTO(int cnt), | |
207 | ||
208 | TP_ARGS(cnt), | |
209 | ||
210 | TP_STRUCT__entry( | |
211 | __field(int, test_cnt) | |
212 | ), | |
213 | ||
214 | TP_fast_assign( | |
215 | __entry->test_cnt = cnt; | |
216 | ), | |
217 | ||
218 | TP_printk("%d", | |
219 | __entry->test_cnt) | |
220 | ); | |
221 | #endif | |
222 | ||
223 | #endif /* __TRACE_MET_FTRACE_BIO_H__ */ | |
224 | ||
225 | /* This part must be outside protection */ | |
226 | #undef TRACE_INCLUDE_PATH | |
227 | #undef linux | |
228 | #define TRACE_INCLUDE_PATH ../../../include/linux | |
229 | #define TRACE_INCLUDE_FILE met_ftrace_bio | |
230 | #include <trace/define_trace.h> |