STRUCT SEV_DATA_GET_ID(9)
π 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β au64holding 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β au32holding 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 π):
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)
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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms