ata_scsi_rbuf_fill(9)
π ata_scsi_rbuf_fill(9) β the kernel API manual, bestie edition π
okay so this is a page from the Kernel API Manual, section 9 (iykyk), and it's all about ata_scsi_rbuf_fill β the little wrapper that does the unglamorous backstage work so your SCSI command simulators can main-character their way through. β¨
πΈ NAME πΈ
ata_scsi_rbuf_fill β literally just a wrapper for SCSI command simulators. that's the whole vibe. π«Ά
π¦ SYNOPSIS π¦
void ata_scsi_rbuf_fill (struct ata_device *dev , struct scsi_cmnd *cmd
, unsigned int (*actor)(struct ata_device *dev, struct scsi_cmnd *cmd,
u8 *rbuf) );
no cap, that's the signature. the function-pointer parameter goes hard. π₯
π ARGUMENTS π
devβ the Target device. like, who are we even talking to here. πcmdβ the SCSI command of interest. the one we're simming. π―actorβ the Callback hook for desired SCSI command simulator. yes bestie, you bring your own handler and this thing calls it for you. π§
β¨ DESCRIPTION β¨
so here's the tea: this function takes care of the hard work of simulating a SCSI command... and by "the hard work" we mean the boring-but-essential trio:
- Mapping the response buffer
- calling the command's handler
- and handling the handler's return value
and that return value? it's the handler's way of telling you what it wants to happen next:
0β the handler wishes the SCSI command to be completed successfully π- anything else (not
0) β nope, not successful, and in that casecmd->resultand the sense buffer are assumed to be set β like, the handler already did that part, don't come for it. π
LOCKING: spin_lock_irqsave(host lock) β yes, this is the locking context. respect the lock, bestie. π
π SEE ALSO π
first off, the source vibes come from the kernel file ./drivers/ata/libata-scsi.c β go look, it's giving lore. π
and now, the full squad (all of these, no skips, we don't do that here):
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_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 and finally, the cute lil sign-off: this whole thing lives over in ./drivers/ata, and the version/date stamp says October 2026 with the title ata_scsi_rbuf_fill(9). periodt. π
ππ
π¦ 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