prepopulate_bars(9)
okay bestie, welcome to prepopulate_bars(9) from the Kernel API Manual β the page where we fill in BARs with defaults, and honestly itβs giving βmake the PCI core happyβ energy π
β¨
π NAME π
prepopulate_bars - Fill in BARs with defaults πΈ
β¨ SYNOPSIS β¨
void prepopulate_bars (struct hv_pcibus_device *hbus );
π ARGUMENTS π
hbusβ Root PCI bus, as understood by this driver π«Ά
πΈ DESCRIPTION πΈ
okay so hereβs the vibe: the core PCI driver code seems much, much happier if the BARs for a device have values upon first scan. So we fill them in. no cap, thatβs the assignment π
The algorithm below works down from large sizes to small, attempting to pack the assignments optimally β itβs lowkey doing a little packing puzzle π§©β¨
And hereβs the assumption, enforced in other parts of the code: the beginning of the memory-mapped I/O space will be aligned on the largest BAR size. periodt. Donβt forget it, bestie π
π¦ SEE ALSO π¦
Kernel file: ./drivers/pci/controller/pci-hyperv.c β hereβs the whole friend group, iykyk:
struct hv_msi_desc(9)struct hv_msi_desc2(9)struct tran_int_desc(9)hv_irq_retarget_interrupt(9)hv_pci_generic_compl(9)devfn_to_wslot(9)wslot_to_devfn(9)_hv_pcifront_read_config(9)_hv_pcifront_write_config(9)hv_pcifront_read_config(9)hv_pcifront_write_config(9)hv_pci_read_config_compl(9)hv_read_config_block(9)hv_pci_write_config_compl(9)hv_write_config_block(9)hv_register_block_invalidate(9)hv_msi_free(9)hv_compose_msi_msg(9)hv_pcie_init_irq_domain(9)get_bar_size(9)survey_child_resources(9)create_root_hv_pci_bus(9)q_resource_requirements(9)new_pcichild_device(9)get_pcichild_wslot(9)pci_devices_present_work(9)hv_pci_start_relations_work(9)hv_pci_devices_present(9)hv_pci_devices_present2(9)hv_eject_device_work(9)hv_pci_eject_device(9)hv_pci_onchannelcallback(9)hv_pci_protocol_negotiation(9)hv_pci_free_bridge_windows(9)hv_pci_allocate_bridge_windows(9)hv_allocate_config_window(9)hv_pci_enter_d0(9)hv_pci_query_relations(9)hv_send_resources_allocated(9)hv_send_resources_released(9)hv_pci_probe(9)hv_pci_remove(9)
π
final sign-off: this pageβs source/version is ./drivers/pci/controller, the date is October 2026, and the manual page is prepopulate_bars(9). bye bestie, go fill those BARs π«Άβ¨
π¦ 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