ata_bmdma_fill_sg(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 🌈

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