UNION NPS_PKT_SLC_INT_LEVELS(9)
π 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
- 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