STRUCT SEV_DATA_SNP_INIT_EX(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ struct sev_data_snp_init_ex(9) πŸŽ€

okay so bestie, welcome to the Kernel API Manual β€” yes that Kernel API Manual β€” and today's main character is struct sev_data_snp_init_ex. it's an SNP_INIT_EX structure, and honestly? she's giving "quietly important." let's get into it πŸ’…


✨ NAME ✨

struct sev_data_snp_init_ex β€” the SNP_INIT_EX structure. that's it, that's the name, no notes 🫢


🌸 SYNOPSIS 🌸

bestie here's the whole shape of her, copy it exactly, don't @ me:

struct sev_data_snp_init_ex {
    u32 init_rmp:1;
    u32 list_paddr_en:1;
    u32 rapl_dis:1;
    u32 ciphertext_hiding_en:1;
    u32 tio_en:1;
    u32 rsvd:27;
    u32 rsvd1;
    u64 list_paddr;
    u16 max_snp_asid;
    u8 rsvd2[46];
 };

look at those little bitfields, so tiny, so precise. iconic ✨


πŸ’– Members πŸ’–

so the page itself only spells out a few of these, and I'm gonna tell you exactly what it says and nothing more, because making stuff up is not the vibe πŸ™ˆ

  • init_rmp β€” indicates that the RMP should be initialized. yes queen, set that flag.
  • list_paddr_en β€” indicates that list_paddr is valid. like a little "this one's real" permission slip πŸŽ€
  • rsvd β€” reserved. mind your business, nothing to see here.
  • rsvd1 β€” reserved. again. reserved means reserved, bestie πŸ’€
  • list_paddr β€” the system physical address of the range list. that's where the list lives, fr fr.
  • rsvd2 β€” reserved. the reserved-ification continues. πŸ’…
ngl, the struct also has rapl_dis, ciphertext_hiding_en, tio_en, and max_snp_asid sitting up in there β€” those absolutely exist in the synopsis above, the page just doesn't give them their own little description. so I'm not gonna invent one. we respect the source in this house 🫢

πŸ¦‹ SEE ALSO πŸ¦‹

so many siblings, it's a whole family reunion, and every single one is here, periodt:

Kernel file ./include/linux/psp-sev.h β€” and then, in order: 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_range(9), struct sev_data_range_list(9), struct sev_data_snp_shutdown_ex(9), struct sev_platform_init_args(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).


aaaand that's the whole page bestie, you ate that πŸ“βœ¨ mwah πŸ’œ

little sign-off: this one's stamped from ./include/linux, dated October 2026. so fresh, so demure. keep it in your bookmarks, iykyk πŸ‘‘
πŸ“¦ where this page comes from