ata_scsi_start_stop_xlat(9)
π« ata_scsi_start_stop_xlat π«
okay so this is a page straight outta the Kernel API Manual β it's ata_scsi_start_stop_xlat(9), and bestie, it's literally the little translator that takes a SCSI START STOP UNIT command and turns it into something ATA can vibe with. let's get into it π
β¨ NAME β¨
ata_scsi_start_stop_xlat β the translator for the SCSI START STOP UNIT command. she speaks both languages, it's giving bilingual icon π
πΈ SYNOPSIS πΈ
unsigned int ata_scsi_start_stop_xlat (struct ata_queued_cmd *qc );
π¦ ARGUMENTS π¦
qcβ your storage for the translated ATA taskfile. this is where the magic gets written, so hand her a real one, mmkay? π«Ά
π₯ DESCRIPTION π₯
so what she actually does: she sets up an ATA taskfile to issue STANDBY (that's the stop part) or READ VERIFY (that's the start part). no cap, that's the whole translation gig β¨
and here's a little aside the original drops in β perhaps these commands should be preceded by CHECK POWER MODE to see what power mode the device is already in. like, a lil vibe check before you commit, y'know? π [See SAT revision 5 at www.t10.org]
LOCKING: spin_lock_irqsave(host lock) β yes, that lock, hold it properly π
π RETURN π
- Zero on success π
- non-zero on error π
π SEE ALSO π
the kernel file where she lives: ./drivers/ata/libata-scsi.c β go visit her sometime π
and the whole friend group, fr fr:
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_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_mode_select_xlat(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, you ate that π
stay in ./drivers/ata, and remember this lil masterclass dropped October 2026 in the Kernel API Manual β mwah, love u, go translate some commands π§π
π¦ 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