STRUCT LEAPRAID_IO_REQ_TRACKER(9)
π NAME π
okay so first things first, welcome to the Kernel API Manual, section 9, and today's main character is struct leapraid_io_req_tracker β the lil' bookkeeping struct that tracks a SCSI I/O request for the adapter. yes, that adapter. it's giving backstage-pass-for-your-I/O β¨
πΈ SYNOPSIS πΈ
bestie, here's the whole shape of it, no cap, character for character:
struct leapraid_io_req_tracker {
u16 taskid;
struct scsi_cmnd *scmd;
struct list_head chain_list;
u16 msix_io;
void *chain;
dma_addr_t chain_dma;
};
likeβ¦ six fields, zero drama. we love a compact struct π
π¦ MEMBERS π¦
okay so let's meet the cast, one field at a time π
taskidβ the unique task ID for this I/O request. it's literally the request's own little name tag so nobody gets mixed up at the party π·οΈscmdβ a pointer to the associated SCSI command. yeah, the actual command it belongs to β this is the link to the real work π«Άchain_listβ the list of chain frames associated with this request. a whole little squad of chain frames, linked up in a list πmsix_ioβ the MSI-X vector assigned to this I/O request. which interrupt lane it's riding, iykyk πchainβ pointer to the chain memory for this request. the actual memory, not the address β don't confuse the two, bestie πchain_dmaβ the DMA address of the chain memory. that's thedma_addr_tversion of the same vibe, for when the hardware needs to find it π§
lowkey important:chainandchain_dmaare different things β one's the pointer, one's the DMA address of that same chain memory. iconic duo, not the same field π
π SEE ALSO π
okay so if you wanna go down the rabbit hole (and you do), start here: Kernel file ./drivers/scsi/leapraid/leapraid_func.h, and then the whole extended universe, fr fr:
struct leapraid_adapter_features(9)struct leapraid_adapter_attr(9)struct leapraid_task_tracker(9)struct leapraid_rep_desc_maint(9)struct leapraid_rep_desc_seg_maint(9)struct leapraid_mem_desc(9)enum LEAPRAID_CB_INDEX(9)struct leapraid_default_reply(9)struct leapraid_sense_buffer(9)struct leapraid_driver_cmd(9)struct leapraid_driver_cmds(9)struct leapraid_dynamic_task_desc(9)struct leapraid_fw_evt_work(9)struct leapraid_fw_evt_struct(9)struct leapraid_rq(9)struct leapraid_int_rq(9)struct leapraid_blk_mq_poll_rq(9)struct leapraid_notification_desc(9)struct leapraid_overheat_desc(9)struct leapraid_reset_desc(9)struct leapraid_scan_dev_desc(9)struct leapraid_access_ctrl(9)struct leapraid_fw_log_desc(9)struct leapraid_card_port(9)struct leapraid_card_phy(9)struct leapraid_topo_node(9)struct leapraid_dev_topo(9)struct leapraid_boot_dev(9)struct leapraid_boot_devs(9)struct leapraid_adapter(9)struct leapraid_enc_node(9)struct leapraid_raid_volume(9)struct leapraid_starget_priv(9)struct leapraid_sdev_priv(9)struct leapraid_sas_dev(9)struct leapraid_sas_port(9)struct leapraid_vphy(9)struct leapraid_tgt_rst_list(9)struct sense_info(9)struct leapraid_fw_log_info(9)enum reset_type(9)struct leapraid_card_port_feature(9)
that's the whole group chat, bestie. go read 'em, slay π
and that's the page!! π it lives under ./drivers/scsi/leapraid, dated October 2026, and the header up top reads struct leapraid_io_req_tracker(9) in case you forgot where you were. mwah, go forth and track those I/O requests β you got this ππ¦β¨
π¦ 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