register_fprobe_ips(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… register_fprobe_ips β€” Kernel API Manual, section 9 πŸ’…

okay so bestie, welcome to register_fprobe_ips(9) β€” the page that's gonna teach you how to register an fprobe to ftrace by address. yes, address. not symbol. we're being specific today. ✨


🌸 SYNOPSIS 🌸

int register_fprobe_ips (struct fprobe *fp , unsigned long *addrs , int num );

that's it. that's the whole vibe check. three args, one int coming back at you. 🫢


πŸŽ€ ARGUMENTS πŸŽ€

  • fp β€” the fprobe data structure you want to get registered. your little probe baby. πŸ₯Ί
  • addrs β€” an array of target function addresses. plural, because yes, you're doing multiple.
  • num β€” the number of entries in addrs. like, how many addresses you actually put in there. don't lie to it.

πŸ¦‹ DESCRIPTION πŸ¦‹

so what this does is: it registers fp to ftrace so that the probe gets enabled on the addresses you handed over in addrs. simple enough, right? but β€” and this is the part where you need to pay attention, bestie β€” those addrs must be the addresses of the ftrace location address, which may be the symbol address + an arch-dependent offset. yes, arch-dependent. meaning it changes per architecture. iykyk. 😭

🚨 if you're sitting here like "wait, i'm not sure what that means" β€” same, no judgment β€” then the manpage has a direct instruction for you: please use other registration functions. do not pass go. do not collect $200. go use the other ones. πŸ’€

it returns 0 if fp got registered successfully, and -errno if it did not. so like, zero is the slay outcome. negative errno is the not-slaying outcome. check it. πŸ”₯


πŸ‘‘ SEE ALSO πŸ‘‘

go look at the kernel file ./kernel/trace/fprobe.c, and also these fellow icons:


⭐ little sign-off ⭐

this page lives in ./kernel/trace, dated October 2026, and it's register_fprobe_ips(9) from the Kernel API Manual β€” go register some probes responsibly, bestie. mwah. πŸ’–πŸ§šπŸŒˆ

πŸ“¦ where this page comes from