ata_sff_hsm_move(9)
π ata_sff_hsm_move β like, the HSM glow-up episode
okay bestie, welcome to the Kernel API Manual β¨ this one's a little function from the deep magic of libata, and honestly? it's giving "backstage pass to the state machine" energy π
β¨ NAME β¨
ata_sff_hsm_move β moves the HSM to the next state π¦ periodt, that's the whole job. it's the lil usher walking your hardware state machine to its next seat, no cap.
πΈ SYNOPSIS πΈ
int ata_sff_hsm_move (struct ata_port *ap , struct ata_queued_cmd *qc ,
u8 status , int in_wq );
like, she takes four things and hands you back an int π iconic behavior.
π ARGUMENTS π
apβ the targetata_portπ this is the port she's working her magic on.qcβ the qc that's on going πββοΈ literally the queued command that's currently in flight, main character of this call.statusβ current device status π©Ί the vibe check on the device right now, as au8.in_wqβ1if called from workqueue,0otherwise π so basically "are we in the workqueue era or not," iykyk.
β RETURN β
1β when poll next status needed π you gotta come back and check status again, bestie.0β otherwise π you're free, nothing more to poll.
π¦ SEE ALSO π¦
okay so this is the part where she name-drops everyone in the libata group chat π all from the kernel file ./drivers/ata/libata-sff.c:
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_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, she knows everybody π and yes you should go read them too, they're all right there in libata-sff.c. no gatekeeping here π«Ά
ngl this page is short but she ate π the state machine doesn't move itself, bestie β somebody's gotta call ata_sff_hsm_move.
and that's the whole page!! π courtesy of the ./drivers/ata girlies, dated October 2026 β mwah, thanks for reading, slay π§ββοΈβ¨
π¦ 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