STRUCT SEV_PLATFORM_INIT_ARGS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct sev_platform_init_args β€” bestie, this is the little args bundle you hand over when you're getting SEV platform stuff set up ✨ (she's lowkey iconic and the NAME line in the original said literally nothing else, so we're not gonna invent lore, okay? πŸ™ˆ)

This page lives in the Kernel API Manual, section 9, and it's giving "short but mighty" 🫢


🌸 SYNOPSIS 🌸

okay so here's the whole vibe, copied exactly, no cap:

struct sev_platform_init_args {
    int error;
    bool probe;
    unsigned int max_snp_asid;
 };

πŸŽ€ MEMBERS πŸŽ€

breakdown time, one member at a time, slay πŸ’…

  • error β€” the SEV firmware error code. yeah that's it. she's the receipts field πŸ“‹
  • probe β€” True if this is being called as part of the CCP module probe. when that happens, the SEV_INIT/SEV_INIT_EX firmware initialization gets deferred until it's actually needed β€” unless the psp_init_on_probe module param is set. so basically "we'll do it later bestie, chill" ⏳✨
  • max_snp_asid β€” when this is non-zero, it enables ciphertext hiding and specifies the maximum ASID that can be used for an SEV-SNP guest. non-zero = we're doing the thing πŸ”₯ zero = we are not 🧚
not me emphasizing that max_snp_asid only does its two jobs when it's non-zero β€” that's literally the whole condition, don't skip it πŸ’€

πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file ./include/linux/psp-sev.h β€” and then the entire friend group, fr fr, everybody's invited to this party πŸŽ‰ (yes, all of them, we're not cutting anyone from the list):

  • struct sev_data_init(9)
  • struct sev_data_init_ex(9)
  • struct sev_data_pek_csr(9)
  • struct sev_data_download_firmware(9)
  • struct sev_data_get_id(9)
  • struct sev_data_pdh_cert_export(9)
  • struct sev_data_decommission(9)
  • struct sev_data_activate(9)
  • struct sev_data_deactivate(9)
  • struct sev_data_guest_status(9)
  • struct sev_data_launch_start(9)
  • struct sev_data_launch_update_data(9)
  • struct sev_data_launch_update_vmsa(9)
  • struct sev_data_launch_measure(9)
  • struct sev_data_launch_secret(9)
  • struct sev_data_launch_finish(9)
  • struct sev_data_send_start(9)
  • struct sev_data_send_finish(9)
  • struct sev_data_send_cancel(9)
  • struct sev_data_receive_start(9)
  • struct sev_data_receive_update_data(9)
  • struct sev_data_receive_update_vmsa(9)
  • struct sev_data_receive_finish(9)
  • struct sev_data_dbg(9)
  • struct sev_data_attestation_report(9)
  • struct sev_data_snp_download_firmware(9)
  • struct sev_data_snp_activate(9)
  • struct sev_data_snp_addr(9)
  • struct sev_data_snp_launch_start(9)
  • struct sev_data_snp_launch_update(9)
  • struct sev_data_snp_launch_finish(9)
  • struct sev_data_snp_guest_status(9)
  • struct sev_data_snp_page_reclaim(9)
  • struct sev_data_snp_page_unsmash(9)
  • struct sev_data_snp_dbg(9)
  • struct sev_data_snp_guest_request(9)
  • struct sev_data_snp_init_ex(9)
  • struct sev_data_range(9)
  • struct sev_data_range_list(9)
  • struct sev_data_snp_shutdown_ex(9)
  • struct sev_data_snp_commit(9)
  • struct sev_data_snp_feature_info(9)
  • struct sev_data_snp_verify_mitigation(9)
  • struct sev_data_snp_verify_mitigation_dst(9)
  • struct sev_snp_tcb_version_genoa_milan(9)
  • struct sev_snp_tcb_version_turin(9)
  • sev_module_init(9)
  • sev_platform_init(9)
  • sev_platform_status(9)
  • sev_issue_cmd_external_user(9)
  • sev_guest_deactivate(9)
  • sev_guest_activate(9)
  • sev_guest_df_flush(9)
  • sev_guest_decommission(9)
  • sev_do_cmd(9)

that's the whole page bestie, no filler, we ate and left no crumbs πŸ“πŸ’œ

and for the cute sign-off: this lil masterpiece comes from the source tree at ./include/linux, dated October 2026, and her header is literally struct sev_...rm_init_args(9) because the terminal had to truncate the glow-up 😭 β€” go read the other pages, ily, bye πŸ§šπŸ’–

πŸ“¦ where this page comes from