STRUCT LEAPRAID_MPI_SCSIIO_REQ(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

struct leapraid_mpi_scsiio_req β€” the MPI SCSI I/O request πŸ¦‹

okay so bestie, we are deep in the Kernel API Manual rn and this page is literally about one struct. that's it. that's the whole assignment. it's the MPI SCSI I/O request and she's iconic for it πŸ’–


✨ SYNOPSIS ✨

struct leapraid_mpi_scsiio_req {
    __le16 dev_hdl;
    u8 chain_offset;
    u8 func;
    u8 r1[3];
    u8 msg_flg;
    u8 r2[4];
    __le32 sense_buffer_low_add;
    u8 dma_flag;
    u8 r3;
    u8 sense_buffer_len;
    u8 r4;
    u8 sgl_offset0;
    u8 sgl_offset1;
    u8 sgl_offset2;
    u8 sgl_offset3;
    __le32 skip_count;
    __le32 data_len;
    __le32 bi_dir_data_len;
    __le16 io_flg;
    __le16 eedp_flag;
    __le16 eedp_block_size;
    u8 r5[2];
    __le32 secondary_ref_tag;
    __le16 secondary_app_tag;
    __le16 app_tag_trans_mask;
    u8 lun[8];
    __le32 ctrl;
    union leapraid_mpi_scsi_io_cdb_union cdb;
    union leapraid_sge_io_union sgl;
 };

like, look at her. every byte accounted for. the r1, r2, r3, r4, r5 reserved slots are the background dancers keeping the layout cute, and the real main characters are all named below πŸ‘‘


πŸŽ€ Members πŸŽ€

  • dev_hdl β€” device handle for the target 🎯
  • chain_offset β€” offset for a chained SGE ⛓️
  • func β€” function code
  • r1 β€” reserved (no thoughts, just padding πŸ’€)
  • msg_flg β€” message flags 🚩
  • r2 β€” reserved
  • sense_buffer_low_add β€” the lower 32-bit address of the sense buffer πŸ“
  • dma_flag β€” DMA flags
  • r3 β€” reserved
  • sense_buffer_len β€” sense buffer length πŸ“
  • r4 β€” reserved
  • sgl_offset0 β€” SGL offset, queen number zero πŸ‘‘
  • sgl_offset1 β€” SGL offset, number one
  • sgl_offset2 β€” SGL offset, number two
  • sgl_offset3 β€” SGL offset, number three
  • skip_count β€” how many bytes to skip before the transfer πŸ™ˆ
  • data_len β€” length of the data transfer πŸ“¦
  • bi_dir_data_len β€” bi-directional transfer length πŸ”
  • io_flg β€” I/O flags
  • eedp_flag β€” end-to-end data protection flags πŸ›‘οΈ
  • eedp_block_size β€” end-to-end data protection block size
  • r5 β€” reserved
  • secondary_ref_tag β€” secondary reference tag 🏷️
  • secondary_app_tag β€” secondary application tag
  • app_tag_trans_mask β€” application tag mask 🎭
  • lun β€” Logical Unit Number
  • ctrl β€” control flags πŸŽ›οΈ
  • cdb β€” the SCSI Command Descriptor Block, or a simple SGE (she contains multitudes, an icon of duality ✨)
  • sgl β€” scatter-gather list 🌈

🌸 SEE ALSO 🌸

so like, this struct does not live alone, she has a whole extended friend group. all of these are in the kernel file ./drivers/scsi/leapraid/leapraid.h, and honestly the list is giving family reunion 🫢

  • struct
  • leapraid_reg_base(9)
  • struct leapraid_atomic_req_desc(9)
  • union leapraid_rep_desc_union(9)
  • struct leapraid_req(9)
  • struct leapraid_rep(9)
  • struct leapraid_sge_simple32(9)
  • struct leapraid_sge_simple64(9)
  • struct leapraid_sge_simple_union(9)
  • struct leapraid_sge_chain_union(9)
  • struct leapraid_ieee_sge_simple32(9)
  • struct leapraid_ieee_sge_simple64(9)
  • union leapraid_ieee_sge_simple_union(9)
  • union leapraid_ieee_sge_chain_union(9)
  • struct leapraid_chain64_ieee_sg(9)
  • union leapraid_ieee_sge_io_union(9)
  • union leapraid_simple_sge_union(9)
  • union leapraid_sge_io_union(9)
  • struct leapraid_cfg_pg_header(9)
  • struct leapraid_cfg_ext_pg_header(9)
  • struct leapraid_cfg_req(9)
  • struct leapraid_cfg_rep(9)
  • struct leapraid_boot_dev_format_sas_wwid(9)
  • struct leapraid_boot_dev_format_enc_slot(9)
  • struct leapraid_boot_dev_format_dev_name(9)
  • union leapraid_boot_dev_format(9)
  • struct leapraid_manufacturing_p0(9)
  • struct leapraid_bios_page2(9)
  • struct leapraid_bios_page3(9)
  • struct leapraid_raidvol0_phys_disk(9)
  • struct leapraid_raidvol_p0(9)
  • struct leapraid_raidvol_p1(9)
  • struct leapraid_raidpd_p0(9)
  • struct leapraid_sas_io_unit0_phy_info(9)
  • struct leapraid_sas_io_unit_p0(9)
  • struct leapraid_exp_p0(9)
  • struct leapraid_exp_p1(9)
  • struct leapraid_sas_dev_p0(9)
  • struct leapraid_sas_phy_p0(9)
  • struct leapraid_enc_p0(9)
  • struct leapraid_raid_cfg_p0_element(9)
  • struct leapraid_raid_cfg_p0(9)
  • union leapraid_mpi_scsi_io_cdb_union(9)
  • union leapraid_scsi_io_cdb_union(9)
  • struct leapraid_scsiio_req(9)
  • struct leapraid_scsiio_rep(9)
  • struct leapraid_scsi_tm_req(9)
  • struct leapraid_scsi_tm_rep(9)
  • struct leapraid_sep_req(9)
  • struct leapraid_sep_rep(9)
  • struct leapraid_adapter_init_req(9)
  • struct leapraid_rep_desc_q_arr(9)
  • struct leapraid_adapter_init_rep(9)
  • struct leapraid_adapter_log_req(9)
  • struct leapraid_adapter_log_rep(9)
  • struct leapraid_adapter_features_req(9)
  • struct leapraid_adapter_features_rep(9)
  • struct leapraid_scan_dev_req(9)
  • struct leapraid_scan_dev_rep(9)
  • struct leapraid_evt_notify_req(9)
  • struct leapraid_evt_notify_rep(9)
  • struct leapraid_evt_data_sas_dev_status_change(9)
  • struct leapraid_evt_data_ir_change(9)
  • struct leapraid_evt_data_sas_disc(9)
  • struct leapraid_evt_sas_topo_phy_entry(9)
  • struct leapraid_evt_data_sas_topo_change_list(9)
  • struct leapraid_evt_data_sas_enc_dev_status_change(9)
  • struct leapraid_io_unit_ctrl_req(9)
  • struct leapraid_io_unit_ctrl_rep(9)
  • struct leapraid_raid_act_req(9)
  • struct leapraid_raid_act_rep(9)
  • struct leapraid_smp_passthrough_req(9)
  • struct leapraid_smp_passthrough_rep(9)
  • struct leapraid_sas_io_unit_ctrl_req(9)

ok that's the whole page, no cap 🧚 this came out of ./drivers/scsi/leapraid in October 2026, and the kernel manual name on the tin is Kernel API Manual. go read your structs bestie, ily, bye πŸ’œπŸŽ€βœ¨

πŸ“¦ where this page comes from