ixgbe_parse_func_caps(9)
π ixgbe_parse_func_caps β a whole manual page, bestie
okay so this is the ixgbe_parse_func_caps(9) page from the Kernel API Manual, and honestly? it's a little helper function with a big job and i'm obsessed. let's get into it β¨
πΈ NAME πΈ
ixgbe_parse_func_caps β parse function capabilities. that's it, that's the whole vibe. it parses. capabilities. for functions. π
β¨ SYNOPSIS β¨
void ixgbe_parse_func_caps (struct ixgbe_hw *hw , struct
ixgbe_hw_func_caps *func_p , void *buf , u32 cap_count );
like, look at that signature. it's giving "i know exactly what i'm doing" and it should, fr fr π
π«Ά ARGUMENTS π«Ά
four args, no notes, let's go:
hwβ pointer to the HW struct. the hardware in question, in struct form. iconic.func_pβ pointer to function capabilities structure. this is where the parsed goodness lands πbufβ buffer containing the function capability records. the raw material, the source text, the receipts.cap_countβ the number of capabilities. yes bestie, you gotta tell it how many. it's not psychic π¦
π₯ DESCRIPTION π₯
lowkey the most important part. here we go.
So this is a helper function to parse function (0x000A) capabilities list β note that 0x000A, okay, that's a literal value, not a vibe. π§
For capabilities shared between device and function, this relies on ixgbe_parse_e610_caps. shared custody, shared parser. periodt.
What it actually does: it loops through the list of provided capabilities and extracts the relevant data into the function capabilities structured. so many caps go in, structured data comes out. the way that this is literally just a for-loop with main character energy ππ
π tiny note: the original text says "function capabilities structured" β that's exactly how it's written, so i'm keeping it. we don't fix the source material, we respect it.
π SEE ALSO π
bestie. sit down. maybe get a snack. because this list is long and every single one of these is a real reference and i'm not skipping a single one, no cap π
- Kernel file
./drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c ixgbe_should_retry_aci_send_cmd_execute(9)ixgbe_aci_send_cmd_execute(9)ixgbe_aci_send_cmd(9)ixgbe_aci_check_event_pending(9)ixgbe_aci_get_event(9)ixgbe_fill_dflt_direct_cmd_desc(9)ixgbe_aci_get_fw_ver(9)ixgbe_aci_req_res(9)ixgbe_aci_release_res(9)ixgbe_acquire_res(9)ixgbe_release_res(9)ixgbe_parse_e610_caps(9)ixgbe_parse_valid_functions_cap(9)ixgbe_parse_vf_dev_caps(9)ixgbe_parse_vsi_dev_caps(9)ixgbe_parse_fdir_dev_caps(9)ixgbe_parse_dev_caps(9)ixgbe_parse_vf_func_caps(9)ixgbe_get_num_per_func(9)ixgbe_parse_vsi_func_caps(9)ixgbe_aci_list_caps(9)ixgbe_discover_dev_caps(9)ixgbe_discover_func_caps(9)ixgbe_get_caps(9)ixgbe_aci_disable_rxen(9)ixgbe_aci_get_phy_caps(9)ixgbe_copy_phy_caps_to_cfg(9)ixgbe_aci_set_phy_cfg(9)ixgbe_aci_set_link_restart_an(9)ixgbe_is_media_cage_present(9)ixgbe_get_media_type_from_phy_type(9)ixgbe_update_link_info(9)ixgbe_get_link_status(9)ixgbe_aci_get_link_info(9)ixgbe_aci_set_event_mask(9)ixgbe_configure_lse(9)ixgbe_start_hw_e610(9)ixgbe_aci_set_port_id_led(9)ixgbe_get_media_type_e610(9)ixgbe_setup_link_e610(9)ixgbe_check_link_e610(9)ixgbe_get_link_capabilities_e610(9)ixgbe_cfg_phy_fc(9)ixgbe_setup_fc_e610(9)ixgbe_fc_autoneg_e610(9)ixgbe_disable_rx_e610(9)ixgbe_fw_recovery_mode_e610(9)ixgbe_fw_rollback_mode_e610(9)ixgbe_init_phy_ops_e610(9)ixgbe_identify_phy_e610(9)ixgbe_setup_eee_e610(9)ixgbe_identify_module_e610(9)ixgbe_setup_phy_link_e610(9)ixgbe_set_phy_power_e610(9)ixgbe_enter_lplu_e610(9)ixgbe_init_eeprom_params_e610(9)ixgbe_aci_get_netlist_node(9)ixgbe_acquire_nvm(9)ixgbe_release_nvm(9)ixgbe_aci_read_nvm(9)ixgbe_aci_erase_nvm(9)ixgbe_aci_update_nvm(9)ixgbe_nvm_write_activate(9)ixgbe_nvm_validate_checksum(9)ixgbe_discover_flash_size(9)ixgbe_read_sr_base_address(9)ixgbe_read_sr_area_size(9)ixgbe_determine_active_flash_banks(9)ixgbe_get_flash_bank_offset(9)ixgbe_read_flash_module(9)ixgbe_read_nvm_module(9)ixgbe_read_netlist_module(9)ixgbe_read_orom_module(9)ixgbe_get_nvm_css_hdr_len(9)ixgbe_read_nvm_sr_copy(9)ixgbe_get_nvm_srev(9)ixgbe_get_orom_civd_data(9)ixgbe_get_orom_srev(9)ixgbe_get_orom_ver_info(9)ixgbe_get_inactive_orom_ver(9)ixgbe_get_nvm_ver_info(9)ixgbe_get_inactive_nvm_ver(9)ixgbe_get_active_nvm_ver(9)ixgbe_get_netlist_info(9)ixgbe_get_inactive_netlist_ver(9)ixgbe_get_flash_data(9)ixgbe_aci_nvm_update_empr(9)ixgbe_read_sr_word_aci(9)ixgbe_read_flat_nvm(9)ixgbe_read_sr_buf_aci(9)ixgbe_read_ee_aci_e610(9)ixgbe_read_ee_aci_buffer_e610(9)ixgbe_validate_eeprom_checksum_e610(9)ixgbe_reset_hw_e610(9)ixgbe_get_pfa_module_tlv(9)ixgbe_read_pba_string_e610(9)
likeβ¦ ninety-something references. she knows everyone. the social battery on this manual page is unmatched π₯π
okay and one last cute little sign-off: this page lives at ./drivers/net/ethernet/intel/i... (yes, that's how the footer truncates it, and no, we're not expanding it, that's what it says) and it's dated October 2026. slay, see you in the kernel source 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