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