STRUCT LEAPRAID_REG_BASE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct leapraid_reg_base(9) πŸ’–

okay so this is the Kernel API Manual page for struct leapraid_reg_base, and bestie, it's literally the whole register map of the LeapRAID controller β€” like the group chat roster of where every register sits and what it does ✨ no cap, every field matters here πŸ’…


🌸 NAME 🌸

struct leapraid_reg_base β€” the register layout of the LeapRAID controller πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

here it is, character for character, don't touch a single byte of it 🫢

struct leapraid_reg_base {
    __le32 db;
    __le32 ws;
    __le32 host_diag;
    __le32 r1[9];
    __le32 host_int_status;
    __le32 host_int_mask;
    __le32 r2[4];
    __le32 rep_msg_host_idx;
    __le32 r3[13];
    __le32 debug_log[LEAPRAID_DEBUGLOG_SZ_MAX];
    __le32 r4[2];
    __le32 atomic_req_desc_post;
    __le32 adapter_log_buf_pos;
    __le32 host_log_buf_pos;
    __le32 r5[142];
    struct leapraid_rep_post_reg_idx {
      __le32 idx;
      __le32 r1;
      __le32 r2;
      __le32 r3;
    } rep_post_reg_idx[REP_POST_HOST_IDX_REG_CNT];
};

πŸ‘‘ Members πŸ‘‘

okay, field by field, let's get into it β€” this is the main character energy part of the page 🌈

  • db β€” the Doorbell register πŸ”” used to signal commands or status to firmware. yes babe, you ring it, firmware hears it.
  • ws β€” the Write sequence register, there to keep doorbell operations synchronized. it's giving traffic cop for doorbell vibes 🚦
  • host_diag β€” the Diagnostic register, used for status or debug reporting. 🩺
  • r1 β€” Reserved. πŸ’€ (nothing to see here, it's literally just space)
  • host_int_status β€” the Interrupt status register, reporting active interrupts ⚑
  • host_int_mask β€” the Interrupt mask register, enabling or disabling sources 🎚️
  • r2 β€” Reserved. πŸ’€
  • rep_msg_host_idx β€” the Reply message index for the next available reply slot πŸ“¬
  • r3 β€” Reserved. πŸ’€
  • debug_log β€” the DebugLog registers, for firmware debug and diagnostic output πŸ›βœ¨
  • r4 β€” Reserved. πŸ’€
  • atomic_req_desc_post β€” the Atomic register for single descriptor posting βš›οΈ
  • adapter_log_buf_pos β€” the Adapter log buffer write position πŸ“
  • host_log_buf_pos β€” the Host log buffer write position πŸ“
  • r5 β€” Reserved. πŸ’€ (and yes she's r5[142], we stan a spacious reserved block)
  • rep_post_reg_idx β€” an array of reply post index registers, one per queue πŸ”₯ and the number of entries is defined by REP_POST_HOST_IDX_REG_CNT β€” periodt, that's the constant, don't come for her.
fr fr bestie, all those r1, r2, r3, r4, r5 fields are Reserved β€” do NOT go writing your little experiments in there πŸ™ˆ the page says reserved, so they stay reserved.

⭐ SEE ALSO ⭐

the reading list, and it is long, but we're getting through it together 🧚 iykyk β€” every single one is here:

  • Kernel file ./drivers/scsi/leapraid/leapraid.h 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)
  • struct leapraid_mpi_scsiio_req(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)

and that's the page, bestie πŸ’œ she lives in ./drivers/scsi/leapraid and she's dated October 2026 β€” go read her, slay, bye πŸŽ€βœ¨πŸ“

πŸ“¦ where this page comes from