ata_scsi_mode_select_xlat(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– ata_scsi_mode_select_xlat(9) β€” live from the Kernel API Manual πŸ’–

okay bestie, we are SO in the kernel docs right now. This page is literally ata_scsi_mode_select_xlat(9), and it’s giving β€œtranslator bestie” energy. Let’s get into it 🫢


✨ NAME ✨

ata_scsi_mode_select_xlat β€” Simulate MODE SELECT 6, 10 commands πŸ’…


πŸ› οΈ SYNOPSIS πŸ› οΈ

unsigned int ata_scsi_mode_select_xlat (struct ata_queued_cmd *qc );

🧾 ARGUMENTS 🧾

  • qc β€” storage for the translated ATA taskfile. That’s where the translated taskfile hangs out, periodt πŸŽ€

πŸ’« DESCRIPTION πŸ’«

okay so this function converts a MODE SELECT command into an ATA SET FEATURES taskfile. That’s the main-character move ✨

lowkey assume this is invoked for direct access devices (e.g. disks) only. For other device types, there should be no block descriptor β€” no cap, that’s the rule 🫢

πŸ”’ LOCKING πŸ”’

The locking vibe check is literally spin_lock_irqsave(host lock) β€” iconic, honestly πŸ‘‘


🌈 SEE ALSO 🌈

Kernel file: ./drivers/ata/libata-scsi.c β€” that’s the home base, bestie 🏠

and now, the whole cross-reference friend group:

ata_scsi_set_passthru_sense_fields(9), ata_std_bios_param(9),
ata_scsi_unlock_native_capacity(9), ata_get_identity(9),
ata_cmd_ioctl(9), ata_task_ioctl(9), ata_scsi_qc_new(9),
ata_to_sense_error(9), ata_gen_ata_sense(9), ata_scsi_dma_need_drain(9),
ata_scsi_sdev_init(9), ata_scsi_sdev_configure(9),
ata_scsi_sdev_destroy(9), ata_scsi_start_stop_xlat(9),
ata_scsi_flush_xlat(9), scsi_6_lba_len(9), scsi_10_lba_len(9),
scsi_16_lba_len(9), scsi_dld(9), ata_scsi_verify_xlat(9),
ata_scsi_rw_xlat(9), ata_scsi_translate(9), ata_scsi_rbuf_fill(9),
ata_scsiop_inq_std(9), ata_scsiop_inq_00(9), ata_scsiop_inq_80(9),
ata_scsiop_inq_83(9), ata_scsiop_inq_89(9), ata_dsm_trim_pages(9),
ata_scsiop_inq_b0(9), ata_scsiop_inq_b1(9), ata_scsiop_inq_b2(9),
ata_scsiop_inq_b6(9), ata_scsiop_inq_b9(9), ata_scsiop_inquiry(9),
modecpy(9), ata_msense_caching(9), ata_msense_control(9),
ata_msense_rw_recovery(9), ata_scsiop_mode_sense(9),
ata_scsiop_read_cap(9), ata_scsiop_report_luns(9), atapi_xlat(9),
ata_scsi_find_dev(9), ata_scsi_pass_thru(9),
ata_format_dsm_trim_descr(9), ata_scsi_write_same_xlat(9),
ata_scsiop_maint_in(9), ata_scsi_report_zones_complete(9),
ata_mselect_caching(9), ata_mselect_control(9),
ata_scsi_var_len_cdb_xlat(9), ata_get_xlat_func(9),
ata_scsi_simulate(9), ata_scsi_queuecmd(9), ata_scsi_offline_dev(9),
ata_scsi_remove_dev(9), ata_scsi_media_change_notify(9),
ata_scsi_hotplug(9), ata_scsi_user_scan(9), ata_scsi_dev_rescan(9)

okay that’s the whole page, bestie πŸŽ€ signing off from source/version land: ./drivers/ata, dated October 2026, and it’s literally ata_scsi_mode_select_xlat(9) β€” slay βœ¨πŸ’–

πŸ“¦ where this page comes from