i40e_add_stat_strings(9)
πΈ i40e_add_stat_strings β the Kernel API Manual page (section 9, bestie) πΈ
okay so real talk, this is i40e_add_stat_strings(9) straight out of the Kernel API Manual, and it's lowkey one of those tiny helper functions that just does its thing without any drama. β¨
π NAME π
i40e_add_stat_strings β copy stat strings into an ethtool buffer. that's it, that's the whole vibe. π
β¨ SYNOPSIS β¨
i40e_add_stat_strings (p , stats , ... );
literally the whole signature, no notes. π
π¦ ARGUMENTS π¦
pβ the buffer that ethtool handed you. it's the destination, the main character of this story. π«Άstatsβ the stat definitions array. the source of truth, the blueprint, iykyk....β variable arguments. yes the literal three dots, they're doing work here. π
π DESCRIPTION π
so what this does is format and copy the strings described by the const static stats value into the buffer that p is pointing at. pretty, useful, iconic. β¨
β οΈ okay but listen β the parameter stats gets evaluated twice. TWICE. so if any of your parameters have side effects, avoid them, fr fr. side effects in a double-evaluated macro situation is giving chaos energy and nobody wants that. π
also, stats must be an array such that ARRAY_SIZE can be called on it. non-negotiable, bestie. no pointer tricks, no games. it has to be a real array. π§
π SEE ALSO π
the friend group is huge, buckle up π β and here's the kernel file where all this magic lives: ./drivers/net/ethernet/intel/i40e/i40e_ethtool.c
plus struct i40e_stats(9) and this whole ensemble cast:
i40e_add_one_ethtool_stat(9)__i40e_add_ethtool_stats(9)i40e_add_ethtool_stats(9)i40e_add_queue_stats(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)
and that's the whole page, bestie π this drop came from ./drivers/net/ethernet/intel/i40e, dated October 2026, and it's filed under i40e_add_stat_strings(9) β slay, go read the source, ily, bye π¦πΈ
π¦ 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