1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 #ifndef X86_CPU_POLICY_H 3 #define X86_CPU_POLICY_H 4 5 struct cpu_policy; 6 struct domain; 7 8 extern struct cpu_policy raw_cpu_policy; 9 extern struct cpu_policy host_cpu_policy; 10 extern struct cpu_policy pv_max_cpu_policy; 11 extern struct cpu_policy pv_def_cpu_policy; 12 extern struct cpu_policy hvm_max_cpu_policy; 13 extern struct cpu_policy hvm_def_cpu_policy; 14 15 /* Initialise the guest cpu_policy objects. */ 16 void init_guest_cpu_policies(void); 17 18 /* Allocate and initialise a CPU policy suitable for the domain. */ 19 int init_domain_cpu_policy(struct domain *d); 20 21 /* Apply dom0-specific tweaks to the CPUID policy. */ 22 void init_dom0_cpuid_policy(struct domain *d); 23 24 /* Clamp the CPUID policy to reality. */ 25 void recalculate_cpuid_policy(struct domain *d); 26 27 /* 28 * Collect the raw CPUID and MSR values. Called during boot, and after late 29 * microcode loading. 30 */ 31 void calculate_raw_cpu_policy(void); 32 33 #endif /* X86_CPU_POLICY_H */ 34