/* * QEMU Secure Encrypted Virutualization (SEV) support * * Copyright: Advanced Micro Devices, 2016-2018 * * Authors: * Brijesh Singh * * This work is licensed under the terms of the GNU GPL, version 2 or later. * See the COPYING file in the top-level directory. * */ #ifndef QEMU_SEV_I386_H #define QEMU_SEV_I386_H #include "qom/object.h" #include "qapi/error.h" #include "sysemu/kvm.h" #include "qemu/error-report.h" #define SEV_POLICY_NODBG 0x1 #define SEV_POLICY_NOKS 0x2 #define SEV_POLICY_ES 0x4 #define SEV_POLICY_NOSEND 0x8 #define SEV_POLICY_DOMAIN 0x10 #define SEV_POLICY_SEV 0x20 #define TYPE_QSEV_GUEST_INFO "sev-guest" #define QSEV_GUEST_INFO(obj) \ OBJECT_CHECK(QSevGuestInfo, (obj), TYPE_QSEV_GUEST_INFO) typedef struct QSevGuestInfo QSevGuestInfo; typedef struct QSevGuestInfoClass QSevGuestInfoClass; /** * QSevGuestInfo: * * The QSevGuestInfo object is used for creating a SEV guest. * * # $QEMU \ * -object sev-guest,id=sev0 \ * -machine ...,memory-encryption=sev0 */ struct QSevGuestInfo { Object parent_obj; char *sev_device; uint32_t policy; uint32_t handle; char *dh_cert_file; char *session_file; uint32_t cbitpos; uint32_t reduced_phys_bits; }; struct QSevGuestInfoClass { ObjectClass parent_class; }; #endif