ata_dev_select(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay so this is ata_dev_select(9) from the Kernel API Manual, and she's here to help your bestie pick device 0 or 1 on an ATA bus πŸ’–βœ¨

🌸 NAME 🌸

ata_dev_select β€” Select device 0/1 on ATA bus.


✨ SYNOPSIS ✨

       void ata_dev_select (struct ata_port *ap , unsigned int device ,
       unsigned int wait , unsigned int can_sleep );

πŸŽ€ ARGUMENTS πŸŽ€

  • ap β€” the ATA channel to manipulate. That's the thing you're working with, bestie.
  • device β€” the ATA device (numbered from zero) to select. So the numbering starts at zero, periodt.
  • wait β€” non-zero to wait for the Status register BSY bit to clear.
  • can_sleep β€” non-zero if the context allows sleeping. Nap permission is context-dependent, iykyk.

πŸ’… DESCRIPTION πŸ’…

Use the method defined in the ATA specification to make either device 0, or device 1, active on the ATA channel. That's the assignment, no cap.

This is a high-level version of ata_sff_dev_select, which additionally provides the services of inserting the proper pauses and status polling, where needed. So it's the main-character version with the proper pauses and status polling services included when needed.

LOCKING: caller. Yes, that's the whole locking note, and yes, it's giving "you already know" πŸ™ˆ


πŸ¦‹ SEE ALSO πŸ¦‹

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_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_prepare_host(9), ata_pci_bmdma_init_one(9), ata_sff_port_init(9).


mwah πŸ’‹ β€” signed off from source/version ./drivers/ata, dated October 2026. Stay iconic, bestie 🫢

πŸ“¦ where this page comes from