| /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */ |
| /* Copyright (c) 2021 Marvell International Ltd. All rights reserved. */ |
| |
| #ifndef _PRESTERA_COUNTER_H_ |
| #define _PRESTERA_COUNTER_H_ |
| |
| #include <linux/types.h> |
| |
| struct prestera_counter_stats { |
| u64 packets; |
| u64 bytes; |
| }; |
| |
| struct prestera_switch; |
| struct prestera_counter; |
| struct prestera_counter_block; |
| |
| int prestera_counter_init(struct prestera_switch *sw); |
| void prestera_counter_fini(struct prestera_switch *sw); |
| |
| int prestera_counter_get(struct prestera_counter *counter, u32 client, |
| struct prestera_counter_block **block, |
| u32 *counter_id); |
| void prestera_counter_put(struct prestera_counter *counter, |
| struct prestera_counter_block *block, u32 counter_id); |
| int prestera_counter_stats_get(struct prestera_counter *counter, |
| struct prestera_counter_block *block, |
| u32 counter_id, u64 *packets, u64 *bytes); |
| |
| #endif /* _PRESTERA_COUNTER_H_ */ |