ata_mselect_control(9)
okay bestie, welcome to ata_mselect_control(9) from the Kernel API Manual π
β¨ β this page is all about simulating MODE SELECT for the control page, and it's lowkey iconic.
πΈ NAME πΈ
ata_mselect_control β Simulate MODE SELECT for control page. That's the exact name, no notes.
β¨ SYNOPSIS β¨
Here's the signature, character-for-character, because we do not play with kernel prototypes:
int ata_mselect_control (struct ata_queued_cmd *qc , u8 spg , const u8
*buf , int len , u16 *fp );
π ARGUMENTS π
qcβ storage for translated ATA taskfile. This is where the translated ATA taskfile gets stored, periodt.spgβ target sub-page of the control page. That's the specific sub-page we're aiming at, bestie.bufβ input buffer. The buffer coming in.lenβ number of valid bytes in the input buffer. Literally how many bytes in that input buffer are valid.fpβ out parameter for the failed field on error. It's an out parameter, and it's about the failed field when there's an error.
π DESCRIPTION π
Prepare a taskfile to modify caching information for the device. That's the whole mission: get a taskfile ready so caching info for the device can be modified. No extra side quests.
LOCKING: None. Like, none at all β no locks in this function, bestie.
π¦ SEE ALSO π¦
Kernel file: ./drivers/ata/libata-scsi.c β yes, that's the one.
The SEE ALSO squad is huge and we're naming every single one, no skipping:
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_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)
that's the whole page, bestie π«Ά β source ./drivers/ata, date October 2026, signed ata_mselect_control(9) πβ¨
π¦ 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