UNION NPS_PKT_SLC_INT_LEVELS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… union nps_pkt_slc_int_levels β€” Kernel API Manual

okay so bestie, you've stumbled into the Kernel API Manual and this page is all about union nps_pkt_slc_int_levels, which is the Solicited Packet Out Interrupt Levels Registers situation. it's giving hardware register energy, it's giving bitfield realness, and honestly? it's kinda iconic. let's get into it πŸ’–


✨ NAME ✨

union nps_pkt_slc_int_levels β€” Solicited Packet Out Interrupt Levels Registers.

like yes, that's the whole name, and yes it's a mouthful, but we move 🫢


πŸŽ€ SYNOPSIS πŸŽ€

bestie. look at this struct. it's a union wrapping a u64 and a bitfield struct, and there's an endianness split because of course there is. do not touch the semicolons after the #if/#else/#endif β€” they're canon, I don't make the rules, I just report them:

union nps_pkt_slc_int_levels {
    u64 value;
    struct {
  #if defined(__BIG_ENDIAN_BITFIELD);
      u64 bmode : 1;
      u64 raz : 9;
      u64 timet : 22;
      u64 cnt : 32;
  #else;
      u64 cnt : 32;
      u64 timet : 22;
      u64 raz : 9;
      u64 bmode : 1;
  #endif;
    } s;
 };

so on big endian you read it top-down (bmode, raz, timet, cnt) and otherwise it flips (cnt, timet, raz, bmode). same bits, different order, extremely on brand for kernel code πŸ’€


🌸 Members 🌸

okay so this heading is right here in the manpage, but there are genuinely no entries under it. not one. it's a blank section, a little void, a "we left space for you" moment πŸ™ˆ iykyk.

if you want the actual fields, they're all up in that SYNOPSIS struct above β€” value, s, bmode, raz, timet, cnt β€” that's where the tea is. this section just didn't get the memo ✨


πŸ¦‹ SEE ALSO πŸ¦‹

the cross-reference list goes stupid hard, so buckle up bestie, we're listing every single one:

  • 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_ctl(9)
  • union nps_pkt_slc_cnts(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)

and where does it live? kernel file, right here bestie:

./drivers/crypto/cavium/nitrox/nitrox_csr.h

ngl, the whole "Members" section being empty is the most relatable thing on this page. we've all been there. no cap πŸ’…

okay that's the whole page, you ate that πŸ“ and for the sign-off: this lil slice of kernel lore comes to you from ./drivers/crypto/cavium/nitrox, dated October 2026. periodt, go read some more unions πŸ’œ

πŸ“¦ where this page comes from