ata_scsiop_mode_sense(9)
π ata_scsiop_mode_sense(9) π
okay bestie, so this one lives in the Kernel API Manual and it's literally the fake-out queen of the SCSI world π β it's about pretending. Let's get into it β¨
πΈ NAME πΈ
ata_scsiop_mode_sense β Simulate MODE SENSE 6, 10 commands π
π¦ SYNOPSIS π¦
unsigned int ata_scsiop_mode_sense (struct ata_device *dev , struct
scsi_cmnd *cmd , u8 *rbuf );
π ARGUMENTS π
devβ the target device, the main character of this whole situation π«Άcmdβ the SCSI command we're interested in, iykyk πrbufβ the response buffer, aka where the simulated SCSI cmd output gets sent π¬
π DESCRIPTION π
So it simulates MODE SENSE commands. That's the whole vibe. π
Lowkey important assumption bestie: assume this is invoked for direct access devices only β like disks, fr fr. For any other device type there should be no block descriptor. Not a single one. Not even a little one. π«
LOCKING: spin_lock_irqsave(host lock) β no cap, that's the lock, respect it πβ¨
β SEE ALSO β
Kernel file ./drivers/ata/libata-scsi.c β go read it, it's giving essential lore π§
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_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)
k that's the whole page bestie, you ate that π β¨
shoutout to ./drivers/ata for being the source, and to October 2026 for the date β iconic era, we were all there ππ¦ go forth and simulate, mwah π
π¦ 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