STRUCT SEV_DATA_SNP_LAUNCH_START(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct sev_data_snp_launch_start(9)

okay so this is from the Kernel API Manual bestie, and we're talking about struct sev_data_snp_launch_start β€” literally the parameter blob for the SNP_LAUNCH_START command. no cap, it's the lil glow-up moment before your SNP guest even exists. πŸ¦‹


✨ NAME ✨

struct sev_data_snp_launch_start β€” the params for the SNP_LAUNCH_START command, periodt πŸŽ€


🌸 SYNOPSIS 🌸

here's the whole vibe, character for character:

struct sev_data_snp_launch_start {
    u64 gctx_paddr;
    u64 policy;
    u64 ma_gctx_paddr;
    u32 ma_en:1;
    u32 imi_en:1;
    u32 rsvd:30;
    u32 desired_tsc_khz;
    u8 gosvw[16];
 };

πŸ‘‘ Members πŸ‘‘

okay bestie, field-by-field, let's go πŸ’–

  • gctx_paddr β€” the system physical address of the guest context page. like, where the guest context actually lives in memory. slay.
  • policy β€” the guest policy. yes, the whole policy. iconic.
  • ma_gctx_paddr β€” the system physical address of the migration agent. that's the migration agent's guest context, for the record 🫢
  • ma_en β€” says the guest is associated with a migration agent. one bit, big responsibilities ngl.
  • imi_en β€” this launch flow is launching an IMI (Incoming Migration Image) for the purpose of guest-assisted migration. literally what it says 😭
  • rsvd β€” reserved. not your moment, leave it alone πŸ’€
  • desired_tsc_khz β€” the hypervisor's desired mean TSC freq in kHz of the guest. kHz, bestie, kHz.
  • gosvw β€” guest OS-visible workarounds, as defined by hypervisor. that's u8 gosvw[16], sixteen whole bytes of workaround lore 🌈

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./include/linux/psp-sev.h, plus the entire friend group β€” the way this list just goes on and on, we love a generous cross-reference era ✨

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

that's the whole page, bestie, no notes πŸ’œ

sign-off tea β˜•: this one's sourced from ./include/linux and dated October 2026 β€” so yeah, it's giving future-iconic. go forth and launch start your SNP guests responsibly πŸ§šβ€β™€οΈβ­
πŸ“¦ where this page comes from