STRUCT SCU_LINK_LAYER_REGISTERS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay so bestie, welcome to the Kernel API Manual ✨ this one's called struct scu_link_layer_registers(9) and no cap, it's a big one. like, big big. grab a strawberry drink πŸ“ and let's get into it.


🌸 NAME 🌸

struct scu_link_layer_registers β€” the SCU Link Layer Registers. that's the whole name, she's not subtle, she knows what she is πŸ’…


✨ SYNOPSIS ✨

here's the whole struct, character for character, zero edits, we do not touch the source in this house 🫢

struct scu_link_layer_registers {
    u32 speed_negotiation_timers;
    u32 link_layer_status;
    u32 port_selector_timeout;
    u32 reserved0C;
    u32 timeout_unit_value;
    u32 rcd_timeout;
    u32 link_timer_timeouts;
    u32 sas_phy_timeouts;
    u32 received_address_frame_error_counter;
    u32 invalid_dword_counter;
    u32 transmit_identification;
    u32 sas_device_name_high;
    u32 sas_device_name_low;
    u32 source_sas_address_high;
    u32 source_sas_address_low;
    u32 identify_frame_phy_id;
    u32 identify_frame_reserved;
    u32 received_address_frame;
    u32 maximum_arbitration_wait_timer_timeout;
    u32 transmit_primitive;
    u32 error_counter_event_notification_control;
    u32 frxq_payload_fill_threshold;
    u32 link_layer_hang_detection_timeout;
    u32 reserved_5C;
    u32 received_frame_count;
    u32 transmit_frame_count;
    u32 received_dword_count;
    u32 transmit_dword_count;
    u32 loss_of_sync_error_count;
    u32 running_disparity_error_count;
    u32 received_frame_crc_error_count;
    u32 stp_control;
    u32 phy_configuration;
    u32 clock_skew_management;
    u32 transmit_comwake_signal;
    u32 transmit_cominit_signal;
    u32 transmit_comsas_signal;
    u32 cominit_control;
    u32 comwake_control;
    u32 comsas_control;
    u32 received_short_frame_count;
    u32 received_frame_without_credit_count;
    u32 received_frame_after_done_count;
    u32 phy_reset_problem_count;
    u32 counter_control;
    u32 ssp_timer_timeout_values;
    u32 ftx_control;
    u32 frx_control;
    u32 ftx_watermark;
    u32 notify_enable_spinup_control;
    u32 sas_training_sequence_timer_values;
    u32 phy_capabilities;
    u32 phy_control;
    u32 reserved_d4;
    u32 link_layer_control;
    u32 afe_xcvr_control;
    u32 afe_lookup_table_control;
    u32 phy_source_zone_group_control;
    u32 receive_phycap;
    u32 reserved_ec;
    u32 speed_negotiation_afe_rx_reset_control;
    u32 power_management_control;
    u32 sas_pm_partial_request_primitive;
    u32 sas_pm_slumber_request_primitive;
    u32 sas_pm_ack_primitive_register;
    u32 sas_pm_nak_primitive_register;
    u32 sas_primitive_timeout;
    u32 reserved_10c;
    u32 pla_product_control[4];
    u32 pla_product_sum;
    u32 pla_control;
    u32 reserved_0128_037f[0x96];
};

like β€” the way she just keeps going 😭 every field is a u32, and yes, pla_product_control is an array of 4, and reserved_0128_037f is [0x96] of them, in case you were wondering. she ate and left no crumbs πŸ‘‘


πŸ¦‹ Members πŸ¦‹

okay so the manpage has a Members section right here β€” and bestie, it is literally empty. no member descriptions, no notes, nothing. the section exists and that's the whole vibe πŸ™ˆ the actual field list lives up there in the SYNOPSIS, so scroll up and enjoy the show πŸ’–


πŸ’œ SEE ALSO πŸ’œ

this is a whole family, iykyk. all of these live in the kernel file ./drivers/scsi/isci/registers.h:

  • struct scu_viit_entry(9) β€” sibling ✨
  • struct scu_iit_entry(9) β€” sibling ✨
  • struct smu_registers(9) β€” sibling ✨
  • struct scu_sdma_registers(9) β€” sibling ✨
  • struct scu_transport_layer_registers(9) β€” sibling ✨
  • struct scu_sgpio_registers(9) β€” sibling ✨
  • struct scu_port_task_scheduler_registers(9) β€” sibling ✨
  • struct scu_port_task_scheduler_group_registers(9) β€” sibling, and she has a long name, we respect it πŸ’…
  • struct scu_afe_registers(9) β€” sibling ✨
  • struct transport_link_layer_pair(9) β€” sibling ✨
  • struct scu_peg_registers(9) β€” sibling ✨
  • struct scu_registers(9) β€” the final boss πŸ‘‘

go read them all, they're iconic, no cap 🫢


heads up bestie πŸŽ€ every single one of these references is a (9) β€” kernel API manual section, periodt. don't go looking for them in section 3, that's not the vibe.

and that's the page!! 🌈 this little beauty shipped from ./drivers/scsi/isci and it's dated October 2026 ⭐ β€” so like, mark your calendars, six-ish months of main character energy right there πŸ˜­πŸ’– bye bestie, go read your registers responsibly πŸ§šβ€β™€οΈπŸ’œ

πŸ“¦ where this page comes from