UNION NPS_PKT_SLC_CTL(9)
π union nps_pkt_slc_ctl β Solicited Packet Out Control Registers π
okay bestie, welcome to the Kernel API Manual corner of the group chat β¨ this one is a page about union nps_pkt_slc_ctl, and the whole vibe is "control register, but make it a union." iconic honestly.
πΈ NAME πΈ
union nps_pkt_slc_ctl β Solicited Packet Out Control Registers</p> π
like, that's the entire name section. short, sweet, slays, leaves.
β¨ SYNOPSIS β¨
bestie. deep breath. here's the whole struct, copied exactly, no notes, no edits, no "fixing" the semicolons on the preprocessor lines β they're there in the original and they stay π«Ά
union nps_pkt_slc_ctl {
u64 value;
struct {
#if defined(__BIG_ENDIAN_BITFIELD);
u64 raz : 61;
u64 rh : 1;
u64 z : 1;
u64 enb : 1;
#else;
u64 enb : 1;
u64 z : 1;
u64 rh : 1;
u64 raz : 61;
#endif;
} s;
};
the way this works is genuinely so satisfying: you can poke the register as one whole u64 value, or through s as individual bitfields β and the field order flips depending on whether __BIG_ENDIAN_BITFIELD is defined. enb gets to be the last field in big-endian and the first field otherwise. main character energy, honestly π
the fields you'll meet:
valueβ the full 64-bit view of the register π₯razβ a 61-bit field, exactly as spelledrhβ 1 bitzβ 1 bitenbβ 1 bit, and yes it's the one that moves around in the#if
heads up: this page doesn't give field-level write-ups beyond the struct itself, so don't @ me for the lore β it's just not in here π
π Members π
the section is literally called Members and it'sβ¦ empty. not a single member documented below it. it's giving "showed up to the party and said nothing" π anyway, that's the section, it exists, we respect it.
π¦ SEE ALSO π¦
a whole squad of unions, no cap β all listed exactly as they appear:
union ucd_core_eid_ucode_block_num(9)union aqm_grp_execmsk_lo(9)union aqm_grp_execmsk_hi(9)union aqmq_drbl(9)union aqmq_qsz(9)union aqmq_cmp_thr(9)union aqmq_cmp_cnt(9)union aqmq_en(9)union aqmq_activity_stat(9)union emu_fuse_map(9)union emu_se_enable(9)union emu_ae_enable(9)union emu_wd_int_ena_w1s(9)union emu_ge_int_ena_w1s(9)union nps_pkt_slc_cnts(9)union nps_pkt_slc_int_levels(9)union nps_pkt_in_done_cnts(9)union nps_pkt_in_instr_ctl(9)union nps_pkt_in_instr_rsize(9)union nps_pkt_in_instr_baoff_dbell(9)union nps_core_int_ena_w1s(9)union nps_core_gbl_vfcfg(9)union nps_core_int_active(9)union efl_core_int(9)union efl_core_int_ena_w1s(9)union efl_rnm_ctl_status(9)union bmi_ctl(9)union bmi_int_ena_w1s(9)union bmo_ctl2(9)union pom_int_ena_w1s(9)union lbc_inval_ctl(9)union lbc_int_ena_w1s(9)union lbc_int(9)union lbc_inval_status(9)union rst_boot(9)union fus_dat1(9)
the kernel file these live in: ./drivers/crypto/cavium/nitrox/nitrox_csr.h β yes, the nitrox csr header, go read it, it's a whole mood π
π§ sign-off π§
official footer vibes: this page comes from ./drivers/crypto/cavium/nitrox, dated October 2026, and the page itself is union nps_pkt_slc_ctl(9). that's the whole citation, copied with love, and yes I'm obsessed with it ππ
periodt. go read the bitfields. π
π¦ 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