3 #define TRACE_SYSTEM met_bio
5 #if !defined(__TRACE_MET_FTRACE_BIO_H__) || defined(TRACE_HEADER_MULTI_READ)
6 #define __TRACE_MET_FTRACE_BIO_H__
8 #include <linux/tracepoint.h>
10 #include <linux/met_drv.h>
11 #include <linux/mmc/host.h>
13 DECLARE_EVENT_CLASS(met_mmc_async_req_template
,
14 TP_PROTO(struct mmc_blk_data
*md
, struct mmc_async_req
*areq
, char type
),
16 TP_ARGS(md
, areq
, type
),
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
)
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
);
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
)
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
),
45 TP_ARGS(md
, areq
, type
, bd_num
),
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
)
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
);
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
)
73 DECLARE_EVENT_CLASS(met_mmc_req_template
,
74 TP_PROTO(struct mmc_blk_data
*md
, struct mmc_request
*req
, char type
),
76 TP_ARGS(md
, req
, type
),
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
)
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
);
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
)
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
),
106 TP_ARGS(md
, req
, type
, bd_num
),
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
)
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
);
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
)
136 * Tracepoint for met_mmc_insert
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
));
143 * Tracepoint for met_mmc_dma_map
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
));
151 * Tracepoint for met_mmc_issue
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
));
159 * Tracepoint for met_mmc_issue
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
));
166 * Tracepoint for met_mmc_complete
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
));
173 * Tracepoint for met_mmc_dma_unmap_start
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
));
180 * Tracepoint for met_mmc_dma_unmap_stop
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
));
187 * Tracepoint for met_mmc_continue_req_end
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
));
194 * Tracepoint for met_mmc_dma_stop
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
));
202 * Tracepoint for met_testevent
204 TRACE_EVENT(met_testevent
,
211 __field(int, test_cnt
)
215 __entry
->test_cnt
= cnt
;
223 #endif /* __TRACE_MET_FTRACE_BIO_H__ */
225 /* This part must be outside protection */
226 #undef TRACE_INCLUDE_PATH
228 #define TRACE_INCLUDE_PATH ../../../include/linux
229 #define TRACE_INCLUDE_FILE met_ftrace_bio
230 #include <trace/define_trace.h>