STRUCT XSDFEC_LDPC_PARAMS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME

struct xsdfec_ldpc_params β€” the user data for LDPC codes, bestie. That's it, that's the vibe ✨

(it's from the Kernel API Manual, section 9, and it's the struct that carries your LDPC params from your app into the driver 🫢)


πŸ¦‹ SYNOPSIS

struct xsdfec_ldpc_params {
    __u32 n;
    __u32 k;
    __u32 psize;
    __u32 nlayers;
    __u32 nqc;
    __u32 nmqc;
    __u32 nm;
    __u32 norm_type;
    __u32 no_packing;
    __u32 special_qc;
    __u32 no_final_parity;
    __u32 max_schedule;
    __u32 sc_off;
    __u32 la_off;
    __u32 qc_off;
    __u32 *sc_table;
    __u32 *la_table;
    __u32 *qc_table;
    __u16 code_id;
};

okay so literally nineteen fields, one struct, no cap β€” let's meet the cast πŸ’–


πŸŽ€ Members

  • n β€” the number of code word bits 🧚
  • k β€” the number of information bits ⭐
  • psize β€” the size of the sub-matrix 🌸
  • nlayers β€” how many layers are in the code 🌈
  • nqc β€” the Quasi Cyclic Number πŸ‘‘
  • nmqc β€” the number of M-sized QC operations in the parity check matrix πŸ’«
  • nm β€” the number of M-size vectors in N πŸ“
  • norm_type β€” says whether normalization is required or not βš–οΈ
  • no_packing β€” determines if multiple QC ops should be performed πŸ™ˆ
  • special_qc β€” the sub-matrix property for circulant weight > 0 πŸ’…
  • no_final_parity β€” decides if the final parity check needs to be performed πŸ”
  • max_schedule β€” an experimental code word scheduling limit (yes, experimental, we love a lil chaos 😭)
  • sc_off β€” the SC offset 🎯
  • la_off β€” the LA offset 🎯
  • qc_off β€” the QC offset 🎯
  • sc_table β€” pointer to the SC Table, and it must be page aligned ⚠️
  • la_table β€” pointer to the LA Table, and it must be page aligned ⚠️
  • qc_table β€” pointer to the QC Table, and it must be page aligned ⚠️
  • code_id β€” the LDPC Code itself, the main character 🫢
bestie listen to me: all three of those table pointers must be page aligned. Not vibes-aligned, page aligned. Do not come crying to me later πŸ’€

✨ Description

This structure describes the LDPC code that gets passed to the driver by the application. That's the whole energy of it β€” the app writes it, the driver receives it, the LDPC code gets described. Iconic, honestly πŸŽ€


πŸ”₯ SEE ALSO

Kernel file ./include/uapi/misc/xilinx_sdfec.h, plus the whole friend group: enum xsdfec_code(9), enum xsdfec_order(9), enum xsdfec_turbo_alg(9), enum xsdfec_state(9), enum xsdfec_axis_width(9), enum xsdfec_axis_word_include(9), struct xsdfec_turbo(9), struct xsdfec_status(9), struct xsdfec_irq(9), struct xsdfec_config(9), struct xsdfec_stats(9), struct xsdfec_ldpc_param_table_sizes(9), XSDFEC_START_DEV(9), XSDFEC_STOP_DEV(9), XSDFEC_GET_STATUS(9), XSDFEC_SET_IRQ(9), XSDFEC_SET_TURBO(9), XSDFEC_ADD_LDPC_CODE_PARAMS(9), XSDFEC_GET_CONFIG(9), XSDFEC_GET_TURBO(9), XSDFEC_SET_ORDER(9), XSDFEC_SET_BYPASS(9), XSDFEC_IS_ACTIVE(9), XSDFEC_CLEAR_STATS(9), XSDFEC_GET_STATS(9), XSDFEC_SET_DEFAULT_CONFIG(9) πŸ¦‹


k that's the whole page, go be page-aligned and slay πŸ’œ This one lives in ./include/uapi/misc, dated October 2026, and it's struct xsdfec_ldpc_params(9) β€” mwah, see u in the group chat πŸ’…βœ¨

πŸ“¦ where this page comes from