STRUCT SEV_DATA_GET_ID(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct sev_data_get_id(9)

okay so bestie, welcome to the Kernel API Manual ✨ this one is a little baby struct from way down in ./include/linux/psp-sev.h, and honestly? she's giving minimal, she's giving efficient, she's giving two fields and a dream πŸŽ€


🌸 NAME 🌸

struct sev_data_get_id β€” the parameters for the GET_ID command, no cap 🫢


✨ SYNOPSIS ✨

struct sev_data_get_id {
    u64 address;
    u32 len;
 };

that's it. that's the whole struct. she ate and left zero crumbs πŸ’…


πŸ¦‹ Members πŸ¦‹

okay so let's meet the two icons in this struct, one at a time πŸ”₯

  • address β€” a u64 holding the physical address of the region where the unique CPU ID(s) get placed. like, this is the drop-off spot for the goods πŸ“
  • len β€” a u32 holding the len of the region. literally the size of that region, that's the whole vibe πŸ“

πŸ’œ SEE ALSO πŸ’œ

so there's a whole friend group here and you already know i'm about to introduce every single one of them, because nobody gets left out in this house 🫢

the kernel file that started it all (./include/linux/psp-sev.h):

  • ./include/linux/psp-sev.h

and now the full squad, glow-ups included 🌈

the init / cert / firmware girlies:

  • 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_pdh_cert_export(9)

the lifecycle besties:

  • struct sev_data_decommission(9), struct sev_data_activate(9), struct sev_data_deactivate(9), struct sev_data_guest_status(9)

the launch era (main character energy fr):

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

the send / receive girlies:

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

the debug + attestation cuties:

  • struct sev_data_dbg(9), struct sev_data_attestation_report(9)

the SNP fam (yes there are a LOT of them, stay with me 🫢):

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

the range girlies + the args + the tcb version queens:

  • struct sev_data_range(9), struct sev_data_range_list(9), struct sev_platform_init_args(9), struct sev_snp_tcb_version_genoa_milan(9), struct sev_snp_tcb_version_turin(9)

and the function besties (final row, we made it 😭):


and that's the whole page bestie, you're officially educated πŸ’–

shoutout to ./include/linux for keeping the source, to October 2026 for the date stamp, and to struct sev_data_get_id(9) herself for the header β€” iconic behavior from start to finish, periodt πŸ‘‘βœ¨

πŸ“¦ where this page comes from