1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* Automatically generated TDX global metadata structures. */ 3 #ifndef _X86_VIRT_TDX_AUTO_GENERATED_TDX_GLOBAL_METADATA_H 4 #define _X86_VIRT_TDX_AUTO_GENERATED_TDX_GLOBAL_METADATA_H 5 6 #include <linux/types.h> 7 8 struct tdx_sys_info_version { 9 u16 minor_version; 10 u16 major_version; 11 u16 update_version; 12 }; 13 14 struct tdx_sys_info_features { 15 u64 tdx_features0; 16 }; 17 18 struct tdx_sys_info_tdmr { 19 u16 max_tdmrs; 20 u16 max_reserved_per_tdmr; 21 u16 pamt_4k_entry_size; 22 u16 pamt_2m_entry_size; 23 u16 pamt_1g_entry_size; 24 }; 25 26 struct tdx_sys_info_td_ctrl { 27 u16 tdr_base_size; 28 u16 tdcs_base_size; 29 u16 tdvps_base_size; 30 }; 31 32 struct tdx_sys_info_td_conf { 33 u64 attributes_fixed0; 34 u64 attributes_fixed1; 35 u64 xfam_fixed0; 36 u64 xfam_fixed1; 37 u16 num_cpuid_config; 38 u16 max_vcpus_per_td; 39 u64 cpuid_config_leaves[128]; 40 u64 cpuid_config_values[128][2]; 41 }; 42 43 struct tdx_sys_info { 44 struct tdx_sys_info_version version; 45 struct tdx_sys_info_features features; 46 struct tdx_sys_info_tdmr tdmr; 47 struct tdx_sys_info_td_ctrl td_ctrl; 48 struct tdx_sys_info_td_conf td_conf; 49 }; 50 51 #endif 52