STRUCT LEAPRAID_IO_REQ_TRACKER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– 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 the dma_addr_t version of the same vibe, for when the hardware needs to find it 🧚
lowkey important: chain and chain_dma are 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