guest_cpu_cap_has
guest_cpu_cap_has(vcpu, X86_FEATURE_GBPAGES);
__cr4_reserved_bits(guest_cpu_cap_has, vcpu);
if (guest_cpu_cap_has(vcpu, X86_FEATURE_LAM))
return (guest_cpu_cap_has(vcpu, X86_FEATURE_SPEC_CTRL) ||
guest_cpu_cap_has(vcpu, X86_FEATURE_AMD_STIBP) ||
guest_cpu_cap_has(vcpu, X86_FEATURE_AMD_IBRS) ||
guest_cpu_cap_has(vcpu, X86_FEATURE_AMD_SSBD));
return (guest_cpu_cap_has(vcpu, X86_FEATURE_SPEC_CTRL) ||
guest_cpu_cap_has(vcpu, X86_FEATURE_AMD_IBPB) ||
guest_cpu_cap_has(vcpu, X86_FEATURE_SBPB));
!guest_cpu_cap_has(vcpu, X86_FEATURE_XSAVEC))
(guest_cpu_cap_has(vcpu, X86_FEATURE_X2APIC) ? 0 : X2APIC_ENABLE);
if (guest_cpu_cap_has(vcpu, X86_FEATURE_X2APIC) &&
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_LAM))
guest_cpu_cap_has(vcpu, X86_FEATURE_GBPAGES),
guest_cpu_cap_has(vcpu, X86_FEATURE_GBPAGES),
if (guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK) &&
if (guest_cpu_cap_has(vcpu, X86_FEATURE_LM))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_LM))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK) &&
if (guest_cpu_cap_has(vcpu, X86_FEATURE_LM)) {
if (guest_cpu_cap_has(vcpu, X86_FEATURE_LM)) {
if (guest_cpu_cap_has(vcpu, X86_FEATURE_LM))
if (!guest_cpu_cap_has(&svm->vcpu, X86_FEATURE_V_VMSAVE_VMLOAD))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK)) {
if (guest_cpu_cap_has(vcpu, X86_FEATURE_NRIPS))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_ERAPS))
if (unlikely(guest_cpu_cap_has(vcpu, X86_FEATURE_LBRV) &&
if (!guest_cpu_cap_has(__vcpu, X86_FEATURE_##fname)) \
if (guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK) &&
if (unlikely(guest_cpu_cap_has(vcpu, X86_FEATURE_LBRV) &&
if (guest_cpu_cap_has(vcpu, X86_FEATURE_VGIF) &&
if (guest_cpu_cap_has(vcpu, X86_FEATURE_TSCRATEMSR) &&
if (guest_cpu_cap_has(vcpu, X86_FEATURE_NRIPS))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_NRIPS))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_PAUSEFILTER))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_PFTHRESHOLD))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_ERAPS))
return guest_cpu_cap_has(vcpu, X86_FEATURE_PERFCTR_CORE);
if (guest_cpu_cap_has(vcpu, X86_FEATURE_PERFMON_V2)) {
} else if (guest_cpu_cap_has(vcpu, X86_FEATURE_PERFCTR_CORE)) {
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_PERFCTR_CORE))
!guest_cpu_cap_has(vcpu, X86_FEATURE_RDTSCP) &&
!guest_cpu_cap_has(vcpu, X86_FEATURE_RDPID));
!guest_cpu_cap_has(vcpu, X86_FEATURE_XSAVES) ||
!guest_cpu_cap_has(&svm->vcpu, X86_FEATURE_INVPCID))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_RDTSCP))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_ERAPS))
!guest_cpu_cap_has(vcpu, X86_FEATURE_TSCRATEMSR))
!guest_cpu_cap_has(vcpu, X86_FEATURE_VIRT_SSBD))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_TSCRATEMSR)) {
if (guest_cpu_cap_has(vcpu, X86_FEATURE_TSCRATEMSR) &&
!guest_cpu_cap_has(vcpu, X86_FEATURE_VIRT_SSBD))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_INVPCID)) {
if (guest_cpu_cap_has(vcpu, X86_FEATURE_ERAPS) &&
guest_cpu_cap_has(vcpu, X86_FEATURE_XSAVE));
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_LM))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_LM))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_SVM))
intercept |= !guest_cpu_cap_has(vcpu, X86_FEATURE_PERFCTR_CORE);
!guest_cpu_cap_has(vcpu, X86_FEATURE_FLUSH_L1D));
bool shstk_enabled = guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK);
(is_guest_mode(vcpu) && guest_cpu_cap_has(vcpu, X86_FEATURE_LBRV) &&
return guest_cpu_cap_has(&svm->vcpu, X86_FEATURE_VGIF) &&
return guest_cpu_cap_has(&svm->vcpu, X86_FEATURE_VNMI) &&
if (guest_cpu_cap_has(vcpu, X86_FEATURE_IBT) ||
guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK)) {
if (guest_cpu_cap_has(vcpu, X86_FEATURE_IBT) ||
guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK)) {
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_SGX) ||
if (guest_cpu_cap_has(vcpu, X86_FEATURE_VMX) &&
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_VMX))
(!guest_cpu_cap_has(vcpu, X86_FEATURE_VMX) ||
ret = guest_cpu_cap_has(vcpu, X86_FEATURE_DS);
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_PDCM))
guest_cpu_cap_has(vcpu, X86_FEATURE_SGX2)) {
return guest_cpu_cap_has(vcpu, X86_FEATURE_SGX2);
if (!enable_sgx || !guest_cpu_cap_has(vcpu, X86_FEATURE_SGX) ||
!guest_cpu_cap_has(vcpu, X86_FEATURE_SGX1)) {
if (guest_cpu_cap_has(vcpu, X86_FEATURE_SGX) &&
if (guest_cpu_cap_has(vcpu, X86_FEATURE_SGX1)) {
if (guest_cpu_cap_has(vcpu, X86_FEATURE_SGX2))
guest_cpu_cap_has(&vmx->vcpu, X86_FEATURE_RDTSCP) ||
guest_cpu_cap_has(&vmx->vcpu, X86_FEATURE_RDPID));
!guest_cpu_cap_has(vcpu, X86_FEATURE_MPX)))
!guest_cpu_cap_has(vcpu, X86_FEATURE_SGX_LC))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_VMX))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_LM))
(host_initiated || guest_cpu_cap_has(vcpu, X86_FEATURE_BUS_LOCK_DETECT)))
(host_initiated || guest_cpu_cap_has(vcpu, X86_FEATURE_RTM)))
!guest_cpu_cap_has(vcpu, X86_FEATURE_MPX)))
(!guest_cpu_cap_has(vcpu, X86_FEATURE_SGX_LC) ||
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_VMX))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_DS))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_DTES64))
!guest_cpu_cap_has(vcpu, X86_FEATURE_XFD));
!guest_cpu_cap_has(vcpu, X86_FEATURE_FLUSH_L1D));
intercept = !guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK);
intercept = !guest_cpu_cap_has(vcpu, X86_FEATURE_IBT) &&
!guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK);
__enabled = guest_cpu_cap_has(__vcpu, X86_FEATURE_##feat_name); \
guest_cpu_cap_has(vcpu, X86_FEATURE_RDTSCP) ||
guest_cpu_cap_has(vcpu, X86_FEATURE_RDPID);
if (guest_cpu_cap_has(vcpu, X86_FEATURE_SGX2))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_INVPCID)) {
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_XSAVE))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_VMX))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_VMX))
guest_cpu_cap_has(vcpu, X86_FEATURE_INTEL_PT))
bool enabled = guest_cpu_cap_has(vcpu, X86_FEATURE_RTM);
if (guest_cpu_cap_has(vcpu, X86_FEATURE_SGX))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_SGX_LC))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_XSAVES) &&
if (guest_cpu_cap_has(vcpu, X86_FEATURE_ERAPS))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_RTM))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_BUS_LOCK_DETECT))
if (efer & EFER_AUTOIBRS && !guest_cpu_cap_has(vcpu, X86_FEATURE_AUTOIBRS))
if (efer & EFER_FFXSR && !guest_cpu_cap_has(vcpu, X86_FEATURE_FXSR_OPT))
if (efer & EFER_SVME && !guest_cpu_cap_has(vcpu, X86_FEATURE_SVM))
!guest_cpu_cap_has(vcpu, X86_FEATURE_LM))
if (efer & EFER_NX && !guest_cpu_cap_has(vcpu, X86_FEATURE_NX))
!guest_cpu_cap_has(vcpu, X86_FEATURE_RDTSCP) &&
!guest_cpu_cap_has(vcpu, X86_FEATURE_RDPID))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK) &&
!guest_cpu_cap_has(vcpu, X86_FEATURE_IBT))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK))
if (index == MSR_IA32_INT_SSP_TAB && !guest_cpu_cap_has(vcpu, X86_FEATURE_LM))
!guest_cpu_cap_has(vcpu, X86_FEATURE_RDTSCP) &&
!guest_cpu_cap_has(vcpu, X86_FEATURE_RDPID))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK) &&
!guest_cpu_cap_has(vcpu, X86_FEATURE_IBT))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK))
enabled = guest_cpu_cap_has(vcpu, X86_FEATURE_MWAIT);
return guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK) ||
guest_cpu_cap_has(vcpu, X86_FEATURE_IBT);
return guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK);
!guest_cpu_cap_has(vcpu, X86_FEATURE_ARCH_CAPABILITIES))
!guest_cpu_cap_has(vcpu, X86_FEATURE_PDCM))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_SPEC_CTRL) &&
!guest_cpu_cap_has(vcpu, X86_FEATURE_AMD_IBPB))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_SBPB))
!guest_cpu_cap_has(vcpu, X86_FEATURE_FLUSH_L1D))
if (guest_cpu_cap_has(vcpu, X86_FEATURE_TSC_ADJUST)) {
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_XMM3))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_OSVW))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_OSVW))
!guest_cpu_cap_has(vcpu, X86_FEATURE_XFD))
!guest_cpu_cap_has(vcpu, X86_FEATURE_XFD))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_ARCH_CAPABILITIES))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_PDCM))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_OSVW))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_OSVW))
!guest_cpu_cap_has(vcpu, X86_FEATURE_XFD))
!guest_cpu_cap_has(vcpu, X86_FEATURE_XFD))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK))
u64 nr_regs = guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK) ? 1 : 0;
return guest_cpu_cap_has(emul_to_vcpu(ctxt), X86_FEATURE_MOVBE);
return guest_cpu_cap_has(emul_to_vcpu(ctxt), X86_FEATURE_FXSR);
return guest_cpu_cap_has(emul_to_vcpu(ctxt), X86_FEATURE_RDPID);
if (guest_cpu_cap_has(vcpu, X86_FEATURE_SPEC_CTRL) ||
guest_cpu_cap_has(vcpu, X86_FEATURE_AMD_IBRS))
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK) &&
if (!guest_cpu_cap_has(vcpu, X86_FEATURE_IBT) &&