lib: remove librte_ prefix from directory names
[dpdk.git] / lib / eal / include / rte_eal_trace.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2020 Marvell International Ltd.
3  */
4
5 #ifndef _RTE_EAL_TRACE_H_
6 #define _RTE_EAL_TRACE_H_
7
8 /**
9  * @file
10  *
11  * API for EAL trace support
12  */
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17
18 #include <rte_alarm.h>
19 #include <rte_interrupts.h>
20 #include <rte_trace_point.h>
21
22 /* Alarm */
23 RTE_TRACE_POINT(
24         rte_eal_trace_alarm_set,
25         RTE_TRACE_POINT_ARGS(uint64_t us, rte_eal_alarm_callback cb_fn,
26                 void *cb_arg, int rc),
27         rte_trace_point_emit_u64(us);
28         rte_trace_point_emit_ptr(cb_fn);
29         rte_trace_point_emit_ptr(cb_arg);
30         rte_trace_point_emit_int(rc);
31 )
32
33 RTE_TRACE_POINT(
34         rte_eal_trace_alarm_cancel,
35         RTE_TRACE_POINT_ARGS(rte_eal_alarm_callback cb_fn, void *cb_arg,
36                 int count),
37         rte_trace_point_emit_ptr(cb_fn);
38         rte_trace_point_emit_ptr(cb_arg);
39         rte_trace_point_emit_int(count);
40 )
41
42 /* Generic */
43 RTE_TRACE_POINT(
44         rte_eal_trace_generic_void,
45         RTE_TRACE_POINT_ARGS(void),
46 )
47
48 RTE_TRACE_POINT(
49         rte_eal_trace_generic_u64,
50         RTE_TRACE_POINT_ARGS(uint64_t in),
51         rte_trace_point_emit_u64(in);
52 )
53
54 RTE_TRACE_POINT(
55         rte_eal_trace_generic_u32,
56         RTE_TRACE_POINT_ARGS(uint32_t in),
57         rte_trace_point_emit_u32(in);
58 )
59
60 RTE_TRACE_POINT(
61         rte_eal_trace_generic_u16,
62         RTE_TRACE_POINT_ARGS(uint16_t in),
63         rte_trace_point_emit_u16(in);
64 )
65
66 RTE_TRACE_POINT(
67         rte_eal_trace_generic_u8,
68         RTE_TRACE_POINT_ARGS(uint8_t in),
69         rte_trace_point_emit_u8(in);
70 )
71
72 RTE_TRACE_POINT(
73         rte_eal_trace_generic_i64,
74         RTE_TRACE_POINT_ARGS(int64_t in),
75         rte_trace_point_emit_i64(in);
76 )
77
78 RTE_TRACE_POINT(
79         rte_eal_trace_generic_i32,
80         RTE_TRACE_POINT_ARGS(int32_t in),
81         rte_trace_point_emit_i32(in);
82 )
83
84 RTE_TRACE_POINT(
85         rte_eal_trace_generic_i16,
86         RTE_TRACE_POINT_ARGS(int16_t in),
87         rte_trace_point_emit_i16(in);
88 )
89
90 RTE_TRACE_POINT(
91         rte_eal_trace_generic_i8,
92         RTE_TRACE_POINT_ARGS(int8_t in),
93         rte_trace_point_emit_i8(in);
94 )
95
96 RTE_TRACE_POINT(
97         rte_eal_trace_generic_int,
98         RTE_TRACE_POINT_ARGS(int in),
99         rte_trace_point_emit_int(in);
100 )
101
102 RTE_TRACE_POINT(
103         rte_eal_trace_generic_long,
104         RTE_TRACE_POINT_ARGS(long in),
105         rte_trace_point_emit_long(in);
106 )
107
108 RTE_TRACE_POINT(
109         rte_eal_trace_generic_float,
110         RTE_TRACE_POINT_ARGS(float in),
111         rte_trace_point_emit_float(in);
112 )
113
114 RTE_TRACE_POINT(
115         rte_eal_trace_generic_double,
116         RTE_TRACE_POINT_ARGS(double in),
117         rte_trace_point_emit_double(in);
118 )
119
120 RTE_TRACE_POINT(
121         rte_eal_trace_generic_ptr,
122         RTE_TRACE_POINT_ARGS(const void *ptr),
123         rte_trace_point_emit_ptr(ptr);
124 )
125
126 RTE_TRACE_POINT(
127         rte_eal_trace_generic_str,
128         RTE_TRACE_POINT_ARGS(const char *str),
129         rte_trace_point_emit_string(str);
130 )
131
132 RTE_TRACE_POINT(
133         rte_eal_trace_generic_size_t,
134         RTE_TRACE_POINT_ARGS(size_t sz),
135         rte_trace_point_emit_size_t(sz);
136 )
137
138 RTE_TRACE_POINT(
139         rte_eal_trace_generic_func,
140         RTE_TRACE_POINT_ARGS(const char *func),
141         rte_trace_point_emit_string(func);
142 )
143
144 #define RTE_EAL_TRACE_GENERIC_FUNC rte_eal_trace_generic_func(__func__)
145
146 /* Interrupt */
147 RTE_TRACE_POINT(
148         rte_eal_trace_intr_callback_register,
149         RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle,
150                 rte_intr_callback_fn cb, void *cb_arg, int rc),
151         rte_trace_point_emit_int(rc);
152         rte_trace_point_emit_int(handle->vfio_dev_fd);
153         rte_trace_point_emit_int(handle->fd);
154         rte_trace_point_emit_int(handle->type);
155         rte_trace_point_emit_u32(handle->max_intr);
156         rte_trace_point_emit_u32(handle->nb_efd);
157         rte_trace_point_emit_ptr(cb);
158         rte_trace_point_emit_ptr(cb_arg);
159 )
160 RTE_TRACE_POINT(
161         rte_eal_trace_intr_callback_unregister,
162         RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle,
163                 rte_intr_callback_fn cb, void *cb_arg, int rc),
164         rte_trace_point_emit_int(rc);
165         rte_trace_point_emit_int(handle->vfio_dev_fd);
166         rte_trace_point_emit_int(handle->fd);
167         rte_trace_point_emit_int(handle->type);
168         rte_trace_point_emit_u32(handle->max_intr);
169         rte_trace_point_emit_u32(handle->nb_efd);
170         rte_trace_point_emit_ptr(cb);
171         rte_trace_point_emit_ptr(cb_arg);
172 )
173 RTE_TRACE_POINT(
174         rte_eal_trace_intr_enable,
175         RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle, int rc),
176         rte_trace_point_emit_int(rc);
177         rte_trace_point_emit_int(handle->vfio_dev_fd);
178         rte_trace_point_emit_int(handle->fd);
179         rte_trace_point_emit_int(handle->type);
180         rte_trace_point_emit_u32(handle->max_intr);
181         rte_trace_point_emit_u32(handle->nb_efd);
182 )
183 RTE_TRACE_POINT(
184         rte_eal_trace_intr_disable,
185         RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle, int rc),
186         rte_trace_point_emit_int(rc);
187         rte_trace_point_emit_int(handle->vfio_dev_fd);
188         rte_trace_point_emit_int(handle->fd);
189         rte_trace_point_emit_int(handle->type);
190         rte_trace_point_emit_u32(handle->max_intr);
191         rte_trace_point_emit_u32(handle->nb_efd);
192 )
193
194 /* Memory */
195 RTE_TRACE_POINT(
196         rte_eal_trace_mem_zmalloc,
197         RTE_TRACE_POINT_ARGS(const char *type, size_t size, unsigned int align,
198                 int socket, void *ptr),
199         rte_trace_point_emit_string(type);
200         rte_trace_point_emit_size_t(size);
201         rte_trace_point_emit_u32(align);
202         rte_trace_point_emit_int(socket);
203         rte_trace_point_emit_ptr(ptr);
204 )
205
206 RTE_TRACE_POINT(
207         rte_eal_trace_mem_malloc,
208         RTE_TRACE_POINT_ARGS(const char *type, size_t size, unsigned int align,
209                 int socket, void *ptr),
210         rte_trace_point_emit_string(type);
211         rte_trace_point_emit_size_t(size);
212         rte_trace_point_emit_u32(align);
213         rte_trace_point_emit_int(socket);
214         rte_trace_point_emit_ptr(ptr);
215 )
216
217 RTE_TRACE_POINT(
218         rte_eal_trace_mem_realloc,
219         RTE_TRACE_POINT_ARGS(size_t size, unsigned int align, int socket,
220                 void *ptr),
221         rte_trace_point_emit_size_t(size);
222         rte_trace_point_emit_u32(align);
223         rte_trace_point_emit_int(socket);
224         rte_trace_point_emit_ptr(ptr);
225 )
226
227 RTE_TRACE_POINT(
228         rte_eal_trace_mem_free,
229         RTE_TRACE_POINT_ARGS(void *ptr),
230         rte_trace_point_emit_ptr(ptr);
231 )
232
233 /* Memzone */
234 RTE_TRACE_POINT(
235         rte_eal_trace_memzone_reserve,
236         RTE_TRACE_POINT_ARGS(const char *name, size_t len, int socket_id,
237                 unsigned int flags, unsigned int align, unsigned int bound,
238                 const void *mz),
239         rte_trace_point_emit_string(name);
240         rte_trace_point_emit_size_t(len);
241         rte_trace_point_emit_int(socket_id);
242         rte_trace_point_emit_u32(flags);
243         rte_trace_point_emit_u32(align);
244         rte_trace_point_emit_u32(bound);
245         rte_trace_point_emit_ptr(mz);
246 )
247
248 RTE_TRACE_POINT(
249         rte_eal_trace_memzone_lookup,
250         RTE_TRACE_POINT_ARGS(const char *name, const void *memzone),
251         rte_trace_point_emit_string(name);
252         rte_trace_point_emit_ptr(memzone);
253 )
254
255 RTE_TRACE_POINT(
256         rte_eal_trace_memzone_free,
257         RTE_TRACE_POINT_ARGS(const char *name, void *addr, int rc),
258         rte_trace_point_emit_string(name);
259         rte_trace_point_emit_ptr(addr);
260         rte_trace_point_emit_int(rc);
261 )
262
263 /* Thread */
264 RTE_TRACE_POINT(
265         rte_eal_trace_thread_remote_launch,
266         RTE_TRACE_POINT_ARGS(int (*f)(void *), void *arg,
267                 unsigned int worker_id, int rc),
268         rte_trace_point_emit_ptr(f);
269         rte_trace_point_emit_ptr(arg);
270         rte_trace_point_emit_u32(worker_id);
271         rte_trace_point_emit_int(rc);
272 )
273 RTE_TRACE_POINT(
274         rte_eal_trace_thread_lcore_ready,
275         RTE_TRACE_POINT_ARGS(unsigned int lcore_id, const char *cpuset),
276         rte_trace_point_emit_u32(lcore_id);
277         rte_trace_point_emit_string(cpuset);
278 )
279
280 #ifdef __cplusplus
281 }
282 #endif
283
284 #endif /* _RTE_EAL_TRACE_H_ */