sev_cmd
struct kvm_sev_cmd sev_cmd;
if (copy_from_user(&sev_cmd, argp, sizeof(struct kvm_sev_cmd)))
!is_cmd_allowed_from_mirror(sev_cmd.id)) {
if (sev_snp_guest(kvm) && sev_cmd.id < KVM_SEV_SNP_LAUNCH_START) {
switch (sev_cmd.id) {
r = sev_guest_init(kvm, &sev_cmd);
r = sev_guest_init2(kvm, &sev_cmd);
r = sev_launch_start(kvm, &sev_cmd);
r = sev_launch_update_data(kvm, &sev_cmd);
r = sev_launch_update_vmsa(kvm, &sev_cmd);
r = sev_launch_measure(kvm, &sev_cmd);
r = sev_launch_finish(kvm, &sev_cmd);
r = sev_guest_status(kvm, &sev_cmd);
r = sev_dbg_crypt(kvm, &sev_cmd, true);
r = sev_dbg_crypt(kvm, &sev_cmd, false);
r = sev_launch_secret(kvm, &sev_cmd);
r = sev_get_attestation_report(kvm, &sev_cmd);
r = sev_send_start(kvm, &sev_cmd);
r = sev_send_update_data(kvm, &sev_cmd);
r = sev_send_finish(kvm, &sev_cmd);
r = sev_send_cancel(kvm, &sev_cmd);
r = sev_receive_start(kvm, &sev_cmd);
r = sev_receive_update_data(kvm, &sev_cmd);
r = sev_receive_finish(kvm, &sev_cmd);
r = snp_launch_start(kvm, &sev_cmd);
r = snp_launch_update(kvm, &sev_cmd);
r = snp_launch_finish(kvm, &sev_cmd);
if (copy_to_user(argp, &sev_cmd, sizeof(struct kvm_sev_cmd)))
} sev_cmd = { .c = { \
r = __vm_ioctl(vm, KVM_MEMORY_ENCRYPT_OP, &sev_cmd.raw); \
r ?: sev_cmd.c.error; \