__i40e_add_ethtool_stats(9)
πΈ __i40e_add_ethtool_stats β the Kernel API Manual bestie era πΈ
okay so welcome to the <pink>Kernel API Manual</pink> entry for __i40e_add_ethtool_stats(9), and honestly? she's a little copy-paste gremlin and we love her for it π
β¨ NAME β¨
__i40e_add_ethtool_stats β copy stats into the ethtool supplied buffer π«
literally that's the whole job. copying stats. into a buffer. that ethtool handed over. no cap.
π¦ SYNOPSIS π¦
void __i40e_add_ethtool_stats (u64 **data , void *pointer , const struct
i40e_stats stats[] , const unsigned int size );
yes the spacing is exactly like that, do not come for me, that's how it's written in the source and we respect the source π«Ά
π ARGUMENTS π
dataβ the ethtool stats buffer, aka the destination of the whole situation πpointerβ location to copy stats from, aka the vibe source π₯statsβ array of stats to copy, the actual menu of what's going downsizeβ the size of the stats definition, because we gotta know how much we're working with π
π DESCRIPTION π
okay bestie, storytime. this function copies the stats defined by the stats array, using pointer as the base, into the data buffer that ethtool supplied. it's giving "assemble the receipt" energy π§Ύβ¨
and here's the iconic part: it updates the data pointer so it points at the next empty location β which is exactly why you can keep calling __i40e_add_ethtool_stats again and again and the stats just keep stacking up, one after another. no bookkeeping needed on your end, she handles the pointer for you ππ
π¨ but the plot twist: if pointer is null, she sets the data values to zero and updates the pointer to skip these stats entirely. no pointer, no stats, just zeros and moving on. periodt. π
β SEE ALSO β
the whole friend group, in the exact order they appear, and yes i'm listing every single one because we don't do "etc." in this house π
Kernel file ./drivers/net/ethernet/intel/i40e/i40e_ethtool.cstruct i40e_stats(9)i40e_add_one_ethtool_stat(9)i40e_add_ethtool_stats(9)i40e_add_queue_stats(9)__i40e_add_stat_strings(9)i40e_add_stat_strings(9)i40e_partition_setting_complaint(9)i40e_phy_type_to_ethtool(9)i40e_get_settings_link_up_fec(9)i40e_get_settings_link_up(9)i40e_get_settings_link_down(9)i40e_get_link_ksettings(9)i40e_speed_to_link_speed(9)i40e_set_link_ksettings(9)i40e_get_pauseparam(9)i40e_set_pauseparam(9)i40e_get_stats_count(9)i40e_get_veb_tc_stats(9)i40e_get_pfc_stats(9)i40e_get_ethtool_stats(9)i40e_get_stat_strings(9)i40e_set_wol(9)__i40e_get_coalesce(9)i40e_get_coalesce(9)i40e_get_per_queue_coalesce(9)i40e_set_itr_per_queue(9)__i40e_set_coalesce(9)i40e_set_coalesce(9)i40e_set_per_queue_coalesce(9)i40e_check_mask(9)i40e_parse_rx_flow_user_data(9)i40e_fill_rx_flow_user_data(9)i40e_get_ethtool_fdir_all(9)i40e_get_ethtool_fdir_entry(9)i40e_get_rx_ring_count(9)i40e_get_rxnfc(9)i40e_get_rss_hash_bits(9)i40e_update_ethtool_fdir_entry(9)i40e_prune_flex_pit_list(9)i40e_del_fdir_entry(9)i40e_unused_pit_index(9)i40e_find_flex_offset(9)i40e_add_flex_offset(9)__i40e_reprogram_flex_pit(9)i40e_reprogram_flex_pit(9)i40e_flow_str(9)i40e_pit_index_to_mask(9)i40e_print_input_set(9)i40e_check_fdir_input_set(9)i40e_match_fdir_filter(9)i40e_disallow_matching_filters(9)i40e_add_fdir_ethtool(9)i40e_set_rxnfc(9)i40e_max_channels(9)i40e_get_channels(9)i40e_set_channels(9)i40e_get_rxfh_key_size(9)i40e_get_rxfh_indir_size(9)i40e_get_rxfh(9)i40e_set_rxfh(9)i40e_get_priv_flags(9)i40e_set_priv_flags(9)i40e_get_module_info(9)i40e_get_module_eeprom(9)
π cute lil sign-off π
this icon lives in <lavender>./drivers/net/ethernet/intel/i40e</lavender> and the docs are dated <yellow>October 2026</yellow> πΈ go read the neighbors, they're all equally unhinged and equally important. mwah, bye bestie π«Άβ¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms