plpks_write_var(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… plpks_write_var β€” Kernel API Manual ✨

Okay so bestie, welcome to the plpks_write_var(9) page β€” it's lowkey a whole vibe, and honestly it's giving "small function, big power." Sit down, grab a strawberry πŸ“, and let's get into it.


✨ NAME ✨

plpks_write_var β€” Write the specified variable and its data to PLPKS. Periodt. That's the whole job. πŸ’–


πŸŽ€ SYNOPSIS πŸŽ€

int plpks_write_var (struct plpks_var var );

That's it. One arg. We love a minimal queen. πŸ‘‘


πŸ¦‹ ARGUMENTS πŸ¦‹

  • var β€” the variable to be written into the PLPKS. Like, this is the thing you're yeeting into the store, bestie, so make it a good one. 🫢

πŸ”₯ DESCRIPTION πŸ”₯

So the H_PKS_WRITE_OBJECT HCALL is the actual main character here β€” it writes an object into the PLPKS. For this to be a slay and not a flop, the caller must provide a valid component type for the variable, and the signed update policy flag must not be set. No cap, those are the rules. πŸ’…

And now? The part everyone asks about at 2am: possible reasons for the returned errno values. Bestie, there are so many of them. Here's the full set, no skipping, iykyk:

  • -ENXIO β€” if PLPKS is not supported
  • -EIO β€” 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 β€” if invalid authorization parameter
    • if invalid object label parameter
    • if invalid object label len parameter
    • if invalid or unsupported policy declaration
    • if invalid input data parameter
    • if invalid input data len parameter
  • -EPERM β€” if access is denied
  • -ENOMEM β€” if unable to store the requested object in the space available
  • -EBUSY β€” if unable to handle the request
  • -EEXIST β€” if the object label already exists
Yeah, -EIO and -EINVAL each come with their own little friend group of causes. Read them all before you go blaming the wrong thing 😭

⭐ RETURN ⭐

On success, 0 is returned β€” iconic, we love a clean exit πŸŽ‰ β€” and a negative errno if not. F in the chat for the failure case. πŸ’€


🌈 SEE ALSO 🌈

Kernel file ./arch/powerpc/platforms/pseries/plpks.c

And the rest of the plpks bestie squad, in order:

plpks_get_version(9), plpks_get_objoverhead(9), plpks_get_maxpwsize(9), plpks_get_maxobjectsize(9), plpks_get_maxobjectlabelsize(9), plpks_get_totalsize(9), plpks_get_usedspace(9), plpks_get_supportedpolicies(9), plpks_get_maxlargeobjectsize(9), plpks_get_signedupdatealgorithms(9), plpks_get_wrappingfeatures(9), plpks_get_passwordlen(9), plpks_is_available(9), plpks_signed_update_var(9), plpks_remove_var(9), plpks_wrapping_is_supported(9), plpks_gen_wrapping_key(9), plpks_wrap_object(9), plpks_unwrap_object(9), plpks_read_os_var(9), plpks_read_fw_var(9), plpks_read_bootloader_var(9), plpks_populate_fdt(9), plpks_early_init_devtree(9)


✨ that's the whole page, bestie ✨ 🧚 This one comes to you from ./arch/powerpc/platforms/pseries, dated October 2026, and it's the plpks_write_var(9) manual page β€” go forth and write those variables responsibly, mwah πŸ’œπŸŽ€πŸŒΈ

πŸ“¦ where this page comes from