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