Merge branch 'for-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ebieder...
[linux-2.6-microblaze.git] / drivers / net / ethernet / mellanox / mlxsw / spectrum_cnt.h
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