pci_acs_enabled(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ NAME πŸ¦‹

Okay bestie, welcome to the Kernel API Manual page for pci_acs_enabled β€” test ACS against required flags for a given device. That's the whole assignment, and it ate. πŸ’…

✨ SYNOPSIS ✨

bool pci_acs_enabled (struct pci_dev *pdev , u16 acs_flags );

πŸŽ€ ARGUMENTS πŸŽ€

  • pdev β€” the device to test. Like, "which device are we checking?" That one.
  • acs_flags β€” the required PCI ACS flags. The flags we need the device to support.

πŸ’… DESCRIPTION πŸ’…

So this function returns true if the device supports the provided flags. It automatically filters out flags that are not implemented on multifunction devices. Very "I got you, bestie" of it.

Okay but here's the important note, no cap: this interface checks the effective ACS capabilities of the device rather than the actual capabilities. Effective, not actual β€” do not mix those up, iykyk.

For instance, most single function endpoints are not required to support ACS because they have no opportunity for peer-to-peer access. So we return 'true' regardless of whether the device exposes an ACS capability. This makes it much easier for callers of this function to ignore the actual type or topology of the device when testing ACS support. Literally convenience main character energy.

πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file ./drivers/pci/pci.c is the home base, and here is the entire reference squad β€” every single one, no skips, fr fr:

pci_bus_max_busnr(9),
pci_status_get_and_clear_errors(9), pci_dev_str_match_path(9),
pci_dev_str_match(9), pci_find_capability(9),
pci_bus_find_capability(9), pci_find_next_ext_capability(9),
pci_find_ext_capability(9), pci_get_dsn(9),
pci_find_next_ht_capability(9), pci_find_ht_capability(9),
pci_find_vsec_capability(9), pci_find_dvsec_capability(9),
pci_find_parent_resource(9), pci_find_resource(9), pci_resource_name(9),
pci_wait_for_pending(9), pci_request_acs(9), pci_std_enable_acs(9),
pci_enable_acs(9), pci_restore_bars(9), pci_update_current_state(9),
pci_refresh_power_state(9), pci_platform_power_transition(9),
pci_resume_bus(9), pci_power_up(9), pci_set_full_power_state(9),
__pci_dev_set_current_state(9), pci_bus_set_current_state(9),
pci_set_low_power_state(9), pci_set_power_state(9), pci_save_state(9),
pci_restore_state(9), pci_store_saved_state(9), pci_load_saved_state(9),
pci_load_and_free_saved_state(9), pci_reenable_device(9),
pci_enable_device_mem(9), pci_enable_device(9),
pcibios_release_device(9), pcibios_disable_device(9),
pci_disable_enabled_device(9), pci_disable_device(9),
pcibios_set_pcie_reset_state(9), pci_set_pcie_reset_state(9),
pcie_clear_root_pme_status(9), pci_check_pme_status(9),
pci_pme_wakeup(9), pci_pme_wakeup_bus(9), pci_pme_capable(9),
pci_pme_restore(9), pci_pme_active(9), __pci_enable_wake(9),
pci_enable_wake(9), pci_wake_from_d3(9), pci_target_state(9),
pci_prepare_to_sleep(9), pci_back_from_sleep(9),
pci_finish_runtime_suspend(9), pci_dev_run_wake(9),
pci_dev_need_resume(9), pci_dev_adjust_pme(9),
pci_dev_complete_resume(9), pci_choose_state(9),
pci_suspend_retains_context(9), pci_bridge_d3_possible(9),
pci_d3cold_enable(9), pci_d3cold_disable(9), pci_pm_init(9),
_pci_add_cap_save_buffer(9), pci_allocate_cap_save_buffers(9),
pci_configure_ari(9), pci_acs_path_enabled(9), pci_acs_init(9),
pci_enable_atomic_ops_to_root(9), pci_release_region(9),
__pci_request_region(9), pci_request_region(9),
pci_release_selected_regions(9), pci_request_selected_regions(9),
pci_request_selected_regions_exclusive(9), pci_release_regions(9),
pci_request_regions(9), pci_request_regions_exclusive(9),
pci_remap_iospace(9), pci_unmap_iospace(9), pcibios_setup(9),
pcibios_set_master(9), pci_set_master(9), pci_clear_master(9),
pci_set_cacheline_size(9), pci_set_mwi(9), pci_try_set_mwi(9),
pci_clear_mwi(9), pci_disable_parity(9), pci_intx(9),
pci_wait_for_pending_transaction(9), pcie_flr(9), pcie_reset_flr(9),
pci_pm_reset(9), pcie_wait_for_link_status(9), pcie_retrain_link(9),
pcie_wait_for_link_delay(9), pcie_wait_for_link(9),
pci_bridge_wait_for_secondary_bus(9), pci_bridge_secondary_bus_reset(9),
__pci_reset_function_locked(9), pci_init_reset_methods(9),
pci_reset_function(9), pci_reset_function_locked(9),
pci_try_reset_function(9), pci_probe_reset_slot(9),
pci_try_reset_slot(9), pci_try_reset_bus(9), pci_reset_bridge(9),
pci_bus_error_reset(9), pci_probe_reset_bus(9), pci_reset_bus(9),
pcix_get_max_mmrbc(9), pcix_get_mmrbc(9), pcix_set_mmrbc(9),
pcie_get_readrq(9), pcie_set_readrq(9), pcie_get_mps(9),
pcie_set_mps(9), pcie_bandwidth_available(9),
pcie_get_supported_speeds(9), pcie_get_speed_cap(9),
pcie_get_width_cap(9), pcie_bandwidth_capable(9),
__pcie_print_link_status(9), pcie_print_link_status(9),
pci_select_bars(9), pci_set_vga_state(9), pci_add_dma_alias(9),
pci_real_dma_dev(9), pci_specified_resource_alignment(9),
pci_bus_find_emul_domain_nr(9), pci_ext_cfg_avail(9)

And that's a wrap! Source/version is ./drivers/pci, date is October 2026, and this iconic little page is pci_acs_enabled(9). Go test those ACS flags and slay πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from