1*5f4f7bc0SXuan Zhuo /* SPDX-License-Identifier: GPL-2.0-or-later */ 2*5f4f7bc0SXuan Zhuo /* 3*5f4f7bc0SXuan Zhuo * Driver for Alibaba Elastic Ethernet Adapter. 4*5f4f7bc0SXuan Zhuo * 5*5f4f7bc0SXuan Zhuo * Copyright (C) 2025 Alibaba Inc. 6*5f4f7bc0SXuan Zhuo */ 7*5f4f7bc0SXuan Zhuo 8*5f4f7bc0SXuan Zhuo #ifndef __EEA_ETHTOOL_H__ 9*5f4f7bc0SXuan Zhuo #define __EEA_ETHTOOL_H__ 10*5f4f7bc0SXuan Zhuo 11*5f4f7bc0SXuan Zhuo struct eea_tx_stats { 12*5f4f7bc0SXuan Zhuo struct u64_stats_sync syncp; 13*5f4f7bc0SXuan Zhuo u64_stats_t descs; 14*5f4f7bc0SXuan Zhuo u64_stats_t packets; 15*5f4f7bc0SXuan Zhuo u64_stats_t bytes; 16*5f4f7bc0SXuan Zhuo u64_stats_t drops; 17*5f4f7bc0SXuan Zhuo u64_stats_t kicks; 18*5f4f7bc0SXuan Zhuo }; 19*5f4f7bc0SXuan Zhuo 20*5f4f7bc0SXuan Zhuo struct eea_rx_ctx_stats { 21*5f4f7bc0SXuan Zhuo u64 descs; 22*5f4f7bc0SXuan Zhuo u64 packets; 23*5f4f7bc0SXuan Zhuo u64 bytes; 24*5f4f7bc0SXuan Zhuo u64 drops; 25*5f4f7bc0SXuan Zhuo u64 split_hdr_bytes; 26*5f4f7bc0SXuan Zhuo u64 split_hdr_packets; 27*5f4f7bc0SXuan Zhuo u64 kicks; 28*5f4f7bc0SXuan Zhuo u64 length_errors; 29*5f4f7bc0SXuan Zhuo }; 30*5f4f7bc0SXuan Zhuo 31*5f4f7bc0SXuan Zhuo struct eea_rx_stats { 32*5f4f7bc0SXuan Zhuo struct u64_stats_sync syncp; 33*5f4f7bc0SXuan Zhuo u64_stats_t descs; 34*5f4f7bc0SXuan Zhuo u64_stats_t packets; 35*5f4f7bc0SXuan Zhuo u64_stats_t bytes; 36*5f4f7bc0SXuan Zhuo u64_stats_t drops; 37*5f4f7bc0SXuan Zhuo u64_stats_t kicks; 38*5f4f7bc0SXuan Zhuo u64_stats_t split_hdr_bytes; 39*5f4f7bc0SXuan Zhuo u64_stats_t split_hdr_packets; 40*5f4f7bc0SXuan Zhuo 41*5f4f7bc0SXuan Zhuo u64_stats_t length_errors; 42*5f4f7bc0SXuan Zhuo }; 43*5f4f7bc0SXuan Zhuo 44*5f4f7bc0SXuan Zhuo void eea_update_rx_stats(struct eea_rx_stats *rx_stats, 45*5f4f7bc0SXuan Zhuo struct eea_rx_ctx_stats *stats); 46*5f4f7bc0SXuan Zhuo 47*5f4f7bc0SXuan Zhuo extern const struct ethtool_ops eea_ethtool_ops; 48*5f4f7bc0SXuan Zhuo #endif 49