ixgbe_aci_list_caps(9)
π ixgbe_aci_list_caps β the kernel API manual, bestie edition π
okay so this is a page from the Kernel API Manual (section 9, iykyk) and honestly? it's giving "firmware gossip" and we're obsessed. it's called ixgbe_aci_list_caps and it's literally just asking the firmware "hey girl, what can you even do?" β¨
πΈ NAME πΈ
ixgbe_aci_list_caps β query function/device capabilities π
π¦ SYNOPSIS π¦
int ixgbe_aci_list_caps (struct ixgbe_hw *hw , void *buf , u16 buf_size
, u32 *cap_count , enum ixgbe_aci_opc opc );
β¨ ARGUMENTS β¨
hwβ pointer to the HW struct π«Ά the main character, lowkey.bufβ a buffer to hold the capabilities. it's the little container where the tea gets stored πbuf_sizeβ size of the buffer. gotta make sure it's big enough, no cap.cap_countβ if notNULL, set to the number of capabilities reported πopcβ capabilities type to discover, device or function. you're picking which flavor of tea you want π
π DESCRIPTION π
Get the function (0x000A) or device (0x000B) capabilities description from firmware and store it in the buffer. fr fr, that's the whole vibe β you ask, firmware answers, the answer lands in buf. π
If the cap_count pointer is not NULL, then it is set to the number of capabilities firmware will report. note that if the buffer size is too small, it is possible the command will return -ENOMEM. and the cap_count will still be updated in this case β like, even when it goes wrong it still tells you the count, which is kind of iconic behavior honestly π
β οΈ the recommendation, bestie: it is recommended that the buffer size be set toIXGBE_ACI_MAX_BUFFER_SIZE(the largest possible buffer that firmware could return) to avoid this. do that and you dodge the whole-ENOMEMsituation. periodt. π
π₯ RETURN π₯
the exit code of the operation. exit code of -ENOMEM means the buffer size is too small. π that's it, that's the whole return situation.
π§ SEE ALSO π§
the kernel file ./drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c β go read it, it's right there π
and then the whole friend group, in this exact order (yes, all of them, I'm not skipping anyone, that would be rude):
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_parse_func_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, the whole extended friend group showed up to the party. π
and that's the page!! π¦ this little number lives in ./drivers/net/ethernet/intel/i... (the source path got cut off, not me being mysterious, that's just how it printed π) and it's dated October 2026, still going by the name ixgbe_aci_list_caps(9) because consistency is key, 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