1 /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */ 2 /* Copyright (c) 2017-2018 Mellanox Technologies. All rights reserved */ 3 4 #ifndef _MLXSW_SPECTRUM_CNT_H 5 #define _MLXSW_SPECTRUM_CNT_H 6 7 #include "core.h" 8 #include "spectrum.h" 9 10 enum mlxsw_sp_counter_sub_pool_id { 11 MLXSW_SP_COUNTER_SUB_POOL_FLOW, 12 MLXSW_SP_COUNTER_SUB_POOL_RIF, 13 }; 14 15 int mlxsw_sp_counter_alloc(struct mlxsw_sp *mlxsw_sp, 16 enum mlxsw_sp_counter_sub_pool_id sub_pool_id, 17 unsigned int *p_counter_index); 18 void mlxsw_sp_counter_free(struct mlxsw_sp *mlxsw_sp, 19 enum mlxsw_sp_counter_sub_pool_id sub_pool_id, 20 unsigned int counter_index); 21 int mlxsw_sp_counter_pool_init(struct mlxsw_sp *mlxsw_sp); 22 void mlxsw_sp_counter_pool_fini(struct mlxsw_sp *mlxsw_sp); 23 int mlxsw_sp_counter_resources_register(struct mlxsw_core *mlxsw_core); 24 25 #endif 26