cpacf_trng(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’œ cpacf_trng β€” a little kernel manual moment

okay so this is cpacf_trng from section 9 of the Kernel API Manual, and honestly she's a whole vibe: a tiny function with a big job πŸŽ€

✨ NAME ✨

cpacf_trng β€” executes the TRNG subfunction of the PRNO instruction

like yes, that's the whole name, and yes, it ate πŸ’…

🌸 SYNOPSIS 🌸

void cpacf_trng (u8 *ucbuf , unsigned long ucbuf_len , u8 *cbuf ,
unsigned long cbuf_len );

that's it, that's the signature β€” no cap, she takes four args and returns void 🫢

πŸ¦‹ ARGUMENTS πŸ¦‹

okay bestie, here's who's who in the group chat:

  • ucbuf β€” buffer for unconditioned data 🌈
  • ucbuf_len β€” amount of unconditioned data to fetch in bytes
  • cbuf β€” buffer for conditioned data πŸ’–
  • cbuf_len β€” amount of conditioned data to fetch in bytes

so ucbuf + ucbuf_len is one pair, cbuf + cbuf_len is the other, and yes the "u" totally stands for unconditioned, iykyk ✨

πŸ”₯ SEE ALSO πŸ”₯

literally the whole cpacf cinematic universe, bestie β€” the actual kernel file lives at ./arch/s390/include/asm/cpacf.h, and these are her friends:

(note that _cpacf_kmac(9) and cpacf_kmac(9) are two separate entries β€” they're siblings, not a typo, do not come for me πŸ™ˆ)


heads up: I'm only telling you what's in the page, so if you want the deep lore, go read cpacf.h itself, mwah πŸ’‹

and that's the whole manual, periodt πŸ‘‘

β€” sign-off time πŸŽ€ this cutie lives in ./arch/s390/include/asm, dated October 2026, and she'll always answer to cpacf_trng(9) ⭐

πŸ“¦ where this page comes from