1*2d9fd380Sjfb8856606 /* SPDX-License-Identifier: BSD-3-Clause
2*2d9fd380Sjfb8856606  * Copyright(C) 2020 Marvell International Ltd.
3*2d9fd380Sjfb8856606  */
4*2d9fd380Sjfb8856606 
5*2d9fd380Sjfb8856606 #ifndef _RTE_ETHDEV_TRACE_H_
6*2d9fd380Sjfb8856606 #define _RTE_ETHDEV_TRACE_H_
7*2d9fd380Sjfb8856606 
8*2d9fd380Sjfb8856606 /**
9*2d9fd380Sjfb8856606  * @file
10*2d9fd380Sjfb8856606  *
11*2d9fd380Sjfb8856606  * API for ethdev trace support
12*2d9fd380Sjfb8856606  */
13*2d9fd380Sjfb8856606 
14*2d9fd380Sjfb8856606 #ifdef __cplusplus
15*2d9fd380Sjfb8856606 extern "C" {
16*2d9fd380Sjfb8856606 #endif
17*2d9fd380Sjfb8856606 
18*2d9fd380Sjfb8856606 #include <rte_trace_point.h>
19*2d9fd380Sjfb8856606 
20*2d9fd380Sjfb8856606 #include "rte_ethdev.h"
21*2d9fd380Sjfb8856606 
22*2d9fd380Sjfb8856606 RTE_TRACE_POINT(
23*2d9fd380Sjfb8856606 	rte_ethdev_trace_configure,
24*2d9fd380Sjfb8856606 	RTE_TRACE_POINT_ARGS(uint16_t port_id, uint16_t nb_rx_q,
25*2d9fd380Sjfb8856606 		uint16_t nb_tx_q, const struct rte_eth_conf *dev_conf, int rc),
26*2d9fd380Sjfb8856606 	rte_trace_point_emit_u16(port_id);
27*2d9fd380Sjfb8856606 	rte_trace_point_emit_u16(nb_rx_q);
28*2d9fd380Sjfb8856606 	rte_trace_point_emit_u16(nb_tx_q);
29*2d9fd380Sjfb8856606 	rte_trace_point_emit_u32(dev_conf->link_speeds);
30*2d9fd380Sjfb8856606 	rte_trace_point_emit_u32(dev_conf->rxmode.mq_mode);
31*2d9fd380Sjfb8856606 	rte_trace_point_emit_u32(dev_conf->rxmode.max_rx_pkt_len);
32*2d9fd380Sjfb8856606 	rte_trace_point_emit_u64(dev_conf->rxmode.offloads);
33*2d9fd380Sjfb8856606 	rte_trace_point_emit_u32(dev_conf->txmode.mq_mode);
34*2d9fd380Sjfb8856606 	rte_trace_point_emit_u64(dev_conf->txmode.offloads);
35*2d9fd380Sjfb8856606 	rte_trace_point_emit_u32(dev_conf->lpbk_mode);
36*2d9fd380Sjfb8856606 	rte_trace_point_emit_int(rc);
37*2d9fd380Sjfb8856606 )
38*2d9fd380Sjfb8856606 
39*2d9fd380Sjfb8856606 RTE_TRACE_POINT(
40*2d9fd380Sjfb8856606 	rte_ethdev_trace_rxq_setup,
41*2d9fd380Sjfb8856606 	RTE_TRACE_POINT_ARGS(uint16_t port_id, uint16_t rx_queue_id,
42*2d9fd380Sjfb8856606 		uint16_t nb_rx_desc, void *mp,
43*2d9fd380Sjfb8856606 		const struct rte_eth_rxconf *rx_conf, int rc),
44*2d9fd380Sjfb8856606 	rte_trace_point_emit_u16(port_id);
45*2d9fd380Sjfb8856606 	rte_trace_point_emit_u16(rx_queue_id);
46*2d9fd380Sjfb8856606 	rte_trace_point_emit_u16(nb_rx_desc);
47*2d9fd380Sjfb8856606 	rte_trace_point_emit_ptr(mp);
48*2d9fd380Sjfb8856606 	rte_trace_point_emit_u8(rx_conf->rx_thresh.pthresh);
49*2d9fd380Sjfb8856606 	rte_trace_point_emit_u8(rx_conf->rx_thresh.hthresh);
50*2d9fd380Sjfb8856606 	rte_trace_point_emit_u8(rx_conf->rx_thresh.wthresh);
51*2d9fd380Sjfb8856606 	rte_trace_point_emit_u8(rx_conf->rx_drop_en);
52*2d9fd380Sjfb8856606 	rte_trace_point_emit_u8(rx_conf->rx_deferred_start);
53*2d9fd380Sjfb8856606 	rte_trace_point_emit_u64(rx_conf->offloads);
54*2d9fd380Sjfb8856606 	rte_trace_point_emit_int(rc);
55*2d9fd380Sjfb8856606 )
56*2d9fd380Sjfb8856606 
57*2d9fd380Sjfb8856606 RTE_TRACE_POINT(
58*2d9fd380Sjfb8856606 	rte_ethdev_trace_txq_setup,
59*2d9fd380Sjfb8856606 	RTE_TRACE_POINT_ARGS(uint16_t port_id, uint16_t tx_queue_id,
60*2d9fd380Sjfb8856606 		uint16_t nb_tx_desc, const struct rte_eth_txconf *tx_conf),
61*2d9fd380Sjfb8856606 	rte_trace_point_emit_u16(port_id);
62*2d9fd380Sjfb8856606 	rte_trace_point_emit_u16(tx_queue_id);
63*2d9fd380Sjfb8856606 	rte_trace_point_emit_u16(nb_tx_desc);
64*2d9fd380Sjfb8856606 	rte_trace_point_emit_u8(tx_conf->tx_thresh.pthresh);
65*2d9fd380Sjfb8856606 	rte_trace_point_emit_u8(tx_conf->tx_thresh.hthresh);
66*2d9fd380Sjfb8856606 	rte_trace_point_emit_u8(tx_conf->tx_thresh.wthresh);
67*2d9fd380Sjfb8856606 	rte_trace_point_emit_u8(tx_conf->tx_deferred_start);
68*2d9fd380Sjfb8856606 	rte_trace_point_emit_u16(tx_conf->tx_free_thresh);
69*2d9fd380Sjfb8856606 	rte_trace_point_emit_u64(tx_conf->offloads);
70*2d9fd380Sjfb8856606 )
71*2d9fd380Sjfb8856606 
72*2d9fd380Sjfb8856606 RTE_TRACE_POINT(
73*2d9fd380Sjfb8856606 	rte_ethdev_trace_start,
74*2d9fd380Sjfb8856606 	RTE_TRACE_POINT_ARGS(uint16_t port_id),
75*2d9fd380Sjfb8856606 	rte_trace_point_emit_u16(port_id);
76*2d9fd380Sjfb8856606 )
77*2d9fd380Sjfb8856606 
78*2d9fd380Sjfb8856606 RTE_TRACE_POINT(
79*2d9fd380Sjfb8856606 	rte_ethdev_trace_stop,
80*2d9fd380Sjfb8856606 	RTE_TRACE_POINT_ARGS(uint16_t port_id, int ret),
81*2d9fd380Sjfb8856606 	rte_trace_point_emit_u16(port_id);
82*2d9fd380Sjfb8856606 	rte_trace_point_emit_int(ret);
83*2d9fd380Sjfb8856606 )
84*2d9fd380Sjfb8856606 
85*2d9fd380Sjfb8856606 RTE_TRACE_POINT(
86*2d9fd380Sjfb8856606 	rte_ethdev_trace_close,
87*2d9fd380Sjfb8856606 	RTE_TRACE_POINT_ARGS(uint16_t port_id),
88*2d9fd380Sjfb8856606 	rte_trace_point_emit_u16(port_id);
89*2d9fd380Sjfb8856606 )
90*2d9fd380Sjfb8856606 
91*2d9fd380Sjfb8856606 #ifdef __cplusplus
92*2d9fd380Sjfb8856606 }
93*2d9fd380Sjfb8856606 #endif
94*2d9fd380Sjfb8856606 
95*2d9fd380Sjfb8856606 #endif /* _RTE_ETHDEV_TRACE_H_ */
96