xref: /dpdk/lib/dmadev/rte_dmadev_trace.h (revision 2dff0bcd3b54bc3279de42123aa618620224ad44)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2023 HiSilicon Limited
3  */
4 
5 #ifndef RTE_DMADEV_TRACE_H
6 #define RTE_DMADEV_TRACE_H
7 
8 /**
9  * @file
10  *
11  * API for dmadev trace support.
12  */
13 
14 #include <rte_trace_point.h>
15 
16 #include "rte_dmadev.h"
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 RTE_TRACE_POINT(
23 	rte_dma_trace_info_get,
24 	RTE_TRACE_POINT_ARGS(int16_t dev_id, struct rte_dma_info *dev_info),
25 #ifdef _RTE_TRACE_POINT_REGISTER_H_
26 	struct rte_dma_info __dev_info = {0};
27 	dev_info = &__dev_info;
28 #endif /* _RTE_TRACE_POINT_REGISTER_H_ */
29 	rte_trace_point_emit_i16(dev_id);
30 	rte_trace_point_emit_string(dev_info->dev_name);
31 	rte_trace_point_emit_u64(dev_info->dev_capa);
32 	rte_trace_point_emit_u16(dev_info->max_vchans);
33 	rte_trace_point_emit_u16(dev_info->max_desc);
34 	rte_trace_point_emit_u16(dev_info->min_desc);
35 	rte_trace_point_emit_u16(dev_info->max_sges);
36 	rte_trace_point_emit_i16(dev_info->numa_node);
37 	rte_trace_point_emit_u16(dev_info->nb_vchans);
38 	rte_trace_point_emit_u16(dev_info->nb_priorities);
39 )
40 
41 RTE_TRACE_POINT(
42 	rte_dma_trace_configure,
43 	RTE_TRACE_POINT_ARGS(int16_t dev_id, const struct rte_dma_conf *dev_conf,
44 			     int ret),
45 #ifdef _RTE_TRACE_POINT_REGISTER_H_
46 	const struct rte_dma_conf __dev_conf = {0};
47 	dev_conf = &__dev_conf;
48 #endif /* _RTE_TRACE_POINT_REGISTER_H_ */
49 	int enable_silent = (int)dev_conf->enable_silent;
50 	rte_trace_point_emit_i16(dev_id);
51 	rte_trace_point_emit_u16(dev_conf->nb_vchans);
52 	rte_trace_point_emit_u16(dev_conf->priority);
53 	rte_trace_point_emit_int(enable_silent);
54 	rte_trace_point_emit_int(ret);
55 )
56 
57 RTE_TRACE_POINT(
58 	rte_dma_trace_start,
59 	RTE_TRACE_POINT_ARGS(int16_t dev_id, int ret),
60 	rte_trace_point_emit_i16(dev_id);
61 	rte_trace_point_emit_int(ret);
62 )
63 
64 RTE_TRACE_POINT(
65 	rte_dma_trace_stop,
66 	RTE_TRACE_POINT_ARGS(int16_t dev_id, int ret),
67 	rte_trace_point_emit_i16(dev_id);
68 	rte_trace_point_emit_int(ret);
69 )
70 
71 RTE_TRACE_POINT(
72 	rte_dma_trace_close,
73 	RTE_TRACE_POINT_ARGS(int16_t dev_id, int ret),
74 	rte_trace_point_emit_i16(dev_id);
75 	rte_trace_point_emit_int(ret);
76 )
77 
78 RTE_TRACE_POINT(
79 	rte_dma_trace_vchan_setup,
80 	RTE_TRACE_POINT_ARGS(int16_t dev_id, uint16_t vchan,
81 			     const struct rte_dma_vchan_conf *conf, int ret),
82 #ifdef _RTE_TRACE_POINT_REGISTER_H_
83 	const struct rte_dma_vchan_conf __conf = {0};
84 	conf = &__conf;
85 #endif /* _RTE_TRACE_POINT_REGISTER_H_ */
86 	int src_port_type = conf->src_port.port_type;
87 	int dst_port_type = conf->dst_port.port_type;
88 	int direction = conf->direction;
89 	uint64_t src_pcie_cfg;
90 	uint64_t dst_pcie_cfg;
91 	rte_trace_point_emit_i16(dev_id);
92 	rte_trace_point_emit_u16(vchan);
93 	rte_trace_point_emit_int(direction);
94 	rte_trace_point_emit_u16(conf->nb_desc);
95 	rte_trace_point_emit_int(src_port_type);
96 	memcpy(&src_pcie_cfg, &conf->src_port.pcie, sizeof(uint64_t));
97 	rte_trace_point_emit_u64(src_pcie_cfg);
98 	memcpy(&dst_pcie_cfg, &conf->dst_port.pcie, sizeof(uint64_t));
99 	rte_trace_point_emit_int(dst_port_type);
100 	rte_trace_point_emit_u64(dst_pcie_cfg);
101 	rte_trace_point_emit_ptr(conf->auto_free.m2d.pool);
102 	rte_trace_point_emit_int(ret);
103 )
104 
105 RTE_TRACE_POINT(
106 	rte_dma_trace_stats_reset,
107 	RTE_TRACE_POINT_ARGS(int16_t dev_id, uint16_t vchan, int ret),
108 	rte_trace_point_emit_i16(dev_id);
109 	rte_trace_point_emit_u16(vchan);
110 	rte_trace_point_emit_int(ret);
111 )
112 
113 RTE_TRACE_POINT(
114 	rte_dma_trace_dump,
115 	RTE_TRACE_POINT_ARGS(int16_t dev_id, FILE *f, int ret),
116 	rte_trace_point_emit_i16(dev_id);
117 	rte_trace_point_emit_ptr(f);
118 	rte_trace_point_emit_int(ret);
119 )
120 
121 #ifdef __cplusplus
122 }
123 #endif
124 
125 #endif /* RTE_DMADEV_TRACE_H */
126