vic_init(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… vic_init β€” NAME ✨

vic_init β€” the moment you initialise a vectored interrupt controller, and honestly? iconic behaviour.

okay so this is from the Kernel API Manual (section 9, the kernel developer one, iykyk) and it's your girl's guide to waking up a VIC and telling it which interrupt sources are allowed to exist. let's get into it πŸŽ€


🌸 SYNOPSIS 🌸

void vic_init (void __iomem *base , unsigned int irq_start , u32
vic_sources , u32 resume_sources );

no return value, no drama, just vibes and a void. periodt.


πŸ’œ ARGUMENTS πŸ’œ

  • base β€” the iomem base address. like, where the controller actually lives in memory. that's the whole address, bestie, don't lose it πŸ™ˆ
  • irq_start β€” the starting interrupt number. must be muliple of 32 (yes that's literally how the page spells it, i'm not fixing it, we don't do that here πŸ’…). so like… multiples of 32 only. 0, 32, 64, and so on. do the math or the vibe check fails.
  • vic_sources β€” a u32 bitmask of interrupt sources to allow. this is the guest list. one bit per source. if you're not on the list you're not getting in 🚫
  • resume_sources β€” a u32 bitmask of interrupt sources to allow for resume. so there's a second, separate guest list for when the system comes back from suspend. two lists. two vibes. keep them straight πŸ¦‹
ngl this one is short but it's doing a lot β€” you're handing it a controller address, an IRQ starting point, and two whole allow-lists. main character energy for real 🌟

🧚 SEE ALSO 🧚

go read the source, it's giving open book exam:

all of those are your little sisters in the same file, and honestly? they all slay πŸ’–


🌈 a little sign-off 🌈

so yeah β€” that's vic_init, living in ./drivers/irqchip, and the page itself dates back to October 2026 (yes, time travel, don't think about it too hard ⭐). go initialise those vectored interrupt controllers, bestie, and remember: bitmasks are just friendship lists with extra steps 🫢✨

πŸ“¦ where this page comes from