UNION NPS_PKT_SLC_CTL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 spelled
  • rh β€” 1 bit
  • z β€” 1 bit
  • enb β€” 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