ata_bmdma_fill_sg(9)
π ata_bmdma_fill_sg(9) β like, the Kernel API Manual page, bestie β¨
okay so bestie, gather round π«Ά we're in the Kernel API Manual today and the main character is ata_bmdma_fill_sg(9). she's lowkey a legend and nobody talks about her, so let's fix that π
πΈ NAME πΈ
ata_bmdma_fill_sg β fill the PCI IDE PRD table β¨
Like, the whole entire job. That's it. That's her. π
π¦ SYNOPSIS π¦
void ata_bmdma_fill_sg (struct ata_queued_cmd *qc );
no cap, that's the signature, copy it exactly, don't be cute with it π
π ARGUMENTS π
qcβ the metadata that's associated with the taskfile that's about to be transferred. it's giving "everything you need to know about the command" energy π
π₯ DESCRIPTION π₯
So what she actually does: she fills the PCI IDE PRD (that's scatter-gather, iykyk) table with the segments that are associated with the current disk command π«Ά
That's the vibe. Segments in, PRD table filled, slay π
LOCKING: spin_lock_irqsave(host lock) β fr fr, that's the locking rule, do not skip it, this is not a drill π
π SEE ALSO π
Kernel file ./drivers/ata/libata-sff.c β and honestly, the whole friend group is here, look at them all π
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_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_prepare_host(9),ata_pci_bmdma_init_one(9),ata_sff_port_init(9)
like, that's the whole group chat, nobody got left on read π
and that's the page!! sourced straight outta ./drivers/ata, dated October 2026, manual section 9, and yeah it's still called ata_bmdma_fill_sg(9) β iconic, no notes πβ¨ bye bestie, go fill those PRD tables π
π¦ 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