plpks_gen_wrapping_key(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– plpks_gen_wrapping_key(9) β€” the Linux kernel API manual page, bestie edition πŸ’–

okay so this is the manual page for plpks_gen_wrapping_key(9) and I'm gonna walk you through it like we're chatting at 2am, because honestly it's giving "tiny function, big responsibilities." πŸŽ€


✨ NAME ✨

plpks_gen_wrapping_key β€” generate a brand-new random key with the 'wrapping key' policy set. that's it, that's the whole job, and it slays at it πŸ’…


⭐ SYNOPSIS ⭐

int plpks_gen_wrapping_key (void );

like, no arguments, no drama, just vibes and a return value πŸ¦‹


🌸 ARGUMENTS 🌸

  • void β€” no arguments, bestie. zero. none. the function said "I work alone" and honestly? main character energy πŸ‘‘

🧚 DESCRIPTION 🧚

okay so here's the tea β˜• the H_PKS_GEN_KEY HCALL makes the hypervisor generate a new random key and store that key in a PLPKS object with the provided object label.

ngl the next sentence in the source text is literally With the would be visible to the user. β€” it just trails off mid-thought 😭 I'm not gonna make up the missing words because that's not the move, so we're relaying it exactly how it sits there, incomplete and iconic.

Now for the part you actually came for: the possible reasons you'd get a negative errno back 🫢

  • -ENXIO β€” if PLPKS is not supported
  • -EIO β€” and this one has layers, bestie:
    • if PLPKS access is blocked due to the LPAR's state
    • if PLPKS modification is blocked due to the LPAR's state
    • if an error occurred while processing the request
  • -EINVAL β€” this one is a whole group chat of "something in the args is off":
    • if invalid authorization parameter
    • if invalid object label parameter
    • if invalid object label len parameter
    • if invalid or unsupported policy declaration
    • if invalid output buffer parameter
    • if invalid output buffer length parameter
  • -EPERM β€” if access is denied 🚫
  • -ENOMEM β€” if there is inadequate memory to perform this operation
  • -EBUSY β€” if unable to handle the request, she's booked and busy πŸ’€
  • -EEXIST β€” if the object label already exists πŸ‘€ taken, sorry

πŸ”₯ RETURN πŸ”₯

On success 0 is returned, a negative errno if not. short, sweet, and to the point β€” we love a clean contract ✨


🌈 SEE ALSO 🌈

Kernel file ./arch/powerpc/platforms/pseries/plpks.c β€” go read the source, it's right there, iykyk πŸ“–

and the whole PLPKS friend group, clocking in one by one:


πŸ’œ quick vibe check reminder: -EEXIST is not a bug, it's just the label already being taken. don't @ me.

and that's the page!! written from ./arch/powerpc/platforms/pseries, version stamped October 2026, and yes the title is plpks_gen_wrapping_key(9) β€” mwah, bye bestie, go generate some keys responsibly πŸ˜­πŸ’–πŸŒ·

πŸ“¦ where this page comes from