tm_cfpr_set(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 tm_cfpr_set(9) 🌸

ok so bestie, welcome to the tm_cfpr_set(9) page from the Kernel API Manual β€” yes it's a kernel manpage, yes we're gonna make it cute, no we are NOT skipping a single detail πŸ’…


✨ NAME ✨

tm_cfpr_set β€” set CFPR registers πŸŽ€


✨ SYNOPSIS ✨

int tm_cfpr_set (struct task_struct *target , const struct user_regset
*regset , unsigned int pos , unsigned int count , const void *kbuf ,
const void __user *ubuf );

like look at that signature, it's giving main character energy fr fr πŸ‘‘


✨ ARGUMENTS ✨

  • target β€” the target task, the one we're doing all this for 🫢
  • regset β€” the user regset structure, iconic, we love her
  • pos β€” the buffer position, i.e. where in the buffer we're at πŸ“
  • count β€” number of bytes to copy, literally the amount, no cap
  • kbuf β€” kernel buffer to copy into, that's the destination bestie
  • ubuf β€” user buffer to copy from, that's the source πŸ’–

✨ DESCRIPTION ✨

okay so this function sets in transaction checkpointed FPR registers πŸ”₯ that's the whole vibe.

When the transaction is active, ckfp_state holds the checkpointed FPR register values for the current transaction β€” the ones it's gonna fall back on if it aborts in between. This function sets those checkpointed FPR registers. Lowkey important stuff 😭

The userspace interface buffer layout is as follows:

struct data { u64     fpr[32]; u64     fpscr; };

that's it, that's the layout, memorise it 🧚


✨ SEE ALSO ✨

Kernel file ./arch/powerpc/kernel/ptrace/ptrace-tm.c β€” go read the whole friend group bestie, they're all here:


and that's the page!! πŸ’œ this lil beauty lives in ./arch/powerpc/kernel/ptrace and the version/date stamp says October 2026, so yeah, from the future, slay ⭐ oh and the page is literally called tm_cfpr_set(9) in case you forgot already πŸ™ˆ bye bestie πŸ¦‹

πŸ“¦ where this page comes from