plpks_write_var(9)
π 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,-EIOand-EINVALeach 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
- 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