cpacf_trng(9)
π 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 bytescbufβ 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:
cpacf_query(9)cpacf_qai(9)cpacf_km(9)cpacf_kmc(9)cpacf_kimd(9)cpacf_klmd(9)_cpacf_kmac(9)cpacf_kmac(9)cpacf_kmctr(9)cpacf_prno(9)cpacf_pcc(9)cpacf_pckmo(9)cpacf_kma(9)
(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
- 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