xref: /qemu/target/i386/kvm/tdx.h (revision 1619d0e45be0d1e48a46d80963b4e77dc1b000a2)
1756e12e7SXiaoyao Li /* SPDX-License-Identifier: GPL-2.0-or-later */
2756e12e7SXiaoyao Li 
3756e12e7SXiaoyao Li #ifndef QEMU_I386_TDX_H
4756e12e7SXiaoyao Li #define QEMU_I386_TDX_H
5756e12e7SXiaoyao Li 
6*1619d0e4SXiaoyao Li #ifndef CONFIG_USER_ONLY
7*1619d0e4SXiaoyao Li #include CONFIG_DEVICES /* CONFIG_TDX */
8*1619d0e4SXiaoyao Li #endif
9*1619d0e4SXiaoyao Li 
10756e12e7SXiaoyao Li #include "confidential-guest.h"
11756e12e7SXiaoyao Li 
12756e12e7SXiaoyao Li #define TYPE_TDX_GUEST "tdx-guest"
13756e12e7SXiaoyao Li #define TDX_GUEST(obj)  OBJECT_CHECK(TdxGuest, (obj), TYPE_TDX_GUEST)
14756e12e7SXiaoyao Li 
15756e12e7SXiaoyao Li typedef struct TdxGuestClass {
16756e12e7SXiaoyao Li     X86ConfidentialGuestClass parent_class;
17756e12e7SXiaoyao Li } TdxGuestClass;
18756e12e7SXiaoyao Li 
19756e12e7SXiaoyao Li typedef struct TdxGuest {
20756e12e7SXiaoyao Li     X86ConfidentialGuest parent_obj;
21756e12e7SXiaoyao Li 
22756e12e7SXiaoyao Li     uint64_t attributes;    /* TD attributes */
23756e12e7SXiaoyao Li } TdxGuest;
24756e12e7SXiaoyao Li 
25*1619d0e4SXiaoyao Li #ifdef CONFIG_TDX
26*1619d0e4SXiaoyao Li bool is_tdx_vm(void);
27*1619d0e4SXiaoyao Li #else
28*1619d0e4SXiaoyao Li #define is_tdx_vm() 0
29*1619d0e4SXiaoyao Li #endif /* CONFIG_TDX */
30*1619d0e4SXiaoyao Li 
31756e12e7SXiaoyao Li #endif /* QEMU_I386_TDX_H */
32