Lines Matching defs:vcpu
13 void kvm_update_cpuid_runtime(struct kvm_vcpu *vcpu);
14 void kvm_update_pv_runtime(struct kvm_vcpu *vcpu);
15 struct kvm_cpuid_entry2 *kvm_find_cpuid_entry(struct kvm_vcpu *vcpu,
20 int kvm_vcpu_ioctl_set_cpuid(struct kvm_vcpu *vcpu,
23 int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu,
26 int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu,
29 bool kvm_cpuid(struct kvm_vcpu *vcpu, u32 *eax, u32 *ebx,
32 int cpuid_query_maxphyaddr(struct kvm_vcpu *vcpu);
34 static inline int cpuid_maxphyaddr(struct kvm_vcpu *vcpu)
36 return vcpu->arch.maxphyaddr;
39 static inline bool kvm_vcpu_is_illegal_gpa(struct kvm_vcpu *vcpu, gpa_t gpa)
41 return (gpa >= BIT_ULL(cpuid_maxphyaddr(vcpu)));
190 static __always_inline u32 *guest_cpuid_get_register(struct kvm_vcpu *vcpu,
196 entry = kvm_find_cpuid_entry(vcpu, cpuid.function, cpuid.index);
203 static __always_inline bool guest_cpuid_has(struct kvm_vcpu *vcpu,
208 reg = guest_cpuid_get_register(vcpu, x86_feature);
215 static __always_inline void guest_cpuid_clear(struct kvm_vcpu *vcpu,
220 reg = guest_cpuid_get_register(vcpu, x86_feature);
225 static inline bool guest_cpuid_is_amd_or_hygon(struct kvm_vcpu *vcpu)
229 best = kvm_find_cpuid_entry(vcpu, 0, 0);
235 static inline int guest_cpuid_family(struct kvm_vcpu *vcpu)
239 best = kvm_find_cpuid_entry(vcpu, 0x1, 0);
246 static inline int guest_cpuid_model(struct kvm_vcpu *vcpu)
250 best = kvm_find_cpuid_entry(vcpu, 0x1, 0);
257 static inline int guest_cpuid_stepping(struct kvm_vcpu *vcpu)
261 best = kvm_find_cpuid_entry(vcpu, 0x1, 0);
268 static inline bool guest_has_spec_ctrl_msr(struct kvm_vcpu *vcpu)
270 return (guest_cpuid_has(vcpu, X86_FEATURE_SPEC_CTRL) ||
271 guest_cpuid_has(vcpu, X86_FEATURE_AMD_STIBP) ||
272 guest_cpuid_has(vcpu, X86_FEATURE_AMD_IBRS) ||
273 guest_cpuid_has(vcpu, X86_FEATURE_AMD_SSBD));
276 static inline bool guest_has_pred_cmd_msr(struct kvm_vcpu *vcpu)
278 return (guest_cpuid_has(vcpu, X86_FEATURE_SPEC_CTRL) ||
279 guest_cpuid_has(vcpu, X86_FEATURE_AMD_IBPB));
282 static inline bool supports_cpuid_fault(struct kvm_vcpu *vcpu)
284 return vcpu->arch.msr_platform_info & MSR_PLATFORM_INFO_CPUID_FAULT;
287 static inline bool cpuid_fault_enabled(struct kvm_vcpu *vcpu)
289 return vcpu->arch.msr_misc_features_enables &
328 static inline bool page_address_valid(struct kvm_vcpu *vcpu, gpa_t gpa)
330 return PAGE_ALIGNED(gpa) && !(gpa >> cpuid_maxphyaddr(vcpu));
333 static __always_inline bool guest_pv_has(struct kvm_vcpu *vcpu,
336 if (!vcpu->arch.pv_cpuid.enforce)
339 return vcpu->arch.pv_cpuid.features & (1u << kvm_feature);