STRUCT SCU_TASK_CONTEXT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct scu_task_context(9) ✨

Bestie, this is from the Kernel API Manual and it's literally the blueprint for the SCU silicon task context. It lays out all the fields in the exact order and location the Storage Controller unit expects. No cap, this is the main character of the SCU world. πŸ‘‘


🌸 NAME 🌸

struct scu_task_context β€” okay so this struct is the whole vibe of the SCU silicon task context. It's giving you the full layout of every field in the exact order and spot the Storage Controller unit needs. Periodt. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

struct scu_task_context {
    u32 priority:2;
    u32 initiator_request:1;
    u32 connection_rate:4;
    u32 protocol_engine_index:3;
    u32 logical_port_index:3;
    u32 protocol_type:3;
    u32 task_index:12;
    u32 reserved_00_0:1;
    u32 abort:1;
    u32 valid:1;
    u32 context_type:1;
    u32 remote_node_index:12;
    u32 mirrored_node_index:12;
    u32 sata_direction:1;
    u32 command_code:2;
    u32 suspend_node:1;
    u32 task_type:4;
    u32 link_layer_control:8;
    u32 ssp_tlr_enable:1;
    u32 dma_ssp_target_good_response:1;
    u32 do_not_dma_ssp_good_response:1;
    u32 strict_ordering:1;
    u32 control_frame:1;
    u32 tl_control_reserved:3;
    u32 timeout_enable:1;
    u32 pts_control_reserved:7;
    u32 block_guard_enable:1;
    u32 sdma_control_reserved:7;
    u32 address_modifier:16;
    u32 mirrored_protocol_engine:3;
    u32 mirrored_logical_port:4;
    u32 reserved_0C_0:8;
    u32 mirror_request_enable:1;
    u32 ssp_command_iu_length:8;
    u32 xfer_ready_tlr_enable:1;
    u32 reserved_10_0:7;
    u32 ssp_max_burst_size:16;
    u32 transfer_length_bytes:24;
    u32 reserved_14_0:8;
    union protocol_context type;
    u32 command_iu_upper;
    u32 command_iu_lower;
    u32 response_iu_upper;
    u32 response_iu_lower;
    u32 task_phase:8;
    u32 task_status:8;
    u32 previous_extended_tag:4;
    u32 stp_retry_count:2;
    u32 reserved_40_1:2;
    u32 ssp_tlr_threshold:4;
    u32 reserved_40_2:4;
    u32 write_data_length;
    struct transport_snapshot snapshot;
    u32 blk_prot_en:1;
    u32 blk_sz:2;
    u32 blk_prot_func:2;
    u32 reserved_5C_0:9;
    u32 active_sgl_element:2;
    u32 sgl_exhausted:1;
    u32 payload_data_transfer_error:4;
    u32 frame_buffer_offset:11;
    struct scu_sgl_element_pair sgl_pair_ab;
    struct scu_sgl_element_pair sgl_pair_cd;
    struct scu_sgl_element_pair sgl_snapshot_ac;
    u32 active_sgl_element_pair;
    u32 reserved_C4_CC[3];
    u32 interm_crc_val:16;
    u32 init_crc_seed:16;
    u32 app_tag_verify:16;
    u32 app_tag_gen:16;
    u32 ref_tag_seed_verify;
    u32 UD_bytes_immed_val:13;
    u32 reserved_DC_0:3;
    u32 DIF_bytes_immed_val:4;
    u32 reserved_DC_1:12;
    u32 bgc_blk_sz:13;
    u32 reserved_E0_0:3;
    u32 app_tag_gen_mask:16;
    union {
      u16 bgctl;
      struct {
        u16 crc_verify:1;
        u16 app_tag_chk:1;
        u16 ref_tag_chk:1;
        u16 op:2;
        u16 legacy:1;
        u16 invert_crc_seed:1;
        u16 ref_tag_gen:1;
        u16 fixed_ref_tag:1;
        u16 invert_crc:1;
        u16 app_ref_f_detect:1;
        u16 uninit_dif_check_err:1;
        u16 uninit_dif_bypass:1;
        u16 app_f_detect:1;
        u16 reserved_0:2;
      } bgctl_f;
    };
    u16 app_tag_verify_mask;
    u32 blk_guard_err:8;
    u32 reserved_E8_0:24;
    u32 ref_tag_seed_gen;
    u32 intermediate_crc_valid_snapshot:16;
    u32 reserved_F0_0:16;
    u32 reference_tag_seed_for_verify_function_snapshot;
    u32 snapshot_of_reserved_dword_DC_of_tc;
    u32 reference_tag_seed_for_generate_function_snapshot;
};
Bestie, don't touch this unless you know what you're doing. This layout is lowkey sacred. πŸ™ˆ

πŸŽ€ Members πŸŽ€

  • {unnamed_union} β€” anonymous. Yeah, it's just vibing there with no name. Iykyk. 🫢

πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./drivers/scsi/isci/scu_task_context.h β€” the actual header file where this struct lives, bestie.
  • enum scu_ssp_task_type(9) β€” the SSP task type enum, go check it.
  • enum scu_sata_task_type(9) β€” the SATA task type enum, iconic.
  • struct ssp_task_context(9) β€” SSP task context struct, slay.
  • struct stp_task_context(9) β€” STP task context struct, periodt.
  • struct smp_task_context(9) β€” SMP task context struct, no cap.
  • struct primitive_task_context(9) β€” primitive task context struct, fr fr.
  • struct scu_sgl_element(9) β€” SCU SGL element struct, obsessed.
  • struct scu_sgl_element_pair(9) β€” SCU SGL element pair struct, ate.
  • struct transport_snapshot(9) β€” transport snapshot struct, main character energy.

This page is from ./drivers/scsi/isci and it's dated October 2026. Stay slay, bestie! πŸŒˆβœ¨πŸ’–

πŸ“¦ where this page comes from