ata_pci_sff_init_host(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

Hiii bestie πŸ’– this is the ata_pci_sff_init_host(9) page from the Kernel API Manual, and it's all about ata_pci_sff_init_host β€” the function that acquires native PCI ATA resources and inits the host. Slay. Periodt. ✨

✨ SYNOPSIS ✨

int ata_pci_sff_init_host (struct ata_host *host );

πŸŽ€ ARGUMENTS πŸŽ€

  • host β€” the target ATA host. That's the main character here πŸ‘‘.

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so what it does: it acquires native PCI ATA resources for host and initializes the first two ports of host accordingly. Ports marked dummy get skipped, and if allocation fails, that port gets made dummy. No cap. πŸ’…

Note β€” and this is important, bestie β€” native PCI resources are valid even for legacy hosts, because we fix up the pdev resources array early in boot. So this function can be used for both native and legacy SFF hosts. Periodt. ✨

LOCKING: Inherited from calling layer (may sleep).

πŸ”₯ RETURN πŸ”₯

  • 0 if at least one port is initialized.
  • -ENODEV if no port is available.

πŸ’œ SEE ALSO πŸ’œ

Kernel file ./drivers/ata/libata-sff.c is right here, bestie, plus the whole friend group:

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_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)

Okay that's the whole page, bestie 🫢 β€” the source/version is ./drivers/ata, the date is October 2026, and the manual name is ata_pci_sff_init_host(9) from the Kernel API Manual. Mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from