ata_scsiop_maint_in(9)
πΈ ata_scsiop_maint_in(9) πΈ
okay so real quick before we dive in β this is a page straight outta the Kernel API Manual, and yes it's a (9) section page, meaning it's a kernel-internals moment, so grab your emotional support iced coffee π and let's go.
β¨ NAME β¨
ata_scsiop_maint_in β literally simulates a subset of MAINTENANCE_IN. that's it, that's the whole vibe. a little taste of it. not the whole thing. a subset. π
π¦ SYNOPSIS π¦
unsigned int ata_scsiop_maint_in (struct ata_device *dev , struct scsi_cmnd *cmd , u8 *rbuf );
she takes three things and hands you back an unsigned int, no cap.
π ARGUMENTS π
devβ the target device π like, the ATA device we're talking about here.cmdβ the SCSI command of interest π the one we care about rn.rbufβ the response buffer, bestie. this is where the simulated SCSI cmd output gets sent π«Ά so all the pretend output goes in here.
π₯ DESCRIPTION π₯
okay so what she actually does: yields a subset to satisfy scsi_report_opcode β¨ that's the whole job. she's not doing the full MAINTENANCE_IN experience, she's giving you just enough of a subset to keep scsi_report_opcode happy. king behavior honestly π
LOCKING:spin_lock_irqsave(host lock)π β yes she holds the host lock, and yes she does it withspin_lock_irqsave, so pls respect the lock, i'm begging π
π SEE ALSO π
this is the part where the friend group gets tagged in the groupchat π β the kernel file itself lives at ./drivers/ata/libata-scsi.c, and here's literally everyone else:
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_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)
like i said. everyone. the whole roster. ate and left no crumbs π
and that's the page, bestie π tysm for reading, this has been Kernel API Manual realness, brought to you from ./drivers/ata, dated October 2026 π¦ mwah, go read some source code, ily πβ¨π
π¦ 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