ata_tf_to_host(9)
π ata_tf_to_host β kernel API manual, section 9
okay so bestie, this is one of those Kernel API Manual pages (section 9, kernel-doc vibes) and honestly it's a little baddie. let me put you on π
πΈ NAME
ata_tf_to_host β issue ATA taskfile to host controller β¨
π SYNOPSIS
void ata_tf_to_host (struct ata_port *ap , const struct ata_taskfile *tf
, unsigned int tag );
like. that's the whole signature. no return value, it's a void girly, she does the thing and leaves π
π¦ ARGUMENTS
apβ the port that the command is being issued to π«Άtfβ the ATA taskfile register set, i.e. the whole little bundle of registers we're sendingtagβ the tag belonging to the associated command π·οΈ
β¨ DESCRIPTION
So what she does is: she issues the ATA taskfile register set over to the ATA host controller, and she does it with proper synchronization against the interrupt handler and the other threads. no cap, the synchronization is the whole point β everybody's touching the same hardware and nobody wants a race condition, that's not the vibe π
LOCKING: spin_lock_irqsave(host lock) π
like literally that's the lock. memorise it. iykyk.
π SEE ALSO
kernel file ./drivers/ata/libata-sff.c β and bestie, buckle up, because the friend group is huge π
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_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_prepare_host(9)ata_pci_bmdma_init_one(9)ata_sff_port_init(9)
like. sixty-six of them. she's an icon, she's a legend, she's the moment π₯ go read them, bestie, you'll be so smart π
mwah π this page came from ./drivers/ata, October 2026 edition β that's the source and the date, and that's the tea. periodt. π«Ά
π¦ 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