119 lines
3.0 KiB
Diff
119 lines
3.0 KiB
Diff
|
From fd981d8bae5ef3b9056845add32a0830356b3b7f Mon Sep 17 00:00:00 2001
|
||
|
From: Brijesh Singh <brijesh.singh@amd.com>
|
||
|
Date: Tue, 6 Feb 2018 19:08:08 -0600
|
||
|
Subject: [PATCH] kvm: update kvm.h to include memory encryption ioctls
|
||
|
|
||
|
Updates kmv.h to include memory encryption ioctls and SEV commands.
|
||
|
|
||
|
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
|
||
|
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
|
||
|
Cc: Paolo Bonzini <pbonzini@redhat.com>
|
||
|
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
|
||
|
[BR: FATE#322124]
|
||
|
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||
|
---
|
||
|
linux-headers/linux/kvm.h | 90 +++++++++++++++++++++++++++++++++++++++++++++++
|
||
|
1 file changed, 90 insertions(+)
|
||
|
|
||
|
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
|
||
|
index dd8a91801e..04b5801d03 100644
|
||
|
--- a/linux-headers/linux/kvm.h
|
||
|
+++ b/linux-headers/linux/kvm.h
|
||
|
@@ -1356,6 +1356,96 @@ struct kvm_s390_ucas_mapping {
|
||
|
/* Available with KVM_CAP_S390_CMMA_MIGRATION */
|
||
|
#define KVM_S390_GET_CMMA_BITS _IOWR(KVMIO, 0xb8, struct kvm_s390_cmma_log)
|
||
|
#define KVM_S390_SET_CMMA_BITS _IOW(KVMIO, 0xb9, struct kvm_s390_cmma_log)
|
||
|
+/* Memory Encryption Commands */
|
||
|
+#define KVM_MEMORY_ENCRYPT_OP _IOWR(KVMIO, 0xba, unsigned long)
|
||
|
+
|
||
|
+struct kvm_enc_region {
|
||
|
+ __u64 addr;
|
||
|
+ __u64 size;
|
||
|
+};
|
||
|
+
|
||
|
+#define KVM_MEMORY_ENCRYPT_REG_REGION _IOR(KVMIO, 0xbb, struct kvm_enc_region)
|
||
|
+#define KVM_MEMORY_ENCRYPT_UNREG_REGION _IOR(KVMIO, 0xbc, struct kvm_enc_region)
|
||
|
+
|
||
|
+/* Secure Encrypted Virtualization command */
|
||
|
+enum sev_cmd_id {
|
||
|
+ /* Guest initialization commands */
|
||
|
+ KVM_SEV_INIT = 0,
|
||
|
+ KVM_SEV_ES_INIT,
|
||
|
+ /* Guest launch commands */
|
||
|
+ KVM_SEV_LAUNCH_START,
|
||
|
+ KVM_SEV_LAUNCH_UPDATE_DATA,
|
||
|
+ KVM_SEV_LAUNCH_UPDATE_VMSA,
|
||
|
+ KVM_SEV_LAUNCH_SECRET,
|
||
|
+ KVM_SEV_LAUNCH_MEASURE,
|
||
|
+ KVM_SEV_LAUNCH_FINISH,
|
||
|
+ /* Guest migration commands (outgoing) */
|
||
|
+ KVM_SEV_SEND_START,
|
||
|
+ KVM_SEV_SEND_UPDATE_DATA,
|
||
|
+ KVM_SEV_SEND_UPDATE_VMSA,
|
||
|
+ KVM_SEV_SEND_FINISH,
|
||
|
+ /* Guest migration commands (incoming) */
|
||
|
+ KVM_SEV_RECEIVE_START,
|
||
|
+ KVM_SEV_RECEIVE_UPDATE_DATA,
|
||
|
+ KVM_SEV_RECEIVE_UPDATE_VMSA,
|
||
|
+ KVM_SEV_RECEIVE_FINISH,
|
||
|
+ /* Guest status and debug commands */
|
||
|
+ KVM_SEV_GUEST_STATUS,
|
||
|
+ KVM_SEV_DBG_DECRYPT,
|
||
|
+ KVM_SEV_DBG_ENCRYPT,
|
||
|
+ /* Guest certificates commands */
|
||
|
+ KVM_SEV_CERT_EXPORT,
|
||
|
+
|
||
|
+ KVM_SEV_NR_MAX,
|
||
|
+};
|
||
|
+
|
||
|
+struct kvm_sev_cmd {
|
||
|
+ __u32 id;
|
||
|
+ __u64 data;
|
||
|
+ __u32 error;
|
||
|
+ __u32 sev_fd;
|
||
|
+};
|
||
|
+
|
||
|
+struct kvm_sev_launch_start {
|
||
|
+ __u32 handle;
|
||
|
+ __u32 policy;
|
||
|
+ __u64 dh_uaddr;
|
||
|
+ __u32 dh_len;
|
||
|
+ __u64 session_uaddr;
|
||
|
+ __u32 session_len;
|
||
|
+};
|
||
|
+
|
||
|
+struct kvm_sev_launch_update_data {
|
||
|
+ __u64 uaddr;
|
||
|
+ __u32 len;
|
||
|
+};
|
||
|
+
|
||
|
+
|
||
|
+struct kvm_sev_launch_secret {
|
||
|
+ __u64 hdr_uaddr;
|
||
|
+ __u32 hdr_len;
|
||
|
+ __u64 guest_uaddr;
|
||
|
+ __u32 guest_len;
|
||
|
+ __u64 trans_uaddr;
|
||
|
+ __u32 trans_len;
|
||
|
+};
|
||
|
+
|
||
|
+struct kvm_sev_launch_measure {
|
||
|
+ __u64 uaddr;
|
||
|
+ __u32 len;
|
||
|
+};
|
||
|
+
|
||
|
+struct kvm_sev_guest_status {
|
||
|
+ __u32 handle;
|
||
|
+ __u32 policy;
|
||
|
+ __u32 state;
|
||
|
+};
|
||
|
+
|
||
|
+struct kvm_sev_dbg {
|
||
|
+ __u64 src_uaddr;
|
||
|
+ __u64 dst_uaddr;
|
||
|
+ __u32 len;
|
||
|
+};
|
||
|
|
||
|
#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
|
||
|
#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
|