ata_pci_bmdma_prepare_host(9)
π ata_pci_bmdma_prepare_host(9) β straight out of the Kernel API Manual, bestie
okay so picture this: you're deep in ./drivers/ata, the vibes are immaculate, and you need a whole PCI BMDMA ATA host set up. that's literally what this function is for. she's a helper. she's iconic. let's get into it π
β¨ NAME β¨
ata_pci_bmdma_prepare_host β the helper that preps your PCI BMDMA ATA host, no cap π«Ά
πΈ SYNOPSIS πΈ
int ata_pci_bmdma_prepare_host (struct pci_dev *pdev , const struct
ata_port_info * const * ppi , struct ata_host **r_host );
π ARGUMENTS π
pdevβ the target PCI device. this is the one we're setting up for, mwah πppiβ an array ofport_info, and bestie listen: it must be enough for two ports. two. not one. not three. iykyk πr_hostβ the out argument where the initialized ATA host lands. she gets written into this pointer, periodt β¨
π¦ DESCRIPTION π¦
so what does she actually do? she's the helper that allocates a BMDMA ATA host for pdev, acquires all the PCI resources, and initializes it accordingly β all in one go. one single function call. main character energy fr fr π₯
π LOCKING π
inherited from the calling layer. and yes, it may sleep π΄ β so don't go calling her from some atomic context and then act surprised, okay?
β RETURN β
0on success β slay π-errnootherwise β not slay, but at least you know what went wrong π
π SEE ALSO π
okay this list is LONG but we do not skip a single one, because every single entry is a baddie in the kernel file ./drivers/ata/libata-sff.c. buckle up, bestie π
ata_sff_check_status(9)ata_sff_altstatus(9)ata_sff_irq_status(9)ata_sff_sync(9)ata_sff_pause(9)ata_sff_dma_pause(9)ata_sff_wait_ready(9)ata_sff_set_devctl(9)ata_sff_dev_select(9)ata_dev_select(9)ata_sff_irq_on(9)ata_sff_tf_load(9)ata_sff_tf_read(9)ata_sff_exec_command(9)ata_tf_to_host(9)ata_sff_data_xfer(9)ata_sff_data_xfer32(9)ata_pio_sector(9)ata_pio_sectors(9)atapi_send_cdb(9)__atapi_pio_bytes(9)atapi_pio_bytes(9)ata_hsm_ok_in_wq(9)ata_hsm_qc_complete(9)ata_sff_hsm_move(9)ata_sff_qc_issue(9)ata_sff_qc_fill_rtf(9)ata_sff_port_intr(9)ata_sff_interrupt(9)ata_sff_lost_interrupt(9)ata_sff_freeze(9)ata_sff_thaw(9)ata_sff_prereset(9)ata_devchk(9)ata_sff_dev_classify(9)ata_sff_wait_after_reset(9)ata_sff_softreset(9)sata_sff_hardreset(9)ata_sff_postreset(9)ata_sff_drain_fifo(9)ata_sff_error_handler(9)ata_sff_std_ports(9)ata_pci_sff_init_host(9)ata_pci_sff_prepare_host(9)ata_pci_sff_activate_host(9)ata_pci_sff_init_one(9)ata_bmdma_fill_sg(9)ata_bmdma_fill_sg_dumb(9)ata_bmdma_qc_prep(9)ata_bmdma_dumb_qc_prep(9)ata_bmdma_qc_issue(9)ata_bmdma_port_intr(9)ata_bmdma_interrupt(9)ata_bmdma_error_handler(9)ata_bmdma_post_internal_cmd(9)ata_bmdma_irq_clear(9)ata_bmdma_setup(9)ata_bmdma_start(9)ata_bmdma_stop(9)ata_bmdma_status(9)ata_bmdma_port_start(9)ata_bmdma_port_start32(9)ata_pci_bmdma_clear_simplex(9)ata_pci_bmdma_init(9)ata_pci_bmdma_init_one(9)ata_sff_port_init(9)
see? told you we weren't skipping any π every last one is here.
okay that's the whole page, bestie π§ this little beauty lives over in ./drivers/ata, dropped October 2026, and she goes by ata_pci_bmdma_prepare_host(9) β go forth and prepare those hosts, you absolute legend ππ
π¦ 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