181da5a6bSChengwen Feng /* SPDX-License-Identifier: BSD-3-Clause 281da5a6bSChengwen Feng * Copyright(c) 2023 HiSilicon Limited 381da5a6bSChengwen Feng */ 481da5a6bSChengwen Feng 581da5a6bSChengwen Feng #ifndef RTE_DMADEV_TRACE_H 681da5a6bSChengwen Feng #define RTE_DMADEV_TRACE_H 781da5a6bSChengwen Feng 881da5a6bSChengwen Feng /** 981da5a6bSChengwen Feng * @file 1081da5a6bSChengwen Feng * 1181da5a6bSChengwen Feng * API for dmadev trace support. 1281da5a6bSChengwen Feng */ 1381da5a6bSChengwen Feng 1481da5a6bSChengwen Feng #include <rte_trace_point.h> 1581da5a6bSChengwen Feng 1681da5a6bSChengwen Feng #include "rte_dmadev.h" 1781da5a6bSChengwen Feng 1881da5a6bSChengwen Feng #ifdef __cplusplus 1981da5a6bSChengwen Feng extern "C" { 2081da5a6bSChengwen Feng #endif 2181da5a6bSChengwen Feng 2281da5a6bSChengwen Feng RTE_TRACE_POINT( 2381da5a6bSChengwen Feng rte_dma_trace_info_get, 2481da5a6bSChengwen Feng RTE_TRACE_POINT_ARGS(int16_t dev_id, struct rte_dma_info *dev_info), 2581da5a6bSChengwen Feng #ifdef _RTE_TRACE_POINT_REGISTER_H_ 2681da5a6bSChengwen Feng struct rte_dma_info __dev_info = {0}; 2781da5a6bSChengwen Feng dev_info = &__dev_info; 2881da5a6bSChengwen Feng #endif /* _RTE_TRACE_POINT_REGISTER_H_ */ 2981da5a6bSChengwen Feng rte_trace_point_emit_i16(dev_id); 3081da5a6bSChengwen Feng rte_trace_point_emit_string(dev_info->dev_name); 3181da5a6bSChengwen Feng rte_trace_point_emit_u64(dev_info->dev_capa); 3281da5a6bSChengwen Feng rte_trace_point_emit_u16(dev_info->max_vchans); 3381da5a6bSChengwen Feng rte_trace_point_emit_u16(dev_info->max_desc); 3481da5a6bSChengwen Feng rte_trace_point_emit_u16(dev_info->min_desc); 3581da5a6bSChengwen Feng rte_trace_point_emit_u16(dev_info->max_sges); 3681da5a6bSChengwen Feng rte_trace_point_emit_i16(dev_info->numa_node); 3781da5a6bSChengwen Feng rte_trace_point_emit_u16(dev_info->nb_vchans); 38*2dff0bcdSVamsi Attunuru rte_trace_point_emit_u16(dev_info->nb_priorities); 3981da5a6bSChengwen Feng ) 4081da5a6bSChengwen Feng 4181da5a6bSChengwen Feng RTE_TRACE_POINT( 4281da5a6bSChengwen Feng rte_dma_trace_configure, 4381da5a6bSChengwen Feng RTE_TRACE_POINT_ARGS(int16_t dev_id, const struct rte_dma_conf *dev_conf, 4481da5a6bSChengwen Feng int ret), 4581da5a6bSChengwen Feng #ifdef _RTE_TRACE_POINT_REGISTER_H_ 4681da5a6bSChengwen Feng const struct rte_dma_conf __dev_conf = {0}; 4781da5a6bSChengwen Feng dev_conf = &__dev_conf; 4881da5a6bSChengwen Feng #endif /* _RTE_TRACE_POINT_REGISTER_H_ */ 4981da5a6bSChengwen Feng int enable_silent = (int)dev_conf->enable_silent; 5081da5a6bSChengwen Feng rte_trace_point_emit_i16(dev_id); 5181da5a6bSChengwen Feng rte_trace_point_emit_u16(dev_conf->nb_vchans); 52*2dff0bcdSVamsi Attunuru rte_trace_point_emit_u16(dev_conf->priority); 5381da5a6bSChengwen Feng rte_trace_point_emit_int(enable_silent); 5481da5a6bSChengwen Feng rte_trace_point_emit_int(ret); 5581da5a6bSChengwen Feng ) 5681da5a6bSChengwen Feng 5781da5a6bSChengwen Feng RTE_TRACE_POINT( 5881da5a6bSChengwen Feng rte_dma_trace_start, 5981da5a6bSChengwen Feng RTE_TRACE_POINT_ARGS(int16_t dev_id, int ret), 6081da5a6bSChengwen Feng rte_trace_point_emit_i16(dev_id); 6181da5a6bSChengwen Feng rte_trace_point_emit_int(ret); 6281da5a6bSChengwen Feng ) 6381da5a6bSChengwen Feng 6481da5a6bSChengwen Feng RTE_TRACE_POINT( 6581da5a6bSChengwen Feng rte_dma_trace_stop, 6681da5a6bSChengwen Feng RTE_TRACE_POINT_ARGS(int16_t dev_id, int ret), 6781da5a6bSChengwen Feng rte_trace_point_emit_i16(dev_id); 6881da5a6bSChengwen Feng rte_trace_point_emit_int(ret); 6981da5a6bSChengwen Feng ) 7081da5a6bSChengwen Feng 7181da5a6bSChengwen Feng RTE_TRACE_POINT( 7281da5a6bSChengwen Feng rte_dma_trace_close, 7381da5a6bSChengwen Feng RTE_TRACE_POINT_ARGS(int16_t dev_id, int ret), 7481da5a6bSChengwen Feng rte_trace_point_emit_i16(dev_id); 7581da5a6bSChengwen Feng rte_trace_point_emit_int(ret); 7681da5a6bSChengwen Feng ) 7781da5a6bSChengwen Feng 7881da5a6bSChengwen Feng RTE_TRACE_POINT( 7981da5a6bSChengwen Feng rte_dma_trace_vchan_setup, 8081da5a6bSChengwen Feng RTE_TRACE_POINT_ARGS(int16_t dev_id, uint16_t vchan, 8181da5a6bSChengwen Feng const struct rte_dma_vchan_conf *conf, int ret), 8281da5a6bSChengwen Feng #ifdef _RTE_TRACE_POINT_REGISTER_H_ 8381da5a6bSChengwen Feng const struct rte_dma_vchan_conf __conf = {0}; 8481da5a6bSChengwen Feng conf = &__conf; 8581da5a6bSChengwen Feng #endif /* _RTE_TRACE_POINT_REGISTER_H_ */ 8681da5a6bSChengwen Feng int src_port_type = conf->src_port.port_type; 8781da5a6bSChengwen Feng int dst_port_type = conf->dst_port.port_type; 8881da5a6bSChengwen Feng int direction = conf->direction; 8981da5a6bSChengwen Feng uint64_t src_pcie_cfg; 9081da5a6bSChengwen Feng uint64_t dst_pcie_cfg; 9181da5a6bSChengwen Feng rte_trace_point_emit_i16(dev_id); 9281da5a6bSChengwen Feng rte_trace_point_emit_u16(vchan); 9381da5a6bSChengwen Feng rte_trace_point_emit_int(direction); 9481da5a6bSChengwen Feng rte_trace_point_emit_u16(conf->nb_desc); 9581da5a6bSChengwen Feng rte_trace_point_emit_int(src_port_type); 9681da5a6bSChengwen Feng memcpy(&src_pcie_cfg, &conf->src_port.pcie, sizeof(uint64_t)); 9781da5a6bSChengwen Feng rte_trace_point_emit_u64(src_pcie_cfg); 9881da5a6bSChengwen Feng memcpy(&dst_pcie_cfg, &conf->dst_port.pcie, sizeof(uint64_t)); 9981da5a6bSChengwen Feng rte_trace_point_emit_int(dst_port_type); 10081da5a6bSChengwen Feng rte_trace_point_emit_u64(dst_pcie_cfg); 10181da5a6bSChengwen Feng rte_trace_point_emit_ptr(conf->auto_free.m2d.pool); 10281da5a6bSChengwen Feng rte_trace_point_emit_int(ret); 10381da5a6bSChengwen Feng ) 10481da5a6bSChengwen Feng 10581da5a6bSChengwen Feng RTE_TRACE_POINT( 10681da5a6bSChengwen Feng rte_dma_trace_stats_reset, 10781da5a6bSChengwen Feng RTE_TRACE_POINT_ARGS(int16_t dev_id, uint16_t vchan, int ret), 10881da5a6bSChengwen Feng rte_trace_point_emit_i16(dev_id); 10981da5a6bSChengwen Feng rte_trace_point_emit_u16(vchan); 11081da5a6bSChengwen Feng rte_trace_point_emit_int(ret); 11181da5a6bSChengwen Feng ) 11281da5a6bSChengwen Feng 11381da5a6bSChengwen Feng RTE_TRACE_POINT( 11481da5a6bSChengwen Feng rte_dma_trace_dump, 11581da5a6bSChengwen Feng RTE_TRACE_POINT_ARGS(int16_t dev_id, FILE *f, int ret), 11681da5a6bSChengwen Feng rte_trace_point_emit_i16(dev_id); 11781da5a6bSChengwen Feng rte_trace_point_emit_ptr(f); 11881da5a6bSChengwen Feng rte_trace_point_emit_int(ret); 11981da5a6bSChengwen Feng ) 12081da5a6bSChengwen Feng 12181da5a6bSChengwen Feng #ifdef __cplusplus 12281da5a6bSChengwen Feng } 12381da5a6bSChengwen Feng #endif 12481da5a6bSChengwen Feng 12581da5a6bSChengwen Feng #endif /* RTE_DMADEV_TRACE_H */ 126