STRUCT LEAPRAID_SAS_IO_UNIT_P0(9)
π struct leapraid_sas_io_unit_p0(9) β the Kernel API manual, bestie edition π
okay so picture this: you're deep in the kernel, you crack open the API manual β yeah, the Kernel API Manual one β and this lil cutie is sitting right there. It's struct leapraid_sas_io_unit_p0, and it's literally the SAS I/O unit configuration page 0. That's the whole vibe. Page zero. Main character energy from the jump. β¨
πΈ NAME πΈ
struct leapraid_sas_io_unit_p0 β the SAS I/O unit configuration page 0. iconic, no notes π
π¦ SYNOPSIS π¦
struct leapraid_sas_io_unit_p0 {
struct leapraid_cfg_ext_pg_header header;
u8 r1[4];
u8 phy_num;
u8 r2[3];
struct leapraid_sas_io_unit0_phy_info phy_info[];
};
look at her. struct definition copied exactly, not a single character touched, because we respect the source π«Ά
π Members π
okay bestie let's go field by field, no skipping, we do NOT skip fields in this house π
headerβ it's the extended configuration page header. the extended one. not the regular one. don't get it twisted π₯r1β reserved. it's giving "please don't touch" π« literally reserved, leave her alone.phy_numβ the number of PHYs in this unit. au8, so it's out here counting PHYs, doing its little job πr2β reserved again. yes there's two reserved gaps. yes that's normal. lowkey iconic that they're both just vibing there πphy_infoβ array of PHY information. note the[]β it's a flexible array member, so it trails off the end of the struct into whatever comes next. she's open-ended, she's mysterious, she contains multitudes π¦
π SEE ALSO π
grab a snack because this list is LONG and every single one of these deserves a shoutout. first up, the kernel file herself:
- Kernel file
./drivers/scsi/leapraid/leapraid.h
and now, the whole extended family π (in order, bestie, don't @ me):
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)β the lil sibling of thephy_infoarray above, go read her next π«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)
that's the whole page, bestie, nothing cut, nothing merged, nothing invented. iykyk π§
signed off with love from ./drivers/scsi/leapraid, dated October 2026 β and yes, the page header up top and the footer down there were the same manual name, we just folded it in so it looks cute π β
π¦ 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