kvm_nvhe_unwind_init(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… kvm_nvhe_unwind_init β€” like, the Kernel API Manual page you didn't know you needed

okay so bestie, buckle up πŸŽ€ this one is from the kernel's own manual (kvm_nvhe_unwind_init(9), yes that's the whole page name, iconic), and it's honestly tiny but it's so important. it's the little function that kicks off an unwind starting from a specific fp and pc down in nVHE HYP land. let's get into it ✨


✨ NAME ✨

kvm_nvhe_unwind_init β€” start an unwind from the given nVHE HYP fp and pc 🧚

like literally that's the whole job. it sets the stage so the unwinder knows where to begin. no cap.


🌸 SYNOPSIS 🌸

void kvm_nvhe_unwind_init (struct unwind_state *state , unsigned long fp
, unsigned long pc );

she takes three things, returns nothing (void, so don't go looking for a return value, there isn't one πŸ’€). the vibes are: hand her a state, a frame pointer, and a program counter, and she'll do the rest.


πŸ¦‹ ARGUMENTS πŸ¦‹

  • state β€” the unwind_state you want to initialize 🫢 this is the main character, the thing she's filling in for you.
  • fp β€” the frame pointer at which to start the unwinding. that's your starting point, your origin story πŸ’–
  • pc β€” the program counter at which to start the unwinding. yeah, both of them, she needs both, that's the whole point ✨
real talk: state gets initialized by this, so it's not a "read it and tell me stuff" situation β€” she's writing into it. treat it accordingly πŸ™ˆ

πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./arch/arm64/include/asm/stacktrace/nvhe.h β€” go read the source, it's giving lore, iykyk πŸ‘‘

and that's the whole page, bestie, we ate and left no crumbs πŸ“

cute little sign-off: this one ships out of the kernel source file ./arch/arm64/include/asm/stacktrace/nvhe.h (the footer squishes it down to ./arch/arm64/include/asm/stack..., but you get it πŸ’œ), and it's dated October 2026 ⭐ so yeah, future energy fr fr. bye bestie, happy unwinding πŸŒˆπŸ’…

πŸ“¦ where this page comes from