if (kvm_cpu_has(X86_FEATURE_UMIP))
cr4 |= X86_CR4_UMIP; if (kvm_cpu_has(X86_FEATURE_LA57))
cr4 |= X86_CR4_LA57; if (kvm_cpu_has(X86_FEATURE_VMX))
cr4 |= X86_CR4_VMXE; if (kvm_cpu_has(X86_FEATURE_SMX))
cr4 |= X86_CR4_SMXE; if (kvm_cpu_has(X86_FEATURE_FSGSBASE))
cr4 |= X86_CR4_FSGSBASE; if (kvm_cpu_has(X86_FEATURE_PCID))
cr4 |= X86_CR4_PCIDE; if (kvm_cpu_has(X86_FEATURE_XSAVE))
cr4 |= X86_CR4_OSXSAVE; if (kvm_cpu_has(X86_FEATURE_SMEP))
cr4 |= X86_CR4_SMEP; if (kvm_cpu_has(X86_FEATURE_SMAP))
cr4 |= X86_CR4_SMAP; if (kvm_cpu_has(X86_FEATURE_PKU))
cr4 |= X86_CR4_PKE;
for (i = 32; i < 64; i++)
TEST_INVALID_CR_BIT(vcpu, cr0, sregs, BIT(i));
/* NW without CD is illegal, as is PG without PE. */
TEST_INVALID_CR_BIT(vcpu, cr0, sregs, X86_CR0_NW);
TEST_INVALID_CR_BIT(vcpu, cr0, sregs, X86_CR0_PG);
}
int main(int argc, char *argv[])
{ struct kvm_sregs sregs; struct kvm_vcpu *vcpu; struct kvm_vm *vm; int rc;
/* Create a "real" VM with a fully populated guest CPUID and verify *APIC_BASEandallsupportedCR4canbeset.
*/
vm = vm_create_with_one_vcpu(&vcpu, NULL);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.