STRUCT SEV_DATA_LAUNCH_UPDATE_VMSA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ struct sev_data_launch_update_vmsa β€” LAUNCH_UPDATE_VMSA command πŸŽ€

Okay bestie, this is a page from the Kernel API Manual, and it's about struct sev_data_launch_update_vmsa β€” the struct that carries the LAUNCH_UPDATE_VMSA command. That's it, that's the whole vibe. It's a little descriptor struct, no cap. πŸ’…


✨ NAME ✨

struct sev_data_launch_update_vmsa β€” the LAUNCH_UPDATE_VMSA command, literally right there in the name 🫢


🌸 SYNOPSIS 🌸

Here's the shape of it, character for character, don't touch:

struct sev_data_launch_update_vmsa {
    u32 handle;
    u32 reserved;
    u64 address;
    u32 len;
 };

πŸ¦‹ Members πŸ¦‹

So the members list describes three of them (we do not gatekeep, but we also do not invent entries β€” the reserved field is just out here living its life undescribed in the original page, and we're not gonna make up a description for it, periodt πŸ™ˆ):

  • handle β€” the handle of the VM πŸ‘‘ like, which VM are we talking about? This one.
  • address β€” the physical address of the memory region to encrypt πŸ”₯
  • len β€” the len of the memory region to encrypt. Yes, "len of". Iconic. 🌈

πŸ’œ SEE ALSO πŸ’œ

Kernel file ./include/linux/psp-sev.h β€” and then, babes, there is a whole friend group of sibling structs and functions to check out. Every single one, in order, no skips:

  • 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_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)
  • 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)

Heads up bestie: struct sev_data_launch_update_vmsa is spelled with a lowercase v in vmsa, but the command is LAUNCH_UPDATE_VMSA in all caps. Two different vibes, both correct, don't come for me πŸ’€

That's the whole page, mwah πŸ’– It lives in ./include/linux, and this version is dated October 2026 β€” so like, future-coded of it. Go read the SEE ALSO list, it's giving "study group" and honestly every one of them ate. Periodt. πŸŽ€βœ¨

πŸ“¦ where this page comes from