hv_pci_devices_present(9)
π hv_pci_devices_present(9) π
okay so bestie, welcome to the hv_pci_devices_present page β it's a kernel API manual page (section 9, the fun one where all the kernel-internal functions live, iykyk) β¨ grab a strawberry drink π and let's get into it.
πΈ NAME πΈ
hv_pci_devices_present β handle a whole list of new children π
β¨ SYNOPSIS β¨
void hv_pci_devices_present (struct hv_pcibus_device *hbus , struct
pci_bus_relations *relations );
literally that's the whole signature, no cap. two pointers in, void out β nothing comes back, it just does the thing π«Ά
π ARGUMENTS π
hbusβ the root PCI bus, exactly as this driver understands it π think of it as the main character bus that all the drama happens on.relationsβ the packet that arrives from the host, listing the children π¦ yes, this is the envelope full of device names.
π§ DESCRIPTION π§
So what does it do? It processes a brand-new list of devices on the bus β¨ the list of devices gets discovered by VSP, and VSP sends it over to us via the VSP message PCI_BUS_RELATIONS β and that happens whenever a new list of devices for this bus shows up π₯
so like: new list drops β message lands β this function handles it. iconic behaviour honestly π
π SEE ALSO π
the whole friend group, periodt π :
- Kernel file
./drivers/pci/controller/pci-hyperv.c 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)prepopulate_bars(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_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)
and that's the page bestie π it lives in ./drivers/pci/controller (the pci-hyperv.c of it all), it's the October 2026 version, and it's filed under hv_pci_devices_present(9) in the kernel API manual β go read the rest of the group chat, love u, 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