tm_cvmx_get(9)
okay so bestie, welcome to the tm_cvmx_get(9) page from the Kernel API Manual β yes, we're doing checkpointed VMX register lore today and it's lowkey iconic β¨π
πΈ NAME πΈ
tm_cvmx_get β get CMVX registers. That's the name, that's the whole assignment, periodt.
β¨ SYNOPSIS β¨
int tm_cvmx_get (struct task_struct *target , const struct user_regset
*regset , struct membuf to );
Not me putting the signature in here exactly as it is, because we do not play around with prototypes π₯
π ARGUMENTS π
targetβ the target task. Like, the task in question πregsetβ the user regset structure. That's the regset, bestie.toβ destination of copy. It's literally where the copy goes, no cap.
π¦ DESCRIPTION π¦
Okay so this function gets in transaction checkpointed VMX registers. Iykyk β it's giving transaction checkpoint realness, fr fr.
When the transaction is active, ckvr_state and ckvrsave hold the checkpointed values for the current transaction to fall back on if it aborts in between. The way that's such a safety-net moment: if it aborts in between, those checkpointed values are the fallback π«Ά
The userspace interface buffer layout is as follows:
struct data { vector128 vr[32]; vector128 vscr; vector128
vrsave; };
That's the layout exactly β vr[32], then vscr, then vrsave, all chilling inside struct data. Obsessed with a buffer layout that knows exactly what it is π
π₯ SEE ALSO π₯
Kernel file ./arch/powerpc/kernel/ptrace/ptrace-tm.c β go read it, bestie, it's right there:
tm_cgpr_active(9)tm_cgpr_get(9)tm_cfpr_active(9)tm_cfpr_get(9)tm_cfpr_set(9)tm_cvmx_active(9)tm_cvmx_set(9)tm_cvsx_active(9)tm_cvsx_get(9)tm_cvsx_set(9)tm_spr_active(9)tm_spr_get(9)tm_spr_set(9)
mwah π this page comes from ./arch/powerpc/kernel/ptrace, dated October 2026 β signed, sealed, and slayed π
π¦ 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